From b76a435b9b74b45b247c1cc4c5a1628b5a75c98f Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 21 Sep 2016 08:53:10 -0700 Subject: [PATCH 01/45] Fixes #2, Gfb.rename(). Re-wrote to change ._name and pop old name from elements if not 'default'. Preserves original objects. --- Test/test_boxfill_rename.py | 29 +++++++++++++++++++++++++++++ vcs/boxfill.py | 3 ++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 Test/test_boxfill_rename.py diff --git a/Test/test_boxfill_rename.py b/Test/test_boxfill_rename.py new file mode 100644 index 000000000..2de4fd7ee --- /dev/null +++ b/Test/test_boxfill_rename.py @@ -0,0 +1,29 @@ +import vcs +import cdms2 + +# download sample data, if it isn't already there +vcs.download_sample_data_files() + +# make a slab, make a boxfill, get default boxfill +f = cdms2.open(vcs.sample_data + '/clt.nc') +u = f('u') +b = vcs.createboxfill() +a = vcs.init() +r = a.getboxfill() + +# rename() should rename the created boxfill +b_name = b.name +b.rename('foo') +assert(b_name != b.name) + +# rename() should not rename the default object +r.rename('bar') +assert(r.name == 'default') + +# both 'foo' and 'bar' boxfills should be get-able +a.getboxfill('foo') +a.getboxfill('bar') + +# both boxfills should be plot-able +a.boxfill(b,u) +a.boxfill(r,u) \ No newline at end of file diff --git a/vcs/boxfill.py b/vcs/boxfill.py index 1239ea145..1ce0d4dba 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -368,7 +368,8 @@ def rename(self, newname): warnings.warn( "You were trying to rename the 'deafult' boxfill method, it was merely copied not renamed") else: - del(vcs.elements["boxfill"][self.name]) + vcs.elements["boxfill"].pop(self.name) + self._name = newname self = vcs.elements["boxfill"][newname] return From f3611de5bb1f502649a47e80ef1f732bbbdcd690 Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 22 Nov 2016 16:30:48 -0800 Subject: [PATCH 02/45] Working on vcs documentation again. --- vcs/Canvas.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 0221cdcdb..1880c20fd 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -5054,9 +5054,6 @@ def postscript(self, file, mode='r', orientation=None, width=None, height=None, :param mode: The mode in which to open the file. One of 'r' or 'a'. :type mode: str - :param orientation: Deprecated. - :type orientation: None - :param width: Desired width of the postscript output, in the specified unit of measurement :type width: int @@ -5325,9 +5322,6 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' :param mode: The mode in which to open the file. One of 'r' or 'a'. :type mode: str - :param orientation: Deprecated. - :type orientation: None - :param width: Width of the output image, in the unit of measurement specified :type width: float From 7e8827234b371dc27d78d4091f355d4af62df20a Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 23 Nov 2016 10:31:58 -0800 Subject: [PATCH 03/45] Trying to fix doctest strings --- vcs/Canvas.py | 23 ++++++++++------------- vcs/animate_helper.py | 9 --------- vcs/template.py | 12 +++++++----- vcs/utils.py | 2 +- 4 files changed, 18 insertions(+), 28 deletions(-) diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 1880c20fd..9e4058e02 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -4103,9 +4103,10 @@ def change_display_graphic_method(self, display, type, name): def get_selected_display(self): """ - .. deprecated:: 2.0 + :Not Implemented Yet: - This function is no longer supported. + This function does not currently work. + It will be implemented in the future. """ return self.canvas.get_selected_display(*()) @@ -4243,14 +4244,6 @@ def grid(self, *args): than the graphics method. This will also be used for animating plots over the third and fourth dimensions. - - :Example: - - .. doctest:: canvas_grid - - >>> a=vcs.init() - >>> a.grid(12,12,0,71,0,45) - .. admonition:: Not Yet Implemented :py:func`vcs.Canvas.grid`_ does not work. @@ -4367,7 +4360,10 @@ def listelements(self, *args): def updateorientation(self, *args): """ - .. deprecated:: 2.0 + :Not Implemented Yet: + + This function does not currently work. + It will be implemented in the future. Use :func:`landscape` or :func:`portrait` instead. """ @@ -5469,9 +5465,10 @@ def isportrait(self): def getplot(self, Dp_name_src='default', template=None): """ - .. deprecated:: 2.0 + :Not Implemented Yet: - The getplot function is deprecated. Do not use it. + This function does not currently work. + It will be implemented in the future. This function will create a display plot object from an existing display plot object from an existing VCS plot. If no display plot name diff --git a/vcs/animate_helper.py b/vcs/animate_helper.py index 67291822d..68a8b4df7 100644 --- a/vcs/animate_helper.py +++ b/vcs/animate_helper.py @@ -28,15 +28,6 @@ class animate_obj_old(object): See the `animation GUI documentation`_ .. _animation GUI documentation: http://www-pcmdi.llnl.gov/software/vcs - - :Example: - - .. doctest:: animate_helper_obj_old - - >>> a=vcs.init() - >>> a.plot(array,'default','isofill','quick') - >>> a.animate() - """ ########################################################################## diff --git a/vcs/template.py b/vcs/template.py index 07766f6c5..859c4cd0e 100644 --- a/vcs/template.py +++ b/vcs/template.py @@ -1,6 +1,7 @@ -# Adapted for numpy/ma/cdms2 by convertcdms.py """ +# Adapted for numpy/ma/cdms2 by convertcdms.py # Template (P) module + """ ############################################################################### # # @@ -1250,6 +1251,7 @@ def reset(self, sub_name, v1, v2, ov1=None, ov2=None): sub-attribute with the specified name. .. note:: + Respect how far from original position you are i.e. you move to x1,x2 from old_x1, old_x2 if your current x1 value is not == to old_x1_value, @@ -1257,10 +1259,10 @@ def reset(self, sub_name, v1, v2, ov1=None, ov2=None): Example: - Create template 'example1' which inherits from 'default' template - t = vcs.createtemplate('example1', 'default') - Set x1 value to 0.15 and x2 value to 0.5 - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) + .. doctest:: template_reset + + >>> t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' + >>> t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 :param sub_name: String indicating the name of the sub-attribute to be reset. For example, sub-name='x' would cause the x1 ans x2 attributes to be set. diff --git a/vcs/utils.py b/vcs/utils.py index 26b20ad74..e3e423761 100644 --- a/vcs/utils.py +++ b/vcs/utils.py @@ -2252,7 +2252,7 @@ def drawLinesAndMarkersLegend(canvas, templateLegend, >>> vcs.utils.drawLinesAndMarkersLegend(x,t.legend, ... ["red","blue","green"], ["solid","dash","dot"],[1,4,8], ... ["blue","green","red"], ["cross","square","dot"],[3,4,5], - ... ["sample A","type B","thing C"], None, True, True) + ... ["sample A","type B","thing C"], bg=True) >>> x.png("sample") :param canvas: a VCS canvas object onto which to draw the legend From 52ace16e43e09d1217452db6b81e7f08df117378 Mon Sep 17 00:00:00 2001 From: embrown Date: Mon, 28 Nov 2016 15:31:04 -0800 Subject: [PATCH 04/45] Trying to get testing to work --- docs/conf.py | 107 ++++++++++++++++++++++++++++++++++-------- vcs/Canvas.py | 25 ++++++---- vcs/manageElements.py | 47 +++++++------------ vcs/xmldocs.py | 21 ++++++++- 4 files changed, 143 insertions(+), 57 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index cc3fcd57b..196f95717 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -38,11 +38,81 @@ # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'sphinx.ext.extlinks', 'sphinx.ext.doctest'] +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.todo', + 'sphinx.ext.coverage', + 'sphinx.ext.mathjax', + 'sphinx.ext.ifconfig', + 'sphinx.ext.viewcode', + 'sphinx.ext.extlinks', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx'] # turn off doctests of autodoc included files (these are tested elsewhere) -doctest_test_doctest_blocks = None - +# doctest_test_doctest_blocks = None +doctest_path = sys.path + +doctest_global_setup = """ +import vcs, cdms2, os +ex = ex1 = ex2 = None +__examples = [ex, ex1, ex2] +# Copy vcs.elements so we can do a diff later. +# check if it already exists so we don't overwrite the first copy +try: + elts +except: + elts = {} + for key in vcs.elements.keys(): + if type(vcs.elements[key]) == dict: + elts[key]=dict(vcs.elements[key]) + else: + elts[key]=vcs.elements[key] +try: + vcs.removeobject(vcs.elements['texttable']['EXAMPLE_tt']) + vcs.removeobject(vcs.elements['textorientation']['EXAMPLE_tto']) + vcs.removeobject(vcs.elements['template']['example1']) + vcs.removeobject(vcs.elements['colormap']['example']) + a.close() +except: + pass + """ + +doctest_global_cleanup = """ +import glob, sys +f=open("dt_cleanup_log", "a+", 1) +log=[] +gb = glob.glob +patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*"] +files = [] +for pattern in patterns: + fnames = gb(pattern) + for name in fnames: + files.append(name) +for file in files: + try: + os.remove(file) + except: + log.append("COULD NOT delete file: " + file + "%s") % '\\n' +for key in vcs.elements.keys(): + for _ in vcs.elements[key].keys(): + if not elts[key].has_key(_) and (key,_) != ('line','red'): + try: + vcs.removeobject(vcs.elements[key][_]) + except: + pass + else: + log.append("Removed object: vcs.elements['%s']['%s']%s" % (key,_,'\\n')) +selected_items = [('texttable','EXAMPLE_tt'),('textorientation','EXAMPLE_tto'),('template','example1'),('colormap','example1')] +for item in selected_items: + try: + vcs.removeobject(vcs.elements[item[0]][item[1]]) + except: + log.append("COULD NOT remove object: vcs.elements['%s']['%s']%s" % (item[0],item[1],'\\n')) + else: + log.append("Removed object: vcs.elements['%s']['%s']%s" % (item[0],item[1],'\\n')) +f.writelines(log) +f.flush() +""" # Add any paths that contain templates here, relative to this directory. templates_path = ['templates'] @@ -56,8 +126,9 @@ master_doc = 'index' # General information about the project. -project = 'VCS' -copyright = '2016, LLNL' +project = u'VCS' +copyright = u'2016, LLNL' +author = u'LLNL AIMS Team' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -67,10 +138,10 @@ # flags to set them explicitly using a variable defined there. # # The short X.Y version. -version = '0.1' +version = '2.8.0' # The full version, including alpha/beta/rc tags. -release = '0.1.0' +release = '2.8.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -84,7 +155,7 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = [] +exclude_patterns = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None @@ -124,9 +195,7 @@ # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = { -# 'bootswatch_theme': "readable" -#} +# html_theme_options = { "stickysidebar" : "true" } # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] @@ -168,7 +237,7 @@ #html_additional_pages = {} # If false, no module index is generated. -html_domain_indices = False +html_domain_indices = True # If false, no index is generated. #html_use_index = True @@ -197,7 +266,7 @@ #html_file_suffix = None # Output file base name for HTML help builder. -htmlhelp_basename = 'VCSDoc' +htmlhelp_basename = 'vcsdoc' # -- Options for LaTeX output -------------------------------------------------- @@ -211,15 +280,15 @@ # Additional stuff for the LaTeX preamble. #'preamble': '', +'classoptions': ',oneside' } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'vcs.tex', 'VCS Documentation', - 'LLNL', 'manual'), + (master_doc, 'vcs.tex', u'VCS Documentation', + u'AIMS Team', 'manual'), ] - # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None @@ -260,9 +329,9 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'vcs', 'vcs Documentation', - 'LLNL', 'vcs', 'Visualization library', - 'Miscellaneous'), + (master_doc, 'VCS', u'VCS Documentation', + author, 'VCS', 'Visualization Control System', + 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 9e4058e02..263dca56d 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -1,6 +1,10 @@ """ Canvas - The object onto which all plots are drawn. +------ + + Canvas objects are the 'visualization' component of VCS. Canvases allow the user to take data and plot it on a + visible window. This gives users an easy way to preview how changes to data representation in VCS will change the + visualization of that data. Usually created using :py:func:`vcs.init`, this object provides easy access to the functionality of the entire VCS module. @@ -4103,7 +4107,7 @@ def change_display_graphic_method(self, display, type, name): def get_selected_display(self): """ - :Not Implemented Yet: + .. admonition:: Not Yet Implemented This function does not currently work. It will be implemented in the future. @@ -4197,7 +4201,7 @@ def pstogif(self, filename, *opt): >>> array = [range(1, 11) for _ in range(1, 11)] >>> a.plot(array) - >>> a.pstogif('filename.ps') # convert the postscript file to a gif file (l=landscape) + >>> a.pstogif('filename.ps') # convert the postscript file to a gif file >>> a.pstogif('filename.ps','l') # convert the postscript file to a gif file (l=landscape) >>> a.pstogif('filename.ps','p') # convert the postscript file to a gif file (p=portrait) @@ -4360,7 +4364,7 @@ def listelements(self, *args): def updateorientation(self, *args): """ - :Not Implemented Yet: + .. admonition:: Not Yet Implemented This function does not currently work. It will be implemented in the future. @@ -5259,6 +5263,11 @@ def gif(self, filename='noname.gif', merge='r', orientation=None, file; 'Replace' (r) mode overwrites an existing gif file with new gif output. The default mode is to overwrite an existing gif file (i.e. mode (r)). + .. admonition:: Not Yet Implemented + + This function does not currently work. + It will be implemented in the future. + :Example: .. doctest:: canvas_gif @@ -5388,10 +5397,10 @@ def saveinitialfile(self): :Example: - .. doctest:: canvas_saveinitial + .. code-block:: python - >>> a=vcs.init() - >>> a.saveinitialfile() + a=vcs.init() + a.saveinitialfile() .. warning:: @@ -5465,7 +5474,7 @@ def isportrait(self): def getplot(self, Dp_name_src='default', template=None): """ - :Not Implemented Yet: + .. admonition:: Not Yet Implemented This function does not currently work. It will be implemented in the future. diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 135f388ee..23ca2ecb1 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -1147,9 +1147,6 @@ def createtexttable(name=None, source='default', font=None, :param font: Which font to use (index or name). :type font: int or string - :param expansion: DEPRECATED - :type expansion: DEPRECATED - :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int @@ -1171,6 +1168,10 @@ def createtexttable(name=None, source='default', font=None, :returns: A texttable graphics method object :rtype: vcs.texttable.Tt + + .. note:: + + The expansion parameter is no longer used """ name, source = check_name_source(name, source, 'texttable') @@ -1212,11 +1213,8 @@ def gettexttable(name='default', font=None, :param name: String name of an existing VCS texttable object :type name: str - :param font: ??? - :type font: ??? - - :param expansion: ??? - :type expansion: ??? + :param font: Which font to use (index or name). + :type font: int or str :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) @@ -1239,6 +1237,10 @@ def gettexttable(name='default', font=None, :returns: A texttable graphics method object :rtype: vcs.texttable.Tt + + .. note:: + + The expansion parameter is no longer used """ # Check to make sure the argument passed in is a STRING @@ -1317,12 +1319,6 @@ def createtextcombined(Tt_name=None, Tt_source='default', To_name=None, To_sourc :param font: Which font to use (index or name). :type font: int or str - :param spacing: DEPRECATED - :type spacing: DEPRECATED - - :param expansion: DEPRECATED - :type expansion: DEPRECATED - :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int @@ -1348,9 +1344,6 @@ def createtextcombined(Tt_name=None, Tt_source='default', To_name=None, To_sourc :param angle: Angle of the text, in degrees :type angle: int - :param path: DEPRECATED - :type path: DEPRECATED - :param halign: Horizontal alignment of the text. One of ["left", "center", "right"]. :type halign: str @@ -1362,6 +1355,10 @@ def createtextcombined(Tt_name=None, Tt_source='default', To_name=None, To_sourc :returns: A VCS text object :rtype: vcs.textcombined.Tc + + .. note:: + + The spacing, path, and expansion parameters are no longer used """ # Check if to is defined if To_name is None: @@ -1427,12 +1424,6 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N :param font: Which font to use (index or name) :type font: int or str - :param spacing: DEPRECATED - :type spacing: DEPRECATED - - :param expansion: DEPRECATED - :type expansion: DEPRECATED - :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int @@ -1458,9 +1449,6 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N :param angle: Angle of the rendered text, in degrees :type angle: list of int - :param path: DEPRECATED - :type path: DEPRECATED - :param halign: Horizontal alignment of the text. One of ["left", "center", "right"] :type halign: str @@ -1469,6 +1457,10 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N :returns: A textcombined object :rtype: vcs.textcombined.Tc + + .. note:: + + The spacing, path, and expansion parameters are no longer used """ # Check to make sure the arguments passed in are a STRINGS @@ -1813,10 +1805,7 @@ def removeobject(obj): .. doctest:: manageElements_removeobject >>> a=vcs.init() - >>> line=a.getline('red') # To Modify an existing line object >>> iso=a.createisoline('dean') # Create an instance of an isoline object - >>> a.removeobject(line) # Removes line object from VCS list - 'Removed line object red' >>> a.removeobject(iso) # Remove isoline object from VCS list 'Removed isoline object dean' :param obj: Any VCS primary or secondary object diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 200dc6cef..a0e6289fd 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -634,13 +634,32 @@ def populate_docstrings(type_dict, target_dict, docstring, method): names must be unique. :Example: + + .. testsetup:: manageElements_create + + elements={} + for key in vcs.elements.keys(): + if type(vcs.elements[key]) == dict: + elements[key]=dict(vcs.elements[key]) + else: + elements[key] = vcs.elements[key] .. doctest:: manageElements_create >>> vcs.show('%(name)s') # show all available %(name)s *******************%(cap)s Names List********************** ... - *******************End %(cap)s Names List**********************%(ex1)s%(ex2)s""" + *******************End %(cap)s Names List**********************%(ex1)s%(ex2)s + + .. testcleanup:: manageElements_create + + for key in vcs.elements.keys(): + for el in vcs.elements[key].keys(): + try: + elements[key][el] + except: + vcs.removeobject(vcs.elements[key][el]) + """ scriptdocs = {} docstrings['script'] = [scriptdocs, scriptdoc] From 0aba23bc590981fe4b25f8a160e505407f1590aa Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 29 Nov 2016 15:34:08 -0800 Subject: [PATCH 05/45] Fixing errors for tests --- docs/conf.py | 2 +- vcs/Canvas.py | 2 +- vcs/__init__.py | 31 ++++++++++++------------------- vcs/boxfill.py | 2 +- vcs/colormap.py | 2 +- vcs/manageElements.py | 1 - vcs/utils.py | 37 ++++++++++++++++++++++++++----------- vcs/xmldocs.py | 2 +- 8 files changed, 43 insertions(+), 36 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 196f95717..499b907fe 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -92,7 +92,7 @@ try: os.remove(file) except: - log.append("COULD NOT delete file: " + file + "%s") % '\\n' + log.append("COULD NOT delete file: " + file + "\\n") for key in vcs.elements.keys(): for _ in vcs.elements[key].keys(): if not elts[key].has_key(_) and (key,_) != ('line','red'): diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 263dca56d..f670a5c3c 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -1294,7 +1294,7 @@ def meshfill(self, *args, **parms): # noqa In addition the mesh array must be of the same shape than data with 2 additional dimension representing the vertices coordinates for the Y (0) and X (1) dimension Let's say you want to plot a spatial assuming mesh containing 10,000 grid cell, then data must be shape (10000,) - or (n1,n2,n3,...,10000) if additional dimensions exist (ex time,level), these dimension would be used only + or (n1,n2,n3,...,10000) if additional dimensions exist (ex time,level), these dimensions would be used only for animation and will be ignored in the rest of this example. The shape of the mesh, assuming 4 vertices per grid cell, must be (1000,2,4), where the array [:,0,:] represent the Y coordinates of the vertices (clockwise or counterclockwise) and the array [:,1:] diff --git a/vcs/__init__.py b/vcs/__init__.py index ea9ad0798..25f7e0b90 100755 --- a/vcs/__init__.py +++ b/vcs/__init__.py @@ -258,25 +258,18 @@ def init(mode=1, pause_time=0, call_from_gui=0, size=None, :Example: - :: - - import vcs - - # Portrait orientation of 1 width per 2 height - portrait = vcs.init(size=.5) - # also accepts "usletter" - letter = vcs.init(size="letter") - a4 = vcs.init(size="a4") - - import vtk - # Useful for embedding VCS inside another application - my_win = vtk.vtkRenderWindow() - embedded = vcs.init(backend=my_win) - - dict_init = vcs.init(geometry={"width": 1200, "height": 600}) - tuple_init = vcs.init(geometry=(1200, 600)) - - bg_canvas = vcs.init(bg=True) + .. doctest:: vcs_init + + >>> import vcs + >>> portrait = vcs.init(size=.5) # Portrait orientation of 1 width per 2 height + >>> letter = vcs.init(size="letter") # also accepts "usletter" + >>> a4 = vcs.init(size="a4") + >>> import vtk + >>> my_win = vtk.vtkRenderWindow() # Useful for embedding VCS inside another application + >>> embedded = vcs.init(backend=my_win) + >>> dict_init = vcs.init(geometry={"width": 1200, "height": 600}) + >>> tuple_init = vcs.init(geometry=(1200, 600)) + >>> bg_canvas = vcs.init(bg=True) :param size: Aspect ratio for canvas (width / height) :param backend: Which VCS backend to use diff --git a/vcs/boxfill.py b/vcs/boxfill.py index 5a7f4a768..d0d8b2370 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -1096,7 +1096,7 @@ def script(self, script_filename, mode='a'): fp.write("%s.legend = %s\n" % (unique_name, self.legend)) fp.write("%s.ext_1 = '%s'\n" % (unique_name, self.ext_1)) fp.write("%s.ext_2 = '%s'\n" % (unique_name, self.ext_2)) - fp.write("%s.missing = %g\n" % (unique_name, self.missing)) + fp.write("%s.missing = %s\n" % (unique_name, repr(self.missing))) fp.write( "%s.datawc_calendar = %g\n" % (unique_name, self.datawc_calendar)) diff --git a/vcs/colormap.py b/vcs/colormap.py index 1ccf43b0d..04287c1ed 100644 --- a/vcs/colormap.py +++ b/vcs/colormap.py @@ -340,7 +340,7 @@ def getcolorcell(self, index): >>> a=vcs.init() # Create a vcs Canvas >>> cmap = a.createcolormap('example', 'default') # Create a colormap >>> cmap.getcolorcell(1) # Get RGBA values - [0, 0, 0, 100.0] + [26, 0, 33, 100] :param index: Index of a cell in the colormap. Must be an integer from 0-255. :type index: int diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 23ca2ecb1..1656688b6 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -865,7 +865,6 @@ def createmarker(name=None, source='default', mtype=None, """ %s - :param name: Name of created object :type name: str diff --git a/vcs/utils.py b/vcs/utils.py index e3e423761..9bee63e00 100644 --- a/vcs/utils.py +++ b/vcs/utils.py @@ -428,10 +428,25 @@ def show(*args): >>> a=vcs.init() # Create a VCS Canvas instance, named 'a' >>> a.show('boxfill') # List boxfill objects on Canvas 'a' + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** >>> a.show('isofill') # List isofill objects on Canvas 'a' + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** >>> a.show('line') # List line objects on Canvas 'a' + *******************Line Names List********************** + ... + *******************End Line Names List********************** >>> a.show('marker') # List marker objects on Canvas 'a' - >>> a.show('text') # List text objects on Canvas 'a' + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** + >>> a.show('textcombined') # List text objects on Canvas 'a' + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** """ if args == (): return vcs.listelements() @@ -1320,16 +1335,16 @@ def getcolors(levs, colors=None, split=1, white="white"): >>> a=[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] >>> vcs.getcolors (a) - [16, 41, 66, 90, 115, 140, 165, 189, 214, 239] + [0, 28, 57, 85, 113, 142, 170, 198, 227, 255] >>> vcs.getcolors (a,colors=range(16,200)) [16, 36, 57, 77, 97, 118, 138, 158, 179, 199] >>> vcs.getcolors(a,colors=[16,25,15,56,35,234,12,11,19,32,132,17]) [16, 25, 15, 35, 234, 12, 11, 32, 132, 17] >>> a=[-6.0, -2.0, 2.0, 6.0, 10.0, 14.0, 18.0, 22.0, 26.0] >>> vcs.getcolors (a,white=241) - [72, 241, 128, 150, 172, 195, 217, 239] + [0, 241, 128, 153, 179, 204, 230, 255] >>> vcs.getcolors (a,white=241,split=0) - [16, 48, 80, 112, 143, 175, 207, 239] + [0, 36, 73, 109, 146, 182, 219, 255] :param levs: levels defining the color ranges :type levs: list, tuple @@ -1466,17 +1481,17 @@ def generate_time_labels(d1, d2, units, calendar=cdtime.DefaultCalendar): :Example: - .. doctest:: generate_time_labels + .. doctest:: utils_generate_time_labels # Two ways to generate a dictionary of time labels - >>> lbls = generate_time_labels(cdtime.reltime(0,'months since 2000'), + >>> import cdtime + >>> lbls = vcs.generate_time_labels(cdtime.reltime(0,'months since 2000'), ... cdtime.reltime(12,'months since 2000'), - ... 'days since 1800',) # for the year 2000 in units of 'days since 1800' - >>> lbls = generate_time_labels(cdtime.reltime(0,'months since 2000'), + ... 'days since 1800') # for the year 2000 in units of 'days since 1800' + >>> lbls = vcs.generate_time_labels(cdtime.reltime(0,'months since 2000'), ... cdtime.comptime(2001), - ... 'days since 1800',) # for the year 2000 in units of 'days since 1800' - >>> lbls = generate_time_labels(0, 12, 'months since 2000', ) # Generate a dictionary of time labels - # for year 2000, units of 'months since 2000' + ... 'days since 1800') # for the year 2000 in units of 'days since 1800' + >>> lbls = vcs.generate_time_labels(0, 12, 'months since 2000') # time labels for year 2000 :param d1: The beginning of the time interval to be labelled. Expects a cdtime object. diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index a0e6289fd..1e6aa79ab 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -272,7 +272,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): elif obj_name in ['1d', 'scatter', 'textcombined', 'xyvsy']: if obj_name == 'textcombined': dict['tc'] = """ - >>> a.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + >>> vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' """ dict['sp_parent'] = "'EXAMPLE_tt', 'EXAMPLE_tto'" elif obj_name == '1d': From 629005cafd22a1f3678bbabf9756c3304693503a Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 30 Nov 2016 15:25:40 -0800 Subject: [PATCH 06/45] Working on a script to parse doctest output for error warnings --- docs/clean_doctest_output.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/clean_doctest_output.py diff --git a/docs/clean_doctest_output.py b/docs/clean_doctest_output.py new file mode 100644 index 000000000..272a087eb --- /dev/null +++ b/docs/clean_doctest_output.py @@ -0,0 +1,14 @@ +import os, sys, re + +try: + fp=open('_build/doctest/output.txt') +except: + raise("You should probably run `make doctest` first") +dict={} +line=fp.readline() +header=re.compile('^Document') + +while(line != ''): + if(re.match(header, line)): + + From 0145d63320529d4abf95d6499538ab4028d6d0fc Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 6 Dec 2016 16:57:42 -0800 Subject: [PATCH 07/45] Running individual modules through doctest and processing output --- docs/Makefile | 2 +- docs/clean_doctest_output.py | 14 - docs/doctest_info/Canvas.results | 3115 +++++++++++++++++ docs/doctest_info/Pboxeslines.results | 14 + docs/doctest_info/Pdata.results | 13 + docs/doctest_info/Pformat.results | 16 + docs/doctest_info/Plegend.results | 18 + docs/doctest_info/Ptext.results | 13 + docs/doctest_info/Pxlabels.results | 12 + docs/doctest_info/Pxtickmarks.results | 12 + docs/doctest_info/Pylabels.results | 12 + docs/doctest_info/Pytickmarks.results | 12 + docs/doctest_info/VTKAnimate.results | 28 + docs/doctest_info/VTKPlots.results | 64 + docs/doctest_info/animate_helper.results | 84 + docs/doctest_info/boxfill.results | 161 + docs/doctest_info/clean_doctest_output.py | 38 + docs/doctest_info/colormap.results | 98 + docs/doctest_info/colorpicker.results | 18 + docs/doctest_info/colors.results | 6 + docs/doctest_info/configurator.results | 56 + docs/doctest_info/displayplot.results | 45 + docs/doctest_info/doctest_vcs.py | 23 + docs/doctest_info/dv3d.results | 99 + docs/doctest_info/editors.results | 5 + docs/doctest_info/elp.results | 0 docs/doctest_info/error.results | 8 + docs/doctest_info/errors_only.txt | 1106 ++++++ docs/doctest_info/fillarea.results | 56 + docs/doctest_info/isofill.results | 132 + docs/doctest_info/isoline.results | 149 + docs/doctest_info/line.results | 58 + docs/doctest_info/manageElements.results | 1310 +++++++ docs/doctest_info/marker.results | 58 + docs/doctest_info/meshfill.results | 138 + docs/doctest_info/process_results.py | 1 + docs/doctest_info/projection.results | 134 + docs/doctest_info/queries.results | 608 ++++ docs/doctest_info/run_all_doctests.sh | 11 + docs/doctest_info/taylor.results | 155 + docs/doctest_info/template.results | 278 ++ docs/doctest_info/textcombined.results | 104 + docs/doctest_info/textorientation.results | 45 + docs/doctest_info/texttable.results | 86 + docs/doctest_info/tk.results | 0 docs/doctest_info/unified1D.results | 118 + docs/doctest_info/utils.results | 455 +++ .../doctest_info/validation_functions.results | 0 docs/doctest_info/vector.results | 127 + docs/doctest_info/vtk.results | 0 docs/doctest_info/vtk_ui.results | 5 + vcs/Canvas.py | 49 +- vcs/fillarea.py | 1 - vcs/manageElements.py | 40 +- vcs/utils.py | 20 +- vcs/vcshelp.py | 10 +- vcs/xmldocs.py | 24 +- 57 files changed, 9174 insertions(+), 90 deletions(-) delete mode 100644 docs/clean_doctest_output.py create mode 100644 docs/doctest_info/Canvas.results create mode 100644 docs/doctest_info/Pboxeslines.results create mode 100644 docs/doctest_info/Pdata.results create mode 100644 docs/doctest_info/Pformat.results create mode 100644 docs/doctest_info/Plegend.results create mode 100644 docs/doctest_info/Ptext.results create mode 100644 docs/doctest_info/Pxlabels.results create mode 100644 docs/doctest_info/Pxtickmarks.results create mode 100644 docs/doctest_info/Pylabels.results create mode 100644 docs/doctest_info/Pytickmarks.results create mode 100644 docs/doctest_info/VTKAnimate.results create mode 100644 docs/doctest_info/VTKPlots.results create mode 100644 docs/doctest_info/animate_helper.results create mode 100644 docs/doctest_info/boxfill.results create mode 100644 docs/doctest_info/clean_doctest_output.py create mode 100644 docs/doctest_info/colormap.results create mode 100644 docs/doctest_info/colorpicker.results create mode 100644 docs/doctest_info/colors.results create mode 100644 docs/doctest_info/configurator.results create mode 100644 docs/doctest_info/displayplot.results create mode 100644 docs/doctest_info/doctest_vcs.py create mode 100644 docs/doctest_info/dv3d.results create mode 100644 docs/doctest_info/editors.results create mode 100644 docs/doctest_info/elp.results create mode 100644 docs/doctest_info/error.results create mode 100644 docs/doctest_info/errors_only.txt create mode 100644 docs/doctest_info/fillarea.results create mode 100644 docs/doctest_info/isofill.results create mode 100644 docs/doctest_info/isoline.results create mode 100644 docs/doctest_info/line.results create mode 100644 docs/doctest_info/manageElements.results create mode 100644 docs/doctest_info/marker.results create mode 100644 docs/doctest_info/meshfill.results create mode 100644 docs/doctest_info/process_results.py create mode 100644 docs/doctest_info/projection.results create mode 100644 docs/doctest_info/queries.results create mode 100755 docs/doctest_info/run_all_doctests.sh create mode 100644 docs/doctest_info/taylor.results create mode 100644 docs/doctest_info/template.results create mode 100644 docs/doctest_info/textcombined.results create mode 100644 docs/doctest_info/textorientation.results create mode 100644 docs/doctest_info/texttable.results create mode 100644 docs/doctest_info/tk.results create mode 100644 docs/doctest_info/unified1D.results create mode 100644 docs/doctest_info/utils.results create mode 100644 docs/doctest_info/validation_functions.results create mode 100644 docs/doctest_info/vector.results create mode 100644 docs/doctest_info/vtk.results create mode 100644 docs/doctest_info/vtk_ui.results diff --git a/docs/Makefile b/docs/Makefile index 377f99e0d..11da3d509 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -162,7 +162,7 @@ linkcheck: "or in $(BUILDDIR)/linkcheck/output.txt." doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest; python clean_doctest_output.py @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/clean_doctest_output.py b/docs/clean_doctest_output.py deleted file mode 100644 index 272a087eb..000000000 --- a/docs/clean_doctest_output.py +++ /dev/null @@ -1,14 +0,0 @@ -import os, sys, re - -try: - fp=open('_build/doctest/output.txt') -except: - raise("You should probably run `make doctest` first") -dict={} -line=fp.readline() -header=re.compile('^Document') - -while(line != ''): - if(re.match(header, line)): - - diff --git a/docs/doctest_info/Canvas.results b/docs/doctest_info/Canvas.results new file mode 100644 index 000000000..02c5a104e --- /dev/null +++ b/docs/doctest_info/Canvas.results @@ -0,0 +1,3115 @@ +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('boxfill') # Show all the existing boxfill graphics methods +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + box=a.getboxfill('quick') # Create instance of 'quick' +Expecting nothing +ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.boxfill(array, box) # Plot array using specified box and default template +Expecting: + +ok +Trying: + template = a.gettemplate('quick') # get quick template +Expecting nothing +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + a.boxfill(array, box, template) # Plot array using specified box and template +Expecting: + +ok +Trying: + a.boxfill(box, array, template) # Plot array using specified box and template +Expecting: + +ok +Trying: + a.boxfill(template, array, box) # Plot array using specified box and template +Expecting: + +ok +Trying: + a.boxfill(template, box, array) # Plot array using specified box and template +Expecting: + +ok +Trying: + a.boxfill(array, 'hovmuller', 'quick') # Use 'hovmuller' template and 'quick' boxfill +Expecting: + +ok +Trying: + a.boxfill('hovmuller', array, 'quick') # Use 'hovmuller' template and 'quick' boxfill +Expecting: + +ok +Trying: + a.boxfill('hovmuller', 'quick', array) # Use 'hovmuller template and 'quick' boxfill +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a.clear() # clear VCS displays from the page +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a.close() #close the vcs canvas +Expecting nothing +ok +Trying: + vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar +Expecting: + *******************3d_dual_scalar Names List********************** + ... + *******************End 3d_dual_scalar Names List********************** +ok +Trying: + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_dual_scalar') # should now contain the '3d_dual_scalar_ex1' 3d_dual_scalar +Expecting: + [...'3d_dual_scalar_ex1'...] +ok +Trying: + vcs.show('3d_scalar') # show all available 3d_scalar +Expecting: + *******************3d_scalar Names List********************** + ... + *******************End 3d_scalar Names List********************** +ok +Trying: + ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_scalar') # should now contain the '3d_scalar_ex1' 3d_scalar +Expecting: + [...'3d_scalar_ex1'...] +ok +Trying: + vcs.show('3d_vector') # show all available 3d_vector +Expecting: + *******************3d_vector Names List********************** + ... + *******************End 3d_vector Names List********************** +ok +Trying: + ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_vector') # should now contain the '3d_vector_ex1' 3d_vector +Expecting: + [...'3d_vector_ex1'...] +ok +Trying: + vcs.show('boxfill') # show all available boxfill +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + ex=vcs.createboxfill('boxfill_ex1') # Create boxfill 'boxfill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # should now contain the 'boxfill_ex1' boxfill +Expecting: + [...'boxfill_ex1'...] +ok +Trying: + ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # should now contain the 'boxfill_ex2' boxfill +Expecting: + [...'boxfill_ex2'...] +ok +Trying: + vcs.show('colormap') # show all available colormap +Expecting: + *******************Colormap Names List********************** + ... + *******************End Colormap Names List********************** +ok +Trying: + ex=vcs.createcolormap('colormap_ex1') # Create colormap 'colormap_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # should now contain the 'colormap_ex1' colormap +Expecting: + [...'colormap_ex1'...] +ok +Trying: + ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2' from 'rainbow' template +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # should now contain the 'colormap_ex2' colormap +Expecting: + [...'colormap_ex2'...] +ok +Trying: + vcs.show('fillarea') # show all available fillarea +Expecting: + *******************Fillarea Names List********************** + ... + *******************End Fillarea Names List********************** +ok +Trying: + ex=vcs.createfillarea('fillarea_ex1') # Create fillarea 'fillarea_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('fillarea') # should now contain the 'fillarea_ex1' fillarea +Expecting: + [...'fillarea_ex1'...] +ok +Trying: + vcs.show('isofill') # show all available isofill +Expecting: + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** +ok +Trying: + ex=vcs.createisofill('isofill_ex1') # Create isofill 'isofill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # should now contain the 'isofill_ex1' isofill +Expecting: + [...'isofill_ex1'...] +ok +Trying: + ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # should now contain the 'isofill_ex2' isofill +Expecting: + [...'isofill_ex2'...] +ok +Trying: + vcs.show('isoline') # show all available isoline +Expecting: + *******************Isoline Names List********************** + ... + *******************End Isoline Names List********************** +ok +Trying: + ex=vcs.createisoline('isoline_ex1') # Create isoline 'isoline_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # should now contain the 'isoline_ex1' isoline +Expecting: + [...'isoline_ex1'...] +ok +Trying: + ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # should now contain the 'isoline_ex2' isoline +Expecting: + [...'isoline_ex2'...] +ok +Trying: + vcs.show('line') # show all available line +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + ex=vcs.createline('line_ex1') # Create line 'line_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('line') # should now contain the 'line_ex1' line +Expecting: + [...'line_ex1'...] +ok +Trying: + ex2=vcs.createline('line_ex2','red') # create 'line_ex2' from 'red' template +Expecting nothing +ok +Trying: + vcs.listelements('line') # should now contain the 'line_ex2' line +Expecting: + [...'line_ex2'...] +ok +Trying: + vcs.show('marker') # show all available marker +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + ex=vcs.createmarker('marker_ex1') # Create marker 'marker_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('marker') # should now contain the 'marker_ex1' marker +Expecting: + [...'marker_ex1'...] +ok +Trying: + ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2' from 'red' template +Expecting nothing +ok +Trying: + vcs.listelements('marker') # should now contain the 'marker_ex2' marker +Expecting: + [...'marker_ex2'...] +ok +Trying: + vcs.show('meshfill') # show all available meshfill +Expecting: + *******************Meshfill Names List********************** + ... + *******************End Meshfill Names List********************** +ok +Trying: + ex=vcs.createmeshfill('meshfill_ex1') # Create meshfill 'meshfill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # should now contain the 'meshfill_ex1' meshfill +Expecting: + [...'meshfill_ex1'...] +ok +Trying: + ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2' from 'a_polar_meshfill' template +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # should now contain the 'meshfill_ex2' meshfill +Expecting: + [...'meshfill_ex2'...] +ok +Trying: + vcs.show('projection') # show all available projection +Expecting: + *******************Projection Names List********************** + ... + *******************End Projection Names List********************** +ok +Trying: + ex=vcs.createprojection('projection_ex1') # Create projection 'projection_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex1' projection +Expecting: + [...'projection_ex1'...] +ok +Trying: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1207, in vcs.Canvas.Canvas.createprojection +Failed example: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection + return projection.Proj(name, source) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ + self.type = src.type + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype + value = VCS_validation_functions.checkProjType(self, 'type', value) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType + checkedRaise(self, value, Exception, err) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise + raise ex(err) + Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expecting: + [...'projection_ex2'...] +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1208, in vcs.Canvas.Canvas.createprojection +Failed example: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expected: + [...'projection_ex2'...] +Got: + ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] +Trying: + vcs.show('scatter') # show all available scatter +Expecting: + *******************Scatter Names List********************** + ... + *******************End Scatter Names List********************** +ok +Trying: + ex=vcs.createscatter('scatter_ex1') # Create scatter 'scatter_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('scatter') # should now contain the 'scatter_ex1' scatter +Expecting: + [...'scatter_ex1'...] +ok +Trying: + vcs.show('taylordiagram') # show all available taylordiagram +Expecting: + *******************Taylordiagram Names List********************** + ... + *******************End Taylordiagram Names List********************** +ok +Trying: + ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create taylordiagram 'taylordiagram_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('taylordiagram') # should now contain the 'taylordiagram_ex1' taylordiagram +Expecting: + [...'taylordiagram_ex1'...] +ok +Trying: + vcs.show('template') # show all available template +Expecting: + *******************Template Names List********************** + ... + *******************End Template Names List********************** +ok +Trying: + ex=vcs.createtemplate('template_ex1') # Create template 'template_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('template') # should now contain the 'template_ex1' template +Expecting: + [...'template_ex1'...] +ok +Trying: + ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('template') # should now contain the 'template_ex2' template +Expecting: + [...'template_ex2'...] +ok +Trying: + vcs.show('textcombined') # show all available textcombined +Expecting: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +ok +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Expecting: + +ok +Trying: + vcs.listelements('textcombined') # should now contain the 'EXAMPLE_tt:::EXAMPLE_tto' textcombined +Expecting: + [...'EXAMPLE_tt:::EXAMPLE_tto'...] +ok +Trying: + vcs.show('textorientation') # show all available textorientation +Expecting: + *******************Textorientation Names List********************** + ... + *******************End Textorientation Names List********************** +ok +Trying: + ex=vcs.createtextorientation('textorientation_ex1') # Create textorientation 'textorientation_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # should now contain the 'textorientation_ex1' textorientation +Expecting: + [...'textorientation_ex1'...] +ok +Trying: + ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2' from 'bigger' template +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # should now contain the 'textorientation_ex2' textorientation +Expecting: + [...'textorientation_ex2'...] +ok +Trying: + vcs.show('texttable') # show all available texttable +Expecting: + *******************Texttable Names List********************** + ... + *******************End Texttable Names List********************** +ok +Trying: + ex=vcs.createtexttable('texttable_ex1') # Create texttable 'texttable_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # should now contain the 'texttable_ex1' texttable +Expecting: + [...'texttable_ex1'...] +ok +Trying: + ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2' from 'bigger' template +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # should now contain the 'texttable_ex2' texttable +Expecting: + [...'texttable_ex2'...] +ok +Trying: + vcs.show('vector') # show all available vector +Expecting: + *******************Vector Names List********************** + ... + *******************End Vector Names List********************** +ok +Trying: + ex=vcs.createvector('vector_ex1') # Create vector 'vector_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('vector') # should now contain the 'vector_ex1' vector +Expecting: + [...'vector_ex1'...] +ok +Trying: + vcs.show('xvsy') # show all available xvsy +Expecting: + *******************Xvsy Names List********************** + ... + *******************End Xvsy Names List********************** +ok +Trying: + ex=vcs.createxvsy('xvsy_ex1') # Create xvsy 'xvsy_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('xvsy') # should now contain the 'xvsy_ex1' xvsy +Expecting: + [...'xvsy_ex1'...] +ok +Trying: + vcs.show('xyvsy') # show all available xyvsy +Expecting: + *******************Xyvsy Names List********************** + ... + *******************End Xyvsy Names List********************** +ok +Trying: + ex=vcs.createxyvsy('xyvsy_ex1') # Create xyvsy 'xyvsy_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('xyvsy') # should now contain the 'xyvsy_ex1' xyvsy +Expecting: + [...'xyvsy_ex1'...] +ok +Trying: + vcs.show('yxvsx') # show all available yxvsx +Expecting: + *******************Yxvsx Names List********************** + ... + *******************End Yxvsx Names List********************** +ok +Trying: + ex=vcs.createyxvsx('yxvsx_ex1') # Create yxvsx 'yxvsx_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('yxvsx') # should now contain the 'yxvsx_ex1' yxvsx +Expecting: + [...'yxvsx_ex1'...] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a.destroy() +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('fillarea') # Show all the existing fillarea objects +Expecting: + *******************Fillarea Names List********************** + ... + *******************End Fillarea Names List********************** +ok +Trying: + fa=a.drawfillarea(name='red', style=1, color=242, + priority=1, viewport=[0, 1.0, 0, 1.0], + worldcoordinate=[0,100, 0,50], + x=[0,20,40,60,80,100], + y=[0,10,20,30,40,50], bg=0 ) # Create instance of fillarea object 'red' +Expecting nothing +ok +Trying: + a.fillarea(fa) # Plot using specified fillarea object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('line') # Show all the existing line objects +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + ln=a.drawline(name='red', ltype='dash', width=2, + color=242, priority=1, viewport=[0, 1.0, 0, 1.0], + worldcoordinate=[0,100, 0,50], + x=[0,20,40,60,80,100], + y=[0,10,20,30,40,50] ) +Expecting nothing +ok +Trying: + a.line(ln) # Plot using specified line object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.drawlogooff() +Expecting nothing +ok +Trying: + a.getdrawlogo() +Expecting: + False +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.drawlogoon() +Expecting nothing +ok +Trying: + a.getdrawlogo() +Expecting: + True +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('marker') # Show all the existing marker objects +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + mrk=a.drawmarker(name='red', mtype='dot', size=2, + color=242, priority=1, viewport=[0, 1.0, 0, 1.0], + worldcoordinate=[0,100, 0,50], + x=[0,20,40,60,80,100], + y=[0,10,20,30,40,50] ) # Create instance of marker object 'red' +Expecting nothing +ok +Trying: + a.marker(mrk) # Plot using specified marker object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('texttable') # Show all the existing texttable objects +Expecting: + *******************Texttable Names List********************** + ... + *******************End Texttable Names List********************** +ok +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2260, in vcs.Canvas.Canvas.drawtext +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +Trying: + tc=a.drawtextcombined(Tt_name = 'EXAMPLE_tt', To_name='EXAMPLE_tto', + string='Hello example!', spacing=5, + color=242, priority=1, viewport=[0, 1.0, 0, 1.0], + worldcoordinate=[0,100, 0,50], + x=[0,20,40,60,80,100], + y=[0,10,20,30,40,50]) # plot textcombined object on canvas +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.postscript('example') # Overwrite a postscript file +Expecting nothing +ok +Trying: + a.postscript('example', 'a') # Append postscript to an existing file +Expecting nothing +ok +Trying: + a.postscript('example', 'r') # Overwrite an existing file +Expecting nothing +ok +Trying: + a.postscript('example', mode='a') # Append postscript to an existing file +Expecting nothing +ok +Trying: + a.postscript('example', width=11.5, height= 8.5) # US Legal (default) +Expecting nothing +ok +Trying: + a.postscript('example', width=21, height=29.7, units='cm') # A4 +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + import cdms2 +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') +Expecting nothing +ok +Trying: + v = f('v') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + u = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + png_files = [] # for saving file names to make the mpeg +Expecting nothing +ok +Trying: + for i in range(10): # create a number of pngs to use for an mpeg + a.clear() + if (i%2): + a.plot(u,v) + else: + a.plot(v,u) + a.png('my_png__%i' % i) + png_files.append('my_png__%i.png' % i) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4505, in vcs.Canvas.Canvas.ffmpeg +Failed example: + for i in range(10): # create a number of pngs to use for an mpeg + a.clear() + if (i%2): + a.plot(u,v) + else: + a.plot(v,u) + a.png('my_png__%i' % i) + png_files.append('my_png__%i.png' % i) +Expected nothing +Got: + + + + + + + + + + +Trying: + a.ffmpeg('mymovie.mpeg',png_files) # generates from list of files +Expecting: + True +ok +Trying: + a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex +Expecting: + True +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4515, in vcs.Canvas.Canvas.ffmpeg +Failed example: + a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4594, in ffmpeg + if test_file is not False: + UnboundLocalError: local variable 'test_file' referenced before assignment +Trying: + a.ffmpeg('mymovie.mpeg',png_files,bitrate=512) # generates mpeg at 512kbit +Expecting: + True +ok +Trying: + a.ffmpeg('mymovie.mpeg',png_files,rate=50) # generates movie with 50 frame per second +Expecting: + True +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('fillarea') # Show all the existing fillarea objects +Expecting: + *******************Fillarea Names List********************** + ... + *******************End Fillarea Names List********************** +ok +Trying: + fa=a.createfillarea() # Create instance of default fillarea +Expecting nothing +ok +Trying: + fa.style=1 # Set the fillarea style +Expecting nothing +ok +Trying: + fa.index=4 # Set the fillarea index +Expecting nothing +ok +Trying: + fa.color = 242 # Set the fillarea color +Expecting nothing +ok +Trying: + fa.x=[0.25,0.75] # Set the x value points +Expecting nothing +ok +Trying: + fa.y=[0.2,0.5] # Set the y value points +Expecting nothing +ok +Trying: + a.fillarea(fa) # Plot using specified fillarea object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a.flush() +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a.geometry(450,337) +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_dual_scalar') # Show all the existing 3d_dual_scalar graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_dual_scalar() # instance of 'default' 3d_dual_scalar graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1403, in vcs.Canvas.Canvas.get3d_dual_scalar +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_scalar') # Show all the existing 3d_scalar graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_scalar() # instance of 'default' 3d_scalar graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1402, in vcs.Canvas.Canvas.get3d_scalar +Failed example: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_vector') # Show all the existing 3d_vector graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_vector() # instance of 'default' 3d_vector graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1403, in vcs.Canvas.Canvas.get3d_vector +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # Show all the existing boxfill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getboxfill() # instance of 'default' boxfill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.boxfill(ex, slab1) # plot using specified boxfill object +Expecting: + +ok +Trying: + ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method +Expecting nothing +ok +Trying: + a.boxfill(ex2, slab1) # plot using specified boxfill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + b=vcs.createboxfill() +Expecting nothing +ok +Trying: + b.colormap='rainbow' +Expecting nothing +ok +Trying: + a.getcolorcell(2,b) +Expecting: + [26, 1, 34, 100] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # Show all the existing colormap secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getcolormap() # instance of 'default' colormap secondary method +Expecting nothing +ok +Trying: + ex2=vcs.getcolormap('rainbow') # instance of 'rainbow' colormap secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + cont_type = a.getcontinentstype() # Get the continents type +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.getdrawlogo() +Expecting: + True +ok +Trying: + a.drawlogooff() +Expecting nothing +ok +Trying: + a.getdrawlogo() +Expecting: + False +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('fillarea') # Show all the existing fillarea secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getfillarea() # instance of 'default' fillarea secondary method +Expecting nothing +ok +Trying: + a.fillarea(ex) # plot using specified fillarea object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + font_names=[] +Expecting nothing +ok +Trying: + for i in range(1,17): + font_names.append(str(a.getfont(i))) # font_names is now filled with all font names +Expecting nothing +ok +Trying: + font_names +Expecting: + ['default', ...] +ok +Trying: + font_numbers = [] +Expecting nothing +ok +Trying: + for name in font_names: + font_numbers.append(a.getfont(name)) # font_numbers is now filled with all font numbers +Expecting nothing +ok +Trying: + font_numbers +Expecting: + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # Show all the existing isofill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getisofill() # instance of 'default' isofill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isofill(ex, slab1) # plot using specified isofill object +Expecting: + +ok +Trying: + ex2=vcs.getisofill('polar') # instance of 'polar' isofill graphics method +Expecting nothing +ok +Trying: + a.isofill(ex2, slab1) # plot using specified isofill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # Show all the existing isoline graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getisoline() # instance of 'default' isoline graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isoline(ex, slab1) # plot using specified isoline object +Expecting: + +ok +Trying: + ex2=vcs.getisoline('polar') # instance of 'polar' isoline graphics method +Expecting nothing +ok +Trying: + a.isoline(ex2, slab1) # plot using specified isoline object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('line') # Show all the existing line secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getline() # instance of 'default' line secondary method +Expecting nothing +ok +Trying: + a.line(ex) # plot using specified line object +Expecting: + +ok +Trying: + ex2=vcs.getline('red') # instance of 'red' line secondary method +Expecting nothing +ok +Trying: + a.line(ex2) # plot using specified line object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('marker') # Show all the existing marker secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getmarker() # instance of 'default' marker secondary method +Expecting nothing +ok +Trying: + a.marker(ex) # plot using specified marker object +Expecting: + +ok +Trying: + ex2=vcs.getmarker('red') # instance of 'red' marker secondary method +Expecting nothing +ok +Trying: + a.marker(ex2) # plot using specified marker object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # Show all the existing meshfill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getmeshfill() # instance of 'default' meshfill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.meshfill(ex, slab1) # plot using specified meshfill object +Expecting: + +ok +Trying: + ex2=vcs.getmeshfill('a_polar_meshfill') # instance of 'a_polar_meshfill' meshfill graphics method +Expecting nothing +ok +Trying: + a.meshfill(ex2, slab1) # plot using specified meshfill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('projection') # Show all the existing projection graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getprojection() # instance of 'default' projection graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified projection object +Expecting: + +ok +Trying: + ex2=vcs.getprojection('polar') # instance of 'polar' projection graphics method +Expecting nothing +ok +Trying: + a.plot(ex2, slab1) # plot using specified projection object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('scatter') # Show all the existing scatter graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getscatter('default_scatter_') # instance of ''default_scatter_'' scatter graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.scatter(ex, slab1, slab2) # plot using specified scatter object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('taylordiagram') # Show all the existing taylordiagram graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettaylordiagram() # instance of 'default' taylordiagram graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1270, in vcs.Canvas.Canvas.gettaylordiagram +Failed example: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('template') # Show all the existing template graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettemplate() # instance of 'default' template graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified template object +Expecting: + +ok +Trying: + ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method +Expecting nothing +ok +Trying: + a.plot(ex2, slab1) # plot using specified template object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('textcombined') # Show all the existing textcombined secondary methods +Expecting: + [...] +ok +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2160, in vcs.Canvas.Canvas.gettextcombined +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +Trying: + ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method +Expecting nothing +ok +Trying: + a.textcombined(ex) # plot using specified textcombined object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + t=a.createtext() +Expecting nothing +ok +Trying: + t.x=[.5] +Expecting nothing +ok +Trying: + t.y=[.5] +Expecting nothing +ok +Trying: + t.string=['Hello World'] +Expecting nothing +ok +Trying: + a.gettextextent(t) +Expecting: + [[...]] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # Show all the existing textorientation secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettextorientation() # instance of 'default' textorientation secondary method +Expecting nothing +ok +Trying: + ex2=vcs.gettextorientation('bigger') # instance of 'bigger' textorientation secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # Show all the existing texttable secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettexttable() # instance of 'default' texttable secondary method +Expecting nothing +ok +Trying: + ex2=vcs.gettexttable('bigger') # instance of 'bigger' texttable secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('vector') # Show all the existing vector graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getvector() # instance of 'default' vector graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.vector(ex, slab1, slab2) # plot using specified vector object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('xvsy') # Show all the existing xvsy graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getxvsy() # instance of 'default_xvsy_' xvsy graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.xvsy(ex, slab1, slab2) # plot using specified xvsy object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('xyvsy') # Show all the existing xyvsy graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getxyvsy('default_xyvsy_') # instance of ''default_xyvsy_'' xyvsy graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.xyvsy(ex, slab1) # plot using specified xyvsy object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('yxvsx') # Show all the existing yxvsx graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getyxvsx() # instance of 'default_yxvsx_' yxvsx graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.yxvsx(ex, slab1) # plot using specified yxvsx object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + if a.islandscape(): + a.portrait() # Set VCS's orientation to portrait mode +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('isofill') # Show all the existing isofill graphics methods +Expecting: + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** +ok +Trying: + iso=a.getisofill('quick') # Create instance of 'quick' +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab = f('clt') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isofill(slab,iso) # Plot array using specified iso and default template +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + template = a.gettemplate('hovmuller') +Expecting nothing +ok +Trying: + a.isofill(slab,iso,template) # Plot array using specified iso and template +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('isoline') # Show all the existing isoline graphics methods +Expecting: + *******************Isoline Names List********************** + ... + *******************End Isoline Names List********************** +ok +Trying: + iso=a.getisoline('quick') # Create instance of 'quick' +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.isoline(array,iso) # Plot array using specified iso and default template +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + template = a.gettemplate('hovmuller') +Expecting nothing +ok +Trying: + a.isoline(array,iso,template) # Plot array using specified iso and template +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + if a.isportrait(): + a.landscape() # Set VCS's orientation to landscape mode +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.landscape() # Change the VCS Canvas orientation and set object flag to landscape +Expecting nothing +ok +Trying: + a.landscape(clear=1) # Change the VCS Canvas to landscape and clear the page +Expecting nothing +ok +Trying: + a.landscape(width = 400, height = 337) # Change to landscape and set the window size +Expecting nothing +ok +Trying: + a.landscape(x=100, y = 200) # Change to landscape and set the x and y screen position +Expecting nothing +ok +Trying: + a.landscape(width = 400, height = 337, x=100, y = 200, clear=1) # landscape with more settings +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('line') # Show all the existing line objects +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + ln=a.getline('red') # Create instance of 'red' +Expecting nothing +ok +Trying: + ln.width=4 # Set the line width +Expecting nothing +ok +Trying: + ln.color = 242 # Set the line color +Expecting nothing +ok +Trying: + ln.type = 4 # Set the line type +Expecting nothing +ok +Trying: + ln.x=[[0.0,2.0,2.0,0.0,0.0], [0.5,1.5]] # Set the x value points +Expecting nothing +ok +Trying: + ln.y=[[0.0,0.0,2.0,2.0,0.0], [1.0,1.0]] # Set the y value points +Expecting nothing +ok +Trying: + a.line(ln) # Plot using specified line object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.listelements() +Expecting: + ['1d', '3d_dual_scalar', '3d_scalar', ...] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('marker') # Show all the existing marker objects +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + mrk=a.getmarker('red') # Create instance of 'red' +Expecting nothing +ok +Trying: + mrk.size=4 # Set the marker size +Expecting nothing +ok +Trying: + mrk.color = 242 # Set the marker color +Expecting nothing +ok +Trying: + mrk.type = 4 # Set the marker type +Expecting nothing +ok +Trying: + mrk.x=[[0.0,2.0,2.0,0.0,0.0], [0.5,1.5]] # Set the x value points +Expecting nothing +ok +Trying: + mrk.y=[[0.0,0.0,2.0,2.0,0.0], [1.0,1.0]] # Set the y value points +Expecting nothing +ok +Trying: + a.marker(mrk) # Plot using specified marker object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('meshfill') # Show all the existing meshfill graphics methods +Expecting: + *******************Meshfill Names List********************** + ... + *******************End Meshfill Names List********************** +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab = f('clt') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + mesh=a.getmeshfill() # Create instance of 'default' +Expecting nothing +ok +Trying: + a.meshfill(slab,mesh) # Plot array using specified mesh and default template +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + a.meshfill(slab,mesh,'quick','a_polar_meshfill') # Plot slab with polar mesh, quick template +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ln=a.getline('red') # Get a VCS line object +Expecting nothing +ok +Trying: + a.objecthelp(ln) # This will print out information on how to use ln +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 799, in vcs.Canvas.Canvas.objecthelp +Failed example: + a.objecthelp(ln) # This will print out information on how to use ln +Expected nothing +Got: + + The Line object allows the manipulation of line type, width, color index, + view port, world coordinates, and (x,y) points. + + This class is used to define an line table entry used in VCS, or it + can be used to change some or all of the line attributes in an + existing line table entry. + + .. describe:: Useful Functions: + + .. code-block:: python + + # VCS Canvas Constructor + a=vcs.init() + # Show predefined line objects + a.show('line') + # Will list all the line attribute values + ln.list() + # Updates the VCS Canvas at user's request + a.update() + + .. describe:: Create a new instance of line: + + .. code-block:: python + + # Copies content of 'red' to 'new' + ln=a.createline('new','red') + # Copies content of 'default' to 'new' + ln=a.createline('new') + + .. describe:: Modify an existing line: + + * Get a line object 'ln' to manipulate: + + .. code-block:: python + + ln=a.getline('red') + + * Set line color: + + .. code-block:: python + + # Range from 1 to 256 + ln.color=100 + + * Set line width: + + .. code-block:: python + + # Range from 1 to 300 + ln.width=100 + + * Specify the line type: + + .. code-block:: python + + # Same as ln.type=0 + ln.type='solid' + # Same as ln.type=1 + ln.type='dash' + # Same as ln.type=2 + ln.type='dot' + # Same as ln.type=3 + ln.type='dash-dot' + # Same as ln.type=4 + ln.type='long-dash' + + * Set the graphics priority on the canvas: + + .. code-block:: python + + ln.priority=1 + # FloatType [0,1]x[0,1] + ln.viewport=[0, 1.0, 0,1.0] + # FloatType [#,#]x[#,#] + ln.worldcoordinate=[0,1.0,0,1.0] + + * Set line x and y values: + + .. code-block:: python + + # List of FloatTypes + ln.x=[[0,.1,.2], [.3,.4,.5]] + # List of FloatTypes + ln.y=[[.5,.4,.3], [.2,.1,0]] + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.open() +Expecting nothing +ok +Trying: + a.open(800,600) +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.orientation() # Show current orientation of the canvas +Expecting: + 'landscape' +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.pdf('example') # Overwrite a postscript file +Expecting nothing +ok +Trying: + a.pdf('example', width=11.5, height= 8.5) # US Legal +Expecting nothing +ok +Trying: + a.pdf('example', width=21, height=29.7, units='cm') # A4 +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(slab1) # this call will use default settings for template and boxfill +Expecting: + +ok +Trying: + a.plot(slab1, 'polar', 'isofill', 'polar') # this is specifying the template and graphics method +Expecting: + +ok +Trying: + t=a.gettemplate('polar') # get the polar template +Expecting nothing +ok +Trying: + vec=a.getvector() # get default vector +Expecting nothing +ok +Trying: + a.plot(slab1, slab2, t, vec) # plot the data as a vector using the 'AMIP' template +Expecting: + +ok +Trying: + a.clear() # clear the VCS Canvas of all plots +Expecting nothing +ok +Trying: + box=a.getboxfill() # get default boxfill graphics method +Expecting nothing +ok +Trying: + a.plot(box,t,slab2) # plot array data using box 'new' and template 't' +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.png('example') # Overwrite a png file +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.portrait() # Change the VCS Canvas orientation and set object flag to portrait +Expecting nothing +ok +Trying: + a.portrait(clear=1) # Change the VCS Canvas to portrait and clear the page +Expecting nothing +ok +Trying: + a.portrait(width = 337, height = 400) # Change to portrait and set the window size +Expecting nothing +ok +Trying: + a.portrait(x=100, y = 200) # Change to portrait and set the x and y screen position +Expecting nothing +ok +Trying: + a.portrait(width = 337, height = 400, x=100, y = 200, clear=1) # portrait, with more specifications +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.postscript('example') # Overwrite a postscript file +Expecting nothing +ok +Trying: + a.postscript('example', 'a') # Append postscript to an existing file +Expecting nothing +ok +Trying: + a.postscript('example', 'r') # Overwrite an existing file +Expecting nothing +ok +Trying: + a.postscript('example', mode='a') # Append postscript to an existing file +Expecting nothing +ok +Trying: + a.postscript('example', width=11.5, height= 8.5) # US Legal (default) +Expecting nothing +ok +Trying: + a.postscript('example', width=21, height=29.7, units='cm') # A4 +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.pstogif('filename.ps') # convert the postscript file to a gif file +Expecting nothing +ok +Trying: + a.pstogif('filename.ps','l') # convert the postscript file to a gif file (l=landscape) +Expecting nothing +ok +Trying: + a.pstogif('filename.ps','p') # convert the postscript file to a gif file (p=portrait) +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + iso=a.createisoline('dean') # Create an instance of an isoline object +Expecting nothing +ok +Trying: + a.removeobject(iso) # Remove isoline object from VCS list +Expecting: + 'Removed isoline object dean' +ok +Trying: + b=vcs.createboxfill() +Expecting nothing +ok +Trying: + b.rename('MyBoxfill') # graphic method is now preserved +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('scatter') # Show all the existing scatter graphics methods +Expecting: + *******************Scatter Names List********************** + ... + *******************End Scatter Names List********************** +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.scatter(slab1, slab2) # Plot array using specified sct and default template +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + template=a.gettemplate('hovmuller') +Expecting nothing +ok +Trying: + a.scatter(slab1, slab2, template) # Plot array using specified sct and template +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + i=a.createisoline('dean') # Create an instance of default isoline object +Expecting nothing +ok +Trying: + a.scriptobject(i,'ex_isoline.py') # Save isoline object as a Python file 'isoline.py' +Expecting nothing +ok +Trying: + a.scriptobject(i,'ex_isoline2') # Save isoline object as a JSON object 'isoline2.json' +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.setbgoutputdimensions(width=11.5, height= 8.5) # US Legal +Expecting nothing +ok +Trying: + a.setbgoutputdimensions(width=21, height=29.7, units='cm') # A4 +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a.setcolormap("AMIP") +Expecting nothing +ok +Trying: + a.setcolorcell(11,0,0,0) +Expecting nothing +ok +Trying: + a.setcolorcell(21,100,0,0) +Expecting nothing +ok +Trying: + a.setcolorcell(31,0,100,0) +Expecting nothing +ok +Trying: + a.setcolorcell(41,0,0,100) +Expecting nothing +ok +Trying: + a.setcolorcell(51,100,100,100) +Expecting nothing +ok +Trying: + a.setcolorcell(61,70,70,70) +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a.setcolormap("AMIP") +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + line = vcs.createline() +Expecting nothing +ok +Trying: + line.width = 5 +Expecting nothing +ok +Trying: + a.setcontinentsline(line) # Use custom continents line +Expecting nothing +ok +Trying: + a.setcontinentsline("default") # Use default line +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.setcontinentstype(3) +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array,'default','isofill','quick') +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + array = [range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.svg('example') # Overwrite a postscript file +Expecting nothing +ok +Trying: + a.svg('example', width=11.5, height= 8.5) # US Legal +Expecting nothing +ok +Trying: + a.svg('example', width=21, height=29.7, units='cm') # A4 +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('taylordiagram') # Show all the existing taylordiagram graphics methods +Expecting: + *******************Taylordiagram Names List********************** + ... + *******************End Taylordiagram Names List********************** +ok +Trying: + td= a.gettaylordiagram() # Create instance of 'default' +Expecting nothing +ok +Trying: + array=[range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.taylordiagram(array,td) # Plot array using specified iso and default template +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + template=a.gettemplate('hovmuller') +Expecting nothing +ok +Trying: + a.taylordiagram(array,td,template) # Plot array using specified iso and template +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.clean_auto_generated_objects() +Expecting nothing +ok +Trying: + a.show('texttable') # Show all the existing texttable objects +Expecting: + *******************Texttable Names List********************** + ... + *******************End Texttable Names List********************** +ok +Trying: + a.show('textorientation') # Show all the existing textorientation objects +Expecting: + *******************Textorientation Names List********************** + ... + *******************End Textorientation Names List********************** +ok +Trying: + vcs.createtext('qa_tta', 'qa', '7left_tto', '7left') # Create instance of 'std_tt' and '7left_to' +Expecting: + +ok +Trying: + tc=a.gettext('qa_tta', '7left_tto') +Expecting nothing +ok +Trying: + tc.string='Text1' # Show the string "Text1" on the VCS Canvas +Expecting nothing +ok +Trying: + tc.font=2 # Set the text size +Expecting nothing +ok +Trying: + tc.color=242 # Set the text color +Expecting nothing +ok +Trying: + tc.angle=45 # Set the text angle +Expecting nothing +ok +Trying: + tc.x=[0.5] +Expecting nothing +ok +Trying: + tc.y=[0.5] +Expecting nothing +ok +Trying: + a.textcombined(tc) # Plot using specified text object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + import cdms2 # We need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + s = f('clt') # use the data file to create a slab +Expecting nothing +ok +Trying: + a.plot(s,'default','boxfill','quick') +Expecting: + +ok +Trying: + a.mode = 0 # Go to manual mode +Expecting nothing +ok +Trying: + box=a.getboxfill('quick') +Expecting nothing +ok +Trying: + box.color_1=100 +Expecting nothing +ok +Trying: + box.xticlabels('lon30','lon30') +Expecting nothing +ok +Trying: + box.xticlabels('','') +Expecting nothing +ok +Trying: + box.datawc(1e20,1e20,1e20,1e20) +Expecting nothing +ok +Trying: + box.datawc(-45.0, 45.0, -90.0, 90.0) +Expecting nothing +ok +Trying: + a.update() # Update the changes manually +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('vector') # Show all the existing vector graphics methods +Expecting: + *******************Vector Names List********************** + ... + *******************End Vector Names List********************** +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # vector needs 2 slabs, so get another +Expecting nothing +ok +Trying: + a.vector(slab1, slab2) # plot vector using slab and default vector +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + template=a.gettemplate('hovmuller') +Expecting nothing +ok +Trying: + a.vector(slab1, slab2, template) # Plot array using default vector and specified template +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('xvsy') # Show all the existing XvsY graphics methods +Expecting: + *******************Xvsy Names List********************** + ... + *******************End Xvsy Names List********************** +ok +Trying: + xy=a.getxvsy('default_xvsy_') # Create instance of default xvsy +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.xvsy(slab1,slab2,xy) # Plot array using specified xy and default template +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + template=a.gettemplate('hovmuller') +Expecting nothing +ok +Trying: + a.xvsy(slab1,slab2,xy,template) # Plot array using specified xy and template +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('xyvsy') # Show all the existing Xyvsy graphics methods +Expecting: + *******************Xyvsy Names List********************** + ... + *******************End Xyvsy Names List********************** +ok +Trying: + xyy=a.getxyvsy('default_xyvsy_') # Create instance of default xyvsy +Expecting nothing +ok +Trying: + array=[range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.xyvsy(array,xyy) # Plot array using specified xyy and default template +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + template=a.gettemplate('hovmuller') +Expecting nothing +ok +Trying: + a.xyvsy(array,xyy,template) # Plot array using specified xyy and template +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('yxvsx') # Show all the existing Yxvsx graphics methods +Expecting: + *******************Yxvsx Names List********************** + ... + *******************End Yxvsx Names List********************** +ok +Trying: + yxx=a.getyxvsx('default_yxvsx_') # Create instance of default yxvsx +Expecting nothing +ok +Trying: + array=[range(1, 11) for _ in range(1, 11)] +Expecting nothing +ok +Trying: + a.yxvsx(array,yxx) # Plot array using specified yxx and default template +Expecting: + +ok +Trying: + a.clear() # Clear VCS canvas +Expecting nothing +ok +Trying: + template=a.gettemplate('hovmuller') +Expecting nothing +ok +Trying: + a.yxvsx(array,yxx,template) # Plot array using specified yxx and template +Expecting: + +ok +106 items had no tests: + vcs.Canvas + vcs.Canvas.Canvas + vcs.Canvas.Canvas._Canvas__new_elts + vcs.Canvas.Canvas._Canvas__plot + vcs.Canvas.Canvas.__init__ + vcs.Canvas.Canvas._compute_margins + vcs.Canvas.Canvas._compute_width_height + vcs.Canvas.Canvas._continentspath + vcs.Canvas.Canvas._datawc_tv + vcs.Canvas.Canvas._get_user_actions + vcs.Canvas.Canvas._get_user_actions_names + vcs.Canvas.Canvas._getanimate + vcs.Canvas.Canvas._getanimate_info + vcs.Canvas.Canvas._getcanvas + vcs.Canvas.Canvas._getisplottinggridded + vcs.Canvas.Canvas._getmode + vcs.Canvas.Canvas._getpausetime + vcs.Canvas.Canvas._getvarglist + vcs.Canvas.Canvas._getviewport + vcs.Canvas.Canvas._getwinfo_id + vcs.Canvas.Canvas._getworldcoordinate + vcs.Canvas.Canvas._reconstruct_tv + vcs.Canvas.Canvas._scriptrun + vcs.Canvas.Canvas._set_user_actions + vcs.Canvas.Canvas._set_user_actions_names + vcs.Canvas.Canvas._setanimate + vcs.Canvas.Canvas._setanimate_info + vcs.Canvas.Canvas._setcanvas + vcs.Canvas.Canvas._setisplottinggridded + vcs.Canvas.Canvas._setmode + vcs.Canvas.Canvas._setpausetime + vcs.Canvas.Canvas._setvarglist + vcs.Canvas.Canvas._setviewport + vcs.Canvas.Canvas._setwinfo_id + vcs.Canvas.Canvas._setworldcoordinate + vcs.Canvas.Canvas.addfont + vcs.Canvas.Canvas.animate + vcs.Canvas.Canvas.animate_info + vcs.Canvas.Canvas.canvas + vcs.Canvas.Canvas.canvasid + vcs.Canvas.Canvas.canvasinfo + vcs.Canvas.Canvas.cgm + vcs.Canvas.Canvas.change_display_graphic_method + vcs.Canvas.Canvas.check_name_source + vcs.Canvas.Canvas.clean_auto_generated_objects + vcs.Canvas.Canvas.configure + vcs.Canvas.Canvas.copyfontto + vcs.Canvas.Canvas.create1d + vcs.Canvas.Canvas.dual_scalar3d + vcs.Canvas.Canvas.dummy_user_action + vcs.Canvas.Canvas.endconfigure + vcs.Canvas.Canvas.get1d + vcs.Canvas.Canvas.get_selected_display + vcs.Canvas.Canvas.getantialiasing + vcs.Canvas.Canvas.getcolormapname + vcs.Canvas.Canvas.getcontinentsline + vcs.Canvas.Canvas.getfontname + vcs.Canvas.Canvas.getfontnumber + vcs.Canvas.Canvas.getplot + vcs.Canvas.Canvas.gif + vcs.Canvas.Canvas.grid + vcs.Canvas.Canvas.gs + vcs.Canvas.Canvas.initLogoDrawing + vcs.Canvas.Canvas.interact + vcs.Canvas.Canvas.isinfile + vcs.Canvas.Canvas.isopened + vcs.Canvas.Canvas.isplottinggridded + vcs.Canvas.Canvas.match_color + vcs.Canvas.Canvas.mode + vcs.Canvas.Canvas.onClosing + vcs.Canvas.Canvas.pause_time + vcs.Canvas.Canvas.plot_annotation + vcs.Canvas.Canvas.plot_filledcontinents + vcs.Canvas.Canvas.processParameterChange + vcs.Canvas.Canvas.put_png_on_canvas + vcs.Canvas.Canvas.raisecanvas + vcs.Canvas.Canvas.removeP + vcs.Canvas.Canvas.remove_display_name + vcs.Canvas.Canvas.return_display_names + vcs.Canvas.Canvas.savecontinentstype + vcs.Canvas.Canvas.scalar3d + vcs.Canvas.Canvas.scriptrun + vcs.Canvas.Canvas.setAnimationStepper + vcs.Canvas.Canvas.setantialiasing + vcs.Canvas.Canvas.setdefaultfont + vcs.Canvas.Canvas.show + vcs.Canvas.Canvas.start + vcs.Canvas.Canvas.switchfonts + vcs.Canvas.Canvas.updateorientation + vcs.Canvas.Canvas.user_actions + vcs.Canvas.Canvas.user_actions_names + vcs.Canvas.Canvas.varglist + vcs.Canvas.Canvas.vector3d + vcs.Canvas.Canvas.viewport + vcs.Canvas.Canvas.winfo_id + vcs.Canvas.Canvas.worldcoordinate + vcs.Canvas.SIGNAL + vcs.Canvas.SIGNAL.__call__ + vcs.Canvas.SIGNAL.__init__ + vcs.Canvas.SIGNAL.clear + vcs.Canvas.SIGNAL.connect + vcs.Canvas.SIGNAL.disconnect + vcs.Canvas._determine_arg_list + vcs.Canvas._process_keyword + vcs.Canvas.change_date_time + vcs.Canvas.dictionarytovcslist +90 items passed all tests: + 14 tests in vcs.Canvas.Canvas.boxfill + 4 tests in vcs.Canvas.Canvas.clear + 4 tests in vcs.Canvas.Canvas.close + 3 tests in vcs.Canvas.Canvas.create3d_dual_scalar + 3 tests in vcs.Canvas.Canvas.create3d_scalar + 3 tests in vcs.Canvas.Canvas.create3d_vector + 5 tests in vcs.Canvas.Canvas.createboxfill + 5 tests in vcs.Canvas.Canvas.createcolormap + 3 tests in vcs.Canvas.Canvas.createfillarea + 5 tests in vcs.Canvas.Canvas.createisofill + 5 tests in vcs.Canvas.Canvas.createisoline + 5 tests in vcs.Canvas.Canvas.createline + 5 tests in vcs.Canvas.Canvas.createmarker + 5 tests in vcs.Canvas.Canvas.createmeshfill + 3 tests in vcs.Canvas.Canvas.createscatter + 3 tests in vcs.Canvas.Canvas.createtaylordiagram + 5 tests in vcs.Canvas.Canvas.createtemplate + 3 tests in vcs.Canvas.Canvas.createtext + 5 tests in vcs.Canvas.Canvas.createtextorientation + 5 tests in vcs.Canvas.Canvas.createtexttable + 3 tests in vcs.Canvas.Canvas.createvector + 3 tests in vcs.Canvas.Canvas.createxvsy + 3 tests in vcs.Canvas.Canvas.createxyvsy + 3 tests in vcs.Canvas.Canvas.createyxvsx + 4 tests in vcs.Canvas.Canvas.destroy + 4 tests in vcs.Canvas.Canvas.drawfillarea + 4 tests in vcs.Canvas.Canvas.drawline + 3 tests in vcs.Canvas.Canvas.drawlogooff + 3 tests in vcs.Canvas.Canvas.drawlogoon + 4 tests in vcs.Canvas.Canvas.drawmarker + 9 tests in vcs.Canvas.Canvas.eps + 9 tests in vcs.Canvas.Canvas.fillarea + 4 tests in vcs.Canvas.Canvas.flush + 4 tests in vcs.Canvas.Canvas.geometry + 9 tests in vcs.Canvas.Canvas.getboxfill + 4 tests in vcs.Canvas.Canvas.getcolorcell + 4 tests in vcs.Canvas.Canvas.getcolormap + 2 tests in vcs.Canvas.Canvas.getcontinentstype + 4 tests in vcs.Canvas.Canvas.getdrawlogo + 4 tests in vcs.Canvas.Canvas.getfillarea + 7 tests in vcs.Canvas.Canvas.getfont + 9 tests in vcs.Canvas.Canvas.getisofill + 9 tests in vcs.Canvas.Canvas.getisoline + 6 tests in vcs.Canvas.Canvas.getline + 6 tests in vcs.Canvas.Canvas.getmarker + 9 tests in vcs.Canvas.Canvas.getmeshfill + 9 tests in vcs.Canvas.Canvas.getprojection + 8 tests in vcs.Canvas.Canvas.getscatter + 9 tests in vcs.Canvas.Canvas.gettemplate + 6 tests in vcs.Canvas.Canvas.gettextextent + 4 tests in vcs.Canvas.Canvas.gettextorientation + 4 tests in vcs.Canvas.Canvas.gettexttable + 8 tests in vcs.Canvas.Canvas.getvector + 8 tests in vcs.Canvas.Canvas.getxvsy + 7 tests in vcs.Canvas.Canvas.getxyvsy + 7 tests in vcs.Canvas.Canvas.getyxvsx + 4 tests in vcs.Canvas.Canvas.islandscape + 10 tests in vcs.Canvas.Canvas.isofill + 8 tests in vcs.Canvas.Canvas.isoline + 4 tests in vcs.Canvas.Canvas.isportrait + 8 tests in vcs.Canvas.Canvas.landscape + 9 tests in vcs.Canvas.Canvas.line + 2 tests in vcs.Canvas.Canvas.listelements + 9 tests in vcs.Canvas.Canvas.marker + 9 tests in vcs.Canvas.Canvas.meshfill + 3 tests in vcs.Canvas.Canvas.open + 2 tests in vcs.Canvas.Canvas.orientation + 6 tests in vcs.Canvas.Canvas.pdf + 13 tests in vcs.Canvas.Canvas.plot + 4 tests in vcs.Canvas.Canvas.png + 8 tests in vcs.Canvas.Canvas.portrait + 9 tests in vcs.Canvas.Canvas.postscript + 6 tests in vcs.Canvas.Canvas.pstogif + 3 tests in vcs.Canvas.Canvas.removeobject + 2 tests in vcs.Canvas.Canvas.saveinitialfile + 10 tests in vcs.Canvas.Canvas.scatter + 4 tests in vcs.Canvas.Canvas.scriptobject + 3 tests in vcs.Canvas.Canvas.setbgoutputdimensions + 11 tests in vcs.Canvas.Canvas.setcolorcell + 5 tests in vcs.Canvas.Canvas.setcolormap + 5 tests in vcs.Canvas.Canvas.setcontinentsline + 4 tests in vcs.Canvas.Canvas.setcontinentstype + 6 tests in vcs.Canvas.Canvas.svg + 8 tests in vcs.Canvas.Canvas.taylordiagram + 13 tests in vcs.Canvas.Canvas.text + 13 tests in vcs.Canvas.Canvas.update + 10 tests in vcs.Canvas.Canvas.vector + 11 tests in vcs.Canvas.Canvas.xvsy + 8 tests in vcs.Canvas.Canvas.xyvsy + 8 tests in vcs.Canvas.Canvas.yxvsx +********************************************************************** +9 items had failures: + 2 of 5 in vcs.Canvas.Canvas.createprojection + 1 of 4 in vcs.Canvas.Canvas.drawtext + 2 of 11 in vcs.Canvas.Canvas.ffmpeg + 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar + 1 of 7 in vcs.Canvas.Canvas.get3d_scalar + 1 of 8 in vcs.Canvas.Canvas.get3d_vector + 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram + 1 of 5 in vcs.Canvas.Canvas.gettextcombined + 1 of 3 in vcs.Canvas.Canvas.objecthelp +592 tests in 205 items. +581 passed and 11 failed. +***Test Failed*** 11 failures. diff --git a/docs/doctest_info/Pboxeslines.results b/docs/doctest_info/Pboxeslines.results new file mode 100644 index 000000000..f44c6c085 --- /dev/null +++ b/docs/doctest_info/Pboxeslines.results @@ -0,0 +1,14 @@ +10 items had no tests: + vcs.Pboxeslines + vcs.Pboxeslines.Pbl + vcs.Pboxeslines.Pbl.__init__ + vcs.Pboxeslines.Pbl.line + vcs.Pboxeslines.Pbl.list + vcs.Pboxeslines.Pbl.priority + vcs.Pboxeslines.Pbl.x1 + vcs.Pboxeslines.Pbl.x2 + vcs.Pboxeslines.Pbl.y1 + vcs.Pboxeslines.Pbl.y2 +0 tests in 10 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/Pdata.results b/docs/doctest_info/Pdata.results new file mode 100644 index 000000000..0f53231f4 --- /dev/null +++ b/docs/doctest_info/Pdata.results @@ -0,0 +1,13 @@ +9 items had no tests: + vcs.Pdata + vcs.Pdata.Pds + vcs.Pdata.Pds.__init__ + vcs.Pdata.Pds.list + vcs.Pdata.Pds.priority + vcs.Pdata.Pds.x1 + vcs.Pdata.Pds.x2 + vcs.Pdata.Pds.y1 + vcs.Pdata.Pds.y2 +0 tests in 9 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/Pformat.results b/docs/doctest_info/Pformat.results new file mode 100644 index 000000000..705d8804d --- /dev/null +++ b/docs/doctest_info/Pformat.results @@ -0,0 +1,16 @@ +12 items had no tests: + vcs.Pformat + vcs.Pformat.Pf + vcs.Pformat.Pf.__init__ + vcs.Pformat.Pf._getformat + vcs.Pformat.Pf._setformat + vcs.Pformat.Pf.format + vcs.Pformat.Pf.list + vcs.Pformat.Pf.priority + vcs.Pformat.Pf.textorientation + vcs.Pformat.Pf.texttable + vcs.Pformat.Pf.x + vcs.Pformat.Pf.y +0 tests in 12 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/Plegend.results b/docs/doctest_info/Plegend.results new file mode 100644 index 000000000..6fab3ae67 --- /dev/null +++ b/docs/doctest_info/Plegend.results @@ -0,0 +1,18 @@ +14 items had no tests: + vcs.Plegend + vcs.Plegend.Pls + vcs.Plegend.Pls.__init__ + vcs.Plegend.Pls.arrow + vcs.Plegend.Pls.line + vcs.Plegend.Pls.list + vcs.Plegend.Pls.offset + vcs.Plegend.Pls.priority + vcs.Plegend.Pls.textorientation + vcs.Plegend.Pls.texttable + vcs.Plegend.Pls.x1 + vcs.Plegend.Pls.x2 + vcs.Plegend.Pls.y1 + vcs.Plegend.Pls.y2 +0 tests in 14 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/Ptext.results b/docs/doctest_info/Ptext.results new file mode 100644 index 000000000..1cf3e141e --- /dev/null +++ b/docs/doctest_info/Ptext.results @@ -0,0 +1,13 @@ +9 items had no tests: + vcs.Ptext + vcs.Ptext.Pt + vcs.Ptext.Pt.__init__ + vcs.Ptext.Pt.list + vcs.Ptext.Pt.priority + vcs.Ptext.Pt.textorientation + vcs.Ptext.Pt.texttable + vcs.Ptext.Pt.x + vcs.Ptext.Pt.y +0 tests in 9 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/Pxlabels.results b/docs/doctest_info/Pxlabels.results new file mode 100644 index 000000000..9925e7be9 --- /dev/null +++ b/docs/doctest_info/Pxlabels.results @@ -0,0 +1,12 @@ +8 items had no tests: + vcs.Pxlabels + vcs.Pxlabels.Pxl + vcs.Pxlabels.Pxl.__init__ + vcs.Pxlabels.Pxl.list + vcs.Pxlabels.Pxl.priority + vcs.Pxlabels.Pxl.textorientation + vcs.Pxlabels.Pxl.texttable + vcs.Pxlabels.Pxl.y +0 tests in 8 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/Pxtickmarks.results b/docs/doctest_info/Pxtickmarks.results new file mode 100644 index 000000000..2a8730005 --- /dev/null +++ b/docs/doctest_info/Pxtickmarks.results @@ -0,0 +1,12 @@ +8 items had no tests: + vcs.Pxtickmarks + vcs.Pxtickmarks.Pxt + vcs.Pxtickmarks.Pxt.__init__ + vcs.Pxtickmarks.Pxt.line + vcs.Pxtickmarks.Pxt.list + vcs.Pxtickmarks.Pxt.priority + vcs.Pxtickmarks.Pxt.y1 + vcs.Pxtickmarks.Pxt.y2 +0 tests in 8 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/Pylabels.results b/docs/doctest_info/Pylabels.results new file mode 100644 index 000000000..b1f5ecec5 --- /dev/null +++ b/docs/doctest_info/Pylabels.results @@ -0,0 +1,12 @@ +8 items had no tests: + vcs.Pylabels + vcs.Pylabels.Pyl + vcs.Pylabels.Pyl.__init__ + vcs.Pylabels.Pyl.list + vcs.Pylabels.Pyl.priority + vcs.Pylabels.Pyl.textorientation + vcs.Pylabels.Pyl.texttable + vcs.Pylabels.Pyl.x +0 tests in 8 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/Pytickmarks.results b/docs/doctest_info/Pytickmarks.results new file mode 100644 index 000000000..a129bdcf5 --- /dev/null +++ b/docs/doctest_info/Pytickmarks.results @@ -0,0 +1,12 @@ +8 items had no tests: + vcs.Pytickmarks + vcs.Pytickmarks.Pyt + vcs.Pytickmarks.Pyt.__init__ + vcs.Pytickmarks.Pyt.line + vcs.Pytickmarks.Pyt.list + vcs.Pytickmarks.Pyt.priority + vcs.Pytickmarks.Pyt.x1 + vcs.Pytickmarks.Pyt.x2 +0 tests in 8 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/VTKAnimate.results b/docs/doctest_info/VTKAnimate.results new file mode 100644 index 000000000..3538b97ef --- /dev/null +++ b/docs/doctest_info/VTKAnimate.results @@ -0,0 +1,28 @@ +24 items had no tests: + vcs.VTKAnimate + vcs.VTKAnimate.VTKAnimate + vcs.VTKAnimate.VTKAnimate.__init__ + vcs.VTKAnimate.VTKAnimate.draw_frame + vcs.VTKAnimate.VTKAnimate.extract_renderers + vcs.VTKAnimate.VTKAnimate.frame + vcs.VTKAnimate.VTKAnimate.modified + vcs.VTKAnimate.VTKAnimate.plot_to_canvas + vcs.VTKAnimate.VTKAnimate.reclaim_renderers + vcs.VTKAnimate.VTKAnimate.reset + vcs.VTKAnimate.VTKAnimate.stop + vcs.VTKAnimate.VTKAnimationCreate + vcs.VTKAnimate.VTKAnimationCreate.__init__ + vcs.VTKAnimate.VTKAnimationCreate.close + vcs.VTKAnimate.VTKAnimationCreate.create_prefix + vcs.VTKAnimate.VTKAnimationCreate.describe + vcs.VTKAnimate.VTKAnimationCreate.draw_frame + vcs.VTKAnimate.VTKAnimationCreate.get_frame + vcs.VTKAnimate.VTKAnimationCreate.get_frame_name + vcs.VTKAnimate.VTKAnimationCreate.run + vcs.VTKAnimate.VTKAnimationPlayback + vcs.VTKAnimate.VTKAnimationPlayback.__init__ + vcs.VTKAnimate.VTKAnimationPlayback.run + vcs.VTKAnimate.update_input +0 tests in 24 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/VTKPlots.results b/docs/doctest_info/VTKPlots.results new file mode 100644 index 000000000..4c4a0eac0 --- /dev/null +++ b/docs/doctest_info/VTKPlots.results @@ -0,0 +1,64 @@ +60 items had no tests: + vcs.VTKPlots + vcs.VTKPlots.VCSInteractorStyle + vcs.VTKPlots.VCSInteractorStyle.__init__ + vcs.VTKPlots.VTKVCSBackend + vcs.VTKPlots.VTKVCSBackend.Animate + vcs.VTKPlots.VTKVCSBackend.__init__ + vcs.VTKPlots.VTKVCSBackend.canvasinfo + vcs.VTKPlots.VTKVCSBackend.cgm + vcs.VTKPlots.VTKVCSBackend.cleanupData + vcs.VTKPlots.VTKVCSBackend.clear + vcs.VTKPlots.VTKVCSBackend.close + vcs.VTKPlots.VTKVCSBackend.configureEvent + vcs.VTKPlots.VTKVCSBackend.createDefaultInteractor + vcs.VTKPlots.VTKVCSBackend.createLogo + vcs.VTKPlots.VTKVCSBackend.createRenWin + vcs.VTKPlots.VTKVCSBackend.createRenderer + vcs.VTKPlots.VTKVCSBackend.endEvent + vcs.VTKPlots.VTKVCSBackend.fitToViewport + vcs.VTKPlots.VTKVCSBackend.flush + vcs.VTKPlots.VTKVCSBackend.geometry + vcs.VTKPlots.VTKVCSBackend.get3DPlot + vcs.VTKPlots.VTKVCSBackend.getantialiasing + vcs.VTKPlots.VTKVCSBackend.gettextextent + vcs.VTKPlots.VTKVCSBackend.gif + vcs.VTKPlots.VTKVCSBackend.hideGUI + vcs.VTKPlots.VTKVCSBackend.initialSize + vcs.VTKPlots.VTKVCSBackend.interact + vcs.VTKPlots.VTKVCSBackend.isopened + vcs.VTKPlots.VTKVCSBackend.landscape + vcs.VTKPlots.VTKVCSBackend.leftButtonPressEvent + vcs.VTKPlots.VTKVCSBackend.leftButtonReleaseEvent + vcs.VTKPlots.VTKVCSBackend.onClosing + vcs.VTKPlots.VTKVCSBackend.open + vcs.VTKPlots.VTKVCSBackend.orientation + vcs.VTKPlots.VTKVCSBackend.pdf + vcs.VTKPlots.VTKVCSBackend.plot + vcs.VTKPlots.VTKVCSBackend.plot3D + vcs.VTKPlots.VTKVCSBackend.plotContinents + vcs.VTKPlots.VTKVCSBackend.png + vcs.VTKPlots.VTKVCSBackend.png_dimensions + vcs.VTKPlots.VTKVCSBackend.portrait + vcs.VTKPlots.VTKVCSBackend.postscript + vcs.VTKPlots.VTKVCSBackend.put_img_on_canvas + vcs.VTKPlots.VTKVCSBackend.put_png_on_canvas + vcs.VTKPlots.VTKVCSBackend.raisecanvas + vcs.VTKPlots.VTKVCSBackend.renderColorBar + vcs.VTKPlots.VTKVCSBackend.renderEvent + vcs.VTKPlots.VTKVCSBackend.renderTemplate + vcs.VTKPlots.VTKVCSBackend.resize_or_rotate_window + vcs.VTKPlots.VTKVCSBackend.scaleLogo + vcs.VTKPlots.VTKVCSBackend.setAnimationStepper + vcs.VTKPlots.VTKVCSBackend.setLayer + vcs.VTKPlots.VTKVCSBackend.setantialiasing + vcs.VTKPlots.VTKVCSBackend.showGUI + vcs.VTKPlots.VTKVCSBackend.svg + vcs.VTKPlots.VTKVCSBackend.trimData1D + vcs.VTKPlots.VTKVCSBackend.trimData2D + vcs.VTKPlots.VTKVCSBackend.update + vcs.VTKPlots.VTKVCSBackend.update_input + vcs.VTKPlots.VTKVCSBackend.vectorGraphics +0 tests in 60 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/animate_helper.results b/docs/doctest_info/animate_helper.results new file mode 100644 index 000000000..e7b4be05a --- /dev/null +++ b/docs/doctest_info/animate_helper.results @@ -0,0 +1,84 @@ +80 items had no tests: + vcs.animate_helper + vcs.animate_helper.AnimationController + vcs.animate_helper.AnimationController.__init__ + vcs.animate_helper.AnimationController.close + vcs.animate_helper.AnimationController.create + vcs.animate_helper.AnimationController.create_pause + vcs.animate_helper.AnimationController.create_resume + vcs.animate_helper.AnimationController.create_stop + vcs.animate_helper.AnimationController.created + vcs.animate_helper.AnimationController.draw_frame + vcs.animate_helper.AnimationController.fps + vcs.animate_helper.AnimationController.generate_number_of_frames + vcs.animate_helper.AnimationController.get_all_frame_args + vcs.animate_helper.AnimationController.horizontal + vcs.animate_helper.AnimationController.initialize_create_canvas + vcs.animate_helper.AnimationController.is_playing + vcs.animate_helper.AnimationController.number_of_frames + vcs.animate_helper.AnimationController.pause + vcs.animate_helper.AnimationController.playback_pause + vcs.animate_helper.AnimationController.playback_resume + vcs.animate_helper.AnimationController.playback_stop + vcs.animate_helper.AnimationController.render_frame + vcs.animate_helper.AnimationController.reset_file_paths + vcs.animate_helper.AnimationController.run + vcs.animate_helper.AnimationController.save + vcs.animate_helper.AnimationController.set_anim_min_max + vcs.animate_helper.AnimationController.set_signals + vcs.animate_helper.AnimationController.stop + vcs.animate_helper.AnimationController.vertical + vcs.animate_helper.AnimationController.zoom + vcs.animate_helper.AnimationCreate + vcs.animate_helper.AnimationCreate.__init__ + vcs.animate_helper.AnimationCreate.run + vcs.animate_helper.AnimationCreateParams + vcs.animate_helper.AnimationCreateParams.__init__ + vcs.animate_helper.AnimationPlayback + vcs.animate_helper.AnimationPlayback.__init__ + vcs.animate_helper.AnimationPlayback.run + vcs.animate_helper.AnimationPlaybackParams + vcs.animate_helper.AnimationPlaybackParams.__init__ + vcs.animate_helper.AnimationPlaybackParams.fps + vcs.animate_helper.AnimationPlaybackParams.horizontal + vcs.animate_helper.AnimationPlaybackParams.vertical + vcs.animate_helper.AnimationPlaybackParams.zoom + vcs.animate_helper.RT + vcs.animate_helper.RT.__init__ + vcs.animate_helper.RT.start + vcs.animate_helper.RT.stop + vcs.animate_helper.StoppableThread + vcs.animate_helper.StoppableThread.__init__ + vcs.animate_helper.StoppableThread.is_stopped + vcs.animate_helper.StoppableThread.pause + vcs.animate_helper.StoppableThread.resume + vcs.animate_helper.StoppableThread.stop + vcs.animate_helper.StoppableThread.wait_if_paused + vcs.animate_helper.animate_obj_old + vcs.animate_helper.animate_obj_old.__init__ + vcs.animate_helper.animate_obj_old.animate_info_from_python + vcs.animate_helper.animate_obj_old.close + vcs.animate_helper.animate_obj_old.create + vcs.animate_helper.animate_obj_old.creating_animation_flg + vcs.animate_helper.animate_obj_old.direction + vcs.animate_helper.animate_obj_old.frame + vcs.animate_helper.animate_obj_old.horizontal + vcs.animate_helper.animate_obj_old.load_from_file + vcs.animate_helper.animate_obj_old.mode + vcs.animate_helper.animate_obj_old.number_of_frames + vcs.animate_helper.animate_obj_old.pause + vcs.animate_helper.animate_obj_old.restore_min_max + vcs.animate_helper.animate_obj_old.return_animation_min_max + vcs.animate_helper.animate_obj_old.run + vcs.animate_helper.animate_obj_old.run_animation_flg + vcs.animate_helper.animate_obj_old.save_original_min_max + vcs.animate_helper.animate_obj_old.set_animation_min_max + vcs.animate_helper.animate_obj_old.stop + vcs.animate_helper.animate_obj_old.stop_create + vcs.animate_helper.animate_obj_old.update_animate_display_list + vcs.animate_helper.animate_obj_old.vertical + vcs.animate_helper.animate_obj_old.zoom + vcs.animate_helper.showerror +0 tests in 80 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/boxfill.results b/docs/doctest_info/boxfill.results new file mode 100644 index 000000000..4cb3a635d --- /dev/null +++ b/docs/doctest_info/boxfill.results @@ -0,0 +1,161 @@ +Trying: + b=vcs.createboxfill() +Expecting nothing +ok +Trying: + b.name +Expecting: + '...' +ok +Trying: + vcs.listelements('boxfill') # list will include the name show above +Expecting: + [...] +ok +Trying: + b.rename('foo') +Expecting nothing +ok +Trying: + b.name +Expecting: + 'foo' +ok +Trying: + vcs.listelements('boxfill') # list will include 'foo', but not the old name +Expecting: + [...'foo'...] +ok +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getboxfill() # Get default boxfill +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.createboxfill('xyscale_ex') # create a boxfill to work with +Expecting nothing +ok +Trying: + ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' +Expecting nothing +ok +97 items had no tests: + vcs.boxfill + vcs.boxfill.Gfb + vcs.boxfill.Gfb.__init__ + vcs.boxfill.Gfb._getboxfilltype + vcs.boxfill.Gfb._getcalendar + vcs.boxfill.Gfb._getcolor_1 + vcs.boxfill.Gfb._getcolor_2 + vcs.boxfill.Gfb._getdatawc_x1 + vcs.boxfill.Gfb._getdatawc_x2 + vcs.boxfill.Gfb._getdatawc_y1 + vcs.boxfill.Gfb._getdatawc_y2 + vcs.boxfill.Gfb._getfillareaindices + vcs.boxfill.Gfb._getfillareastyle + vcs.boxfill.Gfb._getlevel_1 + vcs.boxfill.Gfb._getlevel_2 + vcs.boxfill.Gfb._getmissing + vcs.boxfill.Gfb._getname + vcs.boxfill.Gfb._gettimeunits + vcs.boxfill.Gfb._getxaxisconvert + vcs.boxfill.Gfb._getxmtics1 + vcs.boxfill.Gfb._getxmtics2 + vcs.boxfill.Gfb._getxticlabels1 + vcs.boxfill.Gfb._getxticlabels2 + vcs.boxfill.Gfb._getyaxisconvert + vcs.boxfill.Gfb._getymtics1 + vcs.boxfill.Gfb._getymtics2 + vcs.boxfill.Gfb._getyticlabels1 + vcs.boxfill.Gfb._getyticlabels2 + vcs.boxfill.Gfb._setboxfilltype + vcs.boxfill.Gfb._setcalendar + vcs.boxfill.Gfb._setcolor_1 + vcs.boxfill.Gfb._setcolor_2 + vcs.boxfill.Gfb._setdatawc_x1 + vcs.boxfill.Gfb._setdatawc_x2 + vcs.boxfill.Gfb._setdatawc_y1 + vcs.boxfill.Gfb._setdatawc_y2 + vcs.boxfill.Gfb._setfillareaindices + vcs.boxfill.Gfb._setfillareastyle + vcs.boxfill.Gfb._setlevel_1 + vcs.boxfill.Gfb._setlevel_2 + vcs.boxfill.Gfb._setmissing + vcs.boxfill.Gfb._setname + vcs.boxfill.Gfb._settimeunits + vcs.boxfill.Gfb._setxaxisconvert + vcs.boxfill.Gfb._setxmtics1 + vcs.boxfill.Gfb._setxmtics2 + vcs.boxfill.Gfb._setxticlabels1 + vcs.boxfill.Gfb._setxticlabels2 + vcs.boxfill.Gfb._setyaxisconvert + vcs.boxfill.Gfb._setymtics1 + vcs.boxfill.Gfb._setymtics2 + vcs.boxfill.Gfb._setyticlabels1 + vcs.boxfill.Gfb._setyticlabels2 + vcs.boxfill.Gfb.boxfill_type + vcs.boxfill.Gfb.color_1 + vcs.boxfill.Gfb.color_2 + vcs.boxfill.Gfb.colormap + vcs.boxfill.Gfb.colors + vcs.boxfill.Gfb.datawc + vcs.boxfill.Gfb.datawc_calendar + vcs.boxfill.Gfb.datawc_timeunits + vcs.boxfill.Gfb.datawc_x1 + vcs.boxfill.Gfb.datawc_x2 + vcs.boxfill.Gfb.datawc_y1 + vcs.boxfill.Gfb.datawc_y2 + vcs.boxfill.Gfb.ext_1 + vcs.boxfill.Gfb.ext_2 + vcs.boxfill.Gfb.exts + vcs.boxfill.Gfb.fillareacolors + vcs.boxfill.Gfb.fillareaindices + vcs.boxfill.Gfb.fillareaopacity + vcs.boxfill.Gfb.fillareastyle + vcs.boxfill.Gfb.getlegendlabels + vcs.boxfill.Gfb.getlevels + vcs.boxfill.Gfb.legend + vcs.boxfill.Gfb.level_1 + vcs.boxfill.Gfb.level_2 + vcs.boxfill.Gfb.levels + vcs.boxfill.Gfb.list + vcs.boxfill.Gfb.missing + vcs.boxfill.Gfb.name + vcs.boxfill.Gfb.projection + vcs.boxfill.Gfb.xaxisconvert + vcs.boxfill.Gfb.xmtics + vcs.boxfill.Gfb.xmtics1 + vcs.boxfill.Gfb.xmtics2 + vcs.boxfill.Gfb.xticlabels + vcs.boxfill.Gfb.xticlabels1 + vcs.boxfill.Gfb.xticlabels2 + vcs.boxfill.Gfb.yaxisconvert + vcs.boxfill.Gfb.ymtics + vcs.boxfill.Gfb.ymtics1 + vcs.boxfill.Gfb.ymtics2 + vcs.boxfill.Gfb.yticlabels + vcs.boxfill.Gfb.yticlabels1 + vcs.boxfill.Gfb.yticlabels2 + vcs.boxfill.process_src +3 items passed all tests: + 6 tests in vcs.boxfill.Gfb.rename + 4 tests in vcs.boxfill.Gfb.script + 3 tests in vcs.boxfill.Gfb.xyscale +13 tests in 100 items. +13 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/clean_doctest_output.py b/docs/doctest_info/clean_doctest_output.py new file mode 100644 index 000000000..ddacc455e --- /dev/null +++ b/docs/doctest_info/clean_doctest_output.py @@ -0,0 +1,38 @@ +import re + +try: + fp=open('_build/doctest/output.txt') +except: + raise("You should probably run `make doctest` first") +err_fp=open('errors_only.txt', 'w+') +dict={} +line=fp.readline() +file_header=re.compile("Document:") +err_header=re.compile('File "') +err_indicator=re.compile('\*\*\*\*') +while line != '': + if re.match(file_header, line): + cur_header=line + line=fp.readline() + line=fp.readline() + if re.match(err_indicator, line): + dict[cur_header]=[] + err_text=fp.readline() + more_errors=True + err_fp.write(cur_header + '\n') + err_fp.write("**********************************************\n") + while more_errors: + while not re.match(err_indicator, err_text): + dict[cur_header].append(err_text) + err_text = fp.readline() + err_text = fp.readline() + dict[cur_header].append("**********************************************\n") + if not re.match(err_header, err_text): + more_errors=False + err_fp.writelines("".join(dict[cur_header])) + + line=fp.readline() +err_fp.close() +fp.close() + + diff --git a/docs/doctest_info/colormap.results b/docs/doctest_info/colormap.results new file mode 100644 index 000000000..5b952d614 --- /dev/null +++ b/docs/doctest_info/colormap.results @@ -0,0 +1,98 @@ +Trying: + a=vcs.init() # Create a vcs Canvas +Expecting nothing +ok +Trying: + cmap = a.createcolormap('example', 'default') # Create a colormap +Expecting nothing +ok +Trying: + cmap.getcolorcell(1) # Get RGBA values +Expecting: + [26, 0, 33, 100] +ok +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getcolormap() # Get default colormap +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/colormap.py", line 395, in vcs.colormap.Cp.script +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expected nothing +Got: + Error reading json file,will be overwritten filename.py No JSON object could be decoded +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +Trying: + a = vcs.init() # Create a vcs Canvas +Expecting nothing +ok +Trying: + cmap = a.createcolormap('example', 'default') # Create a colormap +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/colormap.py", line 311, in vcs.colormap.Cp.setcolorcell +Failed example: + cmap = a.createcolormap('example', 'default') # Create a colormap +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + cmap = a.createcolormap('example', 'default') # Create a colormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5493, in createcolormap + return vcs.createcolormap(Cp_name, Cp_name_src) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1662, in createcolormap + Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error colormap object named example already exists +Trying: + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/colormap.py", line 312, in vcs.colormap.Cp.setcolorcell +Failed example: + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values + NameError: name 'cmap' is not defined +15 items had no tests: + vcs.colormap + vcs.colormap.Cp + vcs.colormap.Cp.__init__ + vcs.colormap.Cp.getindex + vcs.colormap.Cp.getname + vcs.colormap.Cp.index + vcs.colormap.Cp.list + vcs.colormap.Cp.name + vcs.colormap.Cp.setindex + vcs.colormap.Cp.setname + vcs.colormap.RGB_Table + vcs.colormap.RGB_Table.__getitem__ + vcs.colormap.RGB_Table.__init__ + vcs.colormap.RGB_Table.__setitem__ + vcs.colormap.process_src +1 items passed all tests: + 3 tests in vcs.colormap.Cp.getcolorcell +********************************************************************** +2 items had failures: + 1 of 4 in vcs.colormap.Cp.script + 2 of 3 in vcs.colormap.Cp.setcolorcell +10 tests in 18 items. +7 passed and 3 failed. +***Test Failed*** 3 failures. diff --git a/docs/doctest_info/colorpicker.results b/docs/doctest_info/colorpicker.results new file mode 100644 index 000000000..7ac2d2cbb --- /dev/null +++ b/docs/doctest_info/colorpicker.results @@ -0,0 +1,18 @@ +14 items had no tests: + vcs.colorpicker + vcs.colorpicker.ColorPicker + vcs.colorpicker.ColorPicker.__init__ + vcs.colorpicker.ColorPicker.cancel + vcs.colorpicker.ColorPicker.change_map + vcs.colorpicker.ColorPicker.clickEvent + vcs.colorpicker.ColorPicker.close + vcs.colorpicker.ColorPicker.make_current + vcs.colorpicker.ColorPicker.save + vcs.colorpicker.ColorPicker.selectCell + vcs.colorpicker.ColorPicker.topRendererAtPoint + vcs.colorpicker.collection + vcs.colorpicker.colors_to_scalars + vcs.colorpicker.make_color_plane +0 tests in 14 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/colors.results b/docs/doctest_info/colors.results new file mode 100644 index 000000000..d48d48aeb --- /dev/null +++ b/docs/doctest_info/colors.results @@ -0,0 +1,6 @@ +2 items had no tests: + vcs.colors + vcs.colors.matplotlib2vcs +0 tests in 2 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/configurator.results b/docs/doctest_info/configurator.results new file mode 100644 index 000000000..7f319d308 --- /dev/null +++ b/docs/doctest_info/configurator.results @@ -0,0 +1,56 @@ +52 items had no tests: + vcs.configurator + vcs.configurator.Configurator + vcs.configurator.Configurator.__init__ + vcs.configurator.Configurator.activate + vcs.configurator.Configurator.actor_at_point + vcs.configurator.Configurator.animate + vcs.configurator.Configurator.click + vcs.configurator.Configurator.create + vcs.configurator.Configurator.creator_disabled + vcs.configurator.Configurator.creator_enabled + vcs.configurator.Configurator.deactivate + vcs.configurator.Configurator.delete + vcs.configurator.Configurator.detach + vcs.configurator.Configurator.display_and_key_for_actor + vcs.configurator.Configurator.fill_click + vcs.configurator.Configurator.get_save_path + vcs.configurator.Configurator.hover + vcs.configurator.Configurator.init_buttons + vcs.configurator.Configurator.init_toolbar + vcs.configurator.Configurator.line_click + vcs.configurator.Configurator.marker_click + vcs.configurator.Configurator.place + vcs.configurator.Configurator.release + vcs.configurator.Configurator.render_window + vcs.configurator.Configurator.save + vcs.configurator.Configurator.save_animation + vcs.configurator.Configurator.save_animation_press + vcs.configurator.Configurator.save_tick + vcs.configurator.Configurator.set_animation_frame + vcs.configurator.Configurator.set_animation_speed + vcs.configurator.Configurator.set_background_blue + vcs.configurator.Configurator.set_background_green + vcs.configurator.Configurator.set_background_red + vcs.configurator.Configurator.setup_animation + vcs.configurator.Configurator.shift + vcs.configurator.Configurator.show + vcs.configurator.Configurator.start_animating + vcs.configurator.Configurator.step_back + vcs.configurator.Configurator.step_forward + vcs.configurator.Configurator.stop_animating + vcs.configurator.Configurator.text_click + vcs.configurator.Configurator.update + vcs.configurator.display_supports_animation + vcs.configurator.editable_type + vcs.configurator.get_attribute + vcs.configurator.is_box + vcs.configurator.is_label + vcs.configurator.is_point + vcs.configurator.is_point_in_box + vcs.configurator.safe_get + vcs.configurator.sync_template + vcs.configurator.vcstemp +0 tests in 52 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/displayplot.results b/docs/doctest_info/displayplot.results new file mode 100644 index 000000000..9e6c41c0a --- /dev/null +++ b/docs/doctest_info/displayplot.results @@ -0,0 +1,45 @@ +41 items had no tests: + vcs.displayplot + vcs.displayplot.Dp + vcs.displayplot.Dp.__init__ + vcs.displayplot.Dp._get_backend + vcs.displayplot.Dp._getarray + vcs.displayplot.Dp._getcontinents + vcs.displayplot.Dp._getcontinents_line + vcs.displayplot.Dp._getg_name + vcs.displayplot.Dp._getg_type + vcs.displayplot.Dp._getname + vcs.displayplot.Dp._getnewelements + vcs.displayplot.Dp._getoff + vcs.displayplot.Dp._getpriority + vcs.displayplot.Dp._gettemplate + vcs.displayplot.Dp._gettemplate_origin + vcs.displayplot.Dp._repr_png_ + vcs.displayplot.Dp._set_backend + vcs.displayplot.Dp._setarray + vcs.displayplot.Dp._setcontinents + vcs.displayplot.Dp._setcontinents_line + vcs.displayplot.Dp._setg_name + vcs.displayplot.Dp._setg_type + vcs.displayplot.Dp._setname + vcs.displayplot.Dp._setnewelements + vcs.displayplot.Dp._setoff + vcs.displayplot.Dp._setpriority + vcs.displayplot.Dp._settemplate + vcs.displayplot.Dp._settemplate_origin + vcs.displayplot.Dp._template_origin + vcs.displayplot.Dp.array + vcs.displayplot.Dp.backend + vcs.displayplot.Dp.continents + vcs.displayplot.Dp.continents_line + vcs.displayplot.Dp.g_name + vcs.displayplot.Dp.g_type + vcs.displayplot.Dp.list + vcs.displayplot.Dp.name + vcs.displayplot.Dp.newelements + vcs.displayplot.Dp.off + vcs.displayplot.Dp.priority + vcs.displayplot.Dp.template +0 tests in 41 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/doctest_vcs.py b/docs/doctest_info/doctest_vcs.py new file mode 100644 index 000000000..0c22c6b1b --- /dev/null +++ b/docs/doctest_info/doctest_vcs.py @@ -0,0 +1,23 @@ +import vcs, sys, doctest, argparse, importlib + +# TODO: add cleanup function +# TODO: add args for only running cleanup, only logging missing doctests +# *.png, filename.*, ex_*, example.* +def log_missing(module_name): + import re + + fp = open(module_name+".results") + # will want to open in append mode instead + log = open('missing_doctests.md', 'w+') + missing_header = re.compile("Document:") + + +parser = argparse.ArgumentParser() +parser.add_argument('module', type=str, help="Name of the VCS module to test.") +parser.add_argument('-v', '--verbose', action='store_true', default=False, + help='Passing doctests logged. Report includes number of untested functions.') +parser.add_argument('-r', '--report', action='store_true', default=False, help='Print a report after running tests') +parser.add_argument('-m', '--missing', action='store_true', default=False, help='Print a report after running tests') +args = parser.parse_args() +m = importlib.import_module("vcs."+args.module) +doctest.testmod(m, optionflags=doctest.ELLIPSIS, report=args.report, verbose=args.verbose) \ No newline at end of file diff --git a/docs/doctest_info/dv3d.results b/docs/doctest_info/dv3d.results new file mode 100644 index 000000000..38bae8de1 --- /dev/null +++ b/docs/doctest_info/dv3d.results @@ -0,0 +1,99 @@ +95 items had no tests: + vcs.dv3d + vcs.dv3d.Gf3DDualScalar + vcs.dv3d.Gf3DDualScalar.Animation + vcs.dv3d.Gf3DDualScalar.BasemapOpacity + vcs.dv3d.Gf3DDualScalar.Camera + vcs.dv3d.Gf3DDualScalar.ChooseColormap + vcs.dv3d.Gf3DDualScalar.Colorbar + vcs.dv3d.Gf3DDualScalar.Configure + vcs.dv3d.Gf3DDualScalar.IsosurfaceValue + vcs.dv3d.Gf3DDualScalar.PointSize + vcs.dv3d.Gf3DDualScalar.ScaleColormap + vcs.dv3d.Gf3DDualScalar.ScaleOpacity + vcs.dv3d.Gf3DDualScalar.ScaleTransferFunction + vcs.dv3d.Gf3DDualScalar.SliceThickness + vcs.dv3d.Gf3DDualScalar.ToggleClipping + vcs.dv3d.Gf3DDualScalar.ToggleSphericalProj + vcs.dv3d.Gf3DDualScalar.ToggleSurfacePlot + vcs.dv3d.Gf3DDualScalar.ToggleVolumePlot + vcs.dv3d.Gf3DDualScalar.VerticalScaling + vcs.dv3d.Gf3DDualScalar.XSlider + vcs.dv3d.Gf3DDualScalar.YSlider + vcs.dv3d.Gf3DDualScalar.ZSlider + vcs.dv3d.Gf3DDualScalar.__init__ + vcs.dv3d.Gf3Dscalar + vcs.dv3d.Gf3Dscalar.Animation + vcs.dv3d.Gf3Dscalar.BasemapOpacity + vcs.dv3d.Gf3Dscalar.Camera + vcs.dv3d.Gf3Dscalar.ChooseColormap + vcs.dv3d.Gf3Dscalar.Colorbar + vcs.dv3d.Gf3Dscalar.Configure + vcs.dv3d.Gf3Dscalar.IsosurfaceValue + vcs.dv3d.Gf3Dscalar.PointSize + vcs.dv3d.Gf3Dscalar.ScaleColormap + vcs.dv3d.Gf3Dscalar.ScaleOpacity + vcs.dv3d.Gf3Dscalar.ScaleTransferFunction + vcs.dv3d.Gf3Dscalar.SliceThickness + vcs.dv3d.Gf3Dscalar.ToggleClipping + vcs.dv3d.Gf3Dscalar.ToggleSphericalProj + vcs.dv3d.Gf3Dscalar.ToggleSurfacePlot + vcs.dv3d.Gf3Dscalar.ToggleVolumePlot + vcs.dv3d.Gf3Dscalar.VerticalScaling + vcs.dv3d.Gf3Dscalar.XSlider + vcs.dv3d.Gf3Dscalar.YSlider + vcs.dv3d.Gf3Dscalar.ZSlider + vcs.dv3d.Gf3Dscalar.__init__ + vcs.dv3d.Gf3Dvector + vcs.dv3d.Gf3Dvector.Animation + vcs.dv3d.Gf3Dvector.BasemapOpacity + vcs.dv3d.Gf3Dvector.Camera + vcs.dv3d.Gf3Dvector.ChooseColormap + vcs.dv3d.Gf3Dvector.Colorbar + vcs.dv3d.Gf3Dvector.Configure + vcs.dv3d.Gf3Dvector.IsosurfaceValue + vcs.dv3d.Gf3Dvector.PointSize + vcs.dv3d.Gf3Dvector.ScaleColormap + vcs.dv3d.Gf3Dvector.ScaleOpacity + vcs.dv3d.Gf3Dvector.ScaleTransferFunction + vcs.dv3d.Gf3Dvector.SliceThickness + vcs.dv3d.Gf3Dvector.ToggleClipping + vcs.dv3d.Gf3Dvector.ToggleSphericalProj + vcs.dv3d.Gf3Dvector.ToggleSurfacePlot + vcs.dv3d.Gf3Dvector.ToggleVolumePlot + vcs.dv3d.Gf3Dvector.VerticalScaling + vcs.dv3d.Gf3Dvector.XSlider + vcs.dv3d.Gf3Dvector.YSlider + vcs.dv3d.Gf3Dvector.ZSlider + vcs.dv3d.Gf3Dvector.__init__ + vcs.dv3d.Gfdv3d + vcs.dv3d.Gfdv3d.NumCores + vcs.dv3d.Gfdv3d.__init__ + vcs.dv3d.Gfdv3d._getNumCores + vcs.dv3d.Gfdv3d._getaxes + vcs.dv3d.Gfdv3d._getname + vcs.dv3d.Gfdv3d._setNumCores + vcs.dv3d.Gfdv3d._setaxes + vcs.dv3d.Gfdv3d._setname + vcs.dv3d.Gfdv3d.addParameters + vcs.dv3d.Gfdv3d.addPlotAttribute + vcs.dv3d.Gfdv3d.add_property + vcs.dv3d.Gfdv3d.axes + vcs.dv3d.Gfdv3d.getConfigurationData + vcs.dv3d.Gfdv3d.getConfigurationParms + vcs.dv3d.Gfdv3d.getConfigurationState + vcs.dv3d.Gfdv3d.getParameter + vcs.dv3d.Gfdv3d.getParameterList + vcs.dv3d.Gfdv3d.getPlotAttribute + vcs.dv3d.Gfdv3d.getPlotAttributes + vcs.dv3d.Gfdv3d.getStateData + vcs.dv3d.Gfdv3d.initDefaultState + vcs.dv3d.Gfdv3d.list + vcs.dv3d.Gfdv3d.name + vcs.dv3d.Gfdv3d.restoreState + vcs.dv3d.Gfdv3d.script + vcs.dv3d.Gfdv3d.setParameter + vcs.dv3d.Gfdv3d.setProvenanceHandler +0 tests in 95 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/editors.results b/docs/doctest_info/editors.results new file mode 100644 index 000000000..a5d9e9088 --- /dev/null +++ b/docs/doctest_info/editors.results @@ -0,0 +1,5 @@ +1 items had no tests: + vcs.editors +0 tests in 1 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/elp.results b/docs/doctest_info/elp.results new file mode 100644 index 000000000..e69de29bb diff --git a/docs/doctest_info/error.results b/docs/doctest_info/error.results new file mode 100644 index 000000000..fceb46201 --- /dev/null +++ b/docs/doctest_info/error.results @@ -0,0 +1,8 @@ +4 items had no tests: + vcs.error + vcs.error.vcsError + vcs.error.vcsError.__init__ + vcs.error.vcsError.__str__ +0 tests in 4 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/errors_only.txt b/docs/doctest_info/errors_only.txt new file mode 100644 index 000000000..090052cc2 --- /dev/null +++ b/docs/doctest_info/errors_only.txt @@ -0,0 +1,1106 @@ +Document: API/secondary/texttable + +********************************************** +File "API/secondary/texttable.rst", line 20, in script_examples +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/texttable.py", line 558, in script + fp.write("%s.color = %g\n\n" % (unique_name, self.color)) + TypeError: float argument required, not tuple +********************************************** +Document: API/graphics/meshfill + +********************************************** +File "API/graphics/meshfill.rst", line 20, in script_examples +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/meshfill.py", line 900, in script + fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) + TypeError: float argument required, not tuple +1 items passed all tests: + 3 tests in xyscale_meshfill +********************************************** +Document: API/graphics/vector + +********************************************** +File "API/graphics/vector.rst", line 20, in script_examples +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expected nothing +Got: + DEPRECATED: Use linetype or setLineAttributes instead. +********************************************** +Document: API/misc/manageElements + +********************************************** +File "API/misc/manageElements.rst", line 21, in manageElements_create +Failed example: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 120, in createprojection + return projection.Proj(name, source) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/projection.py", line 434, in __init__ + self.type = src.type + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/projection.py", line 987, in _settype + value = VCS_validation_functions.checkProjType(self, 'type', value) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/VCS_validation_functions.py", line 1440, in checkProjType + checkedRaise(self, value, Exception, err) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/VCS_validation_functions.py", line 59, in checkedRaise + raise ex(err) + Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +********************************************** +File "API/misc/manageElements.rst", line 22, in manageElements_create +Failed example: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expected: + [...'projection_ex2'...] +Got: + ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] +********************************************** +File "API/misc/manageElements.rst", line 14, in manageElements_create +Failed example: + vcs.show('textcombined') # show all available textcombined +Expected: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +Got: + *******************Textcombined Names List********************** + *******************End Textcombined Names List********************** +********************************************** +File "API/misc/manageElements.rst", line 18, in manageElements_create +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +********************************************** +File "API/misc/manageElements.rst", line 22, in manageElements_get +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +********************************************** +File "API/misc/manageElements.rst", line 21, in manageElements_get +Failed example: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +********************************************** +File "API/misc/manageElements.rst", line 22, in manageElements_get +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +********************************************** +File "API/misc/manageElements.rst", line 21, in manageElements_get +Failed example: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 1275, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 3630, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/taylor.py", line 1965, in plot + self.draw(canvas, data) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/taylor.py", line 1205, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars +********************************************** +File "API/misc/manageElements.rst", line 17, in manageElements_get +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +1 items passed all tests: + 3 tests in manageElements_removeobject +********************************************** +Document: API/Canvas + +********************************************** +File "API/Canvas.rst", line 10, in utils_getcolorcell +Failed example: + a.getcolorcell(2,b) +Expected: + [85, 85, 85, 100.0] +Got: + [26, 1, 34, 100] +********************************************** +File "API/Canvas.rst", line 32, in canvas_ffmpeg +Failed example: + a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 4591, in ffmpeg + if test_file is not False: + UnboundLocalError: local variable 'test_file' referenced before assignment +********************************************** +File "API/Canvas.rst", line 18, in manageElements_create +Failed example: + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1596, in create3d_dual_scalar + name, source = check_name_source(name, source, '3d_dual_scalar') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error 3d_dual_scalar object named 3d_dual_scalar_ex1 already exists +********************************************** +File "API/Canvas.rst", line 18, in manageElements_create +Failed example: + ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1556, in create3d_scalar + name, source = check_name_source(name, source, '3d_scalar') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error 3d_scalar object named 3d_scalar_ex1 already exists +********************************************** +File "API/Canvas.rst", line 18, in manageElements_create +Failed example: + ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1637, in create3d_vector + name, source = check_name_source(name, source, '3d_vector') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error 3d_vector object named 3d_vector_ex1 already exists +********************************************** +File "API/Canvas.rst", line 21, in manageElements_create +Failed example: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 120, in createprojection + return projection.Proj(name, source) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/projection.py", line 434, in __init__ + self.type = src.type + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/projection.py", line 987, in _settype + value = VCS_validation_functions.checkProjType(self, 'type', value) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/VCS_validation_functions.py", line 1440, in checkProjType + checkedRaise(self, value, Exception, err) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/VCS_validation_functions.py", line 59, in checkedRaise + raise ex(err) + Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +********************************************** +File "API/Canvas.rst", line 22, in manageElements_create +Failed example: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expected: + [...'projection_ex2'...] +Got: + ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] +********************************************** +File "API/Canvas.rst", line 18, in manageElements_create +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +********************************************** +File "API/Canvas.rst", line 22, in canvas_textcombined +Failed example: + vcs.createtext('qa_tta', 'qa', '7left_tto', '7left') # Create instance of 'std_tt' and '7left_to' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtext('qa_tta', 'qa', '7left_tto', '7left') # Create instance of 'std_tt' and '7left_to' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named qa_tta already exists +********************************************** +File "API/Canvas.rst", line 22, in manageElements_get +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +********************************************** +File "API/Canvas.rst", line 21, in manageElements_get +Failed example: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +********************************************** +File "API/Canvas.rst", line 22, in manageElements_get +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +********************************************** +File "API/Canvas.rst", line 21, in manageElements_get +Failed example: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 1275, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 3630, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/taylor.py", line 1965, in plot + self.draw(canvas, data) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/taylor.py", line 1205, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars +********************************************** +File "API/Canvas.rst", line 17, in manageElements_get +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +********************************************** +File "API/Canvas.rst", line 8, in canvas_objecthelp +Failed example: + a.objecthelp(ln) # This will print out information on how to use ln +Expected nothing +Got: + + The Line object allows the manipulation of line type, width, color index, + view port, world coordinates, and (x,y) points. + + This class is used to define an line table entry used in VCS, or it + can be used to change some or all of the line attributes in an + existing line table entry. + + .. describe:: Useful Functions: + + .. code-block:: python + + # VCS Canvas Constructor + a=vcs.init() + # Show predefined line objects + a.show('line') + # Will list all the line attribute values + ln.list() + # Updates the VCS Canvas at user's request + a.update() + + .. describe:: Create a new instance of line: + + .. code-block:: python + + # Copies content of 'red' to 'new' + ln=a.createline('new','red') + # Copies content of 'default' to 'new' + ln=a.createline('new') + + .. describe:: Modify an existing line: + + * Get a line object 'ln' to manipulate: + + .. code-block:: python + + ln=a.getline('red') + + * Set line color: + + .. code-block:: python + + # Range from 1 to 256 + ln.color=100 + + * Set line width: + + .. code-block:: python + + # Range from 1 to 300 + ln.width=100 + + * Specify the line type: + + .. code-block:: python + + # Same as ln.type=0 + ln.type='solid' + # Same as ln.type=1 + ln.type='dash' + # Same as ln.type=2 + ln.type='dot' + # Same as ln.type=3 + ln.type='dash-dot' + # Same as ln.type=4 + ln.type='long-dash' + + * Set the graphics priority on the canvas: + + .. code-block:: python + + ln.priority=1 + # FloatType [0,1]x[0,1] + ln.viewport=[0, 1.0, 0,1.0] + # FloatType [#,#]x[#,#] + ln.worldcoordinate=[0,1.0,0,1.0] + + * Set line x and y values: + + .. code-block:: python + + # List of FloatTypes + ln.x=[[0,.1,.2], [.3,.4,.5]] + # List of FloatTypes + ln.y=[[.5,.4,.3], [.2,.1,0]] + +********************************************** +File "API/Canvas.rst", line 11, in canvas_drawtextcombined +Failed example: + tc=a.drawtextcombined(Tt_name = 'std_example', To_name='7left_example', + string='Hello example!', spacing=5, + color=242, priority=1, viewport=[0, 1.0, 0, 1.0], + worldcoordinate=[0,100, 0,50], + x=[0,20,40,60,80,100], + y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 6, in + y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 2314, in drawtextcombined + t = self.gettextcombined(Tt_name, To_name) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 2134, in gettextcombined + x, y, height, angle, path, halign, valign) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1482, in gettextcombined + (Tt_name_src, To_name_src)) + Exception: No such text combined: std_example:::7left_example +********************************************** +File "API/Canvas.rst", line 17, in canvas_drawtextcombined +Failed example: + a.textcombined(tc) # Plot using specified texttable object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.textcombined(tc) # Plot using specified texttable object + NameError: name 'tc' is not defined +********************************************** +File "API/Canvas.rst", line 11, in canvas_drawtextcombined +Failed example: + tc=a.drawtextcombined(Tt_name = 'std_example', To_name='7left_example', + string='Hello example!', spacing=5, + color=242, priority=1, viewport=[0, 1.0, 0, 1.0], + worldcoordinate=[0,100, 0,50], + x=[0,20,40,60,80,100], + y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 6, in + y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 2314, in drawtextcombined + t = self.gettextcombined(Tt_name, To_name) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 2134, in gettextcombined + x, y, height, angle, path, halign, valign) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1482, in gettextcombined + (Tt_name_src, To_name_src)) + Exception: No such text combined: std_example:::7left_example +********************************************** +File "API/Canvas.rst", line 17, in canvas_drawtextcombined +Failed example: + a.textcombined(tc) # Plot using specified texttable object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.textcombined(tc) # Plot using specified texttable object + NameError: name 'tc' is not defined +50 items passed all tests: + 14 tests in canvas_boxfill + 4 tests in canvas_clear + 4 tests in canvas_close + 4 tests in canvas_destroy + 4 tests in canvas_drawfillarea + 4 tests in canvas_drawline + 3 tests in canvas_drawlogooff + 3 tests in canvas_drawlogoon + 4 tests in canvas_drawmarker + 9 tests in canvas_eps + 9 tests in canvas_fillarea + 4 tests in canvas_flush + 4 tests in canvas_geometry + 2 tests in canvas_getcontinentstype + 4 tests in canvas_getdrawlogo + 7 tests in canvas_getfont + 6 tests in canvas_gettextextent + 4 tests in canvas_islandscape + 10 tests in canvas_isofill + 8 tests in canvas_isoline + 4 tests in canvas_isportrait + 8 tests in canvas_landscape + 9 tests in canvas_line + 2 tests in canvas_listelements + 9 tests in canvas_marker + 9 tests in canvas_meshfill + 3 tests in canvas_open + 2 tests in canvas_orientation + 6 tests in canvas_pdf + 13 tests in canvas_plot + 4 tests in canvas_png + 8 tests in canvas_portrait + 9 tests in canvas_postscript + 6 tests in canvas_pstogif + 2 tests in canvas_saveinitial_warning + 10 tests in canvas_scatter + 4 tests in canvas_scriptobject + 3 tests in canvas_setbgoutputdimensions + 11 tests in canvas_setcolorcell + 5 tests in canvas_setcolormap + 5 tests in canvas_setcontinentsline + 4 tests in canvas_setcontinentstype + 6 tests in canvas_svg + 8 tests in canvas_taylordiagram + 13 tests in canvas_update + 10 tests in canvas_vector + 11 tests in canvas_xvsy + 8 tests in canvas_xyvsy + 8 tests in canvas_yxvsx + 3 tests in manageElements_removeobject +********************************************** +Document: API/secondary/textcombined + +********************************************** +File "API/secondary/textcombined.rst", line 22, in script_examples +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/textcombined.py", line 503, in script + fp.write("%s.color = %g\n\n" % (unique_name, self.color)) + TypeError: float argument required, not list +********************************************** +Document: API/template/template + +********************************************** +File "API/template/template.rst", line 11, in template_drawLinesAndMarkersLegend +Failed example: + t.drawLinesAndMarkersLegend(x, + ["red","blue","green"], ["solid","dash","dot"],[1,4,8], + ["blue","green","red"], ["cross","square","dot"],[3,4,5], + ["sample A","type B","thing C"],True) +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 4, in + ["sample A","type B","thing C"],True) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/template.py", line 1522, in drawLinesAndMarkersLegend + strings, scratched, bg, render) + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/utils.py", line 2388, in drawLinesAndMarkersLegend + if scratched is not None and scratched[i] is not False: + TypeError: 'bool' object has no attribute '__getitem__' +5 items passed all tests: + 4 tests in script_examples + 3 tests in template_move + 2 tests in template_moveto + 2 tests in template_reset + 4 tests in template_scale +********************************************** +Document: API/misc/vcshelp + +********************************************** +File "API/misc/vcshelp.rst", line 8, in vcshelp_objecthelp +Failed example: + for object in objects: + vcs.objecthelp(object) +Expected nothing +Got: + None + + The Colormap object allows the manipulation of the colormap index R,G,B values. + + This class is used to define a colormap table entry used in VCS, or it + can be used to change some or all of the colormap R,G,B attributes in an + existing colormap table entry. + + .. describe:: Some Useful Functions: + + .. code-block:: python + + # Constructor + a=vcs.init() + # Show predefined colormap objects + a.show('colormap') + # Updates the VCS Canvas at user's request + a.update() + # If mode=1, automatic update + a.mode=1 + #If mode=0, use update function to update the VCS Canvas. + a.mode=0 + + + + .. describe:: General use of a colormap: + + .. code-block:: python + + # Create a VCS Canvas object + a=vcs.init() + #To Create a new instance of colormap use: + # Copies content of 'red' to 'new' + cp=a.createcolormap('new','quick') + # Copies content of 'default' to 'new' + cp=a.createcolormap('new') + + .. describe:: Modifying an existing colormap: + + .. code-block:: python + + cp=a.getcolormap('quick') + + .. describe:: Overview of colormap attributes: + + * List all the colormap indices and R,G,B attribute values + + .. code-block:: python + + cp.list() + + * Setting colormap attribute values: + + .. code-block:: python + + # Index, R, G, B + cp.color=16,100,0,0 + # Index range from 0 to 255, but can only modify from 0 to 239 + cp.color=16,0,100,0 + # R, G, B values range from 0 to 100, where 0 is low intensity and 100 is highest intensity + cp.color=17,0,0,100 + + + + The boxfill graphics method (Gfb) displays a two-dimensional data array + by surrounding each data value by a colored grid box. + + This class is used to define a boxfill table entry used in VCS, or it + can be used to change some or all of the attributes in an existing + boxfill table entry. + + + .. describe:: General use of a boxfill: + + .. code-block:: python + + # Constructor + a=vcs.init() + # Show predefined boxfill graphics methods + a.show('boxfill') + # Change the VCS color map + a.setcolormap("AMIP") + # Plot data 's' with boxfill 'b' and 'default' template + a.boxfill(s,b,'default') + + .. describe:: Updating a boxfill: + + .. code-block:: python + + # Updates the VCS Canvas at user's request + a.update() + # Set VCS Canvas to automatic update mode + a.mode=1 + # Use update function to update the VCS Canvas + a.mode=0 + + .. describe:: Create a new instance of boxfill: + + .. code-block:: python + + # Copies content of 'quick' to 'new' + box=a.createboxfill('new','quick') + # Copies content of 'default' to 'new' + box=a.createboxfill('new') + + .. describe:: Modifying an existing boxfill: + + .. code-block:: python + + fill=a.getboxfill('quick') + + # Set index using fillarea + box.fillareaindices=(7,fill,4,9,fill,15) + # list fillarea attributes + fill.list() + # change style + fill.style='hatch' + # change color + fill.color='black' + # change style index + fill.index=3 + + .. describe:: Overview of boxfill attributes: + + * Listing all the boxfill attribute values: + + .. code-block:: python + + box.list() + + * Setting boxfill attribute values: + + .. code-block:: python + + box.projection='linear' + lon30={-180:'180W',-150:'150W',0:'Eq'} + box.xticlabels1=lon30 + box.xticlabels2=lon30 + # Will set them both + box.xticlabels(lon30, lon30) + box.xmtics1='' + box.xmtics2='' + # Will set them both + box.xmtics(lon30, lon30) + box.yticlabels1=lat10 + box.yticlabels2=lat10 + # Will set them both + box.yticlabels(lat10, lat10) + box.ymtics1='' + box.ymtics2='' + # Will set them both + box.ymtics(lat10, lat10) + box.datawc_y1=-90.0 + box.datawc_y2=90.0 + box.datawc_x1=-180.0 + box.datawc_x2=180.0 + # Will set them all + box.datawc(-90, 90, -180, 180) + box.xaxisconvert='linear' + box.yaxisconvert='linear' + # Will set them both + box.xyscale('linear', 'area_wt') + box.level_1=1e20 + box.level_2=1e20 + box.color_1=0 + box.color_2=255 + # Will set them both + box.colors(0, 255 ) + # 'linear' - compute or specify legend + box.boxfill_type='linear' + # 'log10' - plot using log10 + box.boxfill_type='log10' + # 'custom' - use custom values to display legend evenly + box.boxfill_type='custom' + # Hold the legend values + box.legend=None + # Show left overflow arrow + box.ext_1='n' + # Show right overflow arrow + box.ext_2='y' + # Will set them both + box.exts('n', 'y' ) + box.missing='black' + + * Setting the boxfill levels: + + .. code-block:: python + + # Case 1: Levels are all contiguous: + box.levels=([0,20,25,30,35,40],) + box.levels=([0,20,25,30,35,40,45,50]) + box.levels=[0,20,25,30,35,40] + box.levels=(0.0,20.0,25.0,30.0,35.0,40.0,50.0) + + # Case 2: Levels are not contiguous: + box.levels=([0,20],[30,40],[50,60]) + box.levels=([0,20,25,30,35,40],[30,40],[50,60]) + + * Setting the fillarea color indices: + + .. code-block:: python + + # Three different methods for setting color indices: + box.fillareacolors=([22,33,44,55,66,77]) + box.fillareacolors=(16,19,33,44) + box.fillareacolors=None + + * Setting the fillarea style: + + .. code-block:: python + + box.fillareastyle = 'solid' + box.fillareastyle = 'hatch' + box.fillareastyle = 'pattern' + + * Setting the fillarea hatch or pattern indices: + + .. code-block:: python + + box.fillareaindices=([1,3,5,6,9,20]) + box.fillareaindices=(7,1,4,9,6,15) + + * Using the fillarea secondary object (Ex): + + .. code-block:: python + + f=createfillarea('fill1') + #To Create a new instance of fillarea use: + # Copies 'quick' to 'new' + fill=a.createfillarea('new','quick') + # Copies 'default' to 'new' + fill=a.createfillarea('new') + + .. _boxfill-attribute-descriptions: + + * Attribute descriptions: + + + .. py:attribute:: boxfill_type (str) + + Type of boxfill legend. One of 'linear', 'log10', or 'custom'. See examples above for usage. + + .. py:attribute:: level_1 (float) + + Used in conjunction with boxfill_type linear/log10. Sets the value of the legend's first level + + .. py:attribute:: level_2 (float) + + Used in conjunction with boxfill_type linear/log10, sets the value of the legend's end level + + .. py:attribute:: color_1 (float) + + Used in conjunction with boxfill_type linear/log10, sets the legend's color range first value + + .. py:attribute:: color_2 (float) + + Used in conjunction with boxfill_type linear/log10, sets the legend's color range lasst value + + .. py:attribute:: levels (list of floats) + + Used in conjunction for boxfill_type custom, sets the levels range to use, can be + either a list of contiguous levels, or list of tuples indicating first + and last value of the range. + + .. py:attribte:: fillareacolors (list) + + Used in conjunction for boxfill_type custom colors to use for each level + + .. py:attribute:: legend ({float:str}) + + Used in conjunction with boxfill_type linear/log10, replaces the + legend values in the dictionary keys with their associated string. + + .. py:attribute:: ext_1 (str) + + Draws an extension arrow on right side (values less than first range value) + + .. py:attribute:: ext_2 (str) + + Draws an extension arrow on left side (values greater than last range value) + + .. py:attribute:: missing (int) + + Color to use for missing value or values not in defined ranges. + + + + .. py:attribute:: xmtics1 (str/{float:str}) + + (Ex: '') dictionary with location of intermediate tics as keys for 1st side of y axis + + .. py:attribute:: xmtics2 (str/{float:str}) + + (Ex: '') dictionary with location of intermediate tics as keys for 2nd side of y axis + + .. py:attribute:: ymtics1 (str/{float:str}) + + (Ex: '') dictionary with location of intermediate tics as keys for 1st side of y axis + + .. py:attribute:: ymtics2 (str/{float:str}) + + (Ex: '') dictionary with location of intermediate tics as keys for 2nd side of y axis + + .. py:attribute:: xticlabels1 (str/{float:str}) + + (Ex: '*') values for labels on 1st side of x axis + + .. py:attribute:: xticlabels2 (str/{float:str}) + + (Ex: '*') values for labels on 2nd side of x axis + + .. py:attribute:: yticlabels1 (str/{float:str}) + + (Ex: '*') values for labels on 1st side of y axis + + .. py:attribute:: yticlabels2 (str/{float:str}) + + (Ex: '*') values for labels on 2nd side of y axis + + .. py:attribute:: projection (str/vcs.projection.Proj) + + (Ex: 'default') projection to use, name or object + + .. py:attribute:: datawc_x1 (float) + + (Ex: 1.E20) first value of xaxis on plot + + .. py:attribute:: datawc_x2 (float) + + (Ex: 1.E20) second value of xaxis on plot + + .. py:attribute:: datawc_y1 (float) + + (Ex: 1.E20) first value of yaxis on plot + + .. py:attribute:: datawc_y2 (float) + + (Ex: 1.E20) second value of yaxis on plot + + + .. py:attribute:: datawc_timeunits (str) + + (Ex: 'days since 2000') units to use when displaying time dimension auto tick + + .. py:attribute:: datawc_calendar (int) + + (Ex: 135441) calendar to use when displaying time dimension auto tick, default is proleptic gregorian calendar + + + + +********************************************** +Document: API/misc/queries + +********************************************** +File "API/misc/queries.rst", line 11, in queries_isplot +Failed example: + vcs.queries.isplot(dsp_plot) +Expected: + 1 +Got: + 0 +********************************************** +File "API/misc/queries.rst", line 7, in queries_is +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +4 items passed all tests: + 2 tests in queries_gmlist + 7 tests in queries_gmtype + 3 tests in queries_isgraphicsmethod + 4 tests in queries_issecondary +********************************************** +Document: API/graphics/isofill + +********************************************** +File "API/graphics/isofill.rst", line 20, in script_examples +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/isofill.py", line 856, in script + fp.write("%s.missing = %g\n" % (unique_name, self.missing)) + TypeError: float argument required, not tuple +1 items passed all tests: + 3 tests in xyscale_isofill +********************************************** +Document: API/misc/utils + +********************************************** +File "API/misc/utils.rst", line 10, in utils_getcolorcell +Failed example: + a.getcolorcell(2,b) +Expected: + [85, 85, 85, 100.0] +Got: + [26, 1, 34, 100] +********************************************** +File "API/misc/utils.rst", line 8, in utils_mklabels +Failed example: + vcs.mklabels (a) +Expected: + {20.0: '20', 18.0: '18', 16.0: '16', 14.0: '14', 12.0: '12', + 10.0: '10', 8.0: '8', 6.0: '6', 4.0: '4', 2.0: '2', 0.0: '0'} +Got: + {0.0: '0', 2.0: '2', 4.0: '4', 6.0: '6', 8.0: '8', 10.0: '10', 12.0: '12', 14.0: '14', 16.0: '16', 18.0: '18', 20.0: '20'} +********************************************** +File "API/misc/utils.rst", line 11, in utils_mklabels +Failed example: + vcs.mklabels ( [5,.005]) +Expected: + {0.0050000000000000001: '0.005', 5.0: '5.000'} +Got: + {5.0: '5.000', 0.005: '0.005'} +********************************************** +File "API/misc/utils.rst", line 13, in utils_mklabels +Failed example: + vcs.mklabels ( [.00002,.00005]) +Expected: + {2.0000000000000002e-05: '2E-5', 5.0000000000000002e-05: '5E-5'} +Got: + {2e-05: '2E-5', 5e-05: '5E-5'} +********************************************** +File "API/misc/utils.rst", line 8, in utils_match_color +Failed example: + print vcs.match_color('salmon') +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + print vcs.match_color('salmon') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/utils.py", line 1958, in match_color + colormap = vcs.getcolormapname() + AttributeError: 'module' object has no attribute 'getcolormapname' +********************************************** +File "API/misc/utils.rst", line 9, in utils_match_color +Failed example: + print vcs.match_color('red') +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + print vcs.match_color('red') + File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/utils.py", line 1958, in match_color + colormap = vcs.getcolormapname() + AttributeError: 'module' object has no attribute 'getcolormapname' +********************************************** +File "API/misc/utils.rst", line 10, in utils_match_color +Failed example: + print vcs.match_color([0,0,100],'default') # closest color from blue +Expected nothing +Got: + 52 +12 items passed all tests: + 13 tests in utils_Logo + 13 tests in utils_Logo_plot + 5 tests in utils_drawLinesAndMarkersLegend + 4 tests in utils_generate_time_labels + 4 tests in utils_getcolormap + 7 tests in utils_getcolors + 4 tests in utils_minmax + 3 tests in utils_mkevenlevels + 6 tests in utils_mkscale + 2 tests in utils_rbga_color + 6 tests in utils_setcolorcell + 6 tests in utils_show +********************************************** diff --git a/docs/doctest_info/fillarea.results b/docs/doctest_info/fillarea.results new file mode 100644 index 000000000..0d8522931 --- /dev/null +++ b/docs/doctest_info/fillarea.results @@ -0,0 +1,56 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getfillarea() # Get default fillarea +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +34 items had no tests: + vcs.fillarea + vcs.fillarea.Tf + vcs.fillarea.Tf.__init__ + vcs.fillarea.Tf._getfillareacolors + vcs.fillarea.Tf._getfillareaindices + vcs.fillarea.Tf._getfillareaopacity + vcs.fillarea.Tf._getfillareastyle + vcs.fillarea.Tf._getname + vcs.fillarea.Tf._getpriority + vcs.fillarea.Tf._getx + vcs.fillarea.Tf._gety + vcs.fillarea.Tf._setfillareacolors + vcs.fillarea.Tf._setfillareaindices + vcs.fillarea.Tf._setfillareaopacity + vcs.fillarea.Tf._setfillareastyle + vcs.fillarea.Tf._setname + vcs.fillarea.Tf._setpriority + vcs.fillarea.Tf._setx + vcs.fillarea.Tf._sety + vcs.fillarea.Tf.color + vcs.fillarea.Tf.colormap + vcs.fillarea.Tf.index + vcs.fillarea.Tf.list + vcs.fillarea.Tf.name + vcs.fillarea.Tf.opacity + vcs.fillarea.Tf.priority + vcs.fillarea.Tf.projection + vcs.fillarea.Tf.style + vcs.fillarea.Tf.viewport + vcs.fillarea.Tf.worldcoordinate + vcs.fillarea.Tf.x + vcs.fillarea.Tf.y + vcs.fillarea.getmember + vcs.fillarea.process_src +1 items passed all tests: + 4 tests in vcs.fillarea.Tf.script +4 tests in 35 items. +4 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/isofill.results b/docs/doctest_info/isofill.results new file mode 100644 index 000000000..9640ca9cb --- /dev/null +++ b/docs/doctest_info/isofill.results @@ -0,0 +1,132 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getisofill() # Get default isofill +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 775, in vcs.isofill.Gfi.script +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 856, in script + fp.write("%s.missing = %g\n" % (unique_name, self.missing)) + TypeError: float argument required, not tuple +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.createisofill('xyscale_ex') # create a boxfill to work with +Expecting nothing +ok +Trying: + ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' +Expecting nothing +ok +83 items had no tests: + vcs.isofill + vcs.isofill.Gfi + vcs.isofill.Gfi.__init__ + vcs.isofill.Gfi._getcalendar + vcs.isofill.Gfi._getdatawc_x1 + vcs.isofill.Gfi._getdatawc_x2 + vcs.isofill.Gfi._getdatawc_y1 + vcs.isofill.Gfi._getdatawc_y2 + vcs.isofill.Gfi._getfillareacolors + vcs.isofill.Gfi._getfillareaindices + vcs.isofill.Gfi._getfillareastyle + vcs.isofill.Gfi._getmissing + vcs.isofill.Gfi._getname + vcs.isofill.Gfi._gettimeunits + vcs.isofill.Gfi._getxaxisconvert + vcs.isofill.Gfi._getxmtics1 + vcs.isofill.Gfi._getxmtics2 + vcs.isofill.Gfi._getxticlabels1 + vcs.isofill.Gfi._getxticlabels2 + vcs.isofill.Gfi._getyaxisconvert + vcs.isofill.Gfi._getymtics1 + vcs.isofill.Gfi._getymtics2 + vcs.isofill.Gfi._getyticlabels1 + vcs.isofill.Gfi._getyticlabels2 + vcs.isofill.Gfi._setcalendar + vcs.isofill.Gfi._setdatawc_x1 + vcs.isofill.Gfi._setdatawc_x2 + vcs.isofill.Gfi._setdatawc_y1 + vcs.isofill.Gfi._setdatawc_y2 + vcs.isofill.Gfi._setfillareacolors + vcs.isofill.Gfi._setfillareaindices + vcs.isofill.Gfi._setfillareastyle + vcs.isofill.Gfi._setmissing + vcs.isofill.Gfi._setname + vcs.isofill.Gfi._settimeunits + vcs.isofill.Gfi._setxaxisconvert + vcs.isofill.Gfi._setxmtics1 + vcs.isofill.Gfi._setxmtics2 + vcs.isofill.Gfi._setxticlabels1 + vcs.isofill.Gfi._setxticlabels2 + vcs.isofill.Gfi._setyaxisconvert + vcs.isofill.Gfi._setymtics1 + vcs.isofill.Gfi._setymtics2 + vcs.isofill.Gfi._setyticlabels1 + vcs.isofill.Gfi._setyticlabels2 + vcs.isofill.Gfi.colormap + vcs.isofill.Gfi.colors + vcs.isofill.Gfi.datawc + vcs.isofill.Gfi.datawc_calendar + vcs.isofill.Gfi.datawc_timeunits + vcs.isofill.Gfi.datawc_x1 + vcs.isofill.Gfi.datawc_x2 + vcs.isofill.Gfi.datawc_y1 + vcs.isofill.Gfi.datawc_y2 + vcs.isofill.Gfi.ext_1 + vcs.isofill.Gfi.ext_2 + vcs.isofill.Gfi.exts + vcs.isofill.Gfi.fillareacolors + vcs.isofill.Gfi.fillareaindices + vcs.isofill.Gfi.fillareaopacity + vcs.isofill.Gfi.fillareastyle + vcs.isofill.Gfi.legend + vcs.isofill.Gfi.levels + vcs.isofill.Gfi.list + vcs.isofill.Gfi.missing + vcs.isofill.Gfi.name + vcs.isofill.Gfi.projection + vcs.isofill.Gfi.xaxisconvert + vcs.isofill.Gfi.xmtics + vcs.isofill.Gfi.xmtics1 + vcs.isofill.Gfi.xmtics2 + vcs.isofill.Gfi.xticlabels + vcs.isofill.Gfi.xticlabels1 + vcs.isofill.Gfi.xticlabels2 + vcs.isofill.Gfi.yaxisconvert + vcs.isofill.Gfi.ymtics + vcs.isofill.Gfi.ymtics1 + vcs.isofill.Gfi.ymtics2 + vcs.isofill.Gfi.yticlabels + vcs.isofill.Gfi.yticlabels1 + vcs.isofill.Gfi.yticlabels2 + vcs.isofill.load + vcs.isofill.process_src +1 items passed all tests: + 3 tests in vcs.isofill.Gfi.xyscale +********************************************************************** +1 items had failures: + 1 of 4 in vcs.isofill.Gfi.script +7 tests in 85 items. +6 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/isoline.results b/docs/doctest_info/isoline.results new file mode 100644 index 000000000..8da20d257 --- /dev/null +++ b/docs/doctest_info/isoline.results @@ -0,0 +1,149 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getisoline() # Get default isoline +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.createisoline('xyscale_ex') # create a boxfill to work with +Expecting nothing +ok +Trying: + ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' +Expecting nothing +ok +114 items had no tests: + vcs.isoline + vcs.isoline.Gi + vcs.isoline.Gi.__init__ + vcs.isoline.Gi._getangle + vcs.isoline.Gi._getcalendar + vcs.isoline.Gi._getclockwise + vcs.isoline.Gi._getdatawc_x1 + vcs.isoline.Gi._getdatawc_x2 + vcs.isoline.Gi._getdatawc_y1 + vcs.isoline.Gi._getdatawc_y2 + vcs.isoline.Gi._getlabel + vcs.isoline.Gi._getlabelbackgroundcolors + vcs.isoline.Gi._getlabelbackgroundopacities + vcs.isoline.Gi._getlabelskipdistance + vcs.isoline.Gi._getlevels + vcs.isoline.Gi._getline + vcs.isoline.Gi._getlinecolors + vcs.isoline.Gi._getlinetypes + vcs.isoline.Gi._getlinewidths + vcs.isoline.Gi._getname + vcs.isoline.Gi._getprojection + vcs.isoline.Gi._getscale + vcs.isoline.Gi._getspacing + vcs.isoline.Gi._gettext + vcs.isoline.Gi._gettextcolors + vcs.isoline.Gi._gettimeunits + vcs.isoline.Gi._getxaxisconvert + vcs.isoline.Gi._getxmtics1 + vcs.isoline.Gi._getxmtics2 + vcs.isoline.Gi._getxticlabels1 + vcs.isoline.Gi._getxticlabels2 + vcs.isoline.Gi._getyaxisconvert + vcs.isoline.Gi._getymtics1 + vcs.isoline.Gi._getymtics2 + vcs.isoline.Gi._getyticlabels1 + vcs.isoline.Gi._getyticlabels2 + vcs.isoline.Gi._setangle + vcs.isoline.Gi._setcalendar + vcs.isoline.Gi._setclockwise + vcs.isoline.Gi._setdatawc_x1 + vcs.isoline.Gi._setdatawc_x2 + vcs.isoline.Gi._setdatawc_y1 + vcs.isoline.Gi._setdatawc_y2 + vcs.isoline.Gi._setlabel + vcs.isoline.Gi._setlabelbackgroundcolors + vcs.isoline.Gi._setlabelbackgroundopacities + vcs.isoline.Gi._setlabelskipdistance + vcs.isoline.Gi._setlevels + vcs.isoline.Gi._setline + vcs.isoline.Gi._setlinecolors + vcs.isoline.Gi._setlinetypes + vcs.isoline.Gi._setlinewidths + vcs.isoline.Gi._setname + vcs.isoline.Gi._setprojection + vcs.isoline.Gi._setscale + vcs.isoline.Gi._setspacing + vcs.isoline.Gi._settext + vcs.isoline.Gi._settextcolors + vcs.isoline.Gi._settimeunits + vcs.isoline.Gi._setxaxisconvert + vcs.isoline.Gi._setxmtics1 + vcs.isoline.Gi._setxmtics2 + vcs.isoline.Gi._setxticlabels1 + vcs.isoline.Gi._setxticlabels2 + vcs.isoline.Gi._setyaxisconvert + vcs.isoline.Gi._setymtics1 + vcs.isoline.Gi._setymtics2 + vcs.isoline.Gi._setyticlabels1 + vcs.isoline.Gi._setyticlabels2 + vcs.isoline.Gi.angle + vcs.isoline.Gi.clockwise + vcs.isoline.Gi.colormap + vcs.isoline.Gi.datawc + vcs.isoline.Gi.datawc_calendar + vcs.isoline.Gi.datawc_timeunits + vcs.isoline.Gi.datawc_x1 + vcs.isoline.Gi.datawc_x2 + vcs.isoline.Gi.datawc_y1 + vcs.isoline.Gi.datawc_y2 + vcs.isoline.Gi.label + vcs.isoline.Gi.labelbackgroundcolors + vcs.isoline.Gi.labelbackgroundopacities + vcs.isoline.Gi.labelskipdistance + vcs.isoline.Gi.level + vcs.isoline.Gi.levels + vcs.isoline.Gi.line + vcs.isoline.Gi.linecolors + vcs.isoline.Gi.linetypes + vcs.isoline.Gi.linewidths + vcs.isoline.Gi.list + vcs.isoline.Gi.name + vcs.isoline.Gi.projection + vcs.isoline.Gi.scale + vcs.isoline.Gi.setLineAttributes + vcs.isoline.Gi.spacing + vcs.isoline.Gi.text + vcs.isoline.Gi.textcolors + vcs.isoline.Gi.xaxisconvert + vcs.isoline.Gi.xmtics + vcs.isoline.Gi.xmtics1 + vcs.isoline.Gi.xmtics2 + vcs.isoline.Gi.xticlabels + vcs.isoline.Gi.xticlabels1 + vcs.isoline.Gi.xticlabels2 + vcs.isoline.Gi.yaxisconvert + vcs.isoline.Gi.ymtics + vcs.isoline.Gi.ymtics1 + vcs.isoline.Gi.ymtics2 + vcs.isoline.Gi.yticlabels + vcs.isoline.Gi.yticlabels1 + vcs.isoline.Gi.yticlabels2 + vcs.isoline.get_att_from_sub + vcs.isoline.load + vcs.isoline.process_src +2 items passed all tests: + 4 tests in vcs.isoline.Gi.script + 3 tests in vcs.isoline.Gi.xyscale +7 tests in 116 items. +7 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/line.results b/docs/doctest_info/line.results new file mode 100644 index 000000000..1b60ab015 --- /dev/null +++ b/docs/doctest_info/line.results @@ -0,0 +1,58 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getline() # Get default line +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +36 items had no tests: + vcs.line + vcs.line.Tl + vcs.line.Tl.__init__ + vcs.line.Tl._getfillareacolors + vcs.line.Tl._getname + vcs.line.Tl._getpriority + vcs.line.Tl._getprojection + vcs.line.Tl._gettype + vcs.line.Tl._getvp + vcs.line.Tl._getwc + vcs.line.Tl._getwidth + vcs.line.Tl._getx + vcs.line.Tl._gety + vcs.line.Tl._setfillareacolors + vcs.line.Tl._setname + vcs.line.Tl._setpriority + vcs.line.Tl._setprojection + vcs.line.Tl._settype + vcs.line.Tl._setvp + vcs.line.Tl._setwc + vcs.line.Tl._setwidth + vcs.line.Tl._setx + vcs.line.Tl._sety + vcs.line.Tl.color + vcs.line.Tl.colormap + vcs.line.Tl.list + vcs.line.Tl.name + vcs.line.Tl.priority + vcs.line.Tl.projection + vcs.line.Tl.type + vcs.line.Tl.viewport + vcs.line.Tl.width + vcs.line.Tl.worldcoordinate + vcs.line.Tl.x + vcs.line.Tl.y + vcs.line.process_src +1 items passed all tests: + 4 tests in vcs.line.Tl.script +4 tests in 37 items. +4 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/manageElements.results b/docs/doctest_info/manageElements.results new file mode 100644 index 000000000..43b78a6da --- /dev/null +++ b/docs/doctest_info/manageElements.results @@ -0,0 +1,1310 @@ +Trying: + vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar +Expecting: + *******************3d_dual_scalar Names List********************** + ... + *******************End 3d_dual_scalar Names List********************** +ok +Trying: + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_dual_scalar') # should now contain the '3d_dual_scalar_ex1' 3d_dual_scalar +Expecting: + [...'3d_dual_scalar_ex1'...] +ok +Trying: + vcs.show('3d_scalar') # show all available 3d_scalar +Expecting: + *******************3d_scalar Names List********************** + ... + *******************End 3d_scalar Names List********************** +ok +Trying: + ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_scalar') # should now contain the '3d_scalar_ex1' 3d_scalar +Expecting: + [...'3d_scalar_ex1'...] +ok +Trying: + vcs.show('3d_vector') # show all available 3d_vector +Expecting: + *******************3d_vector Names List********************** + ... + *******************End 3d_vector Names List********************** +ok +Trying: + ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_vector') # should now contain the '3d_vector_ex1' 3d_vector +Expecting: + [...'3d_vector_ex1'...] +ok +Trying: + vcs.show('boxfill') # show all available boxfill +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + ex=vcs.createboxfill('boxfill_ex1') # Create boxfill 'boxfill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # should now contain the 'boxfill_ex1' boxfill +Expecting: + [...'boxfill_ex1'...] +ok +Trying: + ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # should now contain the 'boxfill_ex2' boxfill +Expecting: + [...'boxfill_ex2'...] +ok +Trying: + vcs.show('colormap') # show all available colormap +Expecting: + *******************Colormap Names List********************** + ... + *******************End Colormap Names List********************** +ok +Trying: + ex=vcs.createcolormap('colormap_ex1') # Create colormap 'colormap_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # should now contain the 'colormap_ex1' colormap +Expecting: + [...'colormap_ex1'...] +ok +Trying: + ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2' from 'rainbow' template +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # should now contain the 'colormap_ex2' colormap +Expecting: + [...'colormap_ex2'...] +ok +Trying: + vcs.show('fillarea') # show all available fillarea +Expecting: + *******************Fillarea Names List********************** + ... + *******************End Fillarea Names List********************** +ok +Trying: + ex=vcs.createfillarea('fillarea_ex1') # Create fillarea 'fillarea_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('fillarea') # should now contain the 'fillarea_ex1' fillarea +Expecting: + [...'fillarea_ex1'...] +ok +Trying: + vcs.show('isofill') # show all available isofill +Expecting: + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** +ok +Trying: + ex=vcs.createisofill('isofill_ex1') # Create isofill 'isofill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # should now contain the 'isofill_ex1' isofill +Expecting: + [...'isofill_ex1'...] +ok +Trying: + ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # should now contain the 'isofill_ex2' isofill +Expecting: + [...'isofill_ex2'...] +ok +Trying: + vcs.show('isoline') # show all available isoline +Expecting: + *******************Isoline Names List********************** + ... + *******************End Isoline Names List********************** +ok +Trying: + ex=vcs.createisoline('isoline_ex1') # Create isoline 'isoline_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # should now contain the 'isoline_ex1' isoline +Expecting: + [...'isoline_ex1'...] +ok +Trying: + ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # should now contain the 'isoline_ex2' isoline +Expecting: + [...'isoline_ex2'...] +ok +Trying: + vcs.show('line') # show all available line +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + ex=vcs.createline('line_ex1') # Create line 'line_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('line') # should now contain the 'line_ex1' line +Expecting: + [...'line_ex1'...] +ok +Trying: + ex2=vcs.createline('line_ex2','red') # create 'line_ex2' from 'red' template +Expecting nothing +ok +Trying: + vcs.listelements('line') # should now contain the 'line_ex2' line +Expecting: + [...'line_ex2'...] +ok +Trying: + vcs.show('marker') # show all available marker +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + ex=vcs.createmarker('marker_ex1') # Create marker 'marker_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('marker') # should now contain the 'marker_ex1' marker +Expecting: + [...'marker_ex1'...] +ok +Trying: + ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2' from 'red' template +Expecting nothing +ok +Trying: + vcs.listelements('marker') # should now contain the 'marker_ex2' marker +Expecting: + [...'marker_ex2'...] +ok +Trying: + vcs.show('meshfill') # show all available meshfill +Expecting: + *******************Meshfill Names List********************** + ... + *******************End Meshfill Names List********************** +ok +Trying: + ex=vcs.createmeshfill('meshfill_ex1') # Create meshfill 'meshfill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # should now contain the 'meshfill_ex1' meshfill +Expecting: + [...'meshfill_ex1'...] +ok +Trying: + ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2' from 'a_polar_meshfill' template +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # should now contain the 'meshfill_ex2' meshfill +Expecting: + [...'meshfill_ex2'...] +ok +Trying: + vcs.show('projection') # show all available projection +Expecting: + *******************Projection Names List********************** + ... + *******************End Projection Names List********************** +ok +Trying: + ex=vcs.createprojection('projection_ex1') # Create projection 'projection_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex1' projection +Expecting: + [...'projection_ex1'...] +ok +Trying: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 129, in vcs.manageElements.createprojection +Failed example: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection + return projection.Proj(name, source) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ + self.type = src.type + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype + value = VCS_validation_functions.checkProjType(self, 'type', value) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType + checkedRaise(self, value, Exception, err) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise + raise ex(err) + Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expecting: + [...'projection_ex2'...] +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 130, in vcs.manageElements.createprojection +Failed example: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expected: + [...'projection_ex2'...] +Got: + ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] +Trying: + vcs.show('scatter') # show all available scatter +Expecting: + *******************Scatter Names List********************** + ... + *******************End Scatter Names List********************** +ok +Trying: + ex=vcs.createscatter('scatter_ex1') # Create scatter 'scatter_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('scatter') # should now contain the 'scatter_ex1' scatter +Expecting: + [...'scatter_ex1'...] +ok +Trying: + vcs.show('taylordiagram') # show all available taylordiagram +Expecting: + *******************Taylordiagram Names List********************** + ... + *******************End Taylordiagram Names List********************** +ok +Trying: + ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create taylordiagram 'taylordiagram_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('taylordiagram') # should now contain the 'taylordiagram_ex1' taylordiagram +Expecting: + [...'taylordiagram_ex1'...] +ok +Trying: + vcs.show('template') # show all available template +Expecting: + *******************Template Names List********************** + ... + *******************End Template Names List********************** +ok +Trying: + ex=vcs.createtemplate('template_ex1') # Create template 'template_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('template') # should now contain the 'template_ex1' template +Expecting: + [...'template_ex1'...] +ok +Trying: + ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('template') # should now contain the 'template_ex2' template +Expecting: + [...'template_ex2'...] +ok +Trying: + vcs.show('textcombined') # show all available textcombined +Expecting: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1318, in vcs.manageElements.createtext +Failed example: + vcs.show('textcombined') # show all available textcombined +Expected: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +Got: + *******************Textcombined Names List********************** + *******************End Textcombined Names List********************** +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Expecting: + +ok +Trying: + vcs.listelements('textcombined') # should now contain the 'EXAMPLE_tt:::EXAMPLE_tto' textcombined +Expecting: + [...'EXAMPLE_tt:::EXAMPLE_tto'...] +ok +Trying: + vcs.show('textorientation') # show all available textorientation +Expecting: + *******************Textorientation Names List********************** + ... + *******************End Textorientation Names List********************** +ok +Trying: + ex=vcs.createtextorientation('textorientation_ex1') # Create textorientation 'textorientation_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # should now contain the 'textorientation_ex1' textorientation +Expecting: + [...'textorientation_ex1'...] +ok +Trying: + ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2' from 'bigger' template +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # should now contain the 'textorientation_ex2' textorientation +Expecting: + [...'textorientation_ex2'...] +ok +Trying: + vcs.show('texttable') # show all available texttable +Expecting: + *******************Texttable Names List********************** + ... + *******************End Texttable Names List********************** +ok +Trying: + ex=vcs.createtexttable('texttable_ex1') # Create texttable 'texttable_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # should now contain the 'texttable_ex1' texttable +Expecting: + [...'texttable_ex1'...] +ok +Trying: + ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2' from 'bigger' template +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # should now contain the 'texttable_ex2' texttable +Expecting: + [...'texttable_ex2'...] +ok +Trying: + vcs.show('vector') # show all available vector +Expecting: + *******************Vector Names List********************** + ... + *******************End Vector Names List********************** +ok +Trying: + ex=vcs.createvector('vector_ex1') # Create vector 'vector_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('vector') # should now contain the 'vector_ex1' vector +Expecting: + [...'vector_ex1'...] +ok +Trying: + vcs.show('xvsy') # show all available xvsy +Expecting: + *******************Xvsy Names List********************** + ... + *******************End Xvsy Names List********************** +ok +Trying: + ex=vcs.createxvsy('xvsy_ex1') # Create xvsy 'xvsy_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('xvsy') # should now contain the 'xvsy_ex1' xvsy +Expecting: + [...'xvsy_ex1'...] +ok +Trying: + vcs.show('xyvsy') # show all available xyvsy +Expecting: + *******************Xyvsy Names List********************** + ... + *******************End Xyvsy Names List********************** +ok +Trying: + ex=vcs.createxyvsy('xyvsy_ex1') # Create xyvsy 'xyvsy_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('xyvsy') # should now contain the 'xyvsy_ex1' xyvsy +Expecting: + [...'xyvsy_ex1'...] +ok +Trying: + vcs.show('yxvsx') # show all available yxvsx +Expecting: + *******************Yxvsx Names List********************** + ... + *******************End Yxvsx Names List********************** +ok +Trying: + ex=vcs.createyxvsx('yxvsx_ex1') # Create yxvsx 'yxvsx_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('yxvsx') # should now contain the 'yxvsx_ex1' yxvsx +Expecting: + [...'yxvsx_ex1'...] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_dual_scalar') # Show all the existing 3d_dual_scalar graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_dual_scalar() # instance of 'default' 3d_dual_scalar graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1586, in vcs.manageElements.get3d_dual_scalar +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_scalar') # Show all the existing 3d_scalar graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_scalar() # instance of 'default' 3d_scalar graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1545, in vcs.manageElements.get3d_scalar +Failed example: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_vector') # Show all the existing 3d_vector graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_vector() # instance of 'default' 3d_vector graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1626, in vcs.manageElements.get3d_vector +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # Show all the existing boxfill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getboxfill() # instance of 'default' boxfill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.boxfill(ex, slab1) # plot using specified boxfill object +Expecting: + +ok +Trying: + ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method +Expecting nothing +ok +Trying: + a.boxfill(ex2, slab1) # plot using specified boxfill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # Show all the existing colormap secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getcolormap() # instance of 'default' colormap secondary method +Expecting nothing +ok +Trying: + ex2=vcs.getcolormap('rainbow') # instance of 'rainbow' colormap secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('fillarea') # Show all the existing fillarea secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getfillarea() # instance of 'default' fillarea secondary method +Expecting nothing +ok +Trying: + a.fillarea(ex) # plot using specified fillarea object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # Show all the existing isofill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getisofill() # instance of 'default' isofill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isofill(ex, slab1) # plot using specified isofill object +Expecting: + +ok +Trying: + ex2=vcs.getisofill('polar') # instance of 'polar' isofill graphics method +Expecting nothing +ok +Trying: + a.isofill(ex2, slab1) # plot using specified isofill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # Show all the existing isoline graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getisoline() # instance of 'default' isoline graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isoline(ex, slab1) # plot using specified isoline object +Expecting: + +ok +Trying: + ex2=vcs.getisoline('polar') # instance of 'polar' isoline graphics method +Expecting nothing +ok +Trying: + a.isoline(ex2, slab1) # plot using specified isoline object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('line') # Show all the existing line secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getline() # instance of 'default' line secondary method +Expecting nothing +ok +Trying: + a.line(ex) # plot using specified line object +Expecting: + +ok +Trying: + ex2=vcs.getline('red') # instance of 'red' line secondary method +Expecting nothing +ok +Trying: + a.line(ex2) # plot using specified line object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('marker') # Show all the existing marker secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getmarker() # instance of 'default' marker secondary method +Expecting nothing +ok +Trying: + a.marker(ex) # plot using specified marker object +Expecting: + +ok +Trying: + ex2=vcs.getmarker('red') # instance of 'red' marker secondary method +Expecting nothing +ok +Trying: + a.marker(ex2) # plot using specified marker object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # Show all the existing meshfill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getmeshfill() # instance of 'default' meshfill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.meshfill(ex, slab1) # plot using specified meshfill object +Expecting: + +ok +Trying: + ex2=vcs.getmeshfill('a_polar_meshfill') # instance of 'a_polar_meshfill' meshfill graphics method +Expecting nothing +ok +Trying: + a.meshfill(ex2, slab1) # plot using specified meshfill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('projection') # Show all the existing projection graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getprojection() # instance of 'default' projection graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified projection object +Expecting: + +ok +Trying: + ex2=vcs.getprojection('polar') # instance of 'polar' projection graphics method +Expecting nothing +ok +Trying: + a.plot(ex2, slab1) # plot using specified projection object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('scatter') # Show all the existing scatter graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getscatter('default_scatter_') # instance of ''default_scatter_'' scatter graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.scatter(ex, slab1, slab2) # plot using specified scatter object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('taylordiagram') # Show all the existing taylordiagram graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettaylordiagram() # instance of 'default' taylordiagram graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 255, in vcs.manageElements.gettaylordiagram +Failed example: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('template') # Show all the existing template graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettemplate() # instance of 'default' template graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified template object +Expecting: + +ok +Trying: + ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method +Expecting nothing +ok +Trying: + a.plot(ex2, slab1) # plot using specified template object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('textcombined') # Show all the existing textcombined secondary methods +Expecting: + [...] +ok +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1430, in vcs.manageElements.gettextcombined +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +Trying: + ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method +Expecting nothing +ok +Trying: + a.textcombined(ex) # plot using specified textcombined object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # Show all the existing textorientation secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettextorientation() # instance of 'default' textorientation secondary method +Expecting nothing +ok +Trying: + ex2=vcs.gettextorientation('bigger') # instance of 'bigger' textorientation secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # Show all the existing texttable secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettexttable() # instance of 'default' texttable secondary method +Expecting nothing +ok +Trying: + ex2=vcs.gettexttable('bigger') # instance of 'bigger' texttable secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('vector') # Show all the existing vector graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getvector() # instance of 'default' vector graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.vector(ex, slab1, slab2) # plot using specified vector object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('xvsy') # Show all the existing xvsy graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getxvsy() # instance of 'default_xvsy_' xvsy graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.xvsy(ex, slab1, slab2) # plot using specified xvsy object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('xyvsy') # Show all the existing xyvsy graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getxyvsy('default_xyvsy_') # instance of ''default_xyvsy_'' xyvsy graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.xyvsy(ex, slab1) # plot using specified xyvsy object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('yxvsx') # Show all the existing yxvsx graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getyxvsx() # instance of 'default_yxvsx_' yxvsx graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.yxvsx(ex, slab1) # plot using specified yxvsx object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + iso=a.createisoline('dean') # Create an instance of an isoline object +Expecting nothing +ok +Trying: + a.removeobject(iso) # Remove isoline object from VCS list +Expecting: + 'Removed isoline object dean' +ok +26 items had no tests: + vcs.manageElements + vcs.manageElements.check_name_source + vcs.manageElements.create1d + vcs.manageElements.get1d + vcs.manageElements.removeCp + vcs.manageElements.removeG + vcs.manageElements.removeG1d + vcs.manageElements.removeGSp + vcs.manageElements.removeGXY + vcs.manageElements.removeGXy + vcs.manageElements.removeGYx + vcs.manageElements.removeGfb + vcs.manageElements.removeGfi + vcs.manageElements.removeGfm + vcs.manageElements.removeGi + vcs.manageElements.removeGtd + vcs.manageElements.removeGv + vcs.manageElements.removeP + vcs.manageElements.removeProj + vcs.manageElements.removeTc + vcs.manageElements.removeTf + vcs.manageElements.removeTl + vcs.manageElements.removeTm + vcs.manageElements.removeTo + vcs.manageElements.removeTt + vcs.manageElements.setLineAttributes +38 items passed all tests: + 3 tests in vcs.manageElements.create3d_dual_scalar + 3 tests in vcs.manageElements.create3d_scalar + 3 tests in vcs.manageElements.create3d_vector + 5 tests in vcs.manageElements.createboxfill + 5 tests in vcs.manageElements.createcolormap + 3 tests in vcs.manageElements.createfillarea + 5 tests in vcs.manageElements.createisofill + 5 tests in vcs.manageElements.createisoline + 5 tests in vcs.manageElements.createline + 5 tests in vcs.manageElements.createmarker + 5 tests in vcs.manageElements.createmeshfill + 3 tests in vcs.manageElements.createscatter + 3 tests in vcs.manageElements.createtaylordiagram + 5 tests in vcs.manageElements.createtemplate + 5 tests in vcs.manageElements.createtextorientation + 5 tests in vcs.manageElements.createtexttable + 3 tests in vcs.manageElements.createvector + 3 tests in vcs.manageElements.createxvsy + 3 tests in vcs.manageElements.createxyvsy + 3 tests in vcs.manageElements.createyxvsx + 9 tests in vcs.manageElements.getboxfill + 4 tests in vcs.manageElements.getcolormap + 4 tests in vcs.manageElements.getfillarea + 9 tests in vcs.manageElements.getisofill + 9 tests in vcs.manageElements.getisoline + 6 tests in vcs.manageElements.getline + 6 tests in vcs.manageElements.getmarker + 9 tests in vcs.manageElements.getmeshfill + 9 tests in vcs.manageElements.getprojection + 8 tests in vcs.manageElements.getscatter + 9 tests in vcs.manageElements.gettemplate + 4 tests in vcs.manageElements.gettextorientation + 4 tests in vcs.manageElements.gettexttable + 8 tests in vcs.manageElements.getvector + 8 tests in vcs.manageElements.getxvsy + 7 tests in vcs.manageElements.getxyvsy + 7 tests in vcs.manageElements.getyxvsx + 3 tests in vcs.manageElements.removeobject +********************************************************************** +7 items had failures: + 2 of 5 in vcs.manageElements.createprojection + 1 of 3 in vcs.manageElements.createtext + 1 of 8 in vcs.manageElements.get3d_dual_scalar + 1 of 7 in vcs.manageElements.get3d_scalar + 1 of 8 in vcs.manageElements.get3d_vector + 1 of 7 in vcs.manageElements.gettaylordiagram + 1 of 5 in vcs.manageElements.gettextcombined +246 tests in 71 items. +238 passed and 8 failed. +***Test Failed*** 8 failures. diff --git a/docs/doctest_info/marker.results b/docs/doctest_info/marker.results new file mode 100644 index 000000000..91ecaab38 --- /dev/null +++ b/docs/doctest_info/marker.results @@ -0,0 +1,58 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getmarker() # Get default marker +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +36 items had no tests: + vcs.marker + vcs.marker.Tm + vcs.marker.Tm.__init__ + vcs.marker.Tm._getfillareacolors + vcs.marker.Tm._getname + vcs.marker.Tm._getpriority + vcs.marker.Tm._getprojection + vcs.marker.Tm._getsize + vcs.marker.Tm._gettype + vcs.marker.Tm._getvp + vcs.marker.Tm._getwc + vcs.marker.Tm._getx + vcs.marker.Tm._gety + vcs.marker.Tm._setfillareacolors + vcs.marker.Tm._setname + vcs.marker.Tm._setpriority + vcs.marker.Tm._setprojection + vcs.marker.Tm._setsize + vcs.marker.Tm._settype + vcs.marker.Tm._setvp + vcs.marker.Tm._setwc + vcs.marker.Tm._setx + vcs.marker.Tm._sety + vcs.marker.Tm.color + vcs.marker.Tm.colormap + vcs.marker.Tm.list + vcs.marker.Tm.name + vcs.marker.Tm.priority + vcs.marker.Tm.projection + vcs.marker.Tm.size + vcs.marker.Tm.type + vcs.marker.Tm.viewport + vcs.marker.Tm.worldcoordinate + vcs.marker.Tm.x + vcs.marker.Tm.y + vcs.marker.process_src +1 items passed all tests: + 4 tests in vcs.marker.Tm.script +4 tests in 37 items. +4 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/meshfill.results b/docs/doctest_info/meshfill.results new file mode 100644 index 000000000..afc4f1977 --- /dev/null +++ b/docs/doctest_info/meshfill.results @@ -0,0 +1,138 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getmeshfill() # Get default meshfill +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 802, in vcs.meshfill.Gfm.script +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 900, in script + fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) + TypeError: float argument required, not tuple +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.createmeshfill('xyscale_ex') # create a boxfill to work with +Expecting nothing +ok +Trying: + ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' +Expecting nothing +ok +89 items had no tests: + vcs.meshfill + vcs.meshfill.Gfm + vcs.meshfill.Gfm.__init__ + vcs.meshfill.Gfm._getcalendar + vcs.meshfill.Gfm._getdatawc_x1 + vcs.meshfill.Gfm._getdatawc_x2 + vcs.meshfill.Gfm._getdatawc_y1 + vcs.meshfill.Gfm._getdatawc_y2 + vcs.meshfill.Gfm._getfillareaindices + vcs.meshfill.Gfm._getfillareastyle + vcs.meshfill.Gfm._getmesh + vcs.meshfill.Gfm._getmissing + vcs.meshfill.Gfm._getname + vcs.meshfill.Gfm._getprojection + vcs.meshfill.Gfm._gettimeunits + vcs.meshfill.Gfm._getwrap + vcs.meshfill.Gfm._getxaxisconvert + vcs.meshfill.Gfm._getxmtics1 + vcs.meshfill.Gfm._getxmtics2 + vcs.meshfill.Gfm._getxticlabels1 + vcs.meshfill.Gfm._getxticlabels2 + vcs.meshfill.Gfm._getyaxisconvert + vcs.meshfill.Gfm._getymtics1 + vcs.meshfill.Gfm._getymtics2 + vcs.meshfill.Gfm._getyticlabels1 + vcs.meshfill.Gfm._getyticlabels2 + vcs.meshfill.Gfm._setcalendar + vcs.meshfill.Gfm._setdatawc_x1 + vcs.meshfill.Gfm._setdatawc_x2 + vcs.meshfill.Gfm._setdatawc_y1 + vcs.meshfill.Gfm._setdatawc_y2 + vcs.meshfill.Gfm._setfillareaindices + vcs.meshfill.Gfm._setfillareastyle + vcs.meshfill.Gfm._setmesh + vcs.meshfill.Gfm._setmissing + vcs.meshfill.Gfm._setname + vcs.meshfill.Gfm._setprojection + vcs.meshfill.Gfm._settimeunits + vcs.meshfill.Gfm._setwrap + vcs.meshfill.Gfm._setxaxisconvert + vcs.meshfill.Gfm._setxmtics1 + vcs.meshfill.Gfm._setxmtics2 + vcs.meshfill.Gfm._setxticlabels1 + vcs.meshfill.Gfm._setxticlabels2 + vcs.meshfill.Gfm._setyaxisconvert + vcs.meshfill.Gfm._setymtics1 + vcs.meshfill.Gfm._setymtics2 + vcs.meshfill.Gfm._setyticlabels1 + vcs.meshfill.Gfm._setyticlabels2 + vcs.meshfill.Gfm.colormap + vcs.meshfill.Gfm.colors + vcs.meshfill.Gfm.datawc + vcs.meshfill.Gfm.datawc_calendar + vcs.meshfill.Gfm.datawc_timeunits + vcs.meshfill.Gfm.datawc_x1 + vcs.meshfill.Gfm.datawc_x2 + vcs.meshfill.Gfm.datawc_y1 + vcs.meshfill.Gfm.datawc_y2 + vcs.meshfill.Gfm.ext_1 + vcs.meshfill.Gfm.ext_2 + vcs.meshfill.Gfm.exts + vcs.meshfill.Gfm.fillareacolors + vcs.meshfill.Gfm.fillareaindices + vcs.meshfill.Gfm.fillareaopacity + vcs.meshfill.Gfm.fillareastyle + vcs.meshfill.Gfm.legend + vcs.meshfill.Gfm.levels + vcs.meshfill.Gfm.list + vcs.meshfill.Gfm.mesh + vcs.meshfill.Gfm.missing + vcs.meshfill.Gfm.name + vcs.meshfill.Gfm.projection + vcs.meshfill.Gfm.wrap + vcs.meshfill.Gfm.xaxisconvert + vcs.meshfill.Gfm.xmtics + vcs.meshfill.Gfm.xmtics1 + vcs.meshfill.Gfm.xmtics2 + vcs.meshfill.Gfm.xticlabels + vcs.meshfill.Gfm.xticlabels1 + vcs.meshfill.Gfm.xticlabels2 + vcs.meshfill.Gfm.yaxisconvert + vcs.meshfill.Gfm.ymtics + vcs.meshfill.Gfm.ymtics1 + vcs.meshfill.Gfm.ymtics2 + vcs.meshfill.Gfm.yticlabels + vcs.meshfill.Gfm.yticlabels1 + vcs.meshfill.Gfm.yticlabels2 + vcs.meshfill.load + vcs.meshfill.process_src +1 items passed all tests: + 3 tests in vcs.meshfill.Gfm.xyscale +********************************************************************** +1 items had failures: + 1 of 4 in vcs.meshfill.Gfm.script +7 tests in 91 items. +6 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/process_results.py b/docs/doctest_info/process_results.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/docs/doctest_info/process_results.py @@ -0,0 +1 @@ + diff --git a/docs/doctest_info/projection.results b/docs/doctest_info/projection.results new file mode 100644 index 000000000..b0db8bc88 --- /dev/null +++ b/docs/doctest_info/projection.results @@ -0,0 +1,134 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getprojection() # Get default projection +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +112 items had no tests: + vcs.projection + vcs.projection.Proj + vcs.projection.Proj.__init__ + vcs.projection.Proj._getangle + vcs.projection.Proj._getazimuthalangle + vcs.projection.Proj._getazimuthallongitude + vcs.projection.Proj._getcenterlatitude + vcs.projection.Proj._getcenterlongitude + vcs.projection.Proj._getcentralmeridian + vcs.projection.Proj._getfactor + vcs.projection.Proj._getfalseeasting + vcs.projection.Proj._getfalsenorthing + vcs.projection.Proj._getheight + vcs.projection.Proj._getlandsatcompensationratio + vcs.projection.Proj._getlatitude1 + vcs.projection.Proj._getlatitude2 + vcs.projection.Proj._getlongitude1 + vcs.projection.Proj._getlongitude2 + vcs.projection.Proj._getname + vcs.projection.Proj._getorbitinclination + vcs.projection.Proj._getorbitlongitude + vcs.projection.Proj._getoriginlatitude + vcs.projection.Proj._getparameters + vcs.projection.Proj._getpath + vcs.projection.Proj._getpathflag + vcs.projection.Proj._getsatellite + vcs.projection.Proj._getsatelliterevolutionperiod + vcs.projection.Proj._getshapem + vcs.projection.Proj._getshapen + vcs.projection.Proj._getsmajor + vcs.projection.Proj._getsminor + vcs.projection.Proj._getsphere + vcs.projection.Proj._getstandardparallel + vcs.projection.Proj._getstandardparallel1 + vcs.projection.Proj._getstandardparallel2 + vcs.projection.Proj._getsubtype + vcs.projection.Proj._gettruescale + vcs.projection.Proj._gettype + vcs.projection.Proj._setangle + vcs.projection.Proj._setazimuthalangle + vcs.projection.Proj._setazimuthallongitude + vcs.projection.Proj._setcenterlatitude + vcs.projection.Proj._setcenterlongitude + vcs.projection.Proj._setcentralmeridian + vcs.projection.Proj._setfactor + vcs.projection.Proj._setfalseeasting + vcs.projection.Proj._setfalsenorthing + vcs.projection.Proj._setheight + vcs.projection.Proj._setlandsatcompensationratio + vcs.projection.Proj._setlatitude1 + vcs.projection.Proj._setlatitude2 + vcs.projection.Proj._setlongitude1 + vcs.projection.Proj._setlongitude2 + vcs.projection.Proj._setname + vcs.projection.Proj._setorbitinclination + vcs.projection.Proj._setorbitlongitude + vcs.projection.Proj._setoriginlatitude + vcs.projection.Proj._setparameters + vcs.projection.Proj._setpath + vcs.projection.Proj._setpathflag + vcs.projection.Proj._setsatellite + vcs.projection.Proj._setsatelliterevolutionperiod + vcs.projection.Proj._setshapem + vcs.projection.Proj._setshapen + vcs.projection.Proj._setsmajor + vcs.projection.Proj._setsminor + vcs.projection.Proj._setsphere + vcs.projection.Proj._setstandardparallel + vcs.projection.Proj._setstandardparallel1 + vcs.projection.Proj._setstandardparallel2 + vcs.projection.Proj._setsubtype + vcs.projection.Proj._settruescale + vcs.projection.Proj._settype + vcs.projection.Proj.angle + vcs.projection.Proj.attributes + vcs.projection.Proj.azimuthalangle + vcs.projection.Proj.azimuthallongitude + vcs.projection.Proj.centerlatitude + vcs.projection.Proj.centerlongitude + vcs.projection.Proj.centralmeridian + vcs.projection.Proj.checkPP + vcs.projection.Proj.factor + vcs.projection.Proj.falseeasting + vcs.projection.Proj.falsenorthing + vcs.projection.Proj.height + vcs.projection.Proj.landsatcompensationratio + vcs.projection.Proj.latitude1 + vcs.projection.Proj.latitude2 + vcs.projection.Proj.list + vcs.projection.Proj.longitude1 + vcs.projection.Proj.longitude2 + vcs.projection.Proj.name + vcs.projection.Proj.orbitinclination + vcs.projection.Proj.orbitlongitude + vcs.projection.Proj.originlatitude + vcs.projection.Proj.parameters + vcs.projection.Proj.path + vcs.projection.Proj.pathflag + vcs.projection.Proj.satellite + vcs.projection.Proj.satelliterevolutionperiod + vcs.projection.Proj.shapem + vcs.projection.Proj.shapen + vcs.projection.Proj.smajor + vcs.projection.Proj.sminor + vcs.projection.Proj.sphere + vcs.projection.Proj.standardparallel + vcs.projection.Proj.standardparallel1 + vcs.projection.Proj.standardparallel2 + vcs.projection.Proj.subtype + vcs.projection.Proj.truescale + vcs.projection.Proj.type + vcs.projection.process_src +1 items passed all tests: + 4 tests in vcs.projection.Proj.script +4 tests in 113 items. +4 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/queries.results b/docs/doctest_info/queries.results new file mode 100644 index 000000000..506d8d90c --- /dev/null +++ b/docs/doctest_info/queries.results @@ -0,0 +1,608 @@ +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.graphicsmethodlist() # Return graphics method list +Expecting: + [...] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + box=a.getboxfill() # Get default boxfill graphics method +Expecting nothing +ok +Trying: + iso=a.getisofill() # Get default isofill graphics method +Expecting nothing +ok +Trying: + ln=a.getline() # Get default line element +Expecting nothing +ok +Trying: + vcs.graphicsmethodtype(box) +Expecting: + 'boxfill' +ok +Trying: + vcs.graphicsmethodtype(iso) +Expecting: + 'isofill' +ok +Trying: + vcs.graphicsmethodtype(ln) +Expecting: + Traceback (most recent call last): + ... + vcsError: The object passed is not a graphics method object. +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('1d') # Show all available 1d +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok +Trying: + ex = a.get1d('default') # To test an existing 1d object +Expecting nothing +ok +Trying: + vcs.queries.is1d(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('3d_dual_scalar') # Show all available 3d_dual_scalar +Expecting: + *******************3d_dual_scalar Names List********************** + ... + *******************End 3d_dual_scalar Names List********************** +ok +Trying: + ex = a.get3d_dual_scalar() # To test an existing 3d_dual_scalar object +Expecting nothing +ok +Trying: + vcs.queries.is3d_dual_scalar(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('3d_scalar') # Show all available 3d_scalar +Expecting: + *******************3d_scalar Names List********************** + ... + *******************End 3d_scalar Names List********************** +ok +Trying: + ex = a.get3d_scalar() # To test an existing 3d_scalar object +Expecting nothing +ok +Trying: + vcs.queries.is3d_scalar(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('3d_vector') # Show all available 3d_vector +Expecting: + *******************3d_vector Names List********************** + ... + *******************End 3d_vector Names List********************** +ok +Trying: + ex = a.get3d_vector() # To test an existing 3d_vector object +Expecting nothing +ok +Trying: + vcs.queries.is3d_vector(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('boxfill') # Show all available boxfill +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + ex = a.getboxfill() # To test an existing boxfill object +Expecting nothing +ok +Trying: + vcs.queries.isboxfill(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('colormap') # Show all available colormap +Expecting: + *******************Colormap Names List********************** + ... + *******************End Colormap Names List********************** +ok +Trying: + ex = a.getcolormap() # To test an existing colormap object +Expecting nothing +ok +Trying: + vcs.queries.iscolormap(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('fillarea') # Show all available fillarea +Expecting: + *******************Fillarea Names List********************** + ... + *******************End Fillarea Names List********************** +ok +Trying: + ex = a.getfillarea() # To test an existing fillarea object +Expecting nothing +ok +Trying: + vcs.queries.isfillarea(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + box=a.getboxfill() # get default boxfill object +Expecting nothing +ok +Trying: + vcs.isgraphicsmethod(box) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('isofill') # Show all available isofill +Expecting: + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** +ok +Trying: + ex = a.getisofill() # To test an existing isofill object +Expecting nothing +ok +Trying: + vcs.queries.isisofill(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('isoline') # Show all available isoline +Expecting: + *******************Isoline Names List********************** + ... + *******************End Isoline Names List********************** +ok +Trying: + ex = a.getisoline() # To test an existing isoline object +Expecting nothing +ok +Trying: + vcs.queries.isisoline(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('line') # Show all available line +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + ex = a.getline() # To test an existing line object +Expecting nothing +ok +Trying: + vcs.queries.isline(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('marker') # Show all available marker +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + ex = a.getmarker() # To test an existing marker object +Expecting nothing +ok +Trying: + vcs.queries.ismarker(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('meshfill') # Show all available meshfill +Expecting: + *******************Meshfill Names List********************** + ... + *******************End Meshfill Names List********************** +ok +Trying: + ex = a.getmeshfill() # To test an existing meshfill object +Expecting nothing +ok +Trying: + vcs.queries.ismeshfill(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + import cdms2 # need this to make a slab for a boxfill plot +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data + '/clt.nc') # open a variable file +Expecting nothing +ok +Trying: + v = f('v') # create a slab from the variable file +Expecting nothing +ok +Trying: + dsp_plot=(a.getboxfill(), v) # plot a boxfill. Should return vcs.displayplot.Dp. +Expecting nothing +ok +Trying: + vcs.queries.isplot(dsp_plot) +Expecting: + 1 +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/queries.py", line 185, in vcs.queries.isplot +Failed example: + vcs.queries.isplot(dsp_plot) +Expected: + 1 +Got: + 0 +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('projection') # Show all available projection +Expecting: + *******************Projection Names List********************** + ... + *******************End Projection Names List********************** +ok +Trying: + ex = a.getprojection() # To test an existing projection object +Expecting nothing +ok +Trying: + vcs.queries.isprojection(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('scatter') # Show all available scatter +Expecting: + *******************Scatter Names List********************** + ... + *******************End Scatter Names List********************** +ok +Trying: + ex = a.getscatter('default_scatter_') # To test an existing scatter object +Expecting nothing +ok +Trying: + vcs.queries.isscatter(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('projection') # Show all available projections +Expecting: + *******************Projection Names List********************** + ... + *******************End Projection Names List********************** +ok +Trying: + ex = a.getprojection('default') # To test an existing line object +Expecting nothing +ok +Trying: + vcs.issecondaryobject(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('taylordiagram') # Show all available taylordiagram +Expecting: + *******************Taylordiagram Names List********************** + ... + *******************End Taylordiagram Names List********************** +ok +Trying: + ex = a.gettaylordiagram() # To test an existing taylordiagram object +Expecting nothing +ok +Trying: + vcs.queries.istaylordiagram(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('template') # Show all available template +Expecting: + *******************Template Names List********************** + ... + *******************End Template Names List********************** +ok +Trying: + ex = a.gettemplate() # To test an existing template object +Expecting nothing +ok +Trying: + vcs.queries.istemplate(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Expecting: + +ok +Trying: + a.show('textcombined') # Show all available textcombined +Expecting: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +ok +Trying: + ex = a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # To test an existing textcombined object +Expecting nothing +ok +Trying: + vcs.queries.istextcombined(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('textorientation') # Show all available textorientation +Expecting: + *******************Textorientation Names List********************** + ... + *******************End Textorientation Names List********************** +ok +Trying: + ex = a.gettextorientation() # To test an existing textorientation object +Expecting nothing +ok +Trying: + vcs.queries.istextorientation(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('texttable') # Show all available texttable +Expecting: + *******************Texttable Names List********************** + ... + *******************End Texttable Names List********************** +ok +Trying: + ex = a.gettexttable() # To test an existing texttable object +Expecting nothing +ok +Trying: + vcs.queries.istexttable(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('1d') # Show all available 1d +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok +Trying: + ex = a.get1d('default') # To test an existing 1d object +Expecting nothing +ok +Trying: + vcs.queries.is1d(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('xvsy') # Show all available xvsy +Expecting: + *******************Xvsy Names List********************** + ... + *******************End Xvsy Names List********************** +ok +Trying: + ex = a.getxvsy() # To test an existing xvsy object +Expecting nothing +ok +Trying: + vcs.queries.isxvsy(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('xyvsy') # Show all available xyvsy +Expecting: + *******************Xyvsy Names List********************** + ... + *******************End Xyvsy Names List********************** +ok +Trying: + ex = a.getxyvsy('default_xyvsy_') # To test an existing xyvsy object +Expecting nothing +ok +Trying: + vcs.queries.isxyvsy(ex) +Expecting: + 1 +ok +Trying: + a=vcs.init() # Make a VCS Canvas object to work with: +Expecting nothing +ok +Trying: + a.show('yxvsx') # Show all available yxvsx +Expecting: + *******************Yxvsx Names List********************** + ... + *******************End Yxvsx Names List********************** +ok +Trying: + ex = a.getyxvsx() # To test an existing yxvsx object +Expecting nothing +ok +Trying: + vcs.queries.isyxvsx(ex) +Expecting: + 1 +ok +1 items had no tests: + vcs.queries +27 items passed all tests: + 2 tests in vcs.queries.graphicsmethodlist + 7 tests in vcs.queries.graphicsmethodtype + 4 tests in vcs.queries.is1d + 4 tests in vcs.queries.is3d_dual_scalar + 4 tests in vcs.queries.is3d_scalar + 4 tests in vcs.queries.is3d_vector + 4 tests in vcs.queries.isboxfill + 4 tests in vcs.queries.iscolormap + 4 tests in vcs.queries.isfillarea + 3 tests in vcs.queries.isgraphicsmethod + 4 tests in vcs.queries.isisofill + 4 tests in vcs.queries.isisoline + 4 tests in vcs.queries.isline + 4 tests in vcs.queries.ismarker + 4 tests in vcs.queries.ismeshfill + 4 tests in vcs.queries.isprojection + 4 tests in vcs.queries.isscatter + 4 tests in vcs.queries.issecondaryobject + 4 tests in vcs.queries.istaylordiagram + 4 tests in vcs.queries.istemplate + 5 tests in vcs.queries.istextcombined + 4 tests in vcs.queries.istextorientation + 4 tests in vcs.queries.istexttable + 4 tests in vcs.queries.isvector + 4 tests in vcs.queries.isxvsy + 4 tests in vcs.queries.isxyvsy + 4 tests in vcs.queries.isyxvsx +********************************************************************** +1 items had failures: + 1 of 6 in vcs.queries.isplot +115 tests in 29 items. +114 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/run_all_doctests.sh b/docs/doctest_info/run_all_doctests.sh new file mode 100755 index 000000000..56d52f8d8 --- /dev/null +++ b/docs/doctest_info/run_all_doctests.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" +"Pxtickmarks" "Pylabels" "Pytickmarks" "validation_functions" "VTKAnimate" "VTKPlots" +"animate_helper" "boxfill" "colormap" "colorpicker" "colors" "configurator" "displayplot" +"dv3d" "editors" "error" "fillarea" "isofill" "isoline" "line" "manageElements" +"marker" "meshfill" "projection" "queries" "taylor" "template" "textcombined" +"textorientation" "texttable" "unified1D" "utils" "vcs2vtk" "vcshelp" "vcsvtk" "vector" +"vtk_ui") + + +for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r > "$module".results; done; \ No newline at end of file diff --git a/docs/doctest_info/taylor.results b/docs/doctest_info/taylor.results new file mode 100644 index 000000000..4d5177637 --- /dev/null +++ b/docs/doctest_info/taylor.results @@ -0,0 +1,155 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.gettaylordiagram() # Get default taylordiagram +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +133 items had no tests: + vcs.taylor + vcs.taylor.Gtd + vcs.taylor.Gtd.Marker + vcs.taylor.Gtd.__init__ + vcs.taylor.Gtd._getMarker + vcs.taylor.Gtd._getarrowangle + vcs.taylor.Gtd._getarrowbase + vcs.taylor.Gtd._getarrowlength + vcs.taylor.Gtd._getcmtics1 + vcs.taylor.Gtd._getcticlabels1 + vcs.taylor.Gtd._getdetail + vcs.taylor.Gtd._getmax + vcs.taylor.Gtd._getname + vcs.taylor.Gtd._getquadrans + vcs.taylor.Gtd._getreferencevalue + vcs.taylor.Gtd._getskillDrawLabels + vcs.taylor.Gtd._getskillcoefficient + vcs.taylor.Gtd._getskillcolor + vcs.taylor.Gtd._getskillvalues + vcs.taylor.Gtd._getxmtics1 + vcs.taylor.Gtd._getxticlabels1 + vcs.taylor.Gtd._getymtics1 + vcs.taylor.Gtd._getyticlabels1 + vcs.taylor.Gtd._setMarker + vcs.taylor.Gtd._setarrowangle + vcs.taylor.Gtd._setarrowbase + vcs.taylor.Gtd._setarrowlength + vcs.taylor.Gtd._setcmtics1 + vcs.taylor.Gtd._setcticlabels1 + vcs.taylor.Gtd._setdetail + vcs.taylor.Gtd._setmax + vcs.taylor.Gtd._setname + vcs.taylor.Gtd._setquadrans + vcs.taylor.Gtd._setreferencevalue + vcs.taylor.Gtd._setskillDrawLabels + vcs.taylor.Gtd._setskillcoefficient + vcs.taylor.Gtd._setskillcolor + vcs.taylor.Gtd._setskillvalues + vcs.taylor.Gtd._setxmtics1 + vcs.taylor.Gtd._setxticlabels1 + vcs.taylor.Gtd._setymtics1 + vcs.taylor.Gtd._setyticlabels1 + vcs.taylor.Gtd.addMarker + vcs.taylor.Gtd.arrowangle + vcs.taylor.Gtd.arrowbase + vcs.taylor.Gtd.arrowlength + vcs.taylor.Gtd.cmtics1 + vcs.taylor.Gtd.convert + vcs.taylor.Gtd.cticlabels1 + vcs.taylor.Gtd.defaultSkillFunction + vcs.taylor.Gtd.detail + vcs.taylor.Gtd.draw + vcs.taylor.Gtd.drawFrame + vcs.taylor.Gtd.drawSkill + vcs.taylor.Gtd.drawarrow + vcs.taylor.Gtd.getArc + vcs.taylor.Gtd.list + vcs.taylor.Gtd.max + vcs.taylor.Gtd.name + vcs.taylor.Gtd.plot + vcs.taylor.Gtd.quadrans + vcs.taylor.Gtd.referencevalue + vcs.taylor.Gtd.rename + vcs.taylor.Gtd.setWorldCoordinate + vcs.taylor.Gtd.skillCoefficient + vcs.taylor.Gtd.skillColor + vcs.taylor.Gtd.skillDrawLabels + vcs.taylor.Gtd.skillValues + vcs.taylor.Gtd.viewport + vcs.taylor.Gtd.worldcoordinate + vcs.taylor.Gtd.xmtics1 + vcs.taylor.Gtd.xticlabels1 + vcs.taylor.Gtd.ymtics1 + vcs.taylor.Gtd.yticlabels1 + vcs.taylor.TDMarker + vcs.taylor.TDMarker.__getstate__ + vcs.taylor.TDMarker.__init__ + vcs.taylor.TDMarker.__len__ + vcs.taylor.TDMarker.__setstate__ + vcs.taylor.TDMarker._getcolor + vcs.taylor.TDMarker._getid + vcs.taylor.TDMarker._getid_color + vcs.taylor.TDMarker._getid_font + vcs.taylor.TDMarker._getid_size + vcs.taylor.TDMarker._getline + vcs.taylor.TDMarker._getline_color + vcs.taylor.TDMarker._getline_size + vcs.taylor.TDMarker._getline_type + vcs.taylor.TDMarker._getnumber + vcs.taylor.TDMarker._getsize + vcs.taylor.TDMarker._getstatus + vcs.taylor.TDMarker._getsymbol + vcs.taylor.TDMarker._getxoffset + vcs.taylor.TDMarker._getyoffset + vcs.taylor.TDMarker._setcolor + vcs.taylor.TDMarker._setid + vcs.taylor.TDMarker._setid_color + vcs.taylor.TDMarker._setid_font + vcs.taylor.TDMarker._setid_size + vcs.taylor.TDMarker._setline + vcs.taylor.TDMarker._setline_color + vcs.taylor.TDMarker._setline_size + vcs.taylor.TDMarker._setline_type + vcs.taylor.TDMarker._setnumber + vcs.taylor.TDMarker._setsize + vcs.taylor.TDMarker._setstatus + vcs.taylor.TDMarker._setsymbol + vcs.taylor.TDMarker._setxoffset + vcs.taylor.TDMarker._setyoffset + vcs.taylor.TDMarker.addMarker + vcs.taylor.TDMarker.checklineconnectingtype + vcs.taylor.TDMarker.color + vcs.taylor.TDMarker.eq + vcs.taylor.TDMarker.equalize + vcs.taylor.TDMarker.id + vcs.taylor.TDMarker.id_color + vcs.taylor.TDMarker.id_font + vcs.taylor.TDMarker.id_size + vcs.taylor.TDMarker.insert + vcs.taylor.TDMarker.line + vcs.taylor.TDMarker.line_color + vcs.taylor.TDMarker.line_size + vcs.taylor.TDMarker.line_type + vcs.taylor.TDMarker.list + vcs.taylor.TDMarker.number + vcs.taylor.TDMarker.pop + vcs.taylor.TDMarker.size + vcs.taylor.TDMarker.status + vcs.taylor.TDMarker.symbol + vcs.taylor.TDMarker.xoffset + vcs.taylor.TDMarker.yoffset + vcs.taylor.createnewvcsobj + vcs.taylor.process_src +1 items passed all tests: + 4 tests in vcs.taylor.Gtd.script +4 tests in 134 items. +4 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/template.results b/docs/doctest_info/template.results new file mode 100644 index 000000000..47deedfcc --- /dev/null +++ b/docs/doctest_info/template.results @@ -0,0 +1,278 @@ +Trying: + import vcs +Expecting nothing +ok +Trying: + x = vcs.init() +Expecting nothing +ok +Trying: + t = vcs.createtemplate() +Expecting nothing +ok +Trying: + t.drawLinesAndMarkersLegend(x, + ["red","blue","green"], ["solid","dash","dot"],[1,4,8], + ["blue","green","red"], ["cross","square","dot"],[3,4,5], + ["sample A","type B","thing C"],True) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1477, in vcs.template.P.drawLinesAndMarkersLegend +Failed example: + t.drawLinesAndMarkersLegend(x, + ["red","blue","green"], ["solid","dash","dot"],[1,4,8], + ["blue","green","red"], ["cross","square","dot"],[3,4,5], + ["sample A","type B","thing C"],True) +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 4, in + ["sample A","type B","thing C"],True) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend + strings, scratched, bg, render) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2390, in drawLinesAndMarkersLegend + if scratched is not None and scratched[i] is not False: + TypeError: 'bool' object has no attribute '__getitem__' +Trying: + x.png("sample") +Expecting nothing +ok +Trying: + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' +Expecting nothing +ok +Trying: + t.move(0.2,'x') # Move everything right by 20% +Expecting nothing +ok +Trying: + t.move(0.2,'y') # Move everything up by 20% +Expecting nothing +ok +Trying: + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1366, in vcs.template.P.moveto +Failed example: + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + name, source = check_name_source(name, source, 'template') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error template object named example1 already exists +Trying: + t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1367, in vcs.template.P.moveto +Failed example: + t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 + NameError: name 't' is not defined +Trying: + t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1264, in vcs.template.P.reset +Failed example: + t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + name, source = check_name_source(name, source, 'template') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error template object named example1 already exists +Trying: + t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1265, in vcs.template.P.reset +Failed example: + t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 + NameError: name 't' is not defined +Trying: + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1399, in vcs.template.P.scale +Failed example: + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + name, source = check_name_source(name, source, 'template') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error template object named example1 already exists +Trying: + t.scale(0.5) # Halves the template size +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1400, in vcs.template.P.scale +Failed example: + t.scale(0.5) # Halves the template size +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(0.5) # Halves the template size + NameError: name 't' is not defined +Trying: + t.scale(1.2) # Upsize everything to 20% more than the original size +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1401, in vcs.template.P.scale +Failed example: + t.scale(1.2) # Upsize everything to 20% more than the original size +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(1.2) # Upsize everything to 20% more than the original size + NameError: name 't' is not defined +Trying: + t.scale(2,'x') # Double the x axis +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1402, in vcs.template.P.scale +Failed example: + t.scale(2,'x') # Double the x axis +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(2,'x') # Double the x axis + NameError: name 't' is not defined +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.gettemplate() # Get default template +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +73 items had no tests: + vcs.template + vcs.template.P + vcs.template.P.__init__ + vcs.template.P._getName + vcs.template.P._getOrientation + vcs.template.P._setOrientation + vcs.template.P.blank + vcs.template.P.box1 + vcs.template.P.box2 + vcs.template.P.box3 + vcs.template.P.box4 + vcs.template.P.comment1 + vcs.template.P.comment2 + vcs.template.P.comment3 + vcs.template.P.comment4 + vcs.template.P.crdate + vcs.template.P.crtime + vcs.template.P.data + vcs.template.P.dataname + vcs.template.P.drawAttributes + vcs.template.P.drawColorBar + vcs.template.P.drawTicks + vcs.template.P.file + vcs.template.P.function + vcs.template.P.legend + vcs.template.P.line1 + vcs.template.P.line2 + vcs.template.P.line3 + vcs.template.P.line4 + vcs.template.P.list + vcs.template.P.logicalmask + vcs.template.P.max + vcs.template.P.mean + vcs.template.P.min + vcs.template.P.name + vcs.template.P.orientation + vcs.template.P.plot + vcs.template.P.ratio + vcs.template.P.ratio_linear_projection + vcs.template.P.scalefont + vcs.template.P.source + vcs.template.P.title + vcs.template.P.tname + vcs.template.P.transformation + vcs.template.P.tunits + vcs.template.P.tvalue + vcs.template.P.units + vcs.template.P.xlabel1 + vcs.template.P.xlabel2 + vcs.template.P.xmintic1 + vcs.template.P.xmintic2 + vcs.template.P.xname + vcs.template.P.xtic1 + vcs.template.P.xtic2 + vcs.template.P.xunits + vcs.template.P.xvalue + vcs.template.P.ylabel1 + vcs.template.P.ylabel2 + vcs.template.P.ymintic1 + vcs.template.P.ymintic2 + vcs.template.P.yname + vcs.template.P.ytic1 + vcs.template.P.ytic2 + vcs.template.P.yunits + vcs.template.P.yvalue + vcs.template.P.zname + vcs.template.P.zunits + vcs.template.P.zvalue + vcs.template._getgen + vcs.template._setgen + vcs.template.epsilon_gte + vcs.template.epsilon_lte + vcs.template.process_src +2 items passed all tests: + 3 tests in vcs.template.P.move + 4 tests in vcs.template.P.script +********************************************************************** +4 items had failures: + 1 of 5 in vcs.template.P.drawLinesAndMarkersLegend + 2 of 2 in vcs.template.P.moveto + 2 of 2 in vcs.template.P.reset + 4 of 4 in vcs.template.P.scale +20 tests in 79 items. +11 passed and 9 failed. +***Test Failed*** 9 failures. diff --git a/docs/doctest_info/textcombined.results b/docs/doctest_info/textcombined.results new file mode 100644 index 000000000..859cd5246 --- /dev/null +++ b/docs/doctest_info/textcombined.results @@ -0,0 +1,104 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Expecting: + +ok +Trying: + ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 474, in vcs.textcombined.Tc.script +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 503, in script + fp.write("%s.color = %g\n\n" % (unique_name, self.color)) + TypeError: float argument required, not list +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +64 items had no tests: + vcs.textcombined + vcs.textcombined.Tc + vcs.textcombined.Tc.To_name + vcs.textcombined.Tc.Tt_name + vcs.textcombined.Tc.__init__ + vcs.textcombined.Tc._getToname + vcs.textcombined.Tc._getTtname + vcs.textcombined.Tc._getangle + vcs.textcombined.Tc._getcolor + vcs.textcombined.Tc._getcolormap + vcs.textcombined.Tc._getexpansion + vcs.textcombined.Tc._getfcolor + vcs.textcombined.Tc._getfont + vcs.textcombined.Tc._gethalign + vcs.textcombined.Tc._getheight + vcs.textcombined.Tc._getpath + vcs.textcombined.Tc._getpriority + vcs.textcombined.Tc._getprojection + vcs.textcombined.Tc._getspacing + vcs.textcombined.Tc._getstring + vcs.textcombined.Tc._getvalign + vcs.textcombined.Tc._getviewport + vcs.textcombined.Tc._getworldcoordinate + vcs.textcombined.Tc._getx + vcs.textcombined.Tc._gety + vcs.textcombined.Tc._setToname + vcs.textcombined.Tc._setTtname + vcs.textcombined.Tc._setangle + vcs.textcombined.Tc._setcolor + vcs.textcombined.Tc._setcolormap + vcs.textcombined.Tc._setexpansion + vcs.textcombined.Tc._setfcolor + vcs.textcombined.Tc._setfont + vcs.textcombined.Tc._sethalign + vcs.textcombined.Tc._setheight + vcs.textcombined.Tc._setpath + vcs.textcombined.Tc._setpriority + vcs.textcombined.Tc._setprojection + vcs.textcombined.Tc._setspacing + vcs.textcombined.Tc._setstring + vcs.textcombined.Tc._setvalign + vcs.textcombined.Tc._setviewport + vcs.textcombined.Tc._setworldcoordinate + vcs.textcombined.Tc._setx + vcs.textcombined.Tc._sety + vcs.textcombined.Tc.angle + vcs.textcombined.Tc.color + vcs.textcombined.Tc.colormap + vcs.textcombined.Tc.expansion + vcs.textcombined.Tc.fillincolor + vcs.textcombined.Tc.font + vcs.textcombined.Tc.halign + vcs.textcombined.Tc.height + vcs.textcombined.Tc.list + vcs.textcombined.Tc.path + vcs.textcombined.Tc.priority + vcs.textcombined.Tc.projection + vcs.textcombined.Tc.spacing + vcs.textcombined.Tc.string + vcs.textcombined.Tc.valign + vcs.textcombined.Tc.viewport + vcs.textcombined.Tc.worldcoordinate + vcs.textcombined.Tc.x + vcs.textcombined.Tc.y +********************************************************************** +1 items had failures: + 1 of 5 in vcs.textcombined.Tc.script +5 tests in 65 items. +4 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/textorientation.results b/docs/doctest_info/textorientation.results new file mode 100644 index 000000000..642f7c680 --- /dev/null +++ b/docs/doctest_info/textorientation.results @@ -0,0 +1,45 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.gettextorientation() # Get default textorientation +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +23 items had no tests: + vcs.textorientation + vcs.textorientation.To + vcs.textorientation.To.__init__ + vcs.textorientation.To._getangle + vcs.textorientation.To._gethalign + vcs.textorientation.To._getheight + vcs.textorientation.To._getname + vcs.textorientation.To._getpath + vcs.textorientation.To._getvalign + vcs.textorientation.To._setangle + vcs.textorientation.To._sethalign + vcs.textorientation.To._setheight + vcs.textorientation.To._setname + vcs.textorientation.To._setpath + vcs.textorientation.To._setvalign + vcs.textorientation.To.angle + vcs.textorientation.To.halign + vcs.textorientation.To.height + vcs.textorientation.To.list + vcs.textorientation.To.name + vcs.textorientation.To.path + vcs.textorientation.To.valign + vcs.textorientation.process_src +1 items passed all tests: + 4 tests in vcs.textorientation.To.script +4 tests in 24 items. +4 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/texttable.results b/docs/doctest_info/texttable.results new file mode 100644 index 000000000..cb7d20f0e --- /dev/null +++ b/docs/doctest_info/texttable.results @@ -0,0 +1,86 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.gettexttable() # Get default texttable +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 527, in vcs.texttable.Tt.script +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 558, in script + fp.write("%s.color = %g\n\n" % (unique_name, self.color)) + TypeError: float argument required, not tuple +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +51 items had no tests: + vcs.texttable + vcs.texttable.Tt + vcs.texttable.Tt.__init__ + vcs.texttable.Tt._getbackgroundcolor + vcs.texttable.Tt._getbackgroundopacity + vcs.texttable.Tt._getcolor + vcs.texttable.Tt._getexpansion + vcs.texttable.Tt._getfillincolor + vcs.texttable.Tt._getfont + vcs.texttable.Tt._getname + vcs.texttable.Tt._getpriority + vcs.texttable.Tt._getprojection + vcs.texttable.Tt._getspacing + vcs.texttable.Tt._getstring + vcs.texttable.Tt._getvp + vcs.texttable.Tt._getwc + vcs.texttable.Tt._getx + vcs.texttable.Tt._gety + vcs.texttable.Tt._setbackgroundcolor + vcs.texttable.Tt._setbackgroundopacity + vcs.texttable.Tt._setcolor + vcs.texttable.Tt._setexpansion + vcs.texttable.Tt._setfillincolor + vcs.texttable.Tt._setfont + vcs.texttable.Tt._setname + vcs.texttable.Tt._setpriority + vcs.texttable.Tt._setprojection + vcs.texttable.Tt._setspacing + vcs.texttable.Tt._setstring + vcs.texttable.Tt._setvp + vcs.texttable.Tt._setwc + vcs.texttable.Tt._setx + vcs.texttable.Tt._sety + vcs.texttable.Tt.backgroundcolor + vcs.texttable.Tt.backgroundopacity + vcs.texttable.Tt.color + vcs.texttable.Tt.colormap + vcs.texttable.Tt.expansion + vcs.texttable.Tt.fillincolor + vcs.texttable.Tt.font + vcs.texttable.Tt.list + vcs.texttable.Tt.name + vcs.texttable.Tt.priority + vcs.texttable.Tt.projection + vcs.texttable.Tt.spacing + vcs.texttable.Tt.string + vcs.texttable.Tt.viewport + vcs.texttable.Tt.worldcoordinate + vcs.texttable.Tt.x + vcs.texttable.Tt.y + vcs.texttable.process_src +********************************************************************** +1 items had failures: + 1 of 4 in vcs.texttable.Tt.script +4 tests in 52 items. +3 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/tk.results b/docs/doctest_info/tk.results new file mode 100644 index 000000000..e69de29bb diff --git a/docs/doctest_info/unified1D.results b/docs/doctest_info/unified1D.results new file mode 100644 index 000000000..eb1784c17 --- /dev/null +++ b/docs/doctest_info/unified1D.results @@ -0,0 +1,118 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getyxvsx() # Get default yxvsx +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +96 items had no tests: + vcs.unified1D + vcs.unified1D.G1d + vcs.unified1D.G1d.__init__ + vcs.unified1D.G1d._getcalendar + vcs.unified1D.G1d._getdatawc_x1 + vcs.unified1D.G1d._getdatawc_x2 + vcs.unified1D.G1d._getdatawc_y1 + vcs.unified1D.G1d._getdatawc_y2 + vcs.unified1D.G1d._getflip + vcs.unified1D.G1d._getline + vcs.unified1D.G1d._getlinecolor + vcs.unified1D.G1d._getlinetype + vcs.unified1D.G1d._getlinewidth + vcs.unified1D.G1d._getmarker + vcs.unified1D.G1d._getmarkercolor + vcs.unified1D.G1d._getmarkersize + vcs.unified1D.G1d._getname + vcs.unified1D.G1d._getprojection + vcs.unified1D.G1d._getsmooth + vcs.unified1D.G1d._gettimeunits + vcs.unified1D.G1d._getxaxisconvert + vcs.unified1D.G1d._getxmtics1 + vcs.unified1D.G1d._getxmtics2 + vcs.unified1D.G1d._getxticlabels1 + vcs.unified1D.G1d._getxticlabels2 + vcs.unified1D.G1d._getyaxisconvert + vcs.unified1D.G1d._getymtics1 + vcs.unified1D.G1d._getymtics2 + vcs.unified1D.G1d._getyticlabels1 + vcs.unified1D.G1d._getyticlabels2 + vcs.unified1D.G1d._gtype + vcs.unified1D.G1d._setcalendar + vcs.unified1D.G1d._setdatawc_x1 + vcs.unified1D.G1d._setdatawc_x2 + vcs.unified1D.G1d._setdatawc_y1 + vcs.unified1D.G1d._setdatawc_y2 + vcs.unified1D.G1d._setflip + vcs.unified1D.G1d._setline + vcs.unified1D.G1d._setlinecolor + vcs.unified1D.G1d._setlinetype + vcs.unified1D.G1d._setlinewidth + vcs.unified1D.G1d._setmarker + vcs.unified1D.G1d._setmarkercolor + vcs.unified1D.G1d._setmarkersize + vcs.unified1D.G1d._setname + vcs.unified1D.G1d._setprojection + vcs.unified1D.G1d._setsmooth + vcs.unified1D.G1d._settimeunits + vcs.unified1D.G1d._setxaxisconvert + vcs.unified1D.G1d._setxmtics1 + vcs.unified1D.G1d._setxmtics2 + vcs.unified1D.G1d._setxticlabels1 + vcs.unified1D.G1d._setxticlabels2 + vcs.unified1D.G1d._setyaxisconvert + vcs.unified1D.G1d._setymtics1 + vcs.unified1D.G1d._setymtics2 + vcs.unified1D.G1d._setyticlabels1 + vcs.unified1D.G1d._setyticlabels2 + vcs.unified1D.G1d.colormap + vcs.unified1D.G1d.datawc + vcs.unified1D.G1d.datawc_calendar + vcs.unified1D.G1d.datawc_timeunits + vcs.unified1D.G1d.datawc_x1 + vcs.unified1D.G1d.datawc_x2 + vcs.unified1D.G1d.datawc_y1 + vcs.unified1D.G1d.datawc_y2 + vcs.unified1D.G1d.flip + vcs.unified1D.G1d.g_type + vcs.unified1D.G1d.line + vcs.unified1D.G1d.linecolor + vcs.unified1D.G1d.linetype + vcs.unified1D.G1d.linewidth + vcs.unified1D.G1d.list + vcs.unified1D.G1d.marker + vcs.unified1D.G1d.markercolor + vcs.unified1D.G1d.markersize + vcs.unified1D.G1d.name + vcs.unified1D.G1d.projection + vcs.unified1D.G1d.setLineAttributes + vcs.unified1D.G1d.smooth + vcs.unified1D.G1d.xaxisconvert + vcs.unified1D.G1d.xmtics + vcs.unified1D.G1d.xmtics1 + vcs.unified1D.G1d.xmtics2 + vcs.unified1D.G1d.xticlabels + vcs.unified1D.G1d.xticlabels1 + vcs.unified1D.G1d.xticlabels2 + vcs.unified1D.G1d.yaxisconvert + vcs.unified1D.G1d.ymtics + vcs.unified1D.G1d.ymtics1 + vcs.unified1D.G1d.ymtics2 + vcs.unified1D.G1d.yticlabels + vcs.unified1D.G1d.yticlabels1 + vcs.unified1D.G1d.yticlabels2 + vcs.unified1D.load + vcs.unified1D.process_src +1 items passed all tests: + 4 tests in vcs.unified1D.G1d.script +4 tests in 97 items. +4 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/utils.results b/docs/doctest_info/utils.results new file mode 100644 index 000000000..22345077d --- /dev/null +++ b/docs/doctest_info/utils.results @@ -0,0 +1,455 @@ +Trying: + import vcs +Expecting nothing +ok +Trying: + import os +Expecting nothing +ok +Trying: + import sys +Expecting nothing +ok +Trying: + x=vcs.init() +Expecting nothing +ok +Trying: + x.open() +Expecting nothing +ok +Trying: + logo1 = vcs.utils.Logo(os.path.join(sys.prefix,"share","vcs","uvcdat.png")) +Expecting nothing +ok +Trying: + logo1.x=.7 +Expecting nothing +ok +Trying: + logo1.y=.8 +Expecting nothing +ok +Trying: + logo2 = vcs.utils.Logo("My Test Logo") +Expecting nothing +ok +Trying: + logo2.x = .2 +Expecting nothing +ok +Trying: + logo2.y = .2 +Expecting nothing +ok +Trying: + logo1.plot(x) +Expecting nothing +ok +Trying: + logo2.plot(x) +Expecting nothing +ok +Trying: + import vcs +Expecting nothing +ok +Trying: + import os +Expecting nothing +ok +Trying: + import sys +Expecting nothing +ok +Trying: + x=vcs.init() +Expecting nothing +ok +Trying: + x.open() +Expecting nothing +ok +Trying: + logo1 = vcs.utils.Logo(os.path.join(sys.prefix,"share/vcs/uvcdat.png")) +Expecting nothing +ok +Trying: + logo1.x=.7 +Expecting nothing +ok +Trying: + logo1.y=.8 +Expecting nothing +ok +Trying: + logo2 = vcs.utils.Logo("My Test Logo") +Expecting nothing +ok +Trying: + logo2.x = .2 +Expecting nothing +ok +Trying: + logo2.y = .2 +Expecting nothing +ok +Trying: + logo1.plot(x) +Expecting nothing +ok +Trying: + logo2.plot(x) +Expecting nothing +ok +Trying: + import vcs +Expecting nothing +ok +Trying: + x = vcs.init() +Expecting nothing +ok +Trying: + t = vcs.createtemplate() +Expecting nothing +ok +Trying: + vcs.utils.drawLinesAndMarkersLegend(x,t.legend, + ["red","blue","green"], ["solid","dash","dot"],[1,4,8], + ["blue","green","red"], ["cross","square","dot"],[3,4,5], + ["sample A","type B","thing C"], bg=True) +Expecting nothing +ok +Trying: + x.png("sample") +Expecting nothing +ok +Trying: + import cdtime +Expecting nothing +ok +Trying: + lbls = vcs.generate_time_labels(cdtime.reltime(0,'months since 2000'), + cdtime.reltime(12,'months since 2000'), + 'days since 1800') # for the year 2000 in units of 'days since 1800' +Expecting nothing +ok +Trying: + lbls = vcs.generate_time_labels(cdtime.reltime(0,'months since 2000'), + cdtime.comptime(2001), + 'days since 1800') # for the year 2000 in units of 'days since 1800' +Expecting nothing +ok +Trying: + lbls = vcs.generate_time_labels(0, 12, 'months since 2000') # time labels for year 2000 +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + b=vcs.createboxfill() +Expecting nothing +ok +Trying: + b.colormap='rainbow' +Expecting nothing +ok +Trying: + a.getcolorcell(2,b) +Expecting: + [26, 1, 34, 100] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('colormap') # Show all the existing colormap secondary methods +Expecting: + *******************Colormap Names List********************** + ... + *******************End Colormap Names List********************** +ok +Trying: + cp=a.getcolormap() # cp instance of 'default' colormap secondary method +Expecting nothing +ok +Trying: + cp2=a.getcolormap('rainbow') # cp2 instance of existing 'rainbow' colormap secondary method +Expecting nothing +ok +Trying: + a=[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] +Expecting nothing +ok +Trying: + vcs.getcolors (a) +Expecting: + [0, 28, 57, 85, 113, 142, 170, 198, 227, 255] +ok +Trying: + vcs.getcolors (a,colors=range(16,200)) +Expecting: + [16, 36, 57, 77, 97, 118, 138, 158, 179, 199] +ok +Trying: + vcs.getcolors(a,colors=[16,25,15,56,35,234,12,11,19,32,132,17]) +Expecting: + [16, 25, 15, 35, 234, 12, 11, 32, 132, 17] +ok +Trying: + a=[-6.0, -2.0, 2.0, 6.0, 10.0, 14.0, 18.0, 22.0, 26.0] +Expecting nothing +ok +Trying: + vcs.getcolors (a,white=241) +Expecting: + [0, 241, 128, 153, 179, 204, 230, 255] +ok +Trying: + vcs.getcolors (a,white=241,split=0) +Expecting: + [0, 36, 73, 109, 146, 182, 219, 255] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + print vcs.match_color('salmon', 'magma') +Expecting: + 192 +ok +Trying: + print vcs.match_color('red', 'rainbow') +Expecting: + 242 +ok +Trying: + print vcs.match_color([0,0,100],'default') # closest color from blue +Expecting: + 52 +ok +Trying: + s=range(7) +Expecting nothing +ok +Trying: + vcs.minmax(s) +Expecting: + (0.0, 6.0) +ok +Trying: + vcs.minmax([s,s]) +Expecting: + (0.0, 6.0) +ok +Trying: + vcs.minmax([[s,s*2],4.,[6.,7.,s]],[5.,-7.,8,(6.,1.)]) +Expecting: + (-7.0, 8.0) +ok +Trying: + vcs.mkevenlevels(0,100) +Expecting: + [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0] +ok +Trying: + vcs.mkevenlevels(0,100,nlev=5) +Expecting: + [0.0, 20.0, 40.0, 60.0, 80.0, 100.0] +ok +Trying: + vcs.mkevenlevels(100,0,nlev=5) +Expecting: + [100.0, 80.0, 60.0, 40.0, 20.0, 0.0] +ok +Trying: + a=vcs.mkscale(2,20,zero=2) +Expecting nothing +ok +Trying: + vcs.mklabels(a) +Expecting: + {0.0: '0', 2.0: '2', 4.0: '4', 6.0: '6', 8.0: '8', 10.0: '10', 12.0: '12', 14.0: '14', ...} +ok +Trying: + vcs.mklabels ( [5,.005]) +Expecting: + {0.005: '0.005', 5.0: '5.000'} +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 1204, in vcs.utils.mklabels +Failed example: + vcs.mklabels ( [5,.005]) +Expected: + {0.005: '0.005', 5.0: '5.000'} +Got: + {5.0: '5.000', 0.005: '0.005'} +Trying: + vcs.mklabels ( [.00002,.00005]) +Expecting: + {2e-05: '2E-5', 5e-05: '5E-5'} +ok +Trying: + vcs.mklabels ( [.00002,.00005],output='list') +Expecting: + ['2E-5', '5E-5'] +ok +Trying: + vcs.mkscale(0,100) +Expecting: + [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0] +ok +Trying: + vcs.mkscale(0,100,nc=5) +Expecting: + [0.0, 20.0, 40.0, 60.0, 80.0, 100.0] +ok +Trying: + vcs.mkscale(-10,100,nc=5) +Expecting: + [-25.0, 0.0, 25.0, 50.0, 75.0, 100.0] +ok +Trying: + vcs.mkscale(-10,100,nc=5,zero=-1) +Expecting: + [-20.0, 20.0, 60.0, 100.0] +ok +Trying: + vcs.mkscale(2,20) +Expecting: + [2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] +ok +Trying: + vcs.mkscale(2,20,zero=2) +Expecting: + [0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] +ok +Trying: + cp = vcs.getcolormap() # Get a copy of the default colormap +Expecting nothing +ok +Trying: + vcs.rgba_color('black', cp) # Find the rgba equivalent for black +Expecting: + [0.0, 0.0, 0.0, 100] +ok +Trying: + vcs.setcolorcell("AMIP",11,0,0,0) +Expecting nothing +ok +Trying: + vcs.setcolorcell("AMIP",21,100,0,0) +Expecting nothing +ok +Trying: + vcs.setcolorcell("AMIP",31,0,100,0) +Expecting nothing +ok +Trying: + vcs.setcolorcell("AMIP",41,0,0,100) +Expecting nothing +ok +Trying: + vcs.setcolorcell("AMIP",51,100,100,100) +Expecting nothing +ok +Trying: + vcs.setcolorcell("AMIP",61,70,70,70) +Expecting nothing +ok +Trying: + a=vcs.init() # Create a VCS Canvas instance, named 'a' +Expecting nothing +ok +Trying: + a.show('boxfill') # List boxfill objects on Canvas 'a' +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + a.show('isofill') # List isofill objects on Canvas 'a' +Expecting: + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** +ok +Trying: + a.show('line') # List line objects on Canvas 'a' +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + a.show('marker') # List marker objects on Canvas 'a' +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + a.show('textcombined') # List text objects on Canvas 'a' +Expecting: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +ok +31 items had no tests: + vcs.utils + vcs.utils.Logo.__init__ + vcs.utils.VCSUtilsError + vcs.utils.VCSUtilsError.__init__ + vcs.utils.VCSUtilsError.__str__ + vcs.utils.__split2contiguous + vcs.utils._scriptrun + vcs.utils.creategraphicsmethod + vcs.utils.download_sample_data_files + vcs.utils.dumpToDict + vcs.utils.dumpToJson + vcs.utils.getDataWcValue + vcs.utils.get_png_dims + vcs.utils.getdotdirectory + vcs.utils.getfontname + vcs.utils.getfontnumber + vcs.utils.getgraphicsmethod + vcs.utils.getworldcoordinates + vcs.utils.listelements + vcs.utils.loadTemplate + vcs.utils.loadVCSItem + vcs.utils.monotonic + vcs.utils.png_read_metadata + vcs.utils.prettifyAxisLabels + vcs.utils.process_range_from_old_scr + vcs.utils.process_src_element + vcs.utils.return_display_names + vcs.utils.saveinitialfile + vcs.utils.scriptrun + vcs.utils.scriptrun_scr + vcs.utils.setTicksandLabels +14 items passed all tests: + 13 tests in vcs.utils.Logo + 13 tests in vcs.utils.Logo.plot + 5 tests in vcs.utils.drawLinesAndMarkersLegend + 4 tests in vcs.utils.generate_time_labels + 4 tests in vcs.utils.getcolorcell + 4 tests in vcs.utils.getcolormap + 7 tests in vcs.utils.getcolors + 4 tests in vcs.utils.match_color + 4 tests in vcs.utils.minmax + 3 tests in vcs.utils.mkevenlevels + 6 tests in vcs.utils.mkscale + 2 tests in vcs.utils.rgba_color + 6 tests in vcs.utils.setcolorcell + 6 tests in vcs.utils.show +********************************************************************** +1 items had failures: + 1 of 5 in vcs.utils.mklabels +86 tests in 46 items. +85 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/validation_functions.results b/docs/doctest_info/validation_functions.results new file mode 100644 index 000000000..e69de29bb diff --git a/docs/doctest_info/vector.results b/docs/doctest_info/vector.results new file mode 100644 index 000000000..f6713517d --- /dev/null +++ b/docs/doctest_info/vector.results @@ -0,0 +1,127 @@ +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getvector() # Get default vector +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vector.py", line 836, in vcs.vector.Gv.script +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expected nothing +Got: + DEPRECATED: Use linetype or setLineAttributes instead. +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +98 items had no tests: + vcs.vector + vcs.vector.Gv + vcs.vector.Gv.__init__ + vcs.vector.Gv._getalignment + vcs.vector.Gv._getcalendar + vcs.vector.Gv._getdatawc_x1 + vcs.vector.Gv._getdatawc_x2 + vcs.vector.Gv._getdatawc_y1 + vcs.vector.Gv._getdatawc_y2 + vcs.vector.Gv._getline + vcs.vector.Gv._getlinecolor + vcs.vector.Gv._getlinetype + vcs.vector.Gv._getlinewidth + vcs.vector.Gv._getname + vcs.vector.Gv._getprojection + vcs.vector.Gv._getreference + vcs.vector.Gv._getscale + vcs.vector.Gv._getscalerange + vcs.vector.Gv._getscaletype + vcs.vector.Gv._gettimeunits + vcs.vector.Gv._gettype + vcs.vector.Gv._getxaxisconvert + vcs.vector.Gv._getxmtics1 + vcs.vector.Gv._getxmtics2 + vcs.vector.Gv._getxticlabels1 + vcs.vector.Gv._getxticlabels2 + vcs.vector.Gv._getyaxisconvert + vcs.vector.Gv._getymtics1 + vcs.vector.Gv._getymtics2 + vcs.vector.Gv._getyticlabels1 + vcs.vector.Gv._getyticlabels2 + vcs.vector.Gv._setalignment + vcs.vector.Gv._setcalendar + vcs.vector.Gv._setdatawc_x1 + vcs.vector.Gv._setdatawc_x2 + vcs.vector.Gv._setdatawc_y1 + vcs.vector.Gv._setdatawc_y2 + vcs.vector.Gv._setline + vcs.vector.Gv._setlinecolor + vcs.vector.Gv._setlinetype + vcs.vector.Gv._setlinewidth + vcs.vector.Gv._setname + vcs.vector.Gv._setprojection + vcs.vector.Gv._setreference + vcs.vector.Gv._setscale + vcs.vector.Gv._setscalerange + vcs.vector.Gv._setscaletype + vcs.vector.Gv._settimeunits + vcs.vector.Gv._settype + vcs.vector.Gv._setxaxisconvert + vcs.vector.Gv._setxmtics1 + vcs.vector.Gv._setxmtics2 + vcs.vector.Gv._setxticlabels1 + vcs.vector.Gv._setxticlabels2 + vcs.vector.Gv._setyaxisconvert + vcs.vector.Gv._setymtics1 + vcs.vector.Gv._setymtics2 + vcs.vector.Gv._setyticlabels1 + vcs.vector.Gv._setyticlabels2 + vcs.vector.Gv.alignment + vcs.vector.Gv.colormap + vcs.vector.Gv.datawc + vcs.vector.Gv.datawc_calendar + vcs.vector.Gv.datawc_timeunits + vcs.vector.Gv.datawc_x1 + vcs.vector.Gv.datawc_x2 + vcs.vector.Gv.datawc_y1 + vcs.vector.Gv.datawc_y2 + vcs.vector.Gv.line + vcs.vector.Gv.linecolor + vcs.vector.Gv.linetype + vcs.vector.Gv.linewidth + vcs.vector.Gv.list + vcs.vector.Gv.name + vcs.vector.Gv.projection + vcs.vector.Gv.reference + vcs.vector.Gv.scale + vcs.vector.Gv.scalerange + vcs.vector.Gv.scaletype + vcs.vector.Gv.setLineAttributes + vcs.vector.Gv.type + vcs.vector.Gv.xaxisconvert + vcs.vector.Gv.xmtics + vcs.vector.Gv.xmtics1 + vcs.vector.Gv.xmtics2 + vcs.vector.Gv.xticlabels + vcs.vector.Gv.xticlabels1 + vcs.vector.Gv.xticlabels2 + vcs.vector.Gv.xyscale + vcs.vector.Gv.yaxisconvert + vcs.vector.Gv.ymtics + vcs.vector.Gv.ymtics1 + vcs.vector.Gv.ymtics2 + vcs.vector.Gv.yticlabels + vcs.vector.Gv.yticlabels1 + vcs.vector.Gv.yticlabels2 + vcs.vector.load + vcs.vector.process_src +********************************************************************** +1 items had failures: + 1 of 4 in vcs.vector.Gv.script +4 tests in 99 items. +3 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/vtk.results b/docs/doctest_info/vtk.results new file mode 100644 index 000000000..e69de29bb diff --git a/docs/doctest_info/vtk_ui.results b/docs/doctest_info/vtk_ui.results new file mode 100644 index 000000000..896a28a4a --- /dev/null +++ b/docs/doctest_info/vtk_ui.results @@ -0,0 +1,5 @@ +1 items had no tests: + vcs.vtk_ui +0 tests in 1 items. +0 passed and 0 failed. +Test passed. diff --git a/vcs/Canvas.py b/vcs/Canvas.py index f670a5c3c..3f2b6f5db 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -2246,44 +2246,47 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, worldcoordinate=[0.0, 1.0, 0.0, 1.0], x=None, y=None, bg=0): """ - Generate and draw a textcombined object on the VCS Canvas. + Draw a textcombined object on the VCS Canvas. :Example: .. doctest:: canvas_drawtextcombined >>> a=vcs.init() - >>> a.show('texttable') # Show all the existing texttable objects + >>> a.show('texttable') # Show all the existing texttable objects *******************Texttable Names List********************** ... *******************End Texttable Names List********************** - >>> tc=a.drawtextcombined(Tt_name = 'std_example', To_name='7left_example', + >>> vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + >>> tc=a.drawtextcombined(Tt_name = 'EXAMPLE_tt', To_name='EXAMPLE_tto', ... string='Hello example!', spacing=5, ... color=242, priority=1, viewport=[0, 1.0, 0, 1.0], ... worldcoordinate=[0,100, 0,50], ... x=[0,20,40,60,80,100], - ... y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' - >>> a.textcombined(tc) # Plot using specified texttable object + ... y=[0,10,20,30,40,50]) # plot textcombined object on canvas - :param name: Name of created object - :type name: str + :param Tt_name: String name of a texttable object + :type Tt_name: str + + :param To_name: String name of a textorientation object + :type To_name: str :param style: One of "hatch", "solid", or "pattern". :type style: str :param index: Specifies which `pattern `_ - to fill the fillarea with. Accepts ints from 1-20. + to fill the fillarea with. Accepts ints from 1-20. :type index: int :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int :param priority: The layer on which the fillarea will be drawn. :type priority: int :param viewport: 4 floats between 0 and 1. - These specify the area that the X/Y values are mapped to inside of the canvas + These specify the area that the X/Y values are mapped to inside of the canvas :type viewport: list of floats :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) @@ -2296,7 +2299,7 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, :type y: list of floats :param bg: Boolean value. True => object drawn in background (not shown on canvas). - False => object shown on canvas. + False => object shown on canvas. :type bg: bool :returns: A texttable object @@ -2376,6 +2379,7 @@ def plot(self, *actual_args, **keyargs): .. describe:: Plot attribute keywords: .. note:: + More specific attributes take precedence over general attributes. In particular, specific attributes override variable object attributes, dimension attributes and arrays override axis objects, which override grid objects, which override variable @@ -4498,19 +4502,16 @@ def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): >>> v = f('v') # use the data file to create a cdms2 slab >>> u = f('u') # use the data file to create a cdms2 slab >>> png_files = [] # for saving file names to make the mpeg - >>> plots = [] # for saving plots for later reference >>> for i in range(10): # create a number of pngs to use for an mpeg ... a.clear() ... if (i%2): - ... plots.append(a.plot(u,v)) + ... a.plot(u,v) ... else: - ... plots.append(a.plot(v,u)) + ... a.plot(v,u) ... a.png('my_png__%i' % i) ... png_files.append('my_png__%i.png' % i) >>> a.ffmpeg('mymovie.mpeg',png_files) # generates from list of files True - >>> a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex - True >>> a.ffmpeg('mymovie.mpeg',png_files,bitrate=512) # generates mpeg at 512kbit True >>> a.ffmpeg('mymovie.mpeg',png_files,rate=50) # generates movie with 50 frame per second @@ -5267,22 +5268,6 @@ def gif(self, filename='noname.gif', merge='r', orientation=None, This function does not currently work. It will be implemented in the future. - - :Example: - - .. doctest:: canvas_gif - - >>> a=vcs.init() - >>> array = [range(1, 11) for _ in range(1, 11)] - >>> a.plot(array) - - >>> a.gif(filename='example.gif', merge='a', orientation='l', geometry='800x600') - >>> a.gif('example') # overwrite existing gif file (default is merge='r') - >>> a.gif('example',merge='r') # overwrite existing gif file - >>> a.gif('example',merge='a') # merge gif image into existing gif file - >>> a.gif('example',orientation='l') # merge gif image into existing gif file with landscape orientation - >>> a.gif('example',orientation='p') # merge gif image into existing gif file with portrait orientation - >>> a.gif('example',geometry='600x500') # merge gif image into existing gif file and set gif geometry """ if orientation is None: orientation = self.orientation()[0] diff --git a/vcs/fillarea.py b/vcs/fillarea.py index b5ca6e007..2150c38b6 100755 --- a/vcs/fillarea.py +++ b/vcs/fillarea.py @@ -103,7 +103,6 @@ def process_src(nm, code): class Tf(object): - """ The Fillarea class object allows the user to edit fillarea attributes, including fillarea interior style, style index, and color index. diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 1656688b6..4832e60fb 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -771,10 +771,30 @@ def createline(name=None, source='default', ltype=None, def setLineAttributes(to, l): - ''' - Set attributes linecolor, linewidth and linetype from line l. - l can be a line name defined in vcs.elements or a line object - ''' + """ + Set attributes linecolor, linewidth and linetype from line l on object to. + + + :Example: + + .. doctest:: manageElements_setLineAttributes + + >>> vcs.show('line') + *******************Line Names List********************** + ... + *******************End Line Names List********************** + >>> new_isoline=vcs.createisoline('new_iso') + >>> vcs.setLineAttributes(new_isoline, 'continents') + + :param to: + :type to: + + :param l: l can be a line name defined in vcs.elements or a line object. + :type l: + + :type: line or str + :return: + """ import queries line = None if (queries.isline(l)): @@ -785,9 +805,14 @@ def setLineAttributes(to, l): raise ValueError("Expecting a line object or a " + "line name defined in vcs.elements, got type " + type(l).__name__) - to.linecolor = line.color[0] - to.linewidth = line.width[0] - to.linetype = line.type[0] + if queries.isisoline(to): + to.linecolors = line.color + to.linewidths = line.width + to.linetypes = line.type + else: + to.linecolor = line.color[0] + to.linewidth = line.width[0] + to.linetype = line.type[0] def getline(name='default', ltype=None, width=None, color=None, @@ -1807,6 +1832,7 @@ def removeobject(obj): >>> iso=a.createisoline('dean') # Create an instance of an isoline object >>> a.removeobject(iso) # Remove isoline object from VCS list 'Removed isoline object dean' + :param obj: Any VCS primary or secondary object :type obj: VCS object diff --git a/vcs/utils.py b/vcs/utils.py index 9bee63e00..eb2f55458 100644 --- a/vcs/utils.py +++ b/vcs/utils.py @@ -1199,13 +1199,12 @@ def mklabels(vals, output='dict'): .. doctest:: utils_mklabels >>> a=vcs.mkscale(2,20,zero=2) - >>> vcs.mklabels (a) - {20.0: '20', 18.0: '18', 16.0: '16', 14.0: '14', 12.0: '12', - 10.0: '10', 8.0: '8', 6.0: '6', 4.0: '4', 2.0: '2', 0.0: '0'} + >>> vcs.mklabels(a) + {0.0: '0', 2.0: '2', 4.0: '4', 6.0: '6', 8.0: '8', 10.0: '10', 12.0: '12', 14.0: '14', ...} >>> vcs.mklabels ( [5,.005]) - {0.0050000000000000001: '0.005', 5.0: '5.000'} + {0.005: '0.005', 5.0: '5.000'} >>> vcs.mklabels ( [.00002,.00005]) - {2.0000000000000002e-05: '2E-5', 5.0000000000000002e-05: '5E-5'} + {2e-05: '2E-5', 5e-05: '5E-5'} >>> vcs.mklabels ( [.00002,.00005],output='list') ['2E-5', '5E-5'] @@ -1851,7 +1850,7 @@ def getcolorcell(cell, obj=None): >>> b=vcs.createboxfill() >>> b.colormap='rainbow' >>> a.getcolorcell(2,b) - [85, 85, 85, 100.0] + [26, 1, 34, 100] :param cell: An integer value indicating the index of the desired colorcell. :type cell: int @@ -1931,9 +1930,12 @@ def match_color(color, colormap=None): .. doctest:: utils_match_color >>> a=vcs.init() - >>> print vcs.match_color('salmon') - >>> print vcs.match_color('red') + >>> print vcs.match_color('salmon', 'magma') + 192 + >>> print vcs.match_color('red', 'rainbow') + 242 >>> print vcs.match_color([0,0,100],'default') # closest color from blue + 52 :param color: Either a string name, or a rgb value between 0 and 100. :type color: str, int @@ -1955,7 +1957,7 @@ def match_color(color, colormap=None): # Now gets the colormap to look in if colormap is None: - colormap = vcs.getcolormapname() + colormap = 'default' cmap = vcs.getcolormap(colormap) # Now tries determines the min rms diff diff --git a/vcs/vcshelp.py b/vcs/vcshelp.py index 1d2056b3b..bcea4894b 100644 --- a/vcs/vcshelp.py +++ b/vcs/vcshelp.py @@ -35,13 +35,13 @@ def objecthelp(*arg): .. doctest:: vcshelp_objecthelp - >>> objects = [ vcs.get3d_scalar(), vcs.getcolormap(), vcs.getboxfill() ] - >>> for object in objects: - ... vcs.objecthelp(object) - + >>> fa=vcs.getfillarea() + >>> vcs.objecthelp(fa) + + The Fillarea class object... :param arg: Instance(s) of VCS object(s) to display the documentation for. - Multiple objects should be comma-delimited. + Multiple objects should be comma-delimited. :type arg: VCS object, or list of vcs objects """ for x in arg: diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 1e6aa79ab..de6f4f011 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -329,8 +329,8 @@ def populate_docstrings(type_dict, target_dict, docstring, method): elif method == 'create': if obj_name == "textcombined": example1 = dict['tc'] + """ - >>> vcs.listelements('%(name)s') # should now contain the 'qa_tt:::left_tto' %(name)s - [...'qa_tt:::left_tto'...]""" + >>> vcs.listelements('%(name)s') # should now contain the 'EXAMPLE_tt:::EXAMPLE_tto' %(name)s + [...'EXAMPLE_tt:::EXAMPLE_tto'...]""" else: example1 = """ >>> ex=vcs.create%(name)s('%(name)s_ex1') # Create %(name)s '%(name)s_ex1' that inherits from 'default' @@ -634,15 +634,6 @@ def populate_docstrings(type_dict, target_dict, docstring, method): names must be unique. :Example: - - .. testsetup:: manageElements_create - - elements={} - for key in vcs.elements.keys(): - if type(vcs.elements[key]) == dict: - elements[key]=dict(vcs.elements[key]) - else: - elements[key] = vcs.elements[key] .. doctest:: manageElements_create @@ -650,16 +641,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): *******************%(cap)s Names List********************** ... *******************End %(cap)s Names List**********************%(ex1)s%(ex2)s - - .. testcleanup:: manageElements_create - - for key in vcs.elements.keys(): - for el in vcs.elements[key].keys(): - try: - elements[key][el] - except: - vcs.removeobject(vcs.elements[key][el]) - """ + """ scriptdocs = {} docstrings['script'] = [scriptdocs, scriptdoc] From d6fc033c86a7cf0a2c46fae10f4c3e2146c219ca Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 7 Dec 2016 08:34:56 -0800 Subject: [PATCH 08/45] Working on doctest_vcs.py --- docs/doctest_info/doctest_vcs.py | 37 ++++++++++++++++++++------- docs/doctest_info/process_results.py | 1 - docs/doctest_info/run_all_doctests.sh | 2 +- 3 files changed, 29 insertions(+), 11 deletions(-) delete mode 100644 docs/doctest_info/process_results.py diff --git a/docs/doctest_info/doctest_vcs.py b/docs/doctest_info/doctest_vcs.py index 0c22c6b1b..4e9295794 100644 --- a/docs/doctest_info/doctest_vcs.py +++ b/docs/doctest_info/doctest_vcs.py @@ -3,21 +3,40 @@ # TODO: add cleanup function # TODO: add args for only running cleanup, only logging missing doctests # *.png, filename.*, ex_*, example.* -def log_missing(module_name): +def log_stats(module_name, verbose): import re - fp = open(module_name+".results") - # will want to open in append mode instead - log = open('missing_doctests.md', 'w+') - missing_header = re.compile("Document:") + log = open(module_name+'.md', 'w+') + missing_header = re.compile("[0-9]+ items had no tests:") + # missing tests will be followed by either passed all tests or "tests in items" entry + passing_header = re.compile("[0-9]+ items passed all tests:") + tests_in_items = re.compile("[0-9]+ tests in [0-9]+ items\.") + trying = re.compile("Trying:") + expecting_something = re.compile("Expecting:") + expecting_nothing = re.compile("Expecting nothing") + err_header = re.compile('File "') + err_indicator = re.compile('\*\*\*\*') + line = fp.readline() + while line != '': + +# Make parser and add options parser = argparse.ArgumentParser() parser.add_argument('module', type=str, help="Name of the VCS module to test.") parser.add_argument('-v', '--verbose', action='store_true', default=False, help='Passing doctests logged. Report includes number of untested functions.') -parser.add_argument('-r', '--report', action='store_true', default=False, help='Print a report after running tests') -parser.add_argument('-m', '--missing', action='store_true', default=False, help='Print a report after running tests') +parser.add_argument('-r', '--report', action='store_true', default=False, help='Print a report after running tests.') +parser.add_argument('-l', '--log', action='store_true', default=False, help='Log stats in a .md file.\nImplies -r.') +pkg_help="Supply a package name in which to look for the module.\nDefault is vcs." +parser.add_argument('-p', '--package', type=str, default='vcs', help=pkg_help) + +# Check parser args args = parser.parse_args() -m = importlib.import_module("vcs."+args.module) -doctest.testmod(m, optionflags=doctest.ELLIPSIS, report=args.report, verbose=args.verbose) \ No newline at end of file +if args.log and not args.report: + args.report=True + +# Import module and run doctests +m = importlib.import_module(args.package + '.' + args.module) +doctest.testmod(m, optionflags=doctest.ELLIPSIS, report=args.report, verbose=args.verbose) + diff --git a/docs/doctest_info/process_results.py b/docs/doctest_info/process_results.py deleted file mode 100644 index 8b1378917..000000000 --- a/docs/doctest_info/process_results.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/doctest_info/run_all_doctests.sh b/docs/doctest_info/run_all_doctests.sh index 56d52f8d8..8298dc84c 100755 --- a/docs/doctest_info/run_all_doctests.sh +++ b/docs/doctest_info/run_all_doctests.sh @@ -8,4 +8,4 @@ MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" "vtk_ui") -for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r > "$module".results; done; \ No newline at end of file +for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r -l; done; \ No newline at end of file From d69364a0ece5ea36a8dd1bd3795a9186fbf45cb8 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 7 Dec 2016 12:02:49 -0800 Subject: [PATCH 09/45] Working on doctest scripts --- docs/doctest_info/doctest_vcs.py | 77 +++++++++---- docs/doctest_info/manageElements.md | 150 ++++++++++++++++++++++++++ docs/doctest_info/run_all_doctests.sh | 2 +- 3 files changed, 210 insertions(+), 19 deletions(-) create mode 100644 docs/doctest_info/manageElements.md diff --git a/docs/doctest_info/doctest_vcs.py b/docs/doctest_info/doctest_vcs.py index 4e9295794..9e4b8b97f 100644 --- a/docs/doctest_info/doctest_vcs.py +++ b/docs/doctest_info/doctest_vcs.py @@ -1,24 +1,55 @@ -import vcs, sys, doctest, argparse, importlib +import vcs, sys, doctest, argparse, importlib, re # TODO: add cleanup function # TODO: add args for only running cleanup, only logging missing doctests # *.png, filename.*, ex_*, example.* + + def log_stats(module_name, verbose): - import re - fp = open(module_name+".results") + # open .results file to read, and .md file to log + results = open(module_name+".results", "r+") log = open(module_name+'.md', 'w+') - missing_header = re.compile("[0-9]+ items had no tests:") + missing_header = re.compile("^[0-9]+ items had no tests:$") # missing tests will be followed by either passed all tests or "tests in items" entry - passing_header = re.compile("[0-9]+ items passed all tests:") - tests_in_items = re.compile("[0-9]+ tests in [0-9]+ items\.") - trying = re.compile("Trying:") - expecting_something = re.compile("Expecting:") - expecting_nothing = re.compile("Expecting nothing") + passing_header = re.compile("^[0-9]+ items passed all tests:$") + tests_in_items = re.compile("^[0-9]+ tests in [0-9]+ items\.$") + trying = re.compile("^Trying:$") + expecting_something = re.compile("^Expecting:$") + expecting_nothing = re.compile("^Expecting nothing$") err_header = re.compile('File "') err_indicator = re.compile('\*\*\*\*') - line = fp.readline() + line = results.readline() + if verbose: + err_endpoint = [trying] + missing_endpoints = [passing_header, tests_in_items] + else: + err_endpoint = [err_indicator] while line != '': + if re.match(err_header, line): + where = line.split()[-1] + log.write(where+"\n") + for i in range(len(where)): + log.write("-") + log.write("\n") + log.write("```python\n") + consume_entry(results, log, err_endpoint, "") + log.write("```\n\n") + if re.match(missing_header, line): + log.write("\nMissing Docstrings\n------------------\n") + consume_entry(results, log, missing_endpoints, "- [ ] ") + line = results.readline() + +# note: will only consume the first full error +def consume_entry(readfile, writefile, endpoints, prepend): + more = True + line = readfile.readline() + while more and line != '': + writefile.write(prepend + line) + line = readfile.readline() + for endpoint in endpoints: + if re.match(endpoint, line): + more = False # Make parser and add options @@ -28,15 +59,25 @@ def log_stats(module_name, verbose): help='Passing doctests logged. Report includes number of untested functions.') parser.add_argument('-r', '--report', action='store_true', default=False, help='Print a report after running tests.') parser.add_argument('-l', '--log', action='store_true', default=False, help='Log stats in a .md file.\nImplies -r.') -pkg_help="Supply a package name in which to look for the module.\nDefault is vcs." -parser.add_argument('-p', '--package', type=str, default='vcs', help=pkg_help) - +parser.add_argument('--LO', action='store_true', default=False, help='ONLY read .results and make .md log.') +parser.add_argument('-p', '--package', type=str, default='vcs', + help="Supply a package name in which to look for the module.\nDefault is vcs.") +parser.add_argument('-a', '--all', action="store_true", default=False, + help="Report all failures.\nIf not set, will report only the first failure in each doctest") # Check parser args args = parser.parse_args() -if args.log and not args.report: - args.report=True -# Import module and run doctests -m = importlib.import_module(args.package + '.' + args.module) -doctest.testmod(m, optionflags=doctest.ELLIPSIS, report=args.report, verbose=args.verbose) +if not args.LO: + if args.log and not args.report: + args.report=True + options=doctest.ELLIPSIS + if not args.all: + options=options|doctest.REPORT_ONLY_FIRST_FAILURE + # Import module and run doctests + m = importlib.import_module(args.package + '.' + args.module) + doctest.testmod(m, optionflags=options, report=args.report, verbose=args.verbose) + +if args.log or args.LO: + log_stats(args.module, args.verbose) +exit() diff --git a/docs/doctest_info/manageElements.md b/docs/doctest_info/manageElements.md new file mode 100644 index 000000000..6ab8046d4 --- /dev/null +++ b/docs/doctest_info/manageElements.md @@ -0,0 +1,150 @@ +vcs.manageElements.createprojection +----------------------------------- +```python +Failed example: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection + return projection.Proj(name, source) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ + self.type = src.type + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype + value = VCS_validation_functions.checkProjType(self, 'type', value) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType + checkedRaise(self, value, Exception, err) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise + raise ex(err) + Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +``` +vcs.manageElements.createprojection +----------------------------------- +```python +Failed example: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expected: + [...'projection_ex2'...] +Got: + ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] +``` +vcs.manageElements.createtext +----------------------------- +```python +Failed example: + vcs.show('textcombined') # show all available textcombined +Expected: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +Got: + *******************Textcombined Names List********************** + *******************End Textcombined Names List********************** +``` +vcs.manageElements.get3d_dual_scalar +------------------------------------ +```python +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +``` +vcs.manageElements.get3d_scalar +------------------------------- +```python +Failed example: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +``` +vcs.manageElements.get3d_vector +------------------------------- +```python +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +``` +vcs.manageElements.gettaylordiagram +----------------------------------- +```python +Failed example: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars +``` +vcs.manageElements.gettextcombined +---------------------------------- +```python +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +``` + +Missing Docstrings +------------------ +- [ ] vcs.manageElements +- [ ] vcs.manageElements.check_name_source +- [ ] vcs.manageElements.create1d +- [ ] vcs.manageElements.get1d +- [ ] vcs.manageElements.removeCp +- [ ] vcs.manageElements.removeG +- [ ] vcs.manageElements.removeG1d +- [ ] vcs.manageElements.removeGSp +- [ ] vcs.manageElements.removeGXY +- [ ] vcs.manageElements.removeGXy +- [ ] vcs.manageElements.removeGYx +- [ ] vcs.manageElements.removeGfb +- [ ] vcs.manageElements.removeGfi +- [ ] vcs.manageElements.removeGfm +- [ ] vcs.manageElements.removeGi +- [ ] vcs.manageElements.removeGtd +- [ ] vcs.manageElements.removeGv +- [ ] vcs.manageElements.removeP +- [ ] vcs.manageElements.removeProj +- [ ] vcs.manageElements.removeTc +- [ ] vcs.manageElements.removeTf +- [ ] vcs.manageElements.removeTl +- [ ] vcs.manageElements.removeTm +- [ ] vcs.manageElements.removeTo +- [ ] vcs.manageElements.removeTt +- [ ] vcs.manageElements.setLineAttributes diff --git a/docs/doctest_info/run_all_doctests.sh b/docs/doctest_info/run_all_doctests.sh index 8298dc84c..bd3866a38 100755 --- a/docs/doctest_info/run_all_doctests.sh +++ b/docs/doctest_info/run_all_doctests.sh @@ -8,4 +8,4 @@ MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" "vtk_ui") -for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r -l; done; \ No newline at end of file +for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r -l > "$module.report"; done; \ No newline at end of file From 09ad094fb77c6222e9e8ba076a50bc342d460630 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 7 Dec 2016 15:36:19 -0800 Subject: [PATCH 10/45] Working on improving doctest reporting --- docs/doctest_info/.colormap.results.swp | Bin 0 -> 16384 bytes docs/doctest_info/Canvas.md | 351 ++ .../{Canvas.results => Canvas.report} | 100 +- docs/doctest_info/Pboxeslines.md | 12 + ...Pboxeslines.results => Pboxeslines.report} | 0 docs/doctest_info/Pdata.md | 11 + .../{Pdata.results => Pdata.report} | 0 docs/doctest_info/Pformat.md | 14 + .../{Pformat.results => Pformat.report} | 0 docs/doctest_info/Plegend.md | 16 + .../{Plegend.results => Plegend.report} | 0 docs/doctest_info/Ptext.md | 11 + .../{Ptext.results => Ptext.report} | 0 docs/doctest_info/Pxlabels.md | 10 + .../{Pxlabels.results => Pxlabels.report} | 0 docs/doctest_info/Pxtickmarks.md | 10 + ...Pxtickmarks.results => Pxtickmarks.report} | 0 docs/doctest_info/Pylabels.md | 10 + .../{Pylabels.results => Pylabels.report} | 0 docs/doctest_info/Pytickmarks.md | 10 + ...Pytickmarks.results => Pytickmarks.report} | 0 docs/doctest_info/VTKAnimate.md | 26 + .../{VTKAnimate.results => VTKAnimate.report} | 0 docs/doctest_info/VTKPlots.md | 62 + .../{VTKPlots.results => VTKPlots.report} | 0 docs/doctest_info/animate_helper.md | 82 + ...e_helper.results => animate_helper.report} | 0 docs/doctest_info/boxfill.md | 99 + .../{boxfill.results => boxfill.report} | 0 docs/doctest_info/colormap.md | 20 + .../{colormap.results => colormap.report} | 36 +- docs/doctest_info/colorpicker.md | 16 + ...colorpicker.results => colorpicker.report} | 0 docs/doctest_info/colors.md | 4 + .../{colors.results => colors.report} | 0 docs/doctest_info/configurator.md | 54 + ...nfigurator.results => configurator.report} | 0 docs/doctest_info/displayplot.md | 43 + ...displayplot.results => displayplot.report} | 0 docs/doctest_info/doctest_timing | 5579 +++++++++++++++++ docs/doctest_info/doctest_timing.txt | Bin 0 -> 832056 bytes docs/doctest_info/doctest_vcs.py | 99 +- docs/doctest_info/dv3d.md | 97 + .../{dv3d.results => dv3d.report} | 0 docs/doctest_info/editors.md | 3 + .../{editors.results => editors.report} | 0 docs/doctest_info/error.md | 6 + .../{error.results => error.report} | 0 docs/doctest_info/fillarea.md | 36 + .../{fillarea.results => fillarea.report} | 0 docs/doctest_info/isofill.md | 101 + .../{isofill.results => isofill.report} | 4 - docs/doctest_info/isoline.md | 116 + .../{isoline.results => isoline.report} | 0 docs/doctest_info/line.md | 38 + .../{line.results => line.report} | 0 docs/doctest_info/log_all_doctests.sh | 11 + docs/doctest_info/manageElements.md | 79 +- ...Elements.results => manageElements.report} | 74 +- docs/doctest_info/marker.md | 38 + .../{marker.results => marker.report} | 0 docs/doctest_info/meshfill.md | 107 + .../{meshfill.results => meshfill.report} | 4 - docs/doctest_info/projection.md | 114 + .../{projection.results => projection.report} | 0 docs/doctest_info/queries.md | 14 + .../{queries.results => queries.report} | 0 docs/doctest_info/run_all_doctests.sh | 3 +- docs/doctest_info/sample.png | Bin 0 -> 7618 bytes docs/doctest_info/taylor.md | 135 + .../{taylor.results => taylor.report} | 0 docs/doctest_info/template.md | 150 + .../{template.results => template.report} | 74 - docs/doctest_info/textcombined.md | 16 + ...xtcombined.results => textcombined.report} | 4 - docs/doctest_info/textorientation.md | 25 + ...ntation.results => textorientation.report} | 0 docs/doctest_info/texttable.md | 16 + .../{texttable.results => texttable.report} | 4 - docs/doctest_info/unified1D.md | 98 + .../{unified1D.results => unified1D.report} | 0 docs/doctest_info/utils.md | 44 + .../{utils.results => utils.report} | 10 - .../{elp.results => validation_functions.md} | 0 ...tk.results => validation_functions.report} | 0 .../doctest_info/validation_functions.results | 0 docs/doctest_info/vcs2vtk.md | 45 + docs/doctest_info/vcs2vtk.report | 47 + docs/doctest_info/vcshelp.md | 98 + docs/doctest_info/vcshelp.report | 115 + docs/doctest_info/vcsvtk.md | 3 + docs/doctest_info/vcsvtk.report | 5 + docs/doctest_info/vector.md | 10 + .../{vector.results => vector.report} | 4 - docs/doctest_info/vtk.results | 0 docs/doctest_info/vtk_ui.md | 3 + .../{vtk_ui.results => vtk_ui.report} | 0 97 files changed, 8087 insertions(+), 339 deletions(-) create mode 100644 docs/doctest_info/.colormap.results.swp create mode 100644 docs/doctest_info/Canvas.md rename docs/doctest_info/{Canvas.results => Canvas.report} (95%) create mode 100644 docs/doctest_info/Pboxeslines.md rename docs/doctest_info/{Pboxeslines.results => Pboxeslines.report} (100%) create mode 100644 docs/doctest_info/Pdata.md rename docs/doctest_info/{Pdata.results => Pdata.report} (100%) create mode 100644 docs/doctest_info/Pformat.md rename docs/doctest_info/{Pformat.results => Pformat.report} (100%) create mode 100644 docs/doctest_info/Plegend.md rename docs/doctest_info/{Plegend.results => Plegend.report} (100%) create mode 100644 docs/doctest_info/Ptext.md rename docs/doctest_info/{Ptext.results => Ptext.report} (100%) create mode 100644 docs/doctest_info/Pxlabels.md rename docs/doctest_info/{Pxlabels.results => Pxlabels.report} (100%) create mode 100644 docs/doctest_info/Pxtickmarks.md rename docs/doctest_info/{Pxtickmarks.results => Pxtickmarks.report} (100%) create mode 100644 docs/doctest_info/Pylabels.md rename docs/doctest_info/{Pylabels.results => Pylabels.report} (100%) create mode 100644 docs/doctest_info/Pytickmarks.md rename docs/doctest_info/{Pytickmarks.results => Pytickmarks.report} (100%) create mode 100644 docs/doctest_info/VTKAnimate.md rename docs/doctest_info/{VTKAnimate.results => VTKAnimate.report} (100%) create mode 100644 docs/doctest_info/VTKPlots.md rename docs/doctest_info/{VTKPlots.results => VTKPlots.report} (100%) create mode 100644 docs/doctest_info/animate_helper.md rename docs/doctest_info/{animate_helper.results => animate_helper.report} (100%) create mode 100644 docs/doctest_info/boxfill.md rename docs/doctest_info/{boxfill.results => boxfill.report} (100%) create mode 100644 docs/doctest_info/colormap.md rename docs/doctest_info/{colormap.results => colormap.report} (65%) create mode 100644 docs/doctest_info/colorpicker.md rename docs/doctest_info/{colorpicker.results => colorpicker.report} (100%) create mode 100644 docs/doctest_info/colors.md rename docs/doctest_info/{colors.results => colors.report} (100%) create mode 100644 docs/doctest_info/configurator.md rename docs/doctest_info/{configurator.results => configurator.report} (100%) create mode 100644 docs/doctest_info/displayplot.md rename docs/doctest_info/{displayplot.results => displayplot.report} (100%) create mode 100644 docs/doctest_info/doctest_timing create mode 100644 docs/doctest_info/doctest_timing.txt create mode 100644 docs/doctest_info/dv3d.md rename docs/doctest_info/{dv3d.results => dv3d.report} (100%) create mode 100644 docs/doctest_info/editors.md rename docs/doctest_info/{editors.results => editors.report} (100%) create mode 100644 docs/doctest_info/error.md rename docs/doctest_info/{error.results => error.report} (100%) create mode 100644 docs/doctest_info/fillarea.md rename docs/doctest_info/{fillarea.results => fillarea.report} (100%) create mode 100644 docs/doctest_info/isofill.md rename docs/doctest_info/{isofill.results => isofill.report} (97%) create mode 100644 docs/doctest_info/isoline.md rename docs/doctest_info/{isoline.results => isoline.report} (100%) create mode 100644 docs/doctest_info/line.md rename docs/doctest_info/{line.results => line.report} (100%) create mode 100755 docs/doctest_info/log_all_doctests.sh rename docs/doctest_info/{manageElements.results => manageElements.report} (95%) create mode 100644 docs/doctest_info/marker.md rename docs/doctest_info/{marker.results => marker.report} (100%) create mode 100644 docs/doctest_info/meshfill.md rename docs/doctest_info/{meshfill.results => meshfill.report} (97%) create mode 100644 docs/doctest_info/projection.md rename docs/doctest_info/{projection.results => projection.report} (100%) create mode 100644 docs/doctest_info/queries.md rename docs/doctest_info/{queries.results => queries.report} (100%) create mode 100644 docs/doctest_info/sample.png create mode 100644 docs/doctest_info/taylor.md rename docs/doctest_info/{taylor.results => taylor.report} (100%) create mode 100644 docs/doctest_info/template.md rename docs/doctest_info/{template.results => template.report} (69%) create mode 100644 docs/doctest_info/textcombined.md rename docs/doctest_info/{textcombined.results => textcombined.report} (97%) create mode 100644 docs/doctest_info/textorientation.md rename docs/doctest_info/{textorientation.results => textorientation.report} (100%) create mode 100644 docs/doctest_info/texttable.md rename docs/doctest_info/{texttable.results => texttable.report} (96%) create mode 100644 docs/doctest_info/unified1D.md rename docs/doctest_info/{unified1D.results => unified1D.report} (100%) create mode 100644 docs/doctest_info/utils.md rename docs/doctest_info/{utils.results => utils.report} (98%) rename docs/doctest_info/{elp.results => validation_functions.md} (100%) rename docs/doctest_info/{tk.results => validation_functions.report} (100%) delete mode 100644 docs/doctest_info/validation_functions.results create mode 100644 docs/doctest_info/vcs2vtk.md create mode 100644 docs/doctest_info/vcs2vtk.report create mode 100644 docs/doctest_info/vcshelp.md create mode 100644 docs/doctest_info/vcshelp.report create mode 100644 docs/doctest_info/vcsvtk.md create mode 100644 docs/doctest_info/vcsvtk.report create mode 100644 docs/doctest_info/vector.md rename docs/doctest_info/{vector.results => vector.report} (97%) delete mode 100644 docs/doctest_info/vtk.results create mode 100644 docs/doctest_info/vtk_ui.md rename docs/doctest_info/{vtk_ui.results => vtk_ui.report} (100%) diff --git a/docs/doctest_info/.colormap.results.swp b/docs/doctest_info/.colormap.results.swp new file mode 100644 index 0000000000000000000000000000000000000000..696dfc1c3a03e06f997689d8ecc895cca5fdae26 GIT binary patch literal 16384 zcmeI3%WvF79LJ|mC{P{+A)#J|l(HLSyzAZO(a;99Q5ykjp(I6AX<5zMvl};FkL8)o zLkJKO7fxJy;>rb%6+KY#s00!RkSh2S5H~7u;Q|5#-?6>UZn9|_B^0Q}(x;Ah9{$aD ze)AiTJ*}5tdF~V)v8x2fgM{ooKKbg;F9_0-gw$iP5LU~hI_YLdQwD;CJRWMOu(;FCn+vf%?}%*dhqkvJsC}0#Y3K#{9 z0!D%VpaRSzM6dPV)&Jo8e`o#w>jQ**53YgFz!eaJ^WYpf1D*u?!EUev{C+) zGWZC*4t&r6uYrfaUwaAp1dIb4{BR#3-+^y|08Q{H*a^0Q-|j^^_yT+iJ_ao?10DgF z?jhtIFb*uR3w*eTkhj4QxN$cj3LF8S;|0b=@Y8NW-UsKv8L%Jh0blMS zsov-ysUK48fUxtu4ik~xMspe#pI~Mv6lxYUOhGC>|RrnIOts55D2wwr;d_ujH} zR`OVu^1VPTWUdH3R^s8jELH5$QsCE1(UO`KVZ|Ql?EkT&rQC+9GnAN7tHtdwv0*x9 zF0V6pjuu-&DjIVayNRf)$40=U8XO}h7F{0c?L{^?Kj_BEx2uyp9r|#wI;iqb7&;#GIy4{b2UAFYf`jhH;rl($3&F; zY<2$7v6&vFs|pnRWwa0tvMq3h+tws!csTV#7agQ{$AC;x^bl9=IGeM2a`bJ&R+~M+ z!g~}iCO236Gz4dMZ*z);Y)BU%GNLTQ{=$NepA$(nl;!T5)wGca>fG58 zbaQgv)`*%;VE=AJ-JD#V2rK5+2-*zw>jvuQkz$Vr<5!xF7qV_Ge9@L}>_@6tXkfr9kR*8745*&`8`A=4^KpsLg`svPh*&$yJxXJO+kf8OO8bm z4?U^`?0+eF=Adb-v&m_>B`82{r>EipuHQ-^weFvt^|wr~TX3?YEMMFpE+_6fi3ip! z058Yfb*o}Wdwl*Bo6|m-dVA+t0o}YH;yJqDtJ&NqF^;rb&QyjiTDE8vlZR6-UsxVo zT~CTw0VLC(UWXO&n0tU~W4oWO*R^x=)6crMSRq9|f%O^wdi{SLYjVAY*X#ez_x-E5 z{s6oI^jiNJ@C4BLb^&u31&jhl0i%FXz$jo8FbWt2i~>dhqkvK1|EB;xp-kgz6;0po z;0oVj8~D!C#(y)n$w>aC6>o~t1n$|yDKCGobw<8wo30lKI4j2hdj7eIdltUOIW literal 0 HcmV?d00001 diff --git a/docs/doctest_info/Canvas.md b/docs/doctest_info/Canvas.md new file mode 100644 index 000000000..9c48f7dd8 --- /dev/null +++ b/docs/doctest_info/Canvas.md @@ -0,0 +1,351 @@ +vcs.Canvas.Canvas.createprojection +---------------------------------- +```python +Failed example: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection + return projection.Proj(name, source) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ + self.type = src.type + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype + value = VCS_validation_functions.checkProjType(self, 'type', value) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType + checkedRaise(self, value, Exception, err) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise + raise ex(err) + Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +``` + +vcs.Canvas.Canvas.drawtext +-------------------------- +```python +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +``` + +vcs.Canvas.Canvas.ffmpeg +------------------------ +```python +Failed example: + for i in range(10): # create a number of pngs to use for an mpeg + a.clear() + if (i%2): + a.plot(u,v) + else: + a.plot(v,u) + a.png('my_png__%i' % i) + png_files.append('my_png__%i.png' % i) +Expected nothing +Got: + + + + + + + + + + +``` + +vcs.Canvas.Canvas.get3d_dual_scalar +----------------------------------- +```python +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +``` + +vcs.Canvas.Canvas.get3d_scalar +------------------------------ +```python +Failed example: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +``` + +vcs.Canvas.Canvas.get3d_vector +------------------------------ +```python +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +``` + +vcs.Canvas.Canvas.gettaylordiagram +---------------------------------- +```python +Failed example: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars +``` + +vcs.Canvas.Canvas.gettextcombined +--------------------------------- +```python +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +``` + +vcs.Canvas.Canvas.objecthelp +---------------------------- +```python +Failed example: + a.objecthelp(ln) # This will print out information on how to use ln +Expected nothing +Got: + + The Line object allows the manipulation of line type, width, color index, + view port, world coordinates, and (x,y) points. + + This class is used to define an line table entry used in VCS, or it + can be used to change some or all of the line attributes in an + existing line table entry. + + .. describe:: Useful Functions: + + .. code-block:: python + + # VCS Canvas Constructor + a=vcs.init() + # Show predefined line objects + a.show('line') + # Will list all the line attribute values + ln.list() + # Updates the VCS Canvas at user's request + a.update() + + .. describe:: Create a new instance of line: + + .. code-block:: python + + # Copies content of 'red' to 'new' + ln=a.createline('new','red') + # Copies content of 'default' to 'new' + ln=a.createline('new') + + .. describe:: Modify an existing line: + + * Get a line object 'ln' to manipulate: + + .. code-block:: python + + ln=a.getline('red') + + * Set line color: + + .. code-block:: python + + # Range from 1 to 256 + ln.color=100 + + * Set line width: + + .. code-block:: python + + # Range from 1 to 300 + ln.width=100 + + * Specify the line type: + + .. code-block:: python + + # Same as ln.type=0 + ln.type='solid' + # Same as ln.type=1 + ln.type='dash' + # Same as ln.type=2 + ln.type='dot' + # Same as ln.type=3 + ln.type='dash-dot' + # Same as ln.type=4 + ln.type='long-dash' + + * Set the graphics priority on the canvas: + + .. code-block:: python + + ln.priority=1 + # FloatType [0,1]x[0,1] + ln.viewport=[0, 1.0, 0,1.0] + # FloatType [#,#]x[#,#] + ln.worldcoordinate=[0,1.0,0,1.0] + + * Set line x and y values: + + .. code-block:: python + + # List of FloatTypes + ln.x=[[0,.1,.2], [.3,.4,.5]] + # List of FloatTypes + ln.y=[[.5,.4,.3], [.2,.1,0]] + +``` + +Missing Doctests +---------------- +:x: vcs.Canvas +:x: vcs.Canvas.Canvas +:x: vcs.Canvas.Canvas._Canvas__new_elts +:x: vcs.Canvas.Canvas._Canvas__plot +:x: vcs.Canvas.Canvas.__init__ +:x: vcs.Canvas.Canvas._compute_margins +:x: vcs.Canvas.Canvas._compute_width_height +:x: vcs.Canvas.Canvas._continentspath +:x: vcs.Canvas.Canvas._datawc_tv +:x: vcs.Canvas.Canvas._get_user_actions +:x: vcs.Canvas.Canvas._get_user_actions_names +:x: vcs.Canvas.Canvas._getanimate +:x: vcs.Canvas.Canvas._getanimate_info +:x: vcs.Canvas.Canvas._getcanvas +:x: vcs.Canvas.Canvas._getisplottinggridded +:x: vcs.Canvas.Canvas._getmode +:x: vcs.Canvas.Canvas._getpausetime +:x: vcs.Canvas.Canvas._getvarglist +:x: vcs.Canvas.Canvas._getviewport +:x: vcs.Canvas.Canvas._getwinfo_id +:x: vcs.Canvas.Canvas._getworldcoordinate +:x: vcs.Canvas.Canvas._reconstruct_tv +:x: vcs.Canvas.Canvas._scriptrun +:x: vcs.Canvas.Canvas._set_user_actions +:x: vcs.Canvas.Canvas._set_user_actions_names +:x: vcs.Canvas.Canvas._setanimate +:x: vcs.Canvas.Canvas._setanimate_info +:x: vcs.Canvas.Canvas._setcanvas +:x: vcs.Canvas.Canvas._setisplottinggridded +:x: vcs.Canvas.Canvas._setmode +:x: vcs.Canvas.Canvas._setpausetime +:x: vcs.Canvas.Canvas._setvarglist +:x: vcs.Canvas.Canvas._setviewport +:x: vcs.Canvas.Canvas._setwinfo_id +:x: vcs.Canvas.Canvas._setworldcoordinate +:x: vcs.Canvas.Canvas.addfont +:x: vcs.Canvas.Canvas.animate +:x: vcs.Canvas.Canvas.animate_info +:x: vcs.Canvas.Canvas.canvas +:x: vcs.Canvas.Canvas.canvasid +:x: vcs.Canvas.Canvas.canvasinfo +:x: vcs.Canvas.Canvas.cgm +:x: vcs.Canvas.Canvas.change_display_graphic_method +:x: vcs.Canvas.Canvas.check_name_source +:x: vcs.Canvas.Canvas.clean_auto_generated_objects +:x: vcs.Canvas.Canvas.configure +:x: vcs.Canvas.Canvas.copyfontto +:x: vcs.Canvas.Canvas.create1d +:x: vcs.Canvas.Canvas.dual_scalar3d +:x: vcs.Canvas.Canvas.dummy_user_action +:x: vcs.Canvas.Canvas.endconfigure +:x: vcs.Canvas.Canvas.get1d +:x: vcs.Canvas.Canvas.get_selected_display +:x: vcs.Canvas.Canvas.getantialiasing +:x: vcs.Canvas.Canvas.getcolormapname +:x: vcs.Canvas.Canvas.getcontinentsline +:x: vcs.Canvas.Canvas.getfontname +:x: vcs.Canvas.Canvas.getfontnumber +:x: vcs.Canvas.Canvas.getplot +:x: vcs.Canvas.Canvas.gif +:x: vcs.Canvas.Canvas.grid +:x: vcs.Canvas.Canvas.gs +:x: vcs.Canvas.Canvas.initLogoDrawing +:x: vcs.Canvas.Canvas.interact +:x: vcs.Canvas.Canvas.isinfile +:x: vcs.Canvas.Canvas.isopened +:x: vcs.Canvas.Canvas.isplottinggridded +:x: vcs.Canvas.Canvas.match_color +:x: vcs.Canvas.Canvas.mode +:x: vcs.Canvas.Canvas.onClosing +:x: vcs.Canvas.Canvas.pause_time +:x: vcs.Canvas.Canvas.plot_annotation +:x: vcs.Canvas.Canvas.plot_filledcontinents +:x: vcs.Canvas.Canvas.processParameterChange +:x: vcs.Canvas.Canvas.put_png_on_canvas +:x: vcs.Canvas.Canvas.raisecanvas +:x: vcs.Canvas.Canvas.removeP +:x: vcs.Canvas.Canvas.remove_display_name +:x: vcs.Canvas.Canvas.return_display_names +:x: vcs.Canvas.Canvas.savecontinentstype +:x: vcs.Canvas.Canvas.scalar3d +:x: vcs.Canvas.Canvas.scriptrun +:x: vcs.Canvas.Canvas.setAnimationStepper +:x: vcs.Canvas.Canvas.setantialiasing +:x: vcs.Canvas.Canvas.setdefaultfont +:x: vcs.Canvas.Canvas.show +:x: vcs.Canvas.Canvas.start +:x: vcs.Canvas.Canvas.switchfonts +:x: vcs.Canvas.Canvas.updateorientation +:x: vcs.Canvas.Canvas.user_actions +:x: vcs.Canvas.Canvas.user_actions_names +:x: vcs.Canvas.Canvas.varglist +:x: vcs.Canvas.Canvas.vector3d +:x: vcs.Canvas.Canvas.viewport +:x: vcs.Canvas.Canvas.winfo_id +:x: vcs.Canvas.Canvas.worldcoordinate +:x: vcs.Canvas.SIGNAL +:x: vcs.Canvas.SIGNAL.__call__ +:x: vcs.Canvas.SIGNAL.__init__ +:x: vcs.Canvas.SIGNAL.clear +:x: vcs.Canvas.SIGNAL.connect +:x: vcs.Canvas.SIGNAL.disconnect +:x: vcs.Canvas._determine_arg_list +:x: vcs.Canvas._process_keyword +:x: vcs.Canvas.change_date_time +:x: vcs.Canvas.dictionarytovcslist diff --git a/docs/doctest_info/Canvas.results b/docs/doctest_info/Canvas.report similarity index 95% rename from docs/doctest_info/Canvas.results rename to docs/doctest_info/Canvas.report index 02c5a104e..fa642f0f2 100644 --- a/docs/doctest_info/Canvas.results +++ b/docs/doctest_info/Canvas.report @@ -378,18 +378,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise raise ex(err) Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) -Trying: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection -Expecting: - [...'projection_ex2'...] -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1208, in vcs.Canvas.Canvas.createprojection -Failed example: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection -Expected: - [...'projection_ex2'...] -Got: - ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] Trying: vcs.show('scatter') # show all available scatter Expecting: @@ -717,20 +705,11 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error texttable object named EXAMPLE_tt already exists -Trying: - tc=a.drawtextcombined(Tt_name = 'EXAMPLE_tt', To_name='EXAMPLE_tto', - string='Hello example!', spacing=5, - color=242, priority=1, viewport=[0, 1.0, 0, 1.0], - worldcoordinate=[0,100, 0,50], - x=[0,20,40,60,80,100], - y=[0,10,20,30,40,50]) # plot textcombined object on canvas -Expecting nothing -ok Trying: a=vcs.init() Expecting nothing @@ -815,48 +794,16 @@ Failed example: png_files.append('my_png__%i.png' % i) Expected nothing Got: - - - - - - - - - - -Trying: - a.ffmpeg('mymovie.mpeg',png_files) # generates from list of files -Expecting: - True -ok -Trying: - a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex -Expecting: - True -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4515, in vcs.Canvas.Canvas.ffmpeg -Failed example: - a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4594, in ffmpeg - if test_file is not False: - UnboundLocalError: local variable 'test_file' referenced before assignment -Trying: - a.ffmpeg('mymovie.mpeg',png_files,bitrate=512) # generates mpeg at 512kbit -Expecting: - True -ok -Trying: - a.ffmpeg('mymovie.mpeg',png_files,rate=50) # generates movie with 50 frame per second -Expecting: - True -ok + + + + + + + + + + Trying: a=vcs.init() Expecting nothing @@ -972,7 +919,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1010,7 +957,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1054,7 +1001,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1560,20 +1507,11 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error texttable object named EXAMPLE_tt already exists -Trying: - ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method -Expecting nothing -ok -Trying: - a.textcombined(ex) # plot using specified textcombined object -Expecting: - -ok Trying: a=vcs.init() Expecting nothing @@ -3103,13 +3041,13 @@ ok 9 items had failures: 2 of 5 in vcs.Canvas.Canvas.createprojection 1 of 4 in vcs.Canvas.Canvas.drawtext - 2 of 11 in vcs.Canvas.Canvas.ffmpeg + 1 of 10 in vcs.Canvas.Canvas.ffmpeg 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram 1 of 5 in vcs.Canvas.Canvas.gettextcombined 1 of 3 in vcs.Canvas.Canvas.objecthelp -592 tests in 205 items. -581 passed and 11 failed. -***Test Failed*** 11 failures. +591 tests in 205 items. +581 passed and 10 failed. +***Test Failed*** 10 failures. diff --git a/docs/doctest_info/Pboxeslines.md b/docs/doctest_info/Pboxeslines.md new file mode 100644 index 000000000..c769d95bd --- /dev/null +++ b/docs/doctest_info/Pboxeslines.md @@ -0,0 +1,12 @@ +Missing Doctests +---------------- +:x: vcs.Pboxeslines +:x: vcs.Pboxeslines.Pbl +:x: vcs.Pboxeslines.Pbl.__init__ +:x: vcs.Pboxeslines.Pbl.line +:x: vcs.Pboxeslines.Pbl.list +:x: vcs.Pboxeslines.Pbl.priority +:x: vcs.Pboxeslines.Pbl.x1 +:x: vcs.Pboxeslines.Pbl.x2 +:x: vcs.Pboxeslines.Pbl.y1 +:x: vcs.Pboxeslines.Pbl.y2 diff --git a/docs/doctest_info/Pboxeslines.results b/docs/doctest_info/Pboxeslines.report similarity index 100% rename from docs/doctest_info/Pboxeslines.results rename to docs/doctest_info/Pboxeslines.report diff --git a/docs/doctest_info/Pdata.md b/docs/doctest_info/Pdata.md new file mode 100644 index 000000000..dd1e50094 --- /dev/null +++ b/docs/doctest_info/Pdata.md @@ -0,0 +1,11 @@ +Missing Doctests +---------------- +:x: vcs.Pdata +:x: vcs.Pdata.Pds +:x: vcs.Pdata.Pds.__init__ +:x: vcs.Pdata.Pds.list +:x: vcs.Pdata.Pds.priority +:x: vcs.Pdata.Pds.x1 +:x: vcs.Pdata.Pds.x2 +:x: vcs.Pdata.Pds.y1 +:x: vcs.Pdata.Pds.y2 diff --git a/docs/doctest_info/Pdata.results b/docs/doctest_info/Pdata.report similarity index 100% rename from docs/doctest_info/Pdata.results rename to docs/doctest_info/Pdata.report diff --git a/docs/doctest_info/Pformat.md b/docs/doctest_info/Pformat.md new file mode 100644 index 000000000..33eabece7 --- /dev/null +++ b/docs/doctest_info/Pformat.md @@ -0,0 +1,14 @@ +Missing Doctests +---------------- +:x: vcs.Pformat +:x: vcs.Pformat.Pf +:x: vcs.Pformat.Pf.__init__ +:x: vcs.Pformat.Pf._getformat +:x: vcs.Pformat.Pf._setformat +:x: vcs.Pformat.Pf.format +:x: vcs.Pformat.Pf.list +:x: vcs.Pformat.Pf.priority +:x: vcs.Pformat.Pf.textorientation +:x: vcs.Pformat.Pf.texttable +:x: vcs.Pformat.Pf.x +:x: vcs.Pformat.Pf.y diff --git a/docs/doctest_info/Pformat.results b/docs/doctest_info/Pformat.report similarity index 100% rename from docs/doctest_info/Pformat.results rename to docs/doctest_info/Pformat.report diff --git a/docs/doctest_info/Plegend.md b/docs/doctest_info/Plegend.md new file mode 100644 index 000000000..f6752b1ef --- /dev/null +++ b/docs/doctest_info/Plegend.md @@ -0,0 +1,16 @@ +Missing Doctests +---------------- +:x: vcs.Plegend +:x: vcs.Plegend.Pls +:x: vcs.Plegend.Pls.__init__ +:x: vcs.Plegend.Pls.arrow +:x: vcs.Plegend.Pls.line +:x: vcs.Plegend.Pls.list +:x: vcs.Plegend.Pls.offset +:x: vcs.Plegend.Pls.priority +:x: vcs.Plegend.Pls.textorientation +:x: vcs.Plegend.Pls.texttable +:x: vcs.Plegend.Pls.x1 +:x: vcs.Plegend.Pls.x2 +:x: vcs.Plegend.Pls.y1 +:x: vcs.Plegend.Pls.y2 diff --git a/docs/doctest_info/Plegend.results b/docs/doctest_info/Plegend.report similarity index 100% rename from docs/doctest_info/Plegend.results rename to docs/doctest_info/Plegend.report diff --git a/docs/doctest_info/Ptext.md b/docs/doctest_info/Ptext.md new file mode 100644 index 000000000..95a830b09 --- /dev/null +++ b/docs/doctest_info/Ptext.md @@ -0,0 +1,11 @@ +Missing Doctests +---------------- +:x: vcs.Ptext +:x: vcs.Ptext.Pt +:x: vcs.Ptext.Pt.__init__ +:x: vcs.Ptext.Pt.list +:x: vcs.Ptext.Pt.priority +:x: vcs.Ptext.Pt.textorientation +:x: vcs.Ptext.Pt.texttable +:x: vcs.Ptext.Pt.x +:x: vcs.Ptext.Pt.y diff --git a/docs/doctest_info/Ptext.results b/docs/doctest_info/Ptext.report similarity index 100% rename from docs/doctest_info/Ptext.results rename to docs/doctest_info/Ptext.report diff --git a/docs/doctest_info/Pxlabels.md b/docs/doctest_info/Pxlabels.md new file mode 100644 index 000000000..e51af6c17 --- /dev/null +++ b/docs/doctest_info/Pxlabels.md @@ -0,0 +1,10 @@ +Missing Doctests +---------------- +:x: vcs.Pxlabels +:x: vcs.Pxlabels.Pxl +:x: vcs.Pxlabels.Pxl.__init__ +:x: vcs.Pxlabels.Pxl.list +:x: vcs.Pxlabels.Pxl.priority +:x: vcs.Pxlabels.Pxl.textorientation +:x: vcs.Pxlabels.Pxl.texttable +:x: vcs.Pxlabels.Pxl.y diff --git a/docs/doctest_info/Pxlabels.results b/docs/doctest_info/Pxlabels.report similarity index 100% rename from docs/doctest_info/Pxlabels.results rename to docs/doctest_info/Pxlabels.report diff --git a/docs/doctest_info/Pxtickmarks.md b/docs/doctest_info/Pxtickmarks.md new file mode 100644 index 000000000..7fe13151a --- /dev/null +++ b/docs/doctest_info/Pxtickmarks.md @@ -0,0 +1,10 @@ +Missing Doctests +---------------- +:x: vcs.Pxtickmarks +:x: vcs.Pxtickmarks.Pxt +:x: vcs.Pxtickmarks.Pxt.__init__ +:x: vcs.Pxtickmarks.Pxt.line +:x: vcs.Pxtickmarks.Pxt.list +:x: vcs.Pxtickmarks.Pxt.priority +:x: vcs.Pxtickmarks.Pxt.y1 +:x: vcs.Pxtickmarks.Pxt.y2 diff --git a/docs/doctest_info/Pxtickmarks.results b/docs/doctest_info/Pxtickmarks.report similarity index 100% rename from docs/doctest_info/Pxtickmarks.results rename to docs/doctest_info/Pxtickmarks.report diff --git a/docs/doctest_info/Pylabels.md b/docs/doctest_info/Pylabels.md new file mode 100644 index 000000000..d31a05a1b --- /dev/null +++ b/docs/doctest_info/Pylabels.md @@ -0,0 +1,10 @@ +Missing Doctests +---------------- +:x: vcs.Pylabels +:x: vcs.Pylabels.Pyl +:x: vcs.Pylabels.Pyl.__init__ +:x: vcs.Pylabels.Pyl.list +:x: vcs.Pylabels.Pyl.priority +:x: vcs.Pylabels.Pyl.textorientation +:x: vcs.Pylabels.Pyl.texttable +:x: vcs.Pylabels.Pyl.x diff --git a/docs/doctest_info/Pylabels.results b/docs/doctest_info/Pylabels.report similarity index 100% rename from docs/doctest_info/Pylabels.results rename to docs/doctest_info/Pylabels.report diff --git a/docs/doctest_info/Pytickmarks.md b/docs/doctest_info/Pytickmarks.md new file mode 100644 index 000000000..802b97d87 --- /dev/null +++ b/docs/doctest_info/Pytickmarks.md @@ -0,0 +1,10 @@ +Missing Doctests +---------------- +:x: vcs.Pytickmarks +:x: vcs.Pytickmarks.Pyt +:x: vcs.Pytickmarks.Pyt.__init__ +:x: vcs.Pytickmarks.Pyt.line +:x: vcs.Pytickmarks.Pyt.list +:x: vcs.Pytickmarks.Pyt.priority +:x: vcs.Pytickmarks.Pyt.x1 +:x: vcs.Pytickmarks.Pyt.x2 diff --git a/docs/doctest_info/Pytickmarks.results b/docs/doctest_info/Pytickmarks.report similarity index 100% rename from docs/doctest_info/Pytickmarks.results rename to docs/doctest_info/Pytickmarks.report diff --git a/docs/doctest_info/VTKAnimate.md b/docs/doctest_info/VTKAnimate.md new file mode 100644 index 000000000..1e2f1284c --- /dev/null +++ b/docs/doctest_info/VTKAnimate.md @@ -0,0 +1,26 @@ +Missing Doctests +---------------- +:x: vcs.VTKAnimate +:x: vcs.VTKAnimate.VTKAnimate +:x: vcs.VTKAnimate.VTKAnimate.__init__ +:x: vcs.VTKAnimate.VTKAnimate.draw_frame +:x: vcs.VTKAnimate.VTKAnimate.extract_renderers +:x: vcs.VTKAnimate.VTKAnimate.frame +:x: vcs.VTKAnimate.VTKAnimate.modified +:x: vcs.VTKAnimate.VTKAnimate.plot_to_canvas +:x: vcs.VTKAnimate.VTKAnimate.reclaim_renderers +:x: vcs.VTKAnimate.VTKAnimate.reset +:x: vcs.VTKAnimate.VTKAnimate.stop +:x: vcs.VTKAnimate.VTKAnimationCreate +:x: vcs.VTKAnimate.VTKAnimationCreate.__init__ +:x: vcs.VTKAnimate.VTKAnimationCreate.close +:x: vcs.VTKAnimate.VTKAnimationCreate.create_prefix +:x: vcs.VTKAnimate.VTKAnimationCreate.describe +:x: vcs.VTKAnimate.VTKAnimationCreate.draw_frame +:x: vcs.VTKAnimate.VTKAnimationCreate.get_frame +:x: vcs.VTKAnimate.VTKAnimationCreate.get_frame_name +:x: vcs.VTKAnimate.VTKAnimationCreate.run +:x: vcs.VTKAnimate.VTKAnimationPlayback +:x: vcs.VTKAnimate.VTKAnimationPlayback.__init__ +:x: vcs.VTKAnimate.VTKAnimationPlayback.run +:x: vcs.VTKAnimate.update_input diff --git a/docs/doctest_info/VTKAnimate.results b/docs/doctest_info/VTKAnimate.report similarity index 100% rename from docs/doctest_info/VTKAnimate.results rename to docs/doctest_info/VTKAnimate.report diff --git a/docs/doctest_info/VTKPlots.md b/docs/doctest_info/VTKPlots.md new file mode 100644 index 000000000..585bf1ab0 --- /dev/null +++ b/docs/doctest_info/VTKPlots.md @@ -0,0 +1,62 @@ +Missing Doctests +---------------- +:x: vcs.VTKPlots +:x: vcs.VTKPlots.VCSInteractorStyle +:x: vcs.VTKPlots.VCSInteractorStyle.__init__ +:x: vcs.VTKPlots.VTKVCSBackend +:x: vcs.VTKPlots.VTKVCSBackend.Animate +:x: vcs.VTKPlots.VTKVCSBackend.__init__ +:x: vcs.VTKPlots.VTKVCSBackend.canvasinfo +:x: vcs.VTKPlots.VTKVCSBackend.cgm +:x: vcs.VTKPlots.VTKVCSBackend.cleanupData +:x: vcs.VTKPlots.VTKVCSBackend.clear +:x: vcs.VTKPlots.VTKVCSBackend.close +:x: vcs.VTKPlots.VTKVCSBackend.configureEvent +:x: vcs.VTKPlots.VTKVCSBackend.createDefaultInteractor +:x: vcs.VTKPlots.VTKVCSBackend.createLogo +:x: vcs.VTKPlots.VTKVCSBackend.createRenWin +:x: vcs.VTKPlots.VTKVCSBackend.createRenderer +:x: vcs.VTKPlots.VTKVCSBackend.endEvent +:x: vcs.VTKPlots.VTKVCSBackend.fitToViewport +:x: vcs.VTKPlots.VTKVCSBackend.flush +:x: vcs.VTKPlots.VTKVCSBackend.geometry +:x: vcs.VTKPlots.VTKVCSBackend.get3DPlot +:x: vcs.VTKPlots.VTKVCSBackend.getantialiasing +:x: vcs.VTKPlots.VTKVCSBackend.gettextextent +:x: vcs.VTKPlots.VTKVCSBackend.gif +:x: vcs.VTKPlots.VTKVCSBackend.hideGUI +:x: vcs.VTKPlots.VTKVCSBackend.initialSize +:x: vcs.VTKPlots.VTKVCSBackend.interact +:x: vcs.VTKPlots.VTKVCSBackend.isopened +:x: vcs.VTKPlots.VTKVCSBackend.landscape +:x: vcs.VTKPlots.VTKVCSBackend.leftButtonPressEvent +:x: vcs.VTKPlots.VTKVCSBackend.leftButtonReleaseEvent +:x: vcs.VTKPlots.VTKVCSBackend.onClosing +:x: vcs.VTKPlots.VTKVCSBackend.open +:x: vcs.VTKPlots.VTKVCSBackend.orientation +:x: vcs.VTKPlots.VTKVCSBackend.pdf +:x: vcs.VTKPlots.VTKVCSBackend.plot +:x: vcs.VTKPlots.VTKVCSBackend.plot3D +:x: vcs.VTKPlots.VTKVCSBackend.plotContinents +:x: vcs.VTKPlots.VTKVCSBackend.png +:x: vcs.VTKPlots.VTKVCSBackend.png_dimensions +:x: vcs.VTKPlots.VTKVCSBackend.portrait +:x: vcs.VTKPlots.VTKVCSBackend.postscript +:x: vcs.VTKPlots.VTKVCSBackend.put_img_on_canvas +:x: vcs.VTKPlots.VTKVCSBackend.put_png_on_canvas +:x: vcs.VTKPlots.VTKVCSBackend.raisecanvas +:x: vcs.VTKPlots.VTKVCSBackend.renderColorBar +:x: vcs.VTKPlots.VTKVCSBackend.renderEvent +:x: vcs.VTKPlots.VTKVCSBackend.renderTemplate +:x: vcs.VTKPlots.VTKVCSBackend.resize_or_rotate_window +:x: vcs.VTKPlots.VTKVCSBackend.scaleLogo +:x: vcs.VTKPlots.VTKVCSBackend.setAnimationStepper +:x: vcs.VTKPlots.VTKVCSBackend.setLayer +:x: vcs.VTKPlots.VTKVCSBackend.setantialiasing +:x: vcs.VTKPlots.VTKVCSBackend.showGUI +:x: vcs.VTKPlots.VTKVCSBackend.svg +:x: vcs.VTKPlots.VTKVCSBackend.trimData1D +:x: vcs.VTKPlots.VTKVCSBackend.trimData2D +:x: vcs.VTKPlots.VTKVCSBackend.update +:x: vcs.VTKPlots.VTKVCSBackend.update_input +:x: vcs.VTKPlots.VTKVCSBackend.vectorGraphics diff --git a/docs/doctest_info/VTKPlots.results b/docs/doctest_info/VTKPlots.report similarity index 100% rename from docs/doctest_info/VTKPlots.results rename to docs/doctest_info/VTKPlots.report diff --git a/docs/doctest_info/animate_helper.md b/docs/doctest_info/animate_helper.md new file mode 100644 index 000000000..e00a2cc7b --- /dev/null +++ b/docs/doctest_info/animate_helper.md @@ -0,0 +1,82 @@ +Missing Doctests +---------------- +:x: vcs.animate_helper +:x: vcs.animate_helper.AnimationController +:x: vcs.animate_helper.AnimationController.__init__ +:x: vcs.animate_helper.AnimationController.close +:x: vcs.animate_helper.AnimationController.create +:x: vcs.animate_helper.AnimationController.create_pause +:x: vcs.animate_helper.AnimationController.create_resume +:x: vcs.animate_helper.AnimationController.create_stop +:x: vcs.animate_helper.AnimationController.created +:x: vcs.animate_helper.AnimationController.draw_frame +:x: vcs.animate_helper.AnimationController.fps +:x: vcs.animate_helper.AnimationController.generate_number_of_frames +:x: vcs.animate_helper.AnimationController.get_all_frame_args +:x: vcs.animate_helper.AnimationController.horizontal +:x: vcs.animate_helper.AnimationController.initialize_create_canvas +:x: vcs.animate_helper.AnimationController.is_playing +:x: vcs.animate_helper.AnimationController.number_of_frames +:x: vcs.animate_helper.AnimationController.pause +:x: vcs.animate_helper.AnimationController.playback_pause +:x: vcs.animate_helper.AnimationController.playback_resume +:x: vcs.animate_helper.AnimationController.playback_stop +:x: vcs.animate_helper.AnimationController.render_frame +:x: vcs.animate_helper.AnimationController.reset_file_paths +:x: vcs.animate_helper.AnimationController.run +:x: vcs.animate_helper.AnimationController.save +:x: vcs.animate_helper.AnimationController.set_anim_min_max +:x: vcs.animate_helper.AnimationController.set_signals +:x: vcs.animate_helper.AnimationController.stop +:x: vcs.animate_helper.AnimationController.vertical +:x: vcs.animate_helper.AnimationController.zoom +:x: vcs.animate_helper.AnimationCreate +:x: vcs.animate_helper.AnimationCreate.__init__ +:x: vcs.animate_helper.AnimationCreate.run +:x: vcs.animate_helper.AnimationCreateParams +:x: vcs.animate_helper.AnimationCreateParams.__init__ +:x: vcs.animate_helper.AnimationPlayback +:x: vcs.animate_helper.AnimationPlayback.__init__ +:x: vcs.animate_helper.AnimationPlayback.run +:x: vcs.animate_helper.AnimationPlaybackParams +:x: vcs.animate_helper.AnimationPlaybackParams.__init__ +:x: vcs.animate_helper.AnimationPlaybackParams.fps +:x: vcs.animate_helper.AnimationPlaybackParams.horizontal +:x: vcs.animate_helper.AnimationPlaybackParams.vertical +:x: vcs.animate_helper.AnimationPlaybackParams.zoom +:x: vcs.animate_helper.RT +:x: vcs.animate_helper.RT.__init__ +:x: vcs.animate_helper.RT.start +:x: vcs.animate_helper.RT.stop +:x: vcs.animate_helper.StoppableThread +:x: vcs.animate_helper.StoppableThread.__init__ +:x: vcs.animate_helper.StoppableThread.is_stopped +:x: vcs.animate_helper.StoppableThread.pause +:x: vcs.animate_helper.StoppableThread.resume +:x: vcs.animate_helper.StoppableThread.stop +:x: vcs.animate_helper.StoppableThread.wait_if_paused +:x: vcs.animate_helper.animate_obj_old +:x: vcs.animate_helper.animate_obj_old.__init__ +:x: vcs.animate_helper.animate_obj_old.animate_info_from_python +:x: vcs.animate_helper.animate_obj_old.close +:x: vcs.animate_helper.animate_obj_old.create +:x: vcs.animate_helper.animate_obj_old.creating_animation_flg +:x: vcs.animate_helper.animate_obj_old.direction +:x: vcs.animate_helper.animate_obj_old.frame +:x: vcs.animate_helper.animate_obj_old.horizontal +:x: vcs.animate_helper.animate_obj_old.load_from_file +:x: vcs.animate_helper.animate_obj_old.mode +:x: vcs.animate_helper.animate_obj_old.number_of_frames +:x: vcs.animate_helper.animate_obj_old.pause +:x: vcs.animate_helper.animate_obj_old.restore_min_max +:x: vcs.animate_helper.animate_obj_old.return_animation_min_max +:x: vcs.animate_helper.animate_obj_old.run +:x: vcs.animate_helper.animate_obj_old.run_animation_flg +:x: vcs.animate_helper.animate_obj_old.save_original_min_max +:x: vcs.animate_helper.animate_obj_old.set_animation_min_max +:x: vcs.animate_helper.animate_obj_old.stop +:x: vcs.animate_helper.animate_obj_old.stop_create +:x: vcs.animate_helper.animate_obj_old.update_animate_display_list +:x: vcs.animate_helper.animate_obj_old.vertical +:x: vcs.animate_helper.animate_obj_old.zoom +:x: vcs.animate_helper.showerror diff --git a/docs/doctest_info/animate_helper.results b/docs/doctest_info/animate_helper.report similarity index 100% rename from docs/doctest_info/animate_helper.results rename to docs/doctest_info/animate_helper.report diff --git a/docs/doctest_info/boxfill.md b/docs/doctest_info/boxfill.md new file mode 100644 index 000000000..6d12d9471 --- /dev/null +++ b/docs/doctest_info/boxfill.md @@ -0,0 +1,99 @@ +Missing Doctests +---------------- +:x: vcs.boxfill +:x: vcs.boxfill.Gfb +:x: vcs.boxfill.Gfb.__init__ +:x: vcs.boxfill.Gfb._getboxfilltype +:x: vcs.boxfill.Gfb._getcalendar +:x: vcs.boxfill.Gfb._getcolor_1 +:x: vcs.boxfill.Gfb._getcolor_2 +:x: vcs.boxfill.Gfb._getdatawc_x1 +:x: vcs.boxfill.Gfb._getdatawc_x2 +:x: vcs.boxfill.Gfb._getdatawc_y1 +:x: vcs.boxfill.Gfb._getdatawc_y2 +:x: vcs.boxfill.Gfb._getfillareaindices +:x: vcs.boxfill.Gfb._getfillareastyle +:x: vcs.boxfill.Gfb._getlevel_1 +:x: vcs.boxfill.Gfb._getlevel_2 +:x: vcs.boxfill.Gfb._getmissing +:x: vcs.boxfill.Gfb._getname +:x: vcs.boxfill.Gfb._gettimeunits +:x: vcs.boxfill.Gfb._getxaxisconvert +:x: vcs.boxfill.Gfb._getxmtics1 +:x: vcs.boxfill.Gfb._getxmtics2 +:x: vcs.boxfill.Gfb._getxticlabels1 +:x: vcs.boxfill.Gfb._getxticlabels2 +:x: vcs.boxfill.Gfb._getyaxisconvert +:x: vcs.boxfill.Gfb._getymtics1 +:x: vcs.boxfill.Gfb._getymtics2 +:x: vcs.boxfill.Gfb._getyticlabels1 +:x: vcs.boxfill.Gfb._getyticlabels2 +:x: vcs.boxfill.Gfb._setboxfilltype +:x: vcs.boxfill.Gfb._setcalendar +:x: vcs.boxfill.Gfb._setcolor_1 +:x: vcs.boxfill.Gfb._setcolor_2 +:x: vcs.boxfill.Gfb._setdatawc_x1 +:x: vcs.boxfill.Gfb._setdatawc_x2 +:x: vcs.boxfill.Gfb._setdatawc_y1 +:x: vcs.boxfill.Gfb._setdatawc_y2 +:x: vcs.boxfill.Gfb._setfillareaindices +:x: vcs.boxfill.Gfb._setfillareastyle +:x: vcs.boxfill.Gfb._setlevel_1 +:x: vcs.boxfill.Gfb._setlevel_2 +:x: vcs.boxfill.Gfb._setmissing +:x: vcs.boxfill.Gfb._setname +:x: vcs.boxfill.Gfb._settimeunits +:x: vcs.boxfill.Gfb._setxaxisconvert +:x: vcs.boxfill.Gfb._setxmtics1 +:x: vcs.boxfill.Gfb._setxmtics2 +:x: vcs.boxfill.Gfb._setxticlabels1 +:x: vcs.boxfill.Gfb._setxticlabels2 +:x: vcs.boxfill.Gfb._setyaxisconvert +:x: vcs.boxfill.Gfb._setymtics1 +:x: vcs.boxfill.Gfb._setymtics2 +:x: vcs.boxfill.Gfb._setyticlabels1 +:x: vcs.boxfill.Gfb._setyticlabels2 +:x: vcs.boxfill.Gfb.boxfill_type +:x: vcs.boxfill.Gfb.color_1 +:x: vcs.boxfill.Gfb.color_2 +:x: vcs.boxfill.Gfb.colormap +:x: vcs.boxfill.Gfb.colors +:x: vcs.boxfill.Gfb.datawc +:x: vcs.boxfill.Gfb.datawc_calendar +:x: vcs.boxfill.Gfb.datawc_timeunits +:x: vcs.boxfill.Gfb.datawc_x1 +:x: vcs.boxfill.Gfb.datawc_x2 +:x: vcs.boxfill.Gfb.datawc_y1 +:x: vcs.boxfill.Gfb.datawc_y2 +:x: vcs.boxfill.Gfb.ext_1 +:x: vcs.boxfill.Gfb.ext_2 +:x: vcs.boxfill.Gfb.exts +:x: vcs.boxfill.Gfb.fillareacolors +:x: vcs.boxfill.Gfb.fillareaindices +:x: vcs.boxfill.Gfb.fillareaopacity +:x: vcs.boxfill.Gfb.fillareastyle +:x: vcs.boxfill.Gfb.getlegendlabels +:x: vcs.boxfill.Gfb.getlevels +:x: vcs.boxfill.Gfb.legend +:x: vcs.boxfill.Gfb.level_1 +:x: vcs.boxfill.Gfb.level_2 +:x: vcs.boxfill.Gfb.levels +:x: vcs.boxfill.Gfb.list +:x: vcs.boxfill.Gfb.missing +:x: vcs.boxfill.Gfb.name +:x: vcs.boxfill.Gfb.projection +:x: vcs.boxfill.Gfb.xaxisconvert +:x: vcs.boxfill.Gfb.xmtics +:x: vcs.boxfill.Gfb.xmtics1 +:x: vcs.boxfill.Gfb.xmtics2 +:x: vcs.boxfill.Gfb.xticlabels +:x: vcs.boxfill.Gfb.xticlabels1 +:x: vcs.boxfill.Gfb.xticlabels2 +:x: vcs.boxfill.Gfb.yaxisconvert +:x: vcs.boxfill.Gfb.ymtics +:x: vcs.boxfill.Gfb.ymtics1 +:x: vcs.boxfill.Gfb.ymtics2 +:x: vcs.boxfill.Gfb.yticlabels +:x: vcs.boxfill.Gfb.yticlabels1 +:x: vcs.boxfill.Gfb.yticlabels2 +:x: vcs.boxfill.process_src diff --git a/docs/doctest_info/boxfill.results b/docs/doctest_info/boxfill.report similarity index 100% rename from docs/doctest_info/boxfill.results rename to docs/doctest_info/boxfill.report diff --git a/docs/doctest_info/colormap.md b/docs/doctest_info/colormap.md new file mode 100644 index 000000000..956bfd91f --- /dev/null +++ b/docs/doctest_info/colormap.md @@ -0,0 +1,20 @@ +vcs.colormap.Cp.setcolorcell +---------------------------- +```python +Failed example: + cmap = a.createcolormap('example', 'default') # Create a colormap +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + cmap = a.createcolormap('example', 'default') # Create a colormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5491, in createcolormap + return vcs.createcolormap(Cp_name, Cp_name_src) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1687, in createcolormap + Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error colormap object named example already exists +``` + diff --git a/docs/doctest_info/colormap.results b/docs/doctest_info/colormap.report similarity index 65% rename from docs/doctest_info/colormap.results rename to docs/doctest_info/colormap.report index 5b952d614..61ae6cfdf 100644 --- a/docs/doctest_info/colormap.results +++ b/docs/doctest_info/colormap.report @@ -22,13 +22,7 @@ ok Trying: ex.script('filename.py') # Append to a Python script named 'filename.py' Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/colormap.py", line 395, in vcs.colormap.Cp.script -Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' -Expected nothing -Got: - Error reading json file,will be overwritten filename.py No JSON object could be decoded +ok Trying: ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. Expecting nothing @@ -50,27 +44,13 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5493, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5491, in createcolormap return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1662, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1687, in createcolormap Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error colormap object named example already exists -Trying: - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/colormap.py", line 312, in vcs.colormap.Cp.setcolorcell -Failed example: - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values - NameError: name 'cmap' is not defined 15 items had no tests: vcs.colormap vcs.colormap.Cp @@ -87,12 +67,12 @@ Exception raised: vcs.colormap.RGB_Table.__init__ vcs.colormap.RGB_Table.__setitem__ vcs.colormap.process_src -1 items passed all tests: +2 items passed all tests: 3 tests in vcs.colormap.Cp.getcolorcell + 4 tests in vcs.colormap.Cp.script ********************************************************************** -2 items had failures: - 1 of 4 in vcs.colormap.Cp.script +1 items had failures: 2 of 3 in vcs.colormap.Cp.setcolorcell 10 tests in 18 items. -7 passed and 3 failed. -***Test Failed*** 3 failures. +8 passed and 2 failed. +***Test Failed*** 2 failures. diff --git a/docs/doctest_info/colorpicker.md b/docs/doctest_info/colorpicker.md new file mode 100644 index 000000000..fc48ad8d0 --- /dev/null +++ b/docs/doctest_info/colorpicker.md @@ -0,0 +1,16 @@ +Missing Doctests +---------------- +:x: vcs.colorpicker +:x: vcs.colorpicker.ColorPicker +:x: vcs.colorpicker.ColorPicker.__init__ +:x: vcs.colorpicker.ColorPicker.cancel +:x: vcs.colorpicker.ColorPicker.change_map +:x: vcs.colorpicker.ColorPicker.clickEvent +:x: vcs.colorpicker.ColorPicker.close +:x: vcs.colorpicker.ColorPicker.make_current +:x: vcs.colorpicker.ColorPicker.save +:x: vcs.colorpicker.ColorPicker.selectCell +:x: vcs.colorpicker.ColorPicker.topRendererAtPoint +:x: vcs.colorpicker.collection +:x: vcs.colorpicker.colors_to_scalars +:x: vcs.colorpicker.make_color_plane diff --git a/docs/doctest_info/colorpicker.results b/docs/doctest_info/colorpicker.report similarity index 100% rename from docs/doctest_info/colorpicker.results rename to docs/doctest_info/colorpicker.report diff --git a/docs/doctest_info/colors.md b/docs/doctest_info/colors.md new file mode 100644 index 000000000..baa1e2283 --- /dev/null +++ b/docs/doctest_info/colors.md @@ -0,0 +1,4 @@ +Missing Doctests +---------------- +:x: vcs.colors +:x: vcs.colors.matplotlib2vcs diff --git a/docs/doctest_info/colors.results b/docs/doctest_info/colors.report similarity index 100% rename from docs/doctest_info/colors.results rename to docs/doctest_info/colors.report diff --git a/docs/doctest_info/configurator.md b/docs/doctest_info/configurator.md new file mode 100644 index 000000000..d42db7b24 --- /dev/null +++ b/docs/doctest_info/configurator.md @@ -0,0 +1,54 @@ +Missing Doctests +---------------- +:x: vcs.configurator +:x: vcs.configurator.Configurator +:x: vcs.configurator.Configurator.__init__ +:x: vcs.configurator.Configurator.activate +:x: vcs.configurator.Configurator.actor_at_point +:x: vcs.configurator.Configurator.animate +:x: vcs.configurator.Configurator.click +:x: vcs.configurator.Configurator.create +:x: vcs.configurator.Configurator.creator_disabled +:x: vcs.configurator.Configurator.creator_enabled +:x: vcs.configurator.Configurator.deactivate +:x: vcs.configurator.Configurator.delete +:x: vcs.configurator.Configurator.detach +:x: vcs.configurator.Configurator.display_and_key_for_actor +:x: vcs.configurator.Configurator.fill_click +:x: vcs.configurator.Configurator.get_save_path +:x: vcs.configurator.Configurator.hover +:x: vcs.configurator.Configurator.init_buttons +:x: vcs.configurator.Configurator.init_toolbar +:x: vcs.configurator.Configurator.line_click +:x: vcs.configurator.Configurator.marker_click +:x: vcs.configurator.Configurator.place +:x: vcs.configurator.Configurator.release +:x: vcs.configurator.Configurator.render_window +:x: vcs.configurator.Configurator.save +:x: vcs.configurator.Configurator.save_animation +:x: vcs.configurator.Configurator.save_animation_press +:x: vcs.configurator.Configurator.save_tick +:x: vcs.configurator.Configurator.set_animation_frame +:x: vcs.configurator.Configurator.set_animation_speed +:x: vcs.configurator.Configurator.set_background_blue +:x: vcs.configurator.Configurator.set_background_green +:x: vcs.configurator.Configurator.set_background_red +:x: vcs.configurator.Configurator.setup_animation +:x: vcs.configurator.Configurator.shift +:x: vcs.configurator.Configurator.show +:x: vcs.configurator.Configurator.start_animating +:x: vcs.configurator.Configurator.step_back +:x: vcs.configurator.Configurator.step_forward +:x: vcs.configurator.Configurator.stop_animating +:x: vcs.configurator.Configurator.text_click +:x: vcs.configurator.Configurator.update +:x: vcs.configurator.display_supports_animation +:x: vcs.configurator.editable_type +:x: vcs.configurator.get_attribute +:x: vcs.configurator.is_box +:x: vcs.configurator.is_label +:x: vcs.configurator.is_point +:x: vcs.configurator.is_point_in_box +:x: vcs.configurator.safe_get +:x: vcs.configurator.sync_template +:x: vcs.configurator.vcstemp diff --git a/docs/doctest_info/configurator.results b/docs/doctest_info/configurator.report similarity index 100% rename from docs/doctest_info/configurator.results rename to docs/doctest_info/configurator.report diff --git a/docs/doctest_info/displayplot.md b/docs/doctest_info/displayplot.md new file mode 100644 index 000000000..af9d08091 --- /dev/null +++ b/docs/doctest_info/displayplot.md @@ -0,0 +1,43 @@ +Missing Doctests +---------------- +:x: vcs.displayplot +:x: vcs.displayplot.Dp +:x: vcs.displayplot.Dp.__init__ +:x: vcs.displayplot.Dp._get_backend +:x: vcs.displayplot.Dp._getarray +:x: vcs.displayplot.Dp._getcontinents +:x: vcs.displayplot.Dp._getcontinents_line +:x: vcs.displayplot.Dp._getg_name +:x: vcs.displayplot.Dp._getg_type +:x: vcs.displayplot.Dp._getname +:x: vcs.displayplot.Dp._getnewelements +:x: vcs.displayplot.Dp._getoff +:x: vcs.displayplot.Dp._getpriority +:x: vcs.displayplot.Dp._gettemplate +:x: vcs.displayplot.Dp._gettemplate_origin +:x: vcs.displayplot.Dp._repr_png_ +:x: vcs.displayplot.Dp._set_backend +:x: vcs.displayplot.Dp._setarray +:x: vcs.displayplot.Dp._setcontinents +:x: vcs.displayplot.Dp._setcontinents_line +:x: vcs.displayplot.Dp._setg_name +:x: vcs.displayplot.Dp._setg_type +:x: vcs.displayplot.Dp._setname +:x: vcs.displayplot.Dp._setnewelements +:x: vcs.displayplot.Dp._setoff +:x: vcs.displayplot.Dp._setpriority +:x: vcs.displayplot.Dp._settemplate +:x: vcs.displayplot.Dp._settemplate_origin +:x: vcs.displayplot.Dp._template_origin +:x: vcs.displayplot.Dp.array +:x: vcs.displayplot.Dp.backend +:x: vcs.displayplot.Dp.continents +:x: vcs.displayplot.Dp.continents_line +:x: vcs.displayplot.Dp.g_name +:x: vcs.displayplot.Dp.g_type +:x: vcs.displayplot.Dp.list +:x: vcs.displayplot.Dp.name +:x: vcs.displayplot.Dp.newelements +:x: vcs.displayplot.Dp.off +:x: vcs.displayplot.Dp.priority +:x: vcs.displayplot.Dp.template diff --git a/docs/doctest_info/displayplot.results b/docs/doctest_info/displayplot.report similarity index 100% rename from docs/doctest_info/displayplot.results rename to docs/doctest_info/displayplot.report diff --git a/docs/doctest_info/doctest_timing b/docs/doctest_info/doctest_timing new file mode 100644 index 000000000..74588699f --- /dev/null +++ b/docs/doctest_info/doctest_timing @@ -0,0 +1,5579 @@ +Trying: + vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar +Expecting: + *******************3d_dual_scalar Names List********************** + ... + *******************End 3d_dual_scalar Names List********************** +ok +Trying: + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_dual_scalar') # should now contain the '3d_dual_scalar_ex1' 3d_dual_scalar +Expecting: + [...'3d_dual_scalar_ex1'...] +ok +Trying: + vcs.show('3d_scalar') # show all available 3d_scalar +Expecting: + *******************3d_scalar Names List********************** + ... + *******************End 3d_scalar Names List********************** +ok +Trying: + ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_scalar') # should now contain the '3d_scalar_ex1' 3d_scalar +Expecting: + [...'3d_scalar_ex1'...] +ok +Trying: + vcs.show('3d_vector') # show all available 3d_vector +Expecting: + *******************3d_vector Names List********************** + ... + *******************End 3d_vector Names List********************** +ok +Trying: + ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_vector') # should now contain the '3d_vector_ex1' 3d_vector +Expecting: + [...'3d_vector_ex1'...] +ok +Trying: + vcs.show('boxfill') # show all available boxfill +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + ex=vcs.createboxfill('boxfill_ex1') # Create boxfill 'boxfill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # should now contain the 'boxfill_ex1' boxfill +Expecting: + [...'boxfill_ex1'...] +ok +Trying: + ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # should now contain the 'boxfill_ex2' boxfill +Expecting: + [...'boxfill_ex2'...] +ok +Trying: + vcs.show('colormap') # show all available colormap +Expecting: + *******************Colormap Names List********************** + ... + *******************End Colormap Names List********************** +ok +Trying: + ex=vcs.createcolormap('colormap_ex1') # Create colormap 'colormap_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # should now contain the 'colormap_ex1' colormap +Expecting: + [...'colormap_ex1'...] +ok +Trying: + ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2' from 'rainbow' template +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # should now contain the 'colormap_ex2' colormap +Expecting: + [...'colormap_ex2'...] +ok +Trying: + vcs.show('fillarea') # show all available fillarea +Expecting: + *******************Fillarea Names List********************** + ... + *******************End Fillarea Names List********************** +ok +Trying: + ex=vcs.createfillarea('fillarea_ex1') # Create fillarea 'fillarea_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('fillarea') # should now contain the 'fillarea_ex1' fillarea +Expecting: + [...'fillarea_ex1'...] +ok +Trying: + vcs.show('isofill') # show all available isofill +Expecting: + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** +ok +Trying: + ex=vcs.createisofill('isofill_ex1') # Create isofill 'isofill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # should now contain the 'isofill_ex1' isofill +Expecting: + [...'isofill_ex1'...] +ok +Trying: + ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # should now contain the 'isofill_ex2' isofill +Expecting: + [...'isofill_ex2'...] +ok +Trying: + vcs.show('isoline') # show all available isoline +Expecting: + *******************Isoline Names List********************** + ... + *******************End Isoline Names List********************** +ok +Trying: + ex=vcs.createisoline('isoline_ex1') # Create isoline 'isoline_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # should now contain the 'isoline_ex1' isoline +Expecting: + [...'isoline_ex1'...] +ok +Trying: + ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # should now contain the 'isoline_ex2' isoline +Expecting: + [...'isoline_ex2'...] +ok +Trying: + vcs.show('line') # show all available line +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + ex=vcs.createline('line_ex1') # Create line 'line_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('line') # should now contain the 'line_ex1' line +Expecting: + [...'line_ex1'...] +ok +Trying: + ex2=vcs.createline('line_ex2','red') # create 'line_ex2' from 'red' template +Expecting nothing +ok +Trying: + vcs.listelements('line') # should now contain the 'line_ex2' line +Expecting: + [...'line_ex2'...] +ok +Trying: + vcs.show('marker') # show all available marker +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + ex=vcs.createmarker('marker_ex1') # Create marker 'marker_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('marker') # should now contain the 'marker_ex1' marker +Expecting: + [...'marker_ex1'...] +ok +Trying: + ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2' from 'red' template +Expecting nothing +ok +Trying: + vcs.listelements('marker') # should now contain the 'marker_ex2' marker +Expecting: + [...'marker_ex2'...] +ok +Trying: + vcs.show('meshfill') # show all available meshfill +Expecting: + *******************Meshfill Names List********************** + ... + *******************End Meshfill Names List********************** +ok +Trying: + ex=vcs.createmeshfill('meshfill_ex1') # Create meshfill 'meshfill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # should now contain the 'meshfill_ex1' meshfill +Expecting: + [...'meshfill_ex1'...] +ok +Trying: + ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2' from 'a_polar_meshfill' template +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # should now contain the 'meshfill_ex2' meshfill +Expecting: + [...'meshfill_ex2'...] +ok +Trying: + vcs.show('projection') # show all available projection +Expecting: + *******************Projection Names List********************** + ... + *******************End Projection Names List********************** +ok +Trying: + ex=vcs.createprojection('projection_ex1') # Create projection 'projection_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex1' projection +Expecting: + [...'projection_ex1'...] +ok +Trying: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 129, in vcs.manageElements.createprojection +Failed example: + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection + return projection.Proj(name, source) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ + self.type = src.type + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype + value = VCS_validation_functions.checkProjType(self, 'type', value) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType + checkedRaise(self, value, Exception, err) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise + raise ex(err) + Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +Trying: + vcs.show('scatter') # show all available scatter +Expecting: + *******************Scatter Names List********************** + ... + *******************End Scatter Names List********************** +ok +Trying: + ex=vcs.createscatter('scatter_ex1') # Create scatter 'scatter_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('scatter') # should now contain the 'scatter_ex1' scatter +Expecting: + [...'scatter_ex1'...] +ok +Trying: + vcs.show('taylordiagram') # show all available taylordiagram +Expecting: + *******************Taylordiagram Names List********************** + ... + *******************End Taylordiagram Names List********************** +ok +Trying: + ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create taylordiagram 'taylordiagram_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('taylordiagram') # should now contain the 'taylordiagram_ex1' taylordiagram +Expecting: + [...'taylordiagram_ex1'...] +ok +Trying: + vcs.show('template') # show all available template +Expecting: + *******************Template Names List********************** + ... + *******************End Template Names List********************** +ok +Trying: + ex=vcs.createtemplate('template_ex1') # Create template 'template_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('template') # should now contain the 'template_ex1' template +Expecting: + [...'template_ex1'...] +ok +Trying: + ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('template') # should now contain the 'template_ex2' template +Expecting: + [...'template_ex2'...] +ok +Trying: + vcs.show('textcombined') # show all available textcombined +Expecting: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1318, in vcs.manageElements.createtext +Failed example: + vcs.show('textcombined') # show all available textcombined +Expected: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +Got: + *******************Textcombined Names List********************** + *******************End Textcombined Names List********************** +Trying: + vcs.show('textorientation') # show all available textorientation +Expecting: + *******************Textorientation Names List********************** + ... + *******************End Textorientation Names List********************** +ok +Trying: + ex=vcs.createtextorientation('textorientation_ex1') # Create textorientation 'textorientation_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # should now contain the 'textorientation_ex1' textorientation +Expecting: + [...'textorientation_ex1'...] +ok +Trying: + ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2' from 'bigger' template +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # should now contain the 'textorientation_ex2' textorientation +Expecting: + [...'textorientation_ex2'...] +ok +Trying: + vcs.show('texttable') # show all available texttable +Expecting: + *******************Texttable Names List********************** + ... + *******************End Texttable Names List********************** +ok +Trying: + ex=vcs.createtexttable('texttable_ex1') # Create texttable 'texttable_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # should now contain the 'texttable_ex1' texttable +Expecting: + [...'texttable_ex1'...] +ok +Trying: + ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2' from 'bigger' template +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # should now contain the 'texttable_ex2' texttable +Expecting: + [...'texttable_ex2'...] +ok +Trying: + vcs.show('vector') # show all available vector +Expecting: + *******************Vector Names List********************** + ... + *******************End Vector Names List********************** +ok +Trying: + ex=vcs.createvector('vector_ex1') # Create vector 'vector_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('vector') # should now contain the 'vector_ex1' vector +Expecting: + [...'vector_ex1'...] +ok +Trying: + vcs.show('xvsy') # show all available xvsy +Expecting: + *******************Xvsy Names List********************** + ... + *******************End Xvsy Names List********************** +ok +Trying: + ex=vcs.createxvsy('xvsy_ex1') # Create xvsy 'xvsy_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('xvsy') # should now contain the 'xvsy_ex1' xvsy +Expecting: + [...'xvsy_ex1'...] +ok +Trying: + vcs.show('xyvsy') # show all available xyvsy +Expecting: + *******************Xyvsy Names List********************** + ... + *******************End Xyvsy Names List********************** +ok +Trying: + ex=vcs.createxyvsy('xyvsy_ex1') # Create xyvsy 'xyvsy_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('xyvsy') # should now contain the 'xyvsy_ex1' xyvsy +Expecting: + [...'xyvsy_ex1'...] +ok +Trying: + vcs.show('yxvsx') # show all available yxvsx +Expecting: + *******************Yxvsx Names List********************** + ... + *******************End Yxvsx Names List********************** +ok +Trying: + ex=vcs.createyxvsx('yxvsx_ex1') # Create yxvsx 'yxvsx_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('yxvsx') # should now contain the 'yxvsx_ex1' yxvsx +Expecting: + [...'yxvsx_ex1'...] +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_dual_scalar') # Show all the existing 3d_dual_scalar graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_dual_scalar() # instance of 'default' 3d_dual_scalar graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1586, in vcs.manageElements.get3d_dual_scalar +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_scalar') # Show all the existing 3d_scalar graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_scalar() # instance of 'default' 3d_scalar graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1545, in vcs.manageElements.get3d_scalar +Failed example: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_vector') # Show all the existing 3d_vector graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_vector() # instance of 'default' 3d_vector graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1626, in vcs.manageElements.get3d_vector +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # Show all the existing boxfill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getboxfill() # instance of 'default' boxfill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.boxfill(ex, slab1) # plot using specified boxfill object +Expecting: + +ok +Trying: + ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method +Expecting nothing +ok +Trying: + a.boxfill(ex2, slab1) # plot using specified boxfill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # Show all the existing colormap secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getcolormap() # instance of 'default' colormap secondary method +Expecting nothing +ok +Trying: + ex2=vcs.getcolormap('rainbow') # instance of 'rainbow' colormap secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('fillarea') # Show all the existing fillarea secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getfillarea() # instance of 'default' fillarea secondary method +Expecting nothing +ok +Trying: + a.fillarea(ex) # plot using specified fillarea object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # Show all the existing isofill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getisofill() # instance of 'default' isofill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isofill(ex, slab1) # plot using specified isofill object +Expecting: + +ok +Trying: + ex2=vcs.getisofill('polar') # instance of 'polar' isofill graphics method +Expecting nothing +ok +Trying: + a.isofill(ex2, slab1) # plot using specified isofill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # Show all the existing isoline graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getisoline() # instance of 'default' isoline graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isoline(ex, slab1) # plot using specified isoline object +Expecting: + +ok +Trying: + ex2=vcs.getisoline('polar') # instance of 'polar' isoline graphics method +Expecting nothing +ok +Trying: + a.isoline(ex2, slab1) # plot using specified isoline object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('line') # Show all the existing line secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getline() # instance of 'default' line secondary method +Expecting nothing +ok +Trying: + a.line(ex) # plot using specified line object +Expecting: + +ok +Trying: + ex2=vcs.getline('red') # instance of 'red' line secondary method +Expecting nothing +ok +Trying: + a.line(ex2) # plot using specified line object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('marker') # Show all the existing marker secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getmarker() # instance of 'default' marker secondary method +Expecting nothing +ok +Trying: + a.marker(ex) # plot using specified marker object +Expecting: + +ok +Trying: + ex2=vcs.getmarker('red') # instance of 'red' marker secondary method +Expecting nothing +ok +Trying: + a.marker(ex2) # plot using specified marker object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # Show all the existing meshfill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getmeshfill() # instance of 'default' meshfill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.meshfill(ex, slab1) # plot using specified meshfill object +Expecting: + +ok +Trying: + ex2=vcs.getmeshfill('a_polar_meshfill') # instance of 'a_polar_meshfill' meshfill graphics method +Expecting nothing +ok +Trying: + a.meshfill(ex2, slab1) # plot using specified meshfill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('projection') # Show all the existing projection graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getprojection() # instance of 'default' projection graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified projection object +Expecting: + +ok +Trying: + ex2=vcs.getprojection('polar') # instance of 'polar' projection graphics method +Expecting nothing +ok +Trying: + a.plot(ex2, slab1) # plot using specified projection object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('scatter') # Show all the existing scatter graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getscatter('default_scatter_') # instance of ''default_scatter_'' scatter graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.scatter(ex, slab1, slab2) # plot using specified scatter object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('taylordiagram') # Show all the existing taylordiagram graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettaylordiagram() # instance of 'default' taylordiagram graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 255, in vcs.manageElements.gettaylordiagram +Failed example: + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('template') # Show all the existing template graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettemplate() # instance of 'default' template graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified template object +Expecting: + +ok +Trying: + ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method +Expecting nothing +ok +Trying: + a.plot(ex2, slab1) # plot using specified template object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('textcombined') # Show all the existing textcombined secondary methods +Expecting: + [...] +ok +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1430, in vcs.manageElements.gettextcombined +Failed example: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error texttable object named EXAMPLE_tt already exists +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # Show all the existing textorientation secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettextorientation() # instance of 'default' textorientation secondary method +Expecting nothing +ok +Trying: + ex2=vcs.gettextorientation('bigger') # instance of 'bigger' textorientation secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # Show all the existing texttable secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettexttable() # instance of 'default' texttable secondary method +Expecting nothing +ok +Trying: + ex2=vcs.gettexttable('bigger') # instance of 'bigger' texttable secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('vector') # Show all the existing vector graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getvector() # instance of 'default' vector graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.vector(ex, slab1, slab2) # plot using specified vector object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('xvsy') # Show all the existing xvsy graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getxvsy() # instance of 'default_xvsy_' xvsy graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.xvsy(ex, slab1, slab2) # plot using specified xvsy object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('xyvsy') # Show all the existing xyvsy graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getxyvsy('default_xyvsy_') # instance of ''default_xyvsy_'' xyvsy graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.xyvsy(ex, slab1) # plot using specified xyvsy object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('yxvsx') # Show all the existing yxvsx graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getyxvsx() # instance of 'default_yxvsx_' yxvsx graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.yxvsx(ex, slab1) # plot using specified yxvsx object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + iso=a.createisoline('dean') # Create an instance of an isoline object +Expecting nothing +ok +Trying: + a.removeobject(iso) # Remove isoline object from VCS list +Expecting: + 'Removed isoline object dean' +ok +26 items had no tests: + vcs.manageElements + vcs.manageElements.check_name_source + vcs.manageElements.create1d + vcs.manageElements.get1d + vcs.manageElements.removeCp + vcs.manageElements.removeG + vcs.manageElements.removeG1d + vcs.manageElements.removeGSp + vcs.manageElements.removeGXY + vcs.manageElements.removeGXy + vcs.manageElements.removeGYx + vcs.manageElements.removeGfb + vcs.manageElements.removeGfi + vcs.manageElements.removeGfm + vcs.manageElements.removeGi + vcs.manageElements.removeGtd + vcs.manageElements.removeGv + vcs.manageElements.removeP + vcs.manageElements.removeProj + vcs.manageElements.removeTc + vcs.manageElements.removeTf + vcs.manageElements.removeTl + vcs.manageElements.removeTm + vcs.manageElements.removeTo + vcs.manageElements.removeTt + vcs.manageElements.setLineAttributes +38 items passed all tests: + 3 tests in vcs.manageElements.create3d_dual_scalar + 3 tests in vcs.manageElements.create3d_scalar + 3 tests in vcs.manageElements.create3d_vector + 5 tests in vcs.manageElements.createboxfill + 5 tests in vcs.manageElements.createcolormap + 3 tests in vcs.manageElements.createfillarea + 5 tests in vcs.manageElements.createisofill + 5 tests in vcs.manageElements.createisoline + 5 tests in vcs.manageElements.createline + 5 tests in vcs.manageElements.createmarker + 5 tests in vcs.manageElements.createmeshfill + 3 tests in vcs.manageElements.createscatter + 3 tests in vcs.manageElements.createtaylordiagram + 5 tests in vcs.manageElements.createtemplate + 5 tests in vcs.manageElements.createtextorientation + 5 tests in vcs.manageElements.createtexttable + 3 tests in vcs.manageElements.createvector + 3 tests in vcs.manageElements.createxvsy + 3 tests in vcs.manageElements.createxyvsy + 3 tests in vcs.manageElements.createyxvsx + 9 tests in vcs.manageElements.getboxfill + 4 tests in vcs.manageElements.getcolormap + 4 tests in vcs.manageElements.getfillarea + 9 tests in vcs.manageElements.getisofill + 9 tests in vcs.manageElements.getisoline + 6 tests in vcs.manageElements.getline + 6 tests in vcs.manageElements.getmarker + 9 tests in vcs.manageElements.getmeshfill + 9 tests in vcs.manageElements.getprojection + 8 tests in vcs.manageElements.getscatter + 9 tests in vcs.manageElements.gettemplate + 4 tests in vcs.manageElements.gettextorientation + 4 tests in vcs.manageElements.gettexttable + 8 tests in vcs.manageElements.getvector + 8 tests in vcs.manageElements.getxvsy + 7 tests in vcs.manageElements.getxyvsy + 7 tests in vcs.manageElements.getyxvsx + 3 tests in vcs.manageElements.removeobject +********************************************************************** +7 items had failures: + 2 of 5 in vcs.manageElements.createprojection + 1 of 3 in vcs.manageElements.createtext + 1 of 8 in vcs.manageElements.get3d_dual_scalar + 1 of 7 in vcs.manageElements.get3d_scalar + 1 of 8 in vcs.manageElements.get3d_vector + 1 of 7 in vcs.manageElements.gettaylordiagram + 1 of 5 in vcs.manageElements.gettextcombined +246 tests in 71 items. +238 passed and 8 failed. +***Test Failed*** 8 failures. +Done logging manageElements.md + 6818260 function calls (6728944 primitive calls) in 19.114 seconds + + Ordered by: standard name + + ncalls tottime percall cumtime percall filename:lineno(function) + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.030 0.030 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.039 0.039 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.031 0.031 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.005 0.005 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.006 0.006 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.007 0.007 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.008 0.008 :1() + 1 0.000 0.000 0.026 0.026 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 1.089 1.089 :1() + 1 0.000 0.000 0.002 0.002 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.015 0.015 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.712 0.712 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.015 0.015 :1() + 1 0.000 0.000 0.006 0.006 :1() + 1 0.000 0.000 0.002 0.002 :1() + 1 0.000 0.000 0.644 0.644 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.013 0.013 :1() + 1 0.000 0.000 0.002 0.002 :1() + 1 0.000 0.000 0.653 0.653 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.495 0.495 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.104 0.104 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.007 0.007 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.525 0.525 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.520 0.520 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.006 0.006 :1() + 1 0.000 0.000 0.005 0.005 :1() + 1 0.000 0.000 0.417 0.417 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 1.130 1.130 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.216 0.216 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.019 0.019 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.172 0.172 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.019 0.019 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.009 0.009 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.816 0.816 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.799 0.799 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.007 0.007 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.643 0.643 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.706 0.706 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.007 0.007 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.002 0.002 :1() + 1 0.000 0.000 0.755 0.755 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.006 0.006 :1() + 1 0.000 0.000 0.005 0.005 :1() + 1 0.000 0.000 1.168 1.168 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.011 0.011 :1() + 1 0.000 0.000 0.005 0.005 :1() + 1 0.000 0.000 0.850 0.850 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.630 0.630 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.178 0.178 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.006 0.006 :1() + 1 0.000 0.000 0.002 0.002 :1() + 1 0.000 0.000 0.002 0.002 :1() + 1 0.000 0.000 0.656 0.656 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.006 0.006 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.798 0.798 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.010 0.010 :1() + 1 0.000 0.000 0.004 0.004 :1() + 1 0.000 0.000 0.684 0.684 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.008 0.008 :1() + 1 0.000 0.000 0.003 0.003 :1() + 1 0.000 0.000 0.734 0.734 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.001 0.001 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1() + 1 0.000 0.000 0.000 0.000 :1(ArgInfo) + 1 0.000 0.000 0.000 0.000 :1(ArgSpec) + 1 0.000 0.000 0.000 0.000 :1(Arguments) + 1 0.000 0.000 0.000 0.000 :1(Attribute) + 1 0.000 0.000 0.000 0.000 :1(DefaultVerifyPaths) + 1 0.000 0.000 0.000 0.000 :1(Match) + 1 0.000 0.000 0.000 0.000 :1(Mismatch) + 1 0.000 0.000 0.000 0.000 :1(ModuleInfo) + 1 0.000 0.000 0.000 0.000 :1(ParseResult) + 1 0.000 0.000 0.000 0.000 :1(SplitResult) + 1 0.000 0.000 0.000 0.000 :1(TestResults) + 1 0.000 0.000 0.000 0.000 :1(Traceback) + 1 0.000 0.000 0.000 0.000 :1(_ASN1Object) + 73 0.000 0.000 0.000 0.000 :8(__new__) + 1 0.000 0.000 0.000 0.000 ASCII.py:2() + 1 0.000 0.000 0.000 0.000 Application.py:19(DV3DApp) + 3 0.000 0.000 0.000 0.000 Application.py:21(__init__) + 1 0.001 0.001 0.002 0.002 Application.py:5() + 3 0.000 0.000 2.245 0.748 Application.py:57(gminit) + 3 0.000 0.000 0.004 0.001 ButtonBarWidget.py:1015(initConfigState) + 9 0.001 0.000 0.290 0.032 ButtonBarWidget.py:1028(initializeConfiguration) + 12 0.000 0.000 0.000 0.000 ButtonBarWidget.py:1038(initializeChildren) + 610 0.000 0.000 0.000 0.000 ButtonBarWidget.py:105(updateWidgetState) + 268 0.089 0.000 0.250 0.001 ButtonBarWidget.py:119(createButtonRepresentation) + 344 0.003 0.000 0.007 0.000 ButtonBarWidget.py:140(setToggleProps) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:15(OriginPosition) + 32 0.000 0.000 0.004 0.000 ButtonBarWidget.py:163(setToggleState) + 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:174(refreshButtonState) + 3 0.000 0.000 0.117 0.039 ButtonBarWidget.py:180(setButtonState) + 51 0.000 0.000 0.119 0.002 ButtonBarWidget.py:191(broadcastState) + 90 0.000 0.000 0.000 0.000 ButtonBarWidget.py:194(place) + 90 0.000 0.000 0.000 0.000 ButtonBarWidget.py:198(size) + 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:201(On) + 12 0.000 0.000 0.000 0.000 ButtonBarWidget.py:206(Off) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:21(Orientation) + 12 0.000 0.000 0.000 0.000 ButtonBarWidget.py:217(deactivate) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:221(ButtonBarHandler) + 23 0.000 0.000 0.000 0.000 ButtonBarWidget.py:223(__init__) + 29 0.000 0.000 0.003 0.000 ButtonBarWidget.py:237(createButtonBarWidget) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:25(ProcessMode) + 162 0.000 0.000 0.000 0.000 ButtonBarWidget.py:258(getButtonBar) + 5 0.000 0.000 0.000 0.000 ButtonBarWidget.py:266(getButtonBars) + 13 0.000 0.000 0.000 0.000 ButtonBarWidget.py:269(findButton) + 3 0.000 0.000 0.001 0.000 ButtonBarWidget.py:275(repositionButtons) + 3 0.000 0.000 0.291 0.097 ButtonBarWidget.py:279(initializeConfigurations) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:314(ButtonBar) + 29 0.001 0.000 0.001 0.000 ButtonBarWidget.py:316(__init__) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:33(Button) + 82 0.000 0.000 0.000 0.000 ButtonBarWidget.py:334(getButton) + 32 0.000 0.000 0.000 0.000 ButtonBarWidget.py:344(updateWindowSize) + 90 0.000 0.000 0.001 0.000 ButtonBarWidget.py:347(placeButton) + 5 0.000 0.000 0.138 0.028 ButtonBarWidget.py:360(render) + 13 0.000 0.000 0.002 0.000 ButtonBarWidget.py:363(build) + 3 0.000 0.000 0.001 0.000 ButtonBarWidget.py:368(reposition) + 13 0.000 0.000 0.001 0.000 ButtonBarWidget.py:373(getScreenPosition) + 268 0.028 0.000 0.303 0.001 ButtonBarWidget.py:38(__init__) + 13 0.000 0.000 0.000 0.000 ButtonBarWidget.py:384(getBufferedPos) + 90 0.000 0.000 0.000 0.000 ButtonBarWidget.py:391(getOffsetScreenPosition) + 90 0.000 0.000 0.000 0.000 ButtonBarWidget.py:407(computeBounds) + 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:415(show) + 13 0.000 0.000 0.000 0.000 ButtonBarWidget.py:449(getRenderer) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:454(ControlBar) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:5() + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:501(ButtonBarWidget) + 29 0.000 0.000 0.002 0.000 ButtonBarWidget.py:503(__init__) + 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:522(show) + 8 0.000 0.000 0.000 0.000 ButtonBarWidget.py:526(isSliderVisible) + 30 0.000 0.000 0.000 0.000 ButtonBarWidget.py:529(setSliderVisibility) + 3 0.000 0.000 0.163 0.054 ButtonBarWidget.py:534(initializeState) + 2 0.000 0.000 0.000 0.000 ButtonBarWidget.py:543(sliceRoundRobin) + 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:554(resetInteractionButtons) + 54 0.000 0.000 0.279 0.005 ButtonBarWidget.py:567(processStateChangeEvent) + 180 0.002 0.000 0.248 0.001 ButtonBarWidget.py:595(addSliderButton) + 88 0.001 0.000 0.189 0.002 ButtonBarWidget.py:604(addConfigButton) + 268 0.002 0.000 0.314 0.001 ButtonBarWidget.py:613(addButton) + 88 0.000 0.000 0.080 0.001 ButtonBarWidget.py:624(addConfigurableFunction) + 180 0.001 0.000 0.034 0.000 ButtonBarWidget.py:629(addConfigurableSliderFunction) + 46 0.000 0.000 0.000 0.000 ButtonBarWidget.py:634(getConfigFunction) + 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:665(initializeSliderPosition) + 3 0.003 0.001 0.006 0.002 ButtonBarWidget.py:676(createSliderWidget) + 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:69(setVisibility) + 15 0.000 0.000 0.001 0.000 ButtonBarWidget.py:721(releaseSliders) + 5 0.000 0.000 0.001 0.000 ButtonBarWidget.py:725(positionSlider) + 878 0.000 0.000 0.000 0.000 ButtonBarWidget.py:75(getState) + 5 0.001 0.000 0.012 0.002 ButtonBarWidget.py:751(commandeerControl) + 39 0.000 0.000 0.005 0.000 ButtonBarWidget.py:78(setState) + 63 0.000 0.000 0.001 0.000 ButtonBarWidget.py:780(releaseSlider) + 15 0.000 0.000 0.001 0.000 ButtonBarWidget.py:887(reset) + 5 0.001 0.000 0.277 0.055 ButtonBarWidget.py:890(updateInteractionState) + 6 0.000 0.000 0.000 0.000 ButtonBarWidget.py:90(getFunctionMapKey) + 6 0.000 0.000 0.000 0.000 ButtonBarWidget.py:93(addFunctionKey) + 44 0.000 0.000 0.000 0.000 ButtonBarWidget.py:999(updateChildState) + 1 0.000 0.000 0.000 0.000 CDML.py:4() + 1 0.000 0.000 0.000 0.000 CDML.py:40(CDML) + 1 0.000 0.000 0.000 0.000 CDMLParser.py:19(CDMLParser) + 1 0.002 0.002 0.019 0.019 CDMLParser.py:3() + 1 0.010 0.010 0.084 0.084 Canvas.py:11() + 397 0.013 0.000 0.204 0.001 Canvas.py:110(_determine_arg_list) + 1 0.000 0.000 0.000 0.000 Canvas.py:1105(removeobject) + 169 0.001 0.000 0.015 0.000 Canvas.py:1155(check_name_source) + 352 0.001 0.000 3.756 0.011 Canvas.py:1159(createtemplate) + 795 0.001 0.000 0.005 0.000 Canvas.py:1163(gettemplate) + 678 0.001 0.000 0.003 0.000 Canvas.py:1171(getprojection) + 2 0.000 0.000 1.147 0.574 Canvas.py:1183(boxfill) + 1 0.000 0.000 1.168 1.168 Canvas.py:1246(taylordiagram) + 2 0.000 0.000 1.615 0.808 Canvas.py:1285(meshfill) + 2 0.000 0.000 1.045 0.522 Canvas.py:1378(isofill) + 1 0.000 0.000 0.001 0.001 Canvas.py:1419(createisoline) + 2 0.000 0.000 1.547 0.773 Canvas.py:1427(isoline) + 1 0.001 0.001 0.684 0.684 Canvas.py:1482(xyvsy) + 1 0.000 0.000 0.733 0.733 Canvas.py:1529(yxvsx) + 1 0.000 0.000 0.798 0.798 Canvas.py:1576(xvsy) + 1 0.000 0.000 0.656 0.656 Canvas.py:1629(vector) + 1 0.000 0.000 0.755 0.755 Canvas.py:1670(scatter) + 219 0.001 0.000 0.088 0.000 Canvas.py:1712(createline) + 10 0.000 0.000 0.000 0.000 Canvas.py:1720(getline) + 68 0.003 0.000 1.498 0.022 Canvas.py:1728(line) + 10 0.000 0.000 0.010 0.001 Canvas.py:1838(createmarker) + 2 0.000 0.000 0.190 0.095 Canvas.py:1854(marker) + 21 0.000 0.000 0.106 0.005 Canvas.py:1959(createfillarea) + 1 0.000 0.000 0.104 0.104 Canvas.py:1976(fillarea) + 17 0.000 0.000 0.000 0.000 Canvas.py:2098(gettexttable) + 17 0.000 0.000 0.000 0.000 Canvas.py:2111(gettextorientation) + 455 0.001 0.000 0.313 0.001 Canvas.py:2115(createtextcombined) + 218 0.008 0.000 2.813 0.013 Canvas.py:2140(textcombined) + 94/79 0.006 0.000 7.126 0.090 Canvas.py:2360(plot) + 169 0.343 0.002 0.354 0.002 Canvas.py:2617(__new_elts) + 397/27 0.080 0.000 16.109 0.597 Canvas.py:2624(__plot) + 200 0.000 0.000 0.001 0.000 Canvas.py:278(_process_keyword) + 1 0.000 0.000 0.000 0.000 Canvas.py:294(Canvas) + 397 0.002 0.000 0.003 0.000 Canvas.py:3494(set_convert_labels) + 42 0.000 0.000 0.000 0.000 Canvas.py:383(_setmode) + 350 0.000 0.000 0.000 0.000 Canvas.py:392(_getmode) + 41 0.000 0.000 0.001 0.000 Canvas.py:396(_setwinfo_id) + 41 0.000 0.000 0.000 0.000 Canvas.py:404(_setvarglist) + 24 0.000 0.000 0.000 0.000 Canvas.py:4166(canvasinfo) + 189 0.000 0.000 0.000 0.000 Canvas.py:4175(getcontinentstype) + 1143 0.001 0.000 0.001 0.000 Canvas.py:426(_getanimate) + 42 0.000 0.000 0.000 0.000 Canvas.py:430(_setpausetime) + 27 0.000 0.000 0.003 0.000 Canvas.py:4343(listelements) + 51 0.000 0.000 0.000 0.000 Canvas.py:438(_setviewport) + 10 0.000 0.000 0.000 0.000 Canvas.py:448(_getviewport) + 51 0.000 0.000 0.000 0.000 Canvas.py:452(_setworldcoordinate) + 10 0.000 0.000 0.000 0.000 Canvas.py:458(_getworldcoordinate) + 63 0.000 0.000 0.000 0.000 Canvas.py:462(_setisplottinggridded) + 169 0.000 0.000 0.000 0.000 Canvas.py:474(_getanimate_info) + 41 0.000 0.000 0.003 0.000 Canvas.py:5173(setcontinentsline) + 182 0.000 0.000 0.000 0.000 Canvas.py:5195(getcontinentsline) + 61 0.000 0.000 0.007 0.000 Canvas.py:5201(setcontinentstype) + 362 0.001 0.000 0.028 0.000 Canvas.py:5243(_continentspath) + 13 0.000 0.000 0.000 0.000 Canvas.py:5496(getcolormap) + 20 0.000 0.000 0.000 0.000 Canvas.py:559(savecontinentstype) + 1 0.000 0.000 0.000 0.000 Canvas.py:5657(orientation) + 20 0.001 0.000 0.025 0.001 Canvas.py:567(_reconstruct_tv) + 42 0.000 0.000 0.000 0.000 Canvas.py:5680(getcolormapname) + 80 0.000 0.000 0.009 0.000 Canvas.py:588() + 1 0.000 0.000 0.000 0.000 Canvas.py:62(SIGNAL) + 41 0.000 0.000 0.001 0.000 Canvas.py:64(__init__) + 41 0.003 0.000 0.017 0.000 Canvas.py:804(__init__) + 349 0.001 0.000 0.001 0.000 Canvas.py:986(initLogoDrawing) + 12 0.000 0.000 0.010 0.001 ColorMapManager.py:125(setAlphaRange) + 9 0.000 0.000 0.000 0.000 ColorMapManager.py:141(getDisplayLookupTable) + 3 0.000 0.000 0.000 0.000 ColorMapManager.py:144(getImageScale) + 12 0.000 0.000 0.000 0.000 ColorMapManager.py:147(setScale) + 12 0.000 0.000 0.000 0.000 ColorMapManager.py:152(setDisplayRange) + 24 0.008 0.000 0.015 0.001 ColorMapManager.py:163(set_lut) + 1 0.000 0.000 0.000 0.000 ColorMapManager.py:19(AlphaManager) + 10 0.000 0.000 0.000 0.000 ColorMapManager.py:21(__init__) + 24 0.000 0.000 0.015 0.001 ColorMapManager.py:240(load_lut_from_list) + 24 0.002 0.000 0.020 0.001 ColorMapManager.py:249(load_lut) + 24 0.000 0.000 0.000 0.000 ColorMapManager.py:264(load_array) + 24 0.000 0.000 0.000 0.000 ColorMapManager.py:29(setNumberOfColors) + 12 0.000 0.000 0.000 0.000 ColorMapManager.py:36(setAlphaRange) + 6144 0.004 0.000 0.004 0.000 ColorMapManager.py:49(getAlphaValue) + 1 0.000 0.000 0.257 0.257 ColorMapManager.py:5() + 1 0.000 0.000 0.000 0.000 ColorMapManager.py:72(ColorMapManager) + 10 0.000 0.000 0.000 0.000 ColorMapManager.py:74(__init__) + 9 0.009 0.001 0.010 0.001 ColorMapManager.py:95(createActor) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:112(Error) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:139(NoSectionError) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:147(DuplicateSectionError) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:155(NoOptionError) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:165(InterpolationError) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:174(InterpolationMissingOptionError) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:188(InterpolationSyntaxError) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:192(InterpolationDepthError) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:204(ParsingError) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:217(MissingSectionHeaderError) + 1 0.000 0.000 0.001 0.001 ConfigParser.py:231(RawConfigParser) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:558(_Chainmap) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:588(ConfigParser) + 1 0.000 0.000 0.000 0.000 ConfigParser.py:686(SafeConfigParser) + 1 0.000 0.000 0.002 0.002 ConfigParser.py:88() + 5 0.000 0.000 0.002 0.000 ConfigurationFunctions.py:1002(encodeToString) + 5 0.000 0.000 0.008 0.002 ConfigurationFunctions.py:1014(decodeFromString) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1025(InputSpecs) + 4 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1027(__init__) + 129 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1040(isFloat) + 4 0.000 0.000 0.026 0.007 ConfigurationFunctions.py:1062(initializeInput) + 45 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1067(input) + 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1126(getWorldCoord) + 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1174(getRangeBounds) + 9 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1179(getDataRangeBounds) + 6 0.000 0.000 0.005 0.001 ConfigurationFunctions.py:118(getMaxScalarValue) + 102 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1202(getDataValue) + 6 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1212(getDataValues) + 21 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1234(getImageValues) + 22 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1257(getMetadata) + 4 0.000 0.000 0.026 0.007 ConfigurationFunctions.py:1266(updateMetadata) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:131(PlotType) + 4 0.000 0.000 0.008 0.002 ConfigurationFunctions.py:1326(computeMetadata) + 18 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1352(addMetadata) + 18 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1362(getClassName) + 24 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1365(bound) + 4 0.000 0.000 0.018 0.005 ConfigurationFunctions.py:1367(getRangeBounds) + 4 0.000 0.000 0.008 0.002 ConfigurationFunctions.py:1377(extractMetadata) + 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:151(getPointsLayout) + 12 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:158(isDesignated) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:174(SIGNAL) + 1672 0.012 0.000 0.110 0.000 ConfigurationFunctions.py:176(__init__) + 100/74 0.001 0.000 0.121 0.002 ConfigurationFunctions.py:181(__call__) + 539 0.005 0.000 0.014 0.000 ConfigurationFunctions.py:191(connect) + 195 0.001 0.000 0.001 0.000 ConfigurationFunctions.py:213(serialize_address) + 360 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:216(deserialize_address) + 360 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:221(get_parameter_name) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:230(ConfigManager) + 43 0.001 0.000 0.007 0.000 ConfigurationFunctions.py:233(__init__) + 684/438 0.005 0.000 0.090 0.000 ConfigurationFunctions.py:257(getParameter) + 8 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:28(get_scalar_value) + 291 0.002 0.000 0.114 0.000 ConfigurationFunctions.py:321(getConfigurableFunction) + 842 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:336(addParam) + 291 0.002 0.000 0.088 0.000 ConfigurationFunctions.py:349(addParameter) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:38(CDMSDataType) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:47(DataCache) + 10 0.005 0.001 0.332 0.033 ConfigurationFunctions.py:474(getParameterList) + 23 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:49(__init__) + 1 0.002 0.002 0.002 0.002 ConfigurationFunctions.py:5() + 6 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:53(getDatatypeString) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:535(ConfigParameter) + 661 0.007 0.000 0.085 0.000 ConfigurationFunctions.py:537(__init__) + 356 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:562(addChild) + 714 0.001 0.000 0.001 0.000 ConfigurationFunctions.py:590(addValueKey) + 419/295 0.001 0.000 0.004 0.000 ConfigurationFunctions.py:620(childUpdate) + 12 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:64(getBool) + 2714 0.006 0.000 0.010 0.000 ConfigurationFunctions.py:655(getValue) + 635/292 0.003 0.000 0.009 0.000 ConfigurationFunctions.py:663(getInitValue) + 714/295 0.004 0.000 0.008 0.000 ConfigurationFunctions.py:689(setValue) + 10 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:716(setValues) + 827 0.001 0.000 0.002 0.000 ConfigurationFunctions.py:72(makeList) + 9 0.000 0.000 0.002 0.000 ConfigurationFunctions.py:723(initValues) + 686 0.002 0.000 0.005 0.000 ConfigurationFunctions.py:732(getValues) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:778(WrappedList) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:802(ConfigurableFunction) + 291 0.004 0.000 0.103 0.000 ConfigurationFunctions.py:808(__init__) + 291 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:843(getState) + 39 0.000 0.000 0.002 0.000 ConfigurationFunctions.py:846(setState) + 2 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:856(sameGroup) + 111 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:872(getValueLength) + 5 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:875(open) + 2 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:881(close) + 12 0.000 0.000 0.119 0.010 ConfigurationFunctions.py:884(processInteractionEvent) + 48 0.000 0.000 0.287 0.006 ConfigurationFunctions.py:888(init) + 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:931(ConfigurableSliderFunction) + 180 0.002 0.000 0.031 0.000 ConfigurationFunctions.py:933(__init__) + 180 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:951(getValueLength) + 18 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:957(setRangeBounds) + 5 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:960(getSliderBounds) + 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:969(setSliderBoundsToRelative) + 5 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:974(getTitle) + 7 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:980(getNewVtkDataArray) + 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:991(getFloatStr) + 12 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:995(getStringDataArray) + 3 0.000 0.000 0.000 0.000 DV3DPlot.py:1010(processConfigurationToggle) + 23 0.000 0.000 0.002 0.000 DV3DPlot.py:1027(addInteractionButtons) + 1 0.000 0.000 0.000 0.000 DV3DPlot.py:103(TextDisplayMgr) + 107 0.001 0.000 0.003 0.000 DV3DPlot.py:1032(getInteractionButtons) + 61 0.002 0.000 0.010 0.000 DV3DPlot.py:1042(onWindowRenderEvent) + 3 0.000 0.000 0.000 0.000 DV3DPlot.py:105(__init__) + 3 0.000 0.000 0.006 0.002 DV3DPlot.py:1077(onRenderWindowResize) + 3 0.001 0.000 0.408 0.136 DV3DPlot.py:1117(addLogo) + 3 0.001 0.000 0.001 0.000 DV3DPlot.py:1141(createRenderWindow) + 9 0.001 0.000 0.003 0.000 DV3DPlot.py:117(getTextActor) + 24 0.000 0.000 0.000 0.000 DV3DPlot.py:1172(updateInteractionStyle) + 79 0.000 0.000 0.000 0.000 DV3DPlot.py:1179(enableRender) + 79/70 0.001 0.000 0.985 0.014 DV3DPlot.py:1182(render) + 66 0.002 0.000 0.012 0.000 DV3DPlot.py:1217(getColormapManager) + 12 0.001 0.000 0.133 0.011 DV3DPlot.py:1233(setColormap) + 18 0.000 0.000 0.000 0.000 DV3DPlot.py:1258(getMetadata) + 3 0.000 0.000 0.077 0.026 DV3DPlot.py:1275(start) + 3 0.000 0.000 0.002 0.001 DV3DPlot.py:1307(initCamera) + 3 0.000 0.000 0.000 0.000 DV3DPlot.py:1330(getCamera) + 3 0.000 0.000 0.000 0.000 DV3DPlot.py:1336(printCameraPos) + 18 0.000 0.000 0.001 0.000 DV3DPlot.py:1347(getColormapSpec) + 9 0.000 0.000 0.000 0.000 DV3DPlot.py:137(getProp) + 3 0.001 0.000 0.001 0.000 DV3DPlot.py:150(createTextActor) + 1 0.000 0.000 0.000 0.000 DV3DPlot.py:172(DV3DPlot) + 23 0.002 0.000 0.189 0.008 DV3DPlot.py:188(__init__) + 1 0.000 0.000 0.000 0.000 DV3DPlot.py:22(AnimationStepper) + 23 0.000 0.000 0.000 0.000 DV3DPlot.py:24(__init__) + 23 0.000 0.000 0.000 0.000 DV3DPlot.py:263(setAnimationStepper) + 5 0.001 0.000 0.006 0.001 DV3DPlot.py:287(processConfigParameterChange) + 5 0.000 0.000 0.005 0.001 DV3DPlot.py:298(getActiveConstituentNames) + 161 0.000 0.000 0.000 0.000 DV3DPlot.py:309(addKeyPressHandler) + 1 0.006 0.006 0.263 0.263 DV3DPlot.py:5() + 3 0.000 0.000 0.000 0.000 DV3DPlot.py:518(processShowColorbarCommand) + 3 0.000 0.000 0.281 0.094 DV3DPlot.py:537(initializePlots) + 3 0.002 0.001 0.053 0.018 DV3DPlot.py:546(processChooseColormapCommand) + 33 0.001 0.000 0.005 0.000 DV3DPlot.py:581(isConstituentConfigEnabled) + 3 0.000 0.000 0.000 0.000 DV3DPlot.py:610(processAnimationCommand) + 9 0.000 0.000 0.012 0.001 DV3DPlot.py:768(updateTextDisplay) + 9 0.000 0.000 0.003 0.000 DV3DPlot.py:780(getLabelActor) + 9 0.000 0.000 0.000 0.000 DV3DPlot.py:790(getLut) + 30 0.000 0.000 0.000 0.000 DV3DPlot.py:797(addObserver) + 1 0.000 0.000 0.000 0.000 DV3DPlot.py:80(SaveAnimation) + 3 0.006 0.002 0.415 0.138 DV3DPlot.py:801(createRenderer) + 3 0.000 0.000 0.000 0.000 DV3DPlot.py:870(updateInteractor) + 6 0.000 0.000 0.000 0.000 DV3DPlot.py:873(activateEvent) + 6 0.000 0.000 0.005 0.001 DV3DPlot.py:908(buildConfigurationButton) + 3 0.000 0.000 0.000 0.000 DV3DPlot.py:917(showConfigurationButton) + 3 0.000 0.000 0.090 0.030 DV3DPlot.py:921(buildPlotButtons) + 2 0.000 0.000 0.000 0.000 DV3DPlot.py:949(processSurfacePlotCommand) + 2 0.000 0.000 0.000 0.000 DV3DPlot.py:964(processVolumePlotCommand) + 3 0.000 0.000 0.090 0.030 DV3DPlot.py:982(fetchPlotButtons) + 8 0.000 0.000 0.000 0.000 DV3DPlot.py:989(getPlotButtonbar) + 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:141(vtkPointCloud) + 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:17(ScalarRangeType) + 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:21(PCProc) + 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:26(ExecutionDataPacket) + 1 0.003 0.003 0.003 0.003 DistributedPointCollections.py:5() + 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:506(vtkSubProcPointCloud) + 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:639(vtkLocalPointCloud) + 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:64(PointCollectionExecutionTarget) + 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:717(vtkPartitionedPointCloud) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:101(OptionalStructPointer) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:112(OptionalNamedConstant) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:126(ESMP_Initialize) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:1390(ESMP_LogSet) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:33(ESMP_Field) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:38(ESMP_InterfaceIntStruct) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:41(ESMP_InterfaceInt) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:50(ESMP_Mesh) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:53(ESMP_GridStruct) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:61(ESMP_Grid) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:72(ESMP_VM) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:77(OptionalNumpyArrayInt32) + 1 0.000 0.000 0.000 0.000 ESMP_API.py:89(OptionalNumpyArrayFloat64) + 1 0.001 0.001 0.002 0.002 ESMP_API.py:9() + 1 0.000 0.000 0.000 0.000 ESMP_Config.py:1() + 1 0.001 0.001 0.001 0.001 ESMP_Constants.py:10() + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:107(ESMP_FileFormat) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:151(ESMP_GridItem) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:178(ESMP_LogKind) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:204(ESMP_MeshElemType) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:238(ESMP_MeshLoc) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:258(ESMP_Region) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:283(ESMP_RegridMethod) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:324(ESMP_StaggerLoc2D) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:361(ESMP_StaggerLoc3D) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:414(ESMP_TypeKind) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:43(EnumException) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:445(ESMP_UnmappedAction) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:47(Enum) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:48(__metaclass__) + 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:61(ESMP_CoordSys) + 1 0.002 0.002 0.052 0.052 ESMP_LoadESMF.py:10() + 1 0.000 0.000 0.000 0.000 ElementPath.py:237(_SelectorContext) + 1 0.000 0.000 0.002 0.002 ElementPath.py:59() + 1 0.000 0.000 0.000 0.000 ElementTree.py:104(_SimpleElementPath) + 1 0.000 0.000 0.000 0.000 ElementTree.py:1210(_IterParseIterator) + 1 0.000 0.000 0.000 0.000 ElementTree.py:1376(TreeBuilder) + 1 0.000 0.000 0.000 0.000 ElementTree.py:138(ParseError) + 1 0.000 0.000 0.000 0.000 ElementTree.py:1466(XMLParser) + 1 0.000 0.000 0.000 0.000 ElementTree.py:171(Element) + 1 0.000 0.000 0.000 0.000 ElementTree.py:580(QName) + 1 0.002 0.002 0.003 0.003 ElementTree.py:59() + 1 0.000 0.000 0.000 0.000 ElementTree.py:605(ElementTree) + 1 0.002 0.002 0.002 0.002 EzTemplate.py:1() + 1 0.000 0.000 0.000 0.000 Filler.py:1() + 1 0.000 0.000 0.000 0.000 Filler.py:2(StringConstructor) + 1 0.000 0.000 0.000 0.000 Filler.py:32(__init__) + 1 0.000 0.000 0.000 0.000 Filler.py:40(keys) + 3 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1004(ConvertPositionFromRelative) + 7 0.000 0.000 0.006 0.001 ImagePlaneWidget.py:1014(SetSlicePosition) + 3 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1119(GetSliceIndex) + 77 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1244(Modified) + 6 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1255(GetOrigin) + 63 0.001 0.000 0.001 0.000 ImagePlaneWidget.py:13(getUnscaledWorldExtent) + 3 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:131(HasThirdDimension) + 29 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1313(GetVector1) + 29 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1321(GetVector2) + 7 0.002 0.000 0.002 0.000 ImagePlaneWidget.py:1329(GeneratePlaneOutline) + 7 0.002 0.000 0.003 0.000 ImagePlaneWidget.py:1366(GenerateCursor) + 6 0.002 0.000 0.003 0.001 ImagePlaneWidget.py:1395(GenerateTexturePlane) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1421(ScalarSliceWidget) + 6 0.000 0.000 0.012 0.002 ImagePlaneWidget.py:1423(__init__) + 6 0.000 0.000 0.077 0.013 ImagePlaneWidget.py:1428(SetEnabled) + 6 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1461(VisibilityOff) + 4 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1466(VisibilityOn) + 48 0.000 0.000 0.001 0.000 ImagePlaneWidget.py:1487(SetLookupTable) + 60 0.001 0.000 0.001 0.000 ImagePlaneWidget.py:1491(SetResliceInterpolate) + 78 0.001 0.000 0.089 0.001 ImagePlaneWidget.py:1495(UpdateInputs) + 72 0.010 0.000 0.047 0.001 ImagePlaneWidget.py:1505(initTexturePlane) + 6 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1521(SetPicker) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1530(StreamlineSliceWidget) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:16(ImagePlaneWidget) + 7 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:161(GetPlaneProperty) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1675(VectorSliceWidget) + 1 0.000 0.000 0.001 0.001 ImagePlaneWidget.py:1677(__init__) + 2 0.000 0.000 0.009 0.005 ImagePlaneWidget.py:1702(UpdateCut) + 20 0.000 0.000 0.003 0.000 ImagePlaneWidget.py:1714(initGlyphMapper) + 9 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:173(SetUserControlledLookupTable) + 49 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:176(SetTextureInterpolate) + 1 0.000 0.000 0.002 0.002 ImagePlaneWidget.py:1778(createArrowSources) + 2 0.000 0.000 0.006 0.003 ImagePlaneWidget.py:179(SetPlaneOrientationToXAxes) + 20 0.000 0.000 0.015 0.001 ImagePlaneWidget.py:1799(UpdateInputs) + 2 0.000 0.000 0.009 0.005 ImagePlaneWidget.py:1805(ApplyGlyphDecimationFactor) + 2 0.000 0.000 0.009 0.005 ImagePlaneWidget.py:182(SetPlaneOrientationToYAxes) + 1 0.000 0.000 0.014 0.014 ImagePlaneWidget.py:1823(processGlyphScaleCommand) + 1 0.000 0.000 0.009 0.009 ImagePlaneWidget.py:1848(processGlyphDensityCommand) + 3 0.000 0.000 0.004 0.001 ImagePlaneWidget.py:185(SetPlaneOrientationToZAxes) + 2 0.000 0.000 0.014 0.007 ImagePlaneWidget.py:1877(updateScaling) + 2 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:188(MatchesBounds) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1899(LICSliceWidget) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:2() + 10 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:202(SetRenderer) + 21/14 0.000 0.000 0.085 0.006 ImagePlaneWidget.py:208(ActivateEvent) + 7 0.000 0.000 0.085 0.012 ImagePlaneWidget.py:224(SetInteractor) + 7 0.000 0.000 0.085 0.012 ImagePlaneWidget.py:240(SetEnabled) + 7 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:260(VisibilityOff) + 5 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:265(VisibilityOn) + 7 0.003 0.000 0.010 0.001 ImagePlaneWidget.py:32(__init__) + 28 0.001 0.000 0.003 0.000 ImagePlaneWidget.py:320(BuildRepresentation) + 7 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:601(CreateDefaultProperties) + 14 0.001 0.000 0.097 0.007 ImagePlaneWidget.py:630(PlaceWidget) + 7 0.001 0.000 0.020 0.003 ImagePlaneWidget.py:676(SetPlaneOrientation) + 63 0.003 0.000 0.084 0.001 ImagePlaneWidget.py:747(SetInput) + 98 0.001 0.000 0.054 0.001 ImagePlaneWidget.py:779(UpdateInputs) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:793(updateTextDisplay) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:796(getPlaneHeightCoord) + 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:8(DisplayMode) + 36 0.004 0.000 0.036 0.001 ImagePlaneWidget.py:828(UpdatePlane) + 69 0.000 0.000 0.001 0.000 ImagePlaneWidget.py:953(SetResliceInterpolate) + 6 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:971(CreateDefaultLookupTable) + 56 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:983(SetLookupTable) + 1 0.000 0.000 0.000 0.000 ListWidget.py:122(ColorbarListWidget) + 1 0.000 0.000 0.000 0.000 ListWidget.py:15(ListWidget) + 1 0.000 0.000 0.000 0.000 ListWidget.py:5() + 1 0.000 0.000 0.000 0.000 MV2.py:1() + 63 0.000 0.000 0.016 0.000 MV2.py:111(commonAxes) + 63 0.000 0.000 0.003 0.000 MV2.py:165(commonGrid) + 63 0.000 0.000 0.003 0.000 MV2.py:185(commonGrid1) + 1 0.000 0.000 0.000 0.000 MV2.py:213(var_binary_operation) + 20 0.000 0.000 0.000 0.000 MV2.py:214(__init__) + 63 0.001 0.000 0.080 0.001 MV2.py:221(__call__) + 26 0.000 0.000 0.000 0.000 MV2.py:303(_conv_axis_arg) + 172 0.000 0.000 0.018 0.000 MV2.py:33(_makeMaskedArg) + 1 0.000 0.000 0.000 0.000 MV2.py:4() + 26 0.001 0.000 0.075 0.003 MV2.py:400(average) + 34 0.000 0.000 0.004 0.000 MV2.py:43(_extractMetadata) + 4 0.000 0.000 0.006 0.001 MV2.py:525(masked_equal) + 4 0.000 0.000 0.007 0.002 MV2.py:620(transpose) + 1 0.000 0.000 0.000 0.000 MV2.py:634(_minimum_operation) + 1 0.000 0.000 0.000 0.000 MV2.py:636(__init__) + 6 0.000 0.000 0.001 0.000 MV2.py:642(__call__) + 1 0.000 0.000 0.000 0.000 MV2.py:69(var_unary_operation) + 1 0.000 0.000 0.000 0.000 MV2.py:690(_maximum_operation) + 1 0.000 0.000 0.000 0.000 MV2.py:692(__init__) + 6 0.000 0.000 0.001 0.000 MV2.py:698(__call__) + 22 0.000 0.000 0.000 0.000 MV2.py:70(__init__) + 1 0.000 0.000 0.000 0.000 MV2.py:82(var_unary_operation_with_axis) + 2 0.000 0.000 0.000 0.000 MV2.py:83(__init__) + 60 0.000 0.000 0.000 0.000 MV2.py:879(isMaskedVariable) + 63 0.000 0.000 0.016 0.000 MV2.py:96(commonDomain) + 3 0.000 0.000 0.156 0.052 MapManager.py:147(getBaseMapActor) + 3 0.000 0.000 0.000 0.000 MapManager.py:164(ComputeCornerPosition) + 6 0.000 0.000 0.000 0.000 MapManager.py:181(RollMap) + 1 0.000 0.000 0.000 0.000 MapManager.py:22(MapManager) + 3 0.000 0.000 0.000 0.000 MapManager.py:222(NormalizeMapLon) + 3 0.000 0.000 0.000 0.000 MapManager.py:24(__init__) + 3 0.000 0.000 0.000 0.000 MapManager.py:43(setMapOpacity) + 1 0.000 0.000 0.000 0.000 MapManager.py:5() + 3 0.000 0.000 0.000 0.000 MapManager.py:85(updateMapOpacity) + 3 0.001 0.000 0.156 0.052 MapManager.py:91(build) + 1 0.000 0.000 0.000 0.000 Multi.py:1() + 1 0.000 0.000 0.000 0.000 Multi.py:133(Multi) + 1 0.000 0.000 0.000 0.000 Multi.py:24(Spacing) + 1 0.000 0.000 0.000 0.000 Multi.py:46(Margins) + 1 0.000 0.000 0.000 0.000 Multi.py:87(Legend) + 1 0.000 0.000 0.000 0.000 MultiVarPointCollection.py:10(InterfaceType) + 1 0.000 0.000 0.000 0.000 MultiVarPointCollection.py:32(PlotType) + 1 0.000 0.000 0.000 0.000 MultiVarPointCollection.py:5() + 1 0.000 0.000 0.000 0.000 MultiVarPointCollection.py:58(MultiVarPointCollection) + 8 0.000 0.000 0.000 0.000 Pboxeslines.py:108(__init__) + 1 0.000 0.000 0.000 0.000 Pboxeslines.py:34(Pbl) + 1 0.000 0.000 0.000 0.000 Pboxeslines.py:4() + 1 0.000 0.000 0.000 0.000 Pdata.py:119(__init__) + 1 0.000 0.000 0.000 0.000 Pdata.py:28(Pds) + 1 0.000 0.000 0.000 0.000 Pdata.py:4() + 7 0.000 0.000 0.001 0.000 Pformat.py:122(__init__) + 2800 0.001 0.000 0.001 0.000 Pformat.py:171(_getformat) + 3094 0.003 0.000 0.012 0.000 Pformat.py:174(_setformat) + 1 0.000 0.000 0.000 0.000 Pformat.py:33(Pf) + 1 0.000 0.000 0.000 0.000 Pformat.py:4() + 1 0.000 0.000 0.000 0.000 Plegend.py:132(__init__) + 1 0.000 0.000 0.000 0.000 Plegend.py:34(Pls) + 1 0.000 0.000 0.000 0.000 Plegend.py:4() + 1 0.000 0.000 0.000 0.000 PointCloudViewer.py:113(ConfigMode) + 1 0.000 0.000 0.000 0.000 PointCloudViewer.py:119(Counter) + 1 0.000 0.000 0.000 0.000 PointCloudViewer.py:1411(QPointCollectionMgrThread) + 1 0.000 0.000 0.000 0.000 PointCloudViewer.py:151(CPCPlot) + 10 0.000 0.000 0.171 0.017 PointCloudViewer.py:153(__init__) + 1 0.002 0.002 0.006 0.006 PointCloudViewer.py:5() + 1 0.000 0.000 0.000 0.000 PointCollection.py:28(PointCollection) + 1 0.000 0.000 0.000 0.000 PointCollection.py:5() + 22 0.000 0.000 0.001 0.000 Ptext.py:120(__init__) + 1 0.000 0.000 0.000 0.000 Ptext.py:33(Pt) + 1 0.000 0.000 0.000 0.000 Ptext.py:4() + 2 0.000 0.000 0.000 0.000 Pxlabels.py:120(__init__) + 1 0.000 0.000 0.000 0.000 Pxlabels.py:33(Pxl) + 1 0.000 0.000 0.000 0.000 Pxlabels.py:4() + 4 0.000 0.000 0.000 0.000 Pxtickmarks.py:121(__init__) + 1 0.000 0.000 0.000 0.000 Pxtickmarks.py:34(Pxt) + 1 0.000 0.000 0.000 0.000 Pxtickmarks.py:4() + 2 0.000 0.000 0.000 0.000 Pylabels.py:120(__init__) + 1 0.000 0.000 0.000 0.000 Pylabels.py:33(Pyl) + 1 0.001 0.001 0.001 0.001 Pylabels.py:4() + 4 0.000 0.000 0.000 0.000 Pytickmarks.py:120(__init__) + 1 0.000 0.000 0.000 0.000 Pytickmarks.py:33(Pyt) + 1 0.000 0.000 0.000 0.000 Pytickmarks.py:4() + 13 0.001 0.000 0.185 0.014 RectilinearGridPlot.py:102(__init__) + 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1086(processToggleClippingCommand) + 3 0.000 0.000 0.015 0.005 RectilinearGridPlot.py:1214(generateCTF) + 12 0.000 0.000 0.211 0.018 RectilinearGridPlot.py:1228(setColormap) + 6 0.016 0.003 0.020 0.003 RectilinearGridPlot.py:1242(rebuildColorTransferFunction) + 3 0.000 0.000 0.002 0.001 RectilinearGridPlot.py:1276(generateOTF) + 12 0.001 0.000 0.003 0.000 RectilinearGridPlot.py:1288(getTransferFunctionPoints) + 84 0.001 0.000 0.002 0.000 RectilinearGridPlot.py:1360(getNewNode) + 6 0.000 0.000 0.004 0.001 RectilinearGridPlot.py:1369(updateOTF) + 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1438(setZScale) + 49 0.001 0.000 0.002 0.000 RectilinearGridPlot.py:1449(setInputZScale) + 3 0.000 0.000 0.037 0.012 RectilinearGridPlot.py:1468(initConstituentOpacities) + 12 0.000 0.000 0.083 0.007 RectilinearGridPlot.py:1476(updateOpacity) + 21 0.001 0.000 0.203 0.010 RectilinearGridPlot.py:1517(updatingColormap) + 31 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1525(getPlaneWidget) + 12 0.000 0.000 0.001 0.000 RectilinearGridPlot.py:1531(modifySlicePlaneVisibility) + 24 0.002 0.000 0.257 0.011 RectilinearGridPlot.py:1615(updateModule) + 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1652(getLayerColor) + 3 0.000 0.000 0.086 0.029 RectilinearGridPlot.py:1663(ProcessIPWAction) + 27 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:172(debug_log) + 3 0.000 0.000 0.037 0.012 RectilinearGridPlot.py:176(processOpacityScalingCommand) + 4 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1779(setContourVisibility) + 3 0.000 0.000 0.058 0.019 RectilinearGridPlot.py:1812(initConstituentColormapScaling) + 9 0.000 0.000 0.057 0.006 RectilinearGridPlot.py:1821(scaleColormap) + 3 0.000 0.000 0.074 0.025 RectilinearGridPlot.py:212(processColorScaleCommand) + 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:279(setIsosurfaceLevel) + 1 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:28(TransferFunction) + 3 0.000 0.000 0.001 0.000 RectilinearGridPlot.py:285(processIsosurfaceValueCommand) + 3 0.000 0.000 0.003 0.001 RectilinearGridPlot.py:319(processThresholdRangeCommand) + 19 0.001 0.000 0.214 0.011 RectilinearGridPlot.py:347(processSlicingCommand) + 1 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:37(NodeData) + 84 0.001 0.000 0.001 0.000 RectilinearGridPlot.py:45(__init__) + 6 0.000 0.000 0.001 0.000 RectilinearGridPlot.py:466(initializeClipper) + 6 0.000 0.000 0.001 0.000 RectilinearGridPlot.py:475(activateEvent) + 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:480(getVolumeBounds) + 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:498(clipOff) + 1 0.006 0.006 0.013 0.013 RectilinearGridPlot.py:5() + 6 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:577(getSgnRangeBounds) + 18 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:60(setImageVectorData) + 9 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:623(onRender) + 84 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:75(getImagePosition) + 1 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:85(RectGridPlot) + 3 0.002 0.001 0.689 0.230 RectilinearGridPlot.py:962(buildPipeline) + 1 0.000 0.000 0.000 0.000 Shapefile.py:1000(Editor) + 1 0.000 0.000 0.000 0.000 Shapefile.py:1118(shapeFileReader) + 3 0.000 0.000 0.000 0.000 Shapefile.py:1120(__init__) + 3 0.000 0.000 0.000 0.000 Shapefile.py:1127(setColors) + 3 0.000 0.000 0.000 0.000 Shapefile.py:1131(setWidth) + 3 0.141 0.047 0.248 0.083 Shapefile.py:1136(getPolyLines) + 1 0.000 0.000 0.000 0.000 Shapefile.py:1226(multiRoiShape) + 3 0.000 0.000 0.000 0.000 Shapefile.py:1228(__init__) + 3 0.000 0.000 0.010 0.003 Shapefile.py:1232(openFile) + 3 0.000 0.000 0.010 0.003 Shapefile.py:1242(read) + 1 0.000 0.000 0.000 0.000 Shapefile.py:179(_ShapeRecord) + 1 0.000 0.000 0.000 0.000 Shapefile.py:185(ShapefileException) + 1 0.000 0.000 0.000 0.000 Shapefile.py:189(Reader) + 3 0.000 0.000 0.004 0.001 Shapefile.py:207(__init__) + 3 0.000 0.000 0.004 0.001 Shapefile.py:242(load) + 405 0.001 0.000 0.001 0.000 Shapefile.py:267(__getFileObj) + 3 0.000 0.000 0.002 0.001 Shapefile.py:288(__shpHeader) + 402 0.052 0.000 0.075 0.000 Shapefile.py:306(__shape) + 3 0.001 0.000 0.076 0.025 Shapefile.py:400(shapes) + 15 0.000 0.000 0.000 0.000 Shapefile.py:41(b) + 3 0.000 0.000 0.001 0.000 Shapefile.py:417(__dbfHeaderLength) + 3 0.000 0.000 0.001 0.000 Shapefile.py:427(__dbfHeader) + 1 0.000 0.000 0.000 0.000 Shapefile.py:547(Writer) + 12 0.000 0.000 0.000 0.000 Shapefile.py:56(u) + 3 0.000 0.000 0.000 0.000 Shapefile.py:71(is_string) + 1 0.000 0.000 0.000 0.000 Shapefile.py:77(_Array) + 1 0.000 0.000 0.001 0.001 Shapefile.py:9() + 1 0.000 0.000 0.000 0.000 Shapefile.py:93(_Shape) + 402 0.000 0.000 0.000 0.000 Shapefile.py:94(__init__) + 1 0.000 0.000 0.000 0.000 SliceViewer.py:19(SlicePlot) + 1 0.000 0.000 0.000 0.000 SliceViewer.py:5() + 1511 0.002 0.000 0.003 0.000 StringIO.py:119(read) + 912 0.002 0.000 0.002 0.000 StringIO.py:139(readline) + 246 0.001 0.000 0.002 0.000 StringIO.py:187(truncate) + 903 0.003 0.000 0.004 0.000 StringIO.py:208(write) + 503 0.001 0.000 0.001 0.000 StringIO.py:258(getvalue) + 1 0.000 0.000 0.000 0.000 StringIO.py:30() + 4075 0.001 0.000 0.001 0.000 StringIO.py:38(_complain_ifclosed) + 1 0.000 0.000 0.000 0.000 StringIO.py:42(StringIO) + 17 0.000 0.000 0.000 0.000 StringIO.py:54(__init__) + 10 0.000 0.000 0.000 0.000 StringIO.py:81(close) + 1 0.000 0.000 0.000 0.000 StructuredDataset.py:154(CDMSDatasetRecord) + 7 0.000 0.000 0.000 0.000 StructuredDataset.py:19(getItem) + 1 0.000 0.000 0.000 0.000 StructuredDataset.py:35(MemoryLogger) + 1 0.000 0.000 0.000 0.000 StructuredDataset.py:36(__init__) + 20 0.000 0.000 0.000 0.000 StructuredDataset.py:45(log) + 1 0.000 0.000 0.001 0.001 StructuredDataset.py:478(CDMSDataset) + 3 0.000 0.000 0.000 0.000 StructuredDataset.py:482(__init__) + 1 0.000 0.000 0.001 0.001 StructuredDataset.py:5() + 5 0.000 0.000 0.000 0.000 StructuredDataset.py:500(setVariableRecord) + 3 0.000 0.000 0.000 0.000 StructuredDataset.py:506(getVarRecValues) + 4 0.000 0.000 0.000 0.000 StructuredDataset.py:512(setRoi) + 3 0.000 0.000 0.000 0.000 StructuredDataset.py:523(getTimeValues) + 5 0.000 0.000 0.000 0.000 StructuredDataset.py:570(addTransientVariable) + 9 0.000 0.000 0.000 0.000 StructuredDataset.py:577(getTransientVariable) + 4 0.000 0.000 0.000 0.000 StructuredDataset.py:580(getTransientVariableNames) + 6 0.000 0.000 0.000 0.000 StructuredDataset.py:592(__getitem__) + 4 0.000 0.000 0.036 0.009 StructuredDataset.py:649(getVarDataCube) + 4 0.000 0.000 0.035 0.009 StructuredDataset.py:681(getTransVarDataCube) + 1 0.000 0.000 0.000 0.000 StructuredDataset.py:834(SerializedInterfaceSpecs) + 1 0.000 0.000 0.000 0.000 StructuredDataset.py:895(StructuredFileReader) + 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:128(getRangeBounds) + 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:139(setMaxScalarValue) + 1 0.000 0.000 0.000 0.000 StructuredGridPlot.py:14(StructuredGridPlot) + 13 0.000 0.000 0.113 0.009 StructuredGridPlot.py:16(__init__) + 49 0.000 0.000 0.001 0.000 StructuredGridPlot.py:161(setInputZScale) + 9 0.000 0.000 0.000 0.000 StructuredGridPlot.py:174(getDataRangeBounds) + 46 0.001 0.000 0.004 0.000 StructuredGridPlot.py:193(input) + 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:203(isBuilt) + 3 0.000 0.000 0.001 0.000 StructuredGridPlot.py:206(initializeInputs) + 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:217(initMetadata) + 4 0.000 0.000 0.001 0.000 StructuredGridPlot.py:225(intiTime) + 3 0.000 0.000 1.340 0.447 StructuredGridPlot.py:235(execute) + 6 0.000 0.000 0.000 0.000 StructuredGridPlot.py:247(getScalarRange) + 5 0.000 0.000 0.000 0.000 StructuredGridPlot.py:251(basemapLinesVisibilityOn) + 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:256(basemapLinesVisibilityOff) + 3 0.004 0.001 0.252 0.084 StructuredGridPlot.py:261(createBasemapPolyline) + 6 0.000 0.000 0.322 0.054 StructuredGridPlot.py:286(setBasemapLineSpecs) + 3 0.000 0.000 0.288 0.096 StructuredGridPlot.py:305(setBasemapCoastlineLineSpecs) + 3 0.000 0.000 0.034 0.011 StructuredGridPlot.py:314(setBasemapCountriesLineSpecs) + 98 0.000 0.000 0.000 0.000 StructuredGridPlot.py:334(getInputSpec) + 102 0.000 0.000 0.000 0.000 StructuredGridPlot.py:338(getDataValue) + 6 0.000 0.000 0.000 0.000 StructuredGridPlot.py:347(getDataValues) + 21 0.000 0.000 0.000 0.000 StructuredGridPlot.py:355(getImageValues) + 3 0.000 0.000 0.297 0.099 StructuredGridPlot.py:369(initializeConfiguration) + 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:38(processBasemapOpacityCommand) + 3 0.000 0.000 0.156 0.052 StructuredGridPlot.py:398(buildBaseMap) + 1 0.003 0.003 0.006 0.006 StructuredGridPlot.py:5() + 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:61(processVerticalScalingCommand) + 3 0.000 0.000 2.197 0.732 StructuredGridPlot.py:637(gminit) + 9 0.000 0.000 0.012 0.001 StructuredGridPlot.py:660(updateTextDisplay) + 5 0.000 0.000 0.000 0.000 StructuredVariableReader.py:13(getVarName) + 57 0.000 0.000 0.000 0.000 StructuredVariableReader.py:149(getCachedImageData) + 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:152(setCachedImageData) + 7 0.000 0.000 0.000 0.000 StructuredVariableReader.py:18(getRoiSize) + 17 0.000 0.000 0.000 0.000 StructuredVariableReader.py:181(getCachedData) + 6 0.000 0.000 0.000 0.000 StructuredVariableReader.py:187(setCachedData) + 5 0.000 0.000 0.000 0.000 StructuredVariableReader.py:200(addCDMSVariable) + 3 0.000 0.000 0.001 0.000 StructuredVariableReader.py:206(designateAxes) + 1 0.000 0.000 0.000 0.000 StructuredVariableReader.py:22(OutputRecManager) + 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:232(setParameter) + 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:238(setupTimeAxis) + 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:26(__init__) + 3 0.000 0.000 0.082 0.027 StructuredVariableReader.py:280(execute) + 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:35(addOutputRec) + 3 0.000 0.000 0.080 0.027 StructuredVariableReader.py:392(generateOutput) + 49 0.000 0.000 0.000 0.000 StructuredVariableReader.py:431(output) + 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:440(outputSpec) + 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:443(nOutputs) + 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:47(getOutputRecs) + 1 0.002 0.002 0.003 0.003 StructuredVariableReader.py:5() + 1 0.000 0.000 0.000 0.000 StructuredVariableReader.py:51(OutputRec) + 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:53(__init__) + 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:531(levOrderingDownward) + 8 0.000 0.000 0.000 0.000 StructuredVariableReader.py:538(getFieldData) + 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:543(initializeMetadata) + 4 0.001 0.000 0.053 0.013 StructuredVariableReader.py:556(getImageData) + 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:65(getKey) + 6 0.000 0.000 0.000 0.000 StructuredVariableReader.py:77(getSelectedLevel) + 16 0.000 0.000 0.000 0.000 StructuredVariableReader.py:796(getAxisValues) + 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:80(updateSelections) + 16 0.000 0.000 0.000 0.000 StructuredVariableReader.py:819(getCoordType) + 5 0.000 0.000 0.001 0.000 StructuredVariableReader.py:835(getIntersectedRoi) + 1 0.000 0.000 0.000 0.000 StructuredVariableReader.py:86(StructuredDataReader) + 4 0.000 0.000 0.002 0.000 StructuredVariableReader.py:860(getGridSpecs) + 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:91(__init__) + 1616 0.001 0.000 0.001 0.000 UserDict.py:103(__contains__) + 3262 0.002 0.000 0.002 0.000 UserDict.py:34(__len__) + 889 0.001 0.000 0.001 0.000 UserDict.py:35(__getitem__) + 1 0.000 0.000 0.000 0.000 UserDict.py:4(__init__) + 2 0.000 0.000 0.000 0.000 UserDict.py:57(items) + 777 0.001 0.000 0.001 0.000 UserDict.py:91(get) + 1 0.000 0.000 0.000 0.000 UserList.py:1() + 7767 0.003 0.000 0.003 0.000 UserList.py:29(__contains__) + 1 0.000 0.000 0.000 0.000 UserList.py:5(UserList) + 10 0.000 0.000 0.000 0.000 UserList.py:6(__init__) + 21 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1011(checkLegend) + 42 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1068(checkExt) + 1059 0.004 0.000 0.008 0.000 VCS_validation_functions.py:1102(checkProjection) + 86 0.000 0.000 0.001 0.000 VCS_validation_functions.py:1126(checkTicks) + 652 0.001 0.000 0.003 0.000 VCS_validation_functions.py:1143(checkStringDictionary) + 24 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1175(DMS2deg) + 116 0.001 0.000 0.001 0.000 VCS_validation_functions.py:1189(checkProjParameters) + 72 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1222(checkCalendar) + 72 0.001 0.000 0.002 0.000 VCS_validation_functions.py:1245(checkTimeUnits) + 288 0.000 0.000 0.002 0.000 VCS_validation_functions.py:1263(checkDatawc) + 2035 0.027 0.000 0.043 0.000 VCS_validation_functions.py:1294(checkInStringsListInt) + 25 0.001 0.000 0.008 0.000 VCS_validation_functions.py:1336(checkProjType) + 7897 0.026 0.000 0.216 0.000 VCS_validation_functions.py:141(checkLine) + 4124 0.017 0.000 0.017 0.000 VCS_validation_functions.py:1578(getProjType) + 143379 0.144 0.000 0.211 0.000 VCS_validation_functions.py:165(isNumber) + 99 0.004 0.000 0.006 0.000 VCS_validation_functions.py:1663(setProjParameter) + 20904 0.006 0.000 0.006 0.000 VCS_validation_functions.py:1712(_getpriority) + 22552 0.020 0.000 0.175 0.000 VCS_validation_functions.py:1716(_setpriority) + 402 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1721(arrow) + 401 0.000 0.000 0.002 0.000 VCS_validation_functions.py:1727(arrow) + 499 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1732(offset) + 401 0.000 0.000 0.002 0.000 VCS_validation_functions.py:1738(offset) + 6361 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1743(x1) + 6839 0.005 0.000 0.035 0.000 VCS_validation_functions.py:1749(x1) + 6294 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1754(_getX2) + 6839 0.005 0.000 0.032 0.000 VCS_validation_functions.py:1758(_setX2) + 13545 0.004 0.000 0.004 0.000 VCS_validation_functions.py:1763(_getX) + 14420 0.011 0.000 0.069 0.000 VCS_validation_functions.py:1767(_setX) + 141330 0.171 0.000 0.633 0.000 VCS_validation_functions.py:177(checkNumber) + 6220 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1772(_getY1) + 6517 0.005 0.000 0.030 0.000 VCS_validation_functions.py:1776(_setY1) + 6085 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1781(_getY2) + 6517 0.005 0.000 0.033 0.000 VCS_validation_functions.py:1785(_setY2) + 12875 0.004 0.000 0.004 0.000 VCS_validation_functions.py:1790(_getY) + 13707 0.012 0.000 0.080 0.000 VCS_validation_functions.py:1794(_setY) + 13915 0.004 0.000 0.004 0.000 VCS_validation_functions.py:1799(_gettexttable) + 15028 0.014 0.000 1.037 0.000 VCS_validation_functions.py:1803(_settextable) + 13915 0.004 0.000 0.004 0.000 VCS_validation_functions.py:1808(_gettextorientation) + 15031 0.015 0.000 1.395 0.000 VCS_validation_functions.py:1812(_settexorientation) + 6904 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1820(_getLine) + 7518 0.007 0.000 0.211 0.000 VCS_validation_functions.py:1824(_setLine) + 1621 0.001 0.000 0.001 0.000 VCS_validation_functions.py:1829(_getcolormap) + 923 0.001 0.000 0.001 0.000 VCS_validation_functions.py:1833(_setcolormap) + 146 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1852(levels) + 21 0.000 0.000 0.001 0.000 VCS_validation_functions.py:1858(levels) + 32 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1913(_getlegend) + 21 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1920(_setlegend) + 764 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1926(_getprojection) + 40 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1930(_setprojection) + 21 0.000 0.000 0.002 0.000 VCS_validation_functions.py:1953(add_level_ext_1) + 1 0.001 0.001 0.262 0.262 VCS_validation_functions.py:2() + 21 0.000 0.000 0.002 0.000 VCS_validation_functions.py:2009(add_level_ext_2) + 26529 0.041 0.000 0.198 0.000 VCS_validation_functions.py:201(checkInt) + 44 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2043(ext_1) + 21 0.000 0.000 0.002 0.000 VCS_validation_functions.py:2049(ext_1) + 37 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2059(ext_2) + 21 0.000 0.000 0.002 0.000 VCS_validation_functions.py:2065(ext_2) + 2366 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2075(_getwc) + 24 0.000 0.000 0.001 0.000 VCS_validation_functions.py:2079(_setwc) + 2404 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2085(_getvp) + 23 0.000 0.000 0.001 0.000 VCS_validation_functions.py:2089(_setvp) + 15753 0.066 0.000 0.390 0.000 VCS_validation_functions.py:209(checkListOfNumbers) + 24 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2101(_getfillareaopacity) + 20 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2115(_getfillareacolors) + 21 0.000 0.000 0.001 0.000 VCS_validation_functions.py:2119(_setfillareacolors) + 2 0.000 0.000 0.000 0.000 VCS_validation_functions.py:246(checkInStringList) + 556 0.002 0.000 0.004 0.000 VCS_validation_functions.py:258(checkFont) + 65 0.011 0.000 0.013 0.000 VCS_validation_functions.py:280(checkMarker) + 36 0.000 0.000 0.008 0.000 VCS_validation_functions.py:368(checkMarkersList) + 41 0.000 0.000 0.000 0.000 VCS_validation_functions.py:379(checkListElements) + 248364 0.211 0.000 0.450 0.000 VCS_validation_functions.py:409(checkName) + 4447 0.005 0.000 0.014 0.000 VCS_validation_functions.py:434(checkString) + 1625 0.003 0.000 0.007 0.000 VCS_validation_functions.py:464(checkFillAreaStyle) + 144 0.000 0.000 0.001 0.000 VCS_validation_functions.py:490(checkAxisConvert) + 8 0.000 0.000 0.000 0.000 VCS_validation_functions.py:507(checkBoxfillType) + 29 0.000 0.000 0.000 0.000 VCS_validation_functions.py:526(checkIntFloat) + 496 0.001 0.000 0.001 0.000 VCS_validation_functions.py:55(checkedRaise) + 21 0.000 0.000 0.000 0.000 VCS_validation_functions.py:558(checkFuzzyBoolean) + 31 0.000 0.000 0.000 0.000 VCS_validation_functions.py:581(checkTrueFalse) + 6 0.000 0.000 0.000 0.000 VCS_validation_functions.py:595(checkOnOff) + 2 0.000 0.000 0.000 0.000 VCS_validation_functions.py:651(checkYesNo) + 24 0.000 0.000 0.001 0.000 VCS_validation_functions.py:66(checkElements) + 7 0.000 0.000 0.000 0.000 VCS_validation_functions.py:698(checkWrap) + 1039 0.002 0.000 0.005 0.000 VCS_validation_functions.py:716(checkListTuple) + 7574 0.034 0.000 0.135 0.000 VCS_validation_functions.py:732(checkColor) + 487 0.006 0.000 0.093 0.000 VCS_validation_functions.py:766(checkColorList) + 29 0.000 0.000 0.000 0.000 VCS_validation_functions.py:781(checkIsolineLevels) + 1636 0.004 0.000 0.011 0.000 VCS_validation_functions.py:798(checkIndex) + 1 0.000 0.000 0.000 0.000 VCS_validation_functions.py:8(PPE) + 42 0.001 0.000 0.012 0.000 VCS_validation_functions.py:815(checkIndicesList) + 3675 0.002 0.000 0.011 0.000 VCS_validation_functions.py:826(checkOpacity) + 32 0.002 0.000 0.012 0.000 VCS_validation_functions.py:842(checkOpacitiesList) + 2 0.000 0.000 0.000 0.000 VCS_validation_functions.py:853(checkVectorType) + 2 0.000 0.000 0.000 0.000 VCS_validation_functions.py:872(checkVectorAlignment) + 1086 0.001 0.000 0.004 0.000 VCS_validation_functions.py:891(checkLineType) + 761 0.015 0.000 0.055 0.000 VCS_validation_functions.py:90(checkContinents) + 388 0.002 0.000 0.009 0.000 VCS_validation_functions.py:912(checkLineTypeList) + 15028 0.066 0.000 1.023 0.000 VCS_validation_functions.py:923(checkTextTable) + 15031 0.076 0.000 1.380 0.000 VCS_validation_functions.py:945(checkTextOrientation) + 4 0.000 0.000 0.000 0.000 VCS_validation_functions.py:968(checkTextsList) + 1 0.000 0.000 0.000 0.000 VTKAnimate.py:121(VTKAnimationPlayback) + 1 0.000 0.000 0.000 0.000 VTKAnimate.py:151(VTKAnimate) + 41 0.000 0.000 0.002 0.000 VTKAnimate.py:153(__init__) + 1 0.001 0.001 0.002 0.002 VTKAnimate.py:3() + 1 0.000 0.000 0.000 0.000 VTKAnimate.py:46(VTKAnimationCreate) + 1 0.002 0.002 0.013 0.013 VTKPlots.py:1() + 331 0.003 0.000 0.004 0.000 VTKPlots.py:1067(get3DPlot) + 41 0.000 0.000 0.002 0.000 VTKPlots.py:1256(Animate) + 346 0.006 0.000 0.074 0.000 VTKPlots.py:1304(createLogo) + 349 0.003 0.000 0.079 0.000 VTKPlots.py:1329(scaleLogo) + 174 0.008 0.000 0.024 0.000 VTKPlots.py:1336(fitToViewport) + 1 0.000 0.000 0.000 0.000 VTKPlots.py:17(VCSInteractorStyle) + 19 0.000 0.000 0.002 0.000 VTKPlots.py:19(__init__) + 350 0.003 0.000 0.007 0.000 VTKPlots.py:263(configureEvent) + 1 0.000 0.000 0.000 0.000 VTKPlots.py:30(VTKVCSBackend) + 41 0.001 0.000 0.001 0.000 VTKPlots.py:32(__init__) + 19 0.019 0.001 0.033 0.002 VTKPlots.py:357(createDefaultInteractor) + 349 0.002 0.000 0.061 0.000 VTKPlots.py:368(createRenWin) + 220 0.005 0.000 0.005 0.000 VTKPlots.py:402(createRenderer) + 25 0.000 0.000 0.000 0.000 VTKPlots.py:434(canvasinfo) + 1 0.000 0.000 0.000 0.000 VTKPlots.py:470(orientation) + 19 0.000 0.000 0.026 0.001 VTKPlots.py:504(initialSize) + 349/50 0.027 0.000 14.997 0.300 VTKPlots.py:567(plot) + 22 0.000 0.000 0.000 0.000 VTKPlots.py:697() + 748 0.004 0.000 0.013 0.000 VTKPlots.py:712(setLayer) + 3 0.001 0.000 2.248 0.749 VTKPlots.py:718(plot3D) + 13 0.007 0.001 0.193 0.015 VTKPlots.py:756(plotContinents) + 13 0.002 0.000 3.475 0.267 VTKPlots.py:816(renderTemplate) + 10 0.001 0.000 0.919 0.092 VTKPlots.py:933(renderColorBar) + 20 0.000 0.000 0.013 0.001 VTKPlots.py:947(cleanupData) + 6 0.000 0.000 0.034 0.006 VTKPlots.py:951(trimData1D) + 24 0.000 0.000 0.079 0.003 VTKPlots.py:959(trimData2D) + 1 0.000 0.000 0.000 0.000 ValidationFunctions.py:1() + 1 0.000 0.000 0.000 0.000 ValidationFunctions.py:2() + 2 0.000 0.000 0.000 0.000 __config__.py:3() + 1 0.000 0.000 0.000 0.000 __future__.py:48() + 1 0.000 0.000 0.000 0.000 __future__.py:74(_Feature) + 7 0.000 0.000 0.000 0.000 __future__.py:75(__init__) + 16 0.234 0.015 0.641 0.040 __init__.py:1() + 2 0.002 0.001 0.002 0.001 __init__.py:10() + 3 0.000 0.000 0.000 0.000 __init__.py:101(CFunctionType) + 1 0.015 0.015 0.339 0.339 __init__.py:106() + 10 0.001 0.000 0.047 0.005 __init__.py:109(cpu_count) + 14 0.000 0.000 0.000 0.000 __init__.py:144(_check_size) + 1 0.010 0.010 0.016 0.016 __init__.py:15() + 1 0.000 0.000 0.000 0.000 __init__.py:156(py_object) + 1 0.000 0.000 0.000 0.000 __init__.py:165(c_short) + 1 0.000 0.000 0.000 0.000 __init__.py:169(c_ushort) + 1 0.000 0.000 0.000 0.000 __init__.py:17() + 1 0.000 0.000 0.000 0.000 __init__.py:173(c_long) + 1 0.000 0.000 0.000 0.000 __init__.py:177(c_ulong) + 1 0.001 0.001 0.002 0.002 __init__.py:18() + 1 0.000 0.000 0.000 0.000 __init__.py:186(c_int) + 1 0.000 0.000 0.000 0.000 __init__.py:190(c_uint) + 1 0.000 0.000 0.000 0.000 __init__.py:194(c_float) + 1 0.000 0.000 0.000 0.000 __init__.py:198(c_double) + 4 0.070 0.018 0.552 0.138 __init__.py:2() + 1 0.000 0.000 0.000 0.000 __init__.py:20(import_module) + 1 0.000 0.000 0.000 0.000 __init__.py:202(c_longdouble) + 1 0.000 0.000 0.000 0.000 __init__.py:223(c_ubyte) + 1 0.000 0.000 0.000 0.000 __init__.py:230(c_byte) + 1 0.000 0.000 0.000 0.000 __init__.py:235(c_char) + 1 0.000 0.000 0.000 0.000 __init__.py:240(c_char_p) + 1 0.000 0.000 0.000 0.000 __init__.py:252(c_void_p) + 41 0.001 0.000 0.017 0.000 __init__.py:254(init) + 1 0.000 0.000 0.000 0.000 __init__.py:257(c_bool) + 2 0.000 0.000 0.042 0.021 __init__.py:258(load) + 1 0.000 0.000 0.000 0.000 __init__.py:262(_reset_cache) + 1 0.000 0.000 0.000 0.000 __init__.py:288(c_wchar_p) + 1 0.000 0.000 0.000 0.000 __init__.py:291(c_wchar) + 2 0.000 0.000 0.033 0.016 __init__.py:294(loads) + 4 0.030 0.008 0.501 0.125 __init__.py:3() + 1 0.000 0.000 0.000 0.000 __init__.py:329(CDLL) + 2 0.000 0.000 0.002 0.001 __init__.py:346(__init__) + 2 0.000 0.000 0.000 0.000 __init__.py:356(_FuncPtr) + 37 0.000 0.000 0.000 0.000 __init__.py:372(__getattr__) + 37 0.000 0.000 0.000 0.000 __init__.py:379(__getitem__) + 1 0.000 0.000 0.000 0.000 __init__.py:385(PyDLL) + 1 0.000 0.000 0.000 0.000 __init__.py:4() + 1 0.004 0.004 0.009 0.009 __init__.py:41() + 1 0.000 0.000 0.000 0.000 __init__.py:425(LibraryLoader) + 2 0.000 0.000 0.000 0.000 __init__.py:426(__init__) + 1 0.000 0.000 0.002 0.002 __init__.py:429(__getattr__) + 1 0.000 0.000 0.002 0.002 __init__.py:436(__getitem__) + 1 0.004 0.004 0.005 0.005 __init__.py:44() + 2 0.008 0.004 0.020 0.010 __init__.py:45() + 1 0.012 0.012 2.389 2.389 __init__.py:49() + 4 0.000 0.000 0.000 0.000 __init__.py:49(normalize_encoding) + 3 0.000 0.000 0.000 0.000 __init__.py:490(PYFUNCTYPE) + 3 0.000 0.000 0.000 0.000 __init__.py:491(CFunctionType) + 1 0.003 0.003 0.057 0.057 __init__.py:52() + 1 0.002 0.002 0.044 0.044 __init__.py:7() + 1 0.000 0.000 0.000 0.000 __init__.py:71(ProcessError) + 1 0.000 0.000 0.002 0.002 __init__.py:71(search_function) + 1 0.000 0.000 0.000 0.000 __init__.py:74(BufferTooShort) + 3 0.000 0.000 0.000 0.000 __init__.py:75(CFUNCTYPE) + 1 0.000 0.000 0.000 0.000 __init__.py:77(TimeoutError) + 1 0.000 0.000 0.000 0.000 __init__.py:80(AuthenticationError) + 1 0.009 0.009 0.010 0.010 __init__.py:88() + 1 0.000 0.000 0.000 0.000 __init__.py:9() + 1 0.002 0.002 0.007 0.007 __init__.py:99() + 1 0.000 0.000 0.000 0.000 __version__.py:1() + 48 0.001 0.000 0.002 0.000 _abcoll.py:548(update) + 5 0.000 0.000 0.000 0.000 _abcoll.py:98(__subclasshook__) + 1 0.000 0.000 0.000 0.000 _datasource.py:154(DataSource) + 1 0.000 0.000 0.000 0.000 _datasource.py:35() + 1 0.000 0.000 0.000 0.000 _datasource.py:50(_FileOpeners) + 1 0.000 0.000 0.000 0.000 _datasource.py:504(Repository) + 1 0.000 0.000 0.000 0.000 _datasource.py:74(__init__) + 1 0.000 0.000 0.000 0.000 _endian.py:1() + 1 0.000 0.000 0.000 0.000 _endian.py:23(_swapped_meta) + 1 0.000 0.000 0.000 0.000 _endian.py:46(BigEndianStructure) + 1 0.000 0.000 0.000 0.000 _globals.py:17() + 1 0.000 0.000 0.000 0.000 _globals.py:33(ModuleDeprecationWarning) + 1 0.000 0.000 0.000 0.000 _globals.py:45(VisibleDeprecationWarning) + 1 0.000 0.000 0.000 0.000 _globals.py:56(_NoValue) + 1 0.000 0.000 0.000 0.000 _import_tools.py:1() + 1 0.000 0.000 0.000 0.000 _import_tools.py:340(PackageLoaderDebug) + 1 0.000 0.000 0.000 0.000 _import_tools.py:9(PackageLoader) + 98 0.000 0.000 0.000 0.000 _inspect.py:133(strseq) + 38 0.000 0.000 0.000 0.000 _inspect.py:142(formatargspec) + 7 0.000 0.000 0.000 0.000 _inspect.py:144() + 5 0.000 0.000 0.000 0.000 _inspect.py:145() + 60 0.000 0.000 0.000 0.000 _inspect.py:146() + 43 0.000 0.000 0.000 0.000 _inspect.py:15(ismethod) + 43 0.000 0.000 0.000 0.000 _inspect.py:28(isfunction) + 38 0.000 0.000 0.000 0.000 _inspect.py:43(iscode) + 38 0.000 0.000 0.000 0.000 _inspect.py:67(getargs) + 1 0.000 0.000 0.000 0.000 _inspect.py:7() + 43 0.000 0.000 0.000 0.000 _inspect.py:98(getargspec) + 1 0.000 0.000 0.000 0.000 _internal.py:200(_getintp_ctype) + 1 0.000 0.000 0.000 0.000 _internal.py:219(_missing_ctypes) + 1 0.000 0.000 0.000 0.000 _internal.py:226(_ctypes) + 1 0.003 0.003 0.011 0.011 _internal.py:6() + 1 0.000 0.000 0.000 0.000 _internal.py:631(TooHardError) + 1 0.000 0.000 0.000 0.000 _iotools.py:154(LineSplitter) + 1 0.000 0.000 0.000 0.000 _iotools.py:250(NameValidator) + 1 0.000 0.000 0.000 0.000 _iotools.py:3() + 1 0.000 0.000 0.000 0.000 _iotools.py:444(ConverterError) + 1 0.000 0.000 0.000 0.000 _iotools.py:452(ConverterLockError) + 1 0.000 0.000 0.000 0.000 _iotools.py:460(ConversionWarning) + 1 0.000 0.000 0.000 0.000 _iotools.py:473(StringConverter) + 53 0.000 0.000 0.001 0.000 _methods.py:25(_amax) + 53 0.000 0.000 0.001 0.000 _methods.py:28(_amin) + 116 0.000 0.000 0.003 0.000 _methods.py:31(_sum) + 4222 0.003 0.000 0.021 0.000 _methods.py:37(_any) + 3043 0.002 0.000 0.014 0.000 _methods.py:40(_all) + 1 0.000 0.000 0.000 0.000 _methods.py:5() + 1 0.000 0.000 0.000 0.000 _osx_support.py:128(_supports_universal_builds) + 3 0.000 0.000 0.000 0.000 _osx_support.py:138() + 1 0.000 0.000 0.000 0.000 _osx_support.py:260(_override_all_archs) + 1 0.000 0.000 0.000 0.000 _osx_support.py:277(_check_for_unavailable_sdk) + 1 0.000 0.000 0.000 0.000 _osx_support.py:368(customize_config_vars) + 1 0.000 0.000 0.000 0.000 _osx_support.py:83(_get_system_version) + 1 0.000 0.000 0.000 0.000 _polybase.py:19(ABCPolyBase) + 1 0.000 0.000 0.000 0.000 _polybase.py:8() + 1 0.000 0.000 0.000 0.000 _version.py:18(NumpyVersion) + 1 0.000 0.000 0.000 0.000 _version.py:7() + 128 0.000 0.000 0.000 0.000 _weakrefset.py:16(__init__) + 128 0.000 0.000 0.000 0.000 _weakrefset.py:20(__enter__) + 128 0.000 0.000 0.001 0.000 _weakrefset.py:26(__exit__) + 1791 0.076 0.000 0.076 0.000 _weakrefset.py:36(__init__) + 128 0.000 0.000 0.000 0.000 _weakrefset.py:52(_commit_removals) + 158 0.001 0.000 0.003 0.000 _weakrefset.py:58(__iter__) + 141 0.000 0.000 0.000 0.000 _weakrefset.py:70(__contains__) + 45 0.000 0.000 0.000 0.000 _weakrefset.py:83(add) + 15 0.000 0.000 0.001 0.000 abc.py:105(register) + 51 0.000 0.000 0.001 0.000 abc.py:128(__instancecheck__) + 77/68 0.001 0.000 0.001 0.000 abc.py:148(__subclasscheck__) + 49 0.000 0.000 0.000 0.000 abc.py:15(abstractmethod) + 19 0.001 0.000 0.003 0.000 abc.py:86(__new__) + 75 0.000 0.000 0.001 0.000 abc.py:89() + 1 0.002 0.002 0.280 0.280 add_newdocs.py:10() + 1 0.000 0.000 0.001 0.001 animate_helper.py:1() + 1 0.000 0.000 0.000 0.000 animate_helper.py:22(animate_obj_old) + 41 0.000 0.000 0.000 0.000 animate_helper.py:36(__init__) + 1 0.000 0.000 0.000 0.000 animate_helper.py:585(RT) + 1 0.000 0.000 0.000 0.000 animate_helper.py:605(StoppableThread) + 1 0.000 0.000 0.000 0.000 animate_helper.py:629(AnimationCreateParams) + 41 0.000 0.000 0.000 0.000 animate_helper.py:631(__init__) + 1 0.000 0.000 0.000 0.000 animate_helper.py:637(AnimationCreate) + 1 0.000 0.000 0.000 0.000 animate_helper.py:678(AnimationPlaybackParams) + 41 0.000 0.000 0.000 0.000 animate_helper.py:680(__init__) + 1 0.000 0.000 0.000 0.000 animate_helper.py:724(AnimationPlayback) + 1 0.000 0.000 0.000 0.000 animate_helper.py:754(AnimationController) + 41 0.001 0.000 0.001 0.000 animate_helper.py:756(__init__) + 397 0.000 0.000 0.000 0.000 animate_helper.py:814(is_playing) + 1 0.000 0.000 0.000 0.000 argparse.py:1000(_VersionAction) + 1 0.000 0.000 0.000 0.000 argparse.py:1025(_SubParsersAction) + 1 0.000 0.000 0.000 0.000 argparse.py:1027(_ChoicesPseudoAction) + 1 0.000 0.000 0.000 0.000 argparse.py:1109(FileType) + 1 0.000 0.000 0.000 0.000 argparse.py:112(_AttributeHolder) + 1 0.000 0.000 0.000 0.000 argparse.py:1153(Namespace) + 1 0.000 0.000 0.000 0.000 argparse.py:1160(__init__) + 1 0.000 0.000 0.000 0.000 argparse.py:1180(_ActionsContainer) + 3 0.000 0.000 0.003 0.001 argparse.py:1182(__init__) + 34 0.000 0.000 0.000 0.000 argparse.py:1234(register) + 18 0.000 0.000 0.000 0.000 argparse.py:1238(_registry_get) + 8 0.000 0.000 0.001 0.000 argparse.py:1263(add_argument) + 2 0.000 0.000 0.000 0.000 argparse.py:1310(add_argument_group) + 8 0.000 0.000 0.000 0.000 argparse.py:1320(_add_action) + 1 0.000 0.000 0.000 0.000 argparse.py:1384(_get_positional_kwargs) + 7 0.000 0.000 0.000 0.000 argparse.py:1400(_get_optional_kwargs) + 8 0.000 0.000 0.000 0.000 argparse.py:1435(_pop_action_class) + 3 0.000 0.000 0.000 0.000 argparse.py:1439(_get_handler) + 8 0.000 0.000 0.000 0.000 argparse.py:1448(_check_conflict) + 1 0.000 0.000 0.000 0.000 argparse.py:147(HelpFormatter) + 1 0.000 0.000 0.000 0.000 argparse.py:1484(_ArgumentGroup) + 2 0.000 0.000 0.000 0.000 argparse.py:1486(__init__) + 8 0.000 0.000 0.000 0.000 argparse.py:1508(_add_action) + 1 0.000 0.000 0.000 0.000 argparse.py:1518(_MutuallyExclusiveGroup) + 1 0.000 0.000 0.000 0.000 argparse.py:1538(ArgumentParser) + 8 0.000 0.000 0.000 0.000 argparse.py:154(__init__) + 1 0.000 0.000 0.016 0.016 argparse.py:1556(__init__) + 8 0.000 0.000 0.000 0.000 argparse.py:1680(_add_action) + 1 0.000 0.000 0.000 0.000 argparse.py:1692(_get_positional_actions) + 1 0.000 0.000 0.001 0.001 argparse.py:1700(parse_args) + 1 0.000 0.000 0.001 0.001 argparse.py:1707(parse_known_args) + 1 0.000 0.000 0.001 0.001 argparse.py:1742(_parse_known_args) + 4 0.000 0.000 0.000 0.000 argparse.py:1789(take_action) + 3 0.000 0.000 0.000 0.000 argparse.py:1810(consume_optional) + 1 0.000 0.000 0.000 0.000 argparse.py:1887(consume_positionals) + 1 0.000 0.000 0.000 0.000 argparse.py:197(_Section) + 8 0.000 0.000 0.000 0.000 argparse.py:199(__init__) + 3 0.000 0.000 0.000 0.000 argparse.py:2020(_match_argument) + 1 0.000 0.000 0.000 0.000 argparse.py:2039(_match_arguments_partial) + 4 0.000 0.000 0.000 0.000 argparse.py:2055(_parse_optional) + 4 0.000 0.000 0.000 0.000 argparse.py:2156(_get_nargs_pattern) + 4 0.000 0.000 0.000 0.000 argparse.py:2200(_get_values) + 2 0.000 0.000 0.000 0.000 argparse.py:2252(_get_value) + 1 0.000 0.000 0.000 0.000 argparse.py:2277(_check_value) + 8 0.000 0.000 0.001 0.000 argparse.py:2326(_get_formatter) + 8 0.000 0.000 0.000 0.000 argparse.py:557(_metavar_formatter) + 8 0.000 0.000 0.000 0.000 argparse.py:566(format) + 8 0.000 0.000 0.000 0.000 argparse.py:573(_format_args) + 1 0.001 0.001 0.001 0.001 argparse.py:62() + 1 0.000 0.000 0.000 0.000 argparse.py:629(RawDescriptionHelpFormatter) + 1 0.000 0.000 0.000 0.000 argparse.py:640(RawTextHelpFormatter) + 1 0.000 0.000 0.000 0.000 argparse.py:651(ArgumentDefaultsHelpFormatter) + 1 0.000 0.000 0.000 0.000 argparse.py:685(ArgumentError) + 1 0.000 0.000 0.000 0.000 argparse.py:705(ArgumentTypeError) + 1 0.000 0.000 0.000 0.000 argparse.py:714(Action) + 8 0.000 0.000 0.000 0.000 argparse.py:765(__init__) + 1 0.000 0.000 0.000 0.000 argparse.py:805(_StoreAction) + 2 0.000 0.000 0.000 0.000 argparse.py:807(__init__) + 1 0.000 0.000 0.000 0.000 argparse.py:836(__call__) + 1 0.000 0.000 0.000 0.000 argparse.py:840(_StoreConstAction) + 5 0.000 0.000 0.000 0.000 argparse.py:842(__init__) + 3 0.000 0.000 0.000 0.000 argparse.py:859(__call__) + 1 0.000 0.000 0.000 0.000 argparse.py:863(_StoreTrueAction) + 5 0.000 0.000 0.000 0.000 argparse.py:865(__init__) + 1 0.000 0.000 0.000 0.000 argparse.py:880(_StoreFalseAction) + 1 0.000 0.000 0.000 0.000 argparse.py:897(_AppendAction) + 1 0.000 0.000 0.000 0.000 argparse.py:934(_AppendConstAction) + 18 0.000 0.000 0.000 0.000 argparse.py:95(_callable) + 1 0.000 0.000 0.000 0.000 argparse.py:960(_CountAction) + 1 0.000 0.000 0.000 0.000 argparse.py:981(_HelpAction) + 1 0.000 0.000 0.000 0.000 argparse.py:983(__init__) + 1 0.001 0.001 0.001 0.001 array_indexing_emulate.py:3() + 1 0.000 0.000 0.000 0.000 arrayindexing.py:2() + 1 0.000 0.000 0.000 0.000 arraypad.py:5() + 1 0.002 0.002 0.003 0.003 arrayprint.py:5() + 1 0.000 0.000 0.000 0.000 arrayprint.py:528(FloatFormat) + 1 0.000 0.000 0.000 0.000 arrayprint.py:634(IntegerFormat) + 1 0.000 0.000 0.000 0.000 arrayprint.py:654(LongFloatFormat) + 1 0.000 0.000 0.000 0.000 arrayprint.py:684(LongComplexFormat) + 1 0.000 0.000 0.000 0.000 arrayprint.py:695(ComplexFormat) + 1 0.000 0.000 0.000 0.000 arrayprint.py:712(DatetimeFormat) + 1 0.000 0.000 0.000 0.000 arrayprint.py:733(TimedeltaFormat) + 1 0.000 0.000 0.000 0.000 arraysetops.py:26() + 1 0.000 0.000 0.000 0.000 arrayterator.py:20(Arrayterator) + 1 0.000 0.000 0.000 0.000 arrayterator.py:9() + 1 0.000 0.000 0.000 0.000 ast.py:217(NodeVisitor) + 1 0.000 0.000 0.000 0.000 ast.py:254(NodeTransformer) + 1 0.000 0.000 0.000 0.000 ast.py:27() + 2 0.000 0.000 0.000 0.000 atexit.py:37(register) + 1 0.000 0.000 0.000 0.000 atexit.py:6() + 1 0.000 0.000 0.000 0.000 auxcoord.py:15(AbstractAuxAxis1D) + 1 0.000 0.000 0.000 0.000 auxcoord.py:48(DatasetAuxAxis1D) + 1 0.000 0.000 0.000 0.000 auxcoord.py:5() + 1 0.000 0.000 0.000 0.000 auxcoord.py:64(FileAuxAxis1D) + 1 0.000 0.000 0.000 0.000 auxcoord.py:79(TransientAuxAxis1D) + 26 0.000 0.000 0.000 0.000 avariable.py:115(getNumericCompatibility) + 594 0.005 0.000 0.019 0.000 avariable.py:1172(_process_specs) + 1 0.000 0.000 0.000 0.000 avariable.py:119(AbstractVariable) + 263 0.001 0.000 0.002 0.000 avariable.py:1218(_single_specs) + 1012 0.018 0.000 0.039 0.000 avariable.py:123(__init__) + 469 0.008 0.000 0.025 0.000 avariable.py:1235(specs2slices) + 103 0.002 0.000 0.016 0.000 avariable.py:1303(reg_specs2slices) + 20 0.000 0.000 0.000 0.000 avariable.py:1370(isEncoded) + 125 0.001 0.000 0.113 0.001 avariable.py:1419(__getitem__) + 138 0.000 0.000 0.144 0.001 avariable.py:1430(__getslice__) + 12 0.000 0.000 0.022 0.002 avariable.py:1455(__sub__) + 27 0.000 0.000 0.035 0.001 avariable.py:1461(__mul__) + 85 0.001 0.000 0.273 0.003 avariable.py:147(__call__) + 12 0.000 0.000 0.011 0.001 avariable.py:1500(__le__) + 12 0.000 0.000 0.012 0.001 avariable.py:1506(__ge__) + 123 0.001 0.000 0.002 0.000 avariable.py:1522(orderparse) + 85 0.001 0.000 0.008 0.000 avariable.py:1556(order2index) + 8287 0.011 0.000 0.039 0.000 avariable.py:166(rank) + 366 0.004 0.000 0.038 0.000 avariable.py:169(_returnArray) + 90 0.001 0.000 0.018 0.000 avariable.py:233(generateGridkey) + 90 0.000 0.000 0.005 0.000 avariable.py:301(generateRectGridkey) + 180 0.000 0.000 0.000 0.000 avariable.py:328(isAbstractCoordinate) + 139 0.001 0.000 0.002 0.000 avariable.py:332(setGrid) + 388 0.001 0.000 0.010 0.000 avariable.py:360(getAxisIndex) + 24 0.000 0.000 0.001 0.000 avariable.py:370(hasCellData) + 377 0.001 0.000 0.016 0.000 avariable.py:389(getAxisList) + 21 0.000 0.000 0.000 0.000 avariable.py:399(getAxisIds) + 1 0.008 0.008 0.111 0.111 avariable.py:4() + 40 0.000 0.000 0.000 0.000 avariable.py:404(getGrid) + 386 0.002 0.000 0.004 0.000 avariable.py:407(getMissing) + 24 0.000 0.000 0.001 0.000 avariable.py:457(getTime) + 16 0.000 0.000 0.002 0.000 avariable.py:479(getLevel) + 14 0.000 0.000 0.000 0.000 avariable.py:491(getLatitude) + 14 0.000 0.000 0.000 0.000 avariable.py:509(getLongitude) + 68 0.001 0.000 0.003 0.000 avariable.py:528(getOrder) + 366 0.014 0.000 0.488 0.001 avariable.py:559(subSlice) + 263 0.003 0.000 0.253 0.001 avariable.py:645(getSlice) + 103 0.003 0.000 0.263 0.003 avariable.py:726(subRegion) + 294 0.000 0.000 0.014 0.000 avariable.py:967(reorder) + 294 0.003 0.000 0.003 0.000 avariable.py:977(regrid) + 17 0.001 0.000 0.100 0.006 averager.py:116(area_weights) + 17 0.000 0.000 0.003 0.000 averager.py:16(_check_axisoptions) + 4 0.000 0.000 0.000 0.000 averager.py:28(__myGetAxisWeights) + 17 0.000 0.000 0.102 0.006 averager.py:295(__check_weightoptions) + 1 0.000 0.000 0.000 0.000 averager.py:3() + 1 0.000 0.000 0.000 0.000 averager.py:6(AveragerError) + 26 0.000 0.000 0.076 0.003 averager.py:643(average_engine) + 17 0.001 0.000 0.243 0.014 averager.py:674(averager) + 4 0.000 0.000 0.000 0.000 averager.py:7(__init__) + 20 0.000 0.000 0.000 0.000 axis.py:1006(getCalendar) + 51 0.000 0.000 0.001 0.000 axis.py:1016(setCalendar) + 50 0.000 0.000 0.000 0.000 axis.py:1032(getValue) + 16 0.000 0.000 0.000 0.000 axis.py:1038(_time2value) + 1606 0.001 0.000 0.001 0.000 axis.py:104(getAutoBounds) + 66 0.000 0.000 0.000 0.000 axis.py:1049(getModuloCycle) + 741 0.002 0.000 0.028 0.000 axis.py:108(createAxis) + 8 0.000 0.000 0.002 0.000 axis.py:1117(mapIntervalExt) + 528 0.014 0.000 0.146 0.000 axis.py:1308(subaxis) + 80 0.000 0.000 0.000 0.000 axis.py:1422(validateBounds) + 58 0.003 0.000 0.004 0.000 axis.py:1447(genGenericBounds) + 80 0.001 0.000 0.009 0.000 axis.py:1471(clone) + 825 0.000 0.000 0.000 0.000 axis.py:1531(isVirtual) + 1 0.000 0.000 0.000 0.000 axis.py:1545(Axis) + 48 0.000 0.000 0.000 0.000 axis.py:163(mapLinearIntersection) + 1 0.000 0.000 0.000 0.000 axis.py:1651(TransientAxis) + 1281 0.011 0.000 0.045 0.000 axis.py:1653(__init__) + 762 0.001 0.000 0.002 0.000 axis.py:1696(__getitem__) + 1386 0.001 0.000 0.001 0.000 axis.py:1699(__getslice__) + 7071 0.004 0.000 0.005 0.000 axis.py:1708(__len__) + 1243 0.003 0.000 0.012 0.000 axis.py:1711(getBounds) + 106 0.000 0.000 0.000 0.000 axis.py:1727(getExplicitBounds) + 1361 0.006 0.000 0.019 0.000 axis.py:1738(setBounds) + 1 0.000 0.000 0.000 0.000 axis.py:1770(TransientVirtualAxis) + 1 0.000 0.000 0.000 0.000 axis.py:1816(FileAxis) + 330 0.005 0.000 0.032 0.000 axis.py:1818(__init__) + 80 0.000 0.000 0.001 0.000 axis.py:1845(getData) + 3850 0.006 0.000 0.006 0.000 axis.py:1885(__getattr__) + 5255 0.009 0.000 0.016 0.000 axis.py:1893(__setattr__) + 320 0.001 0.000 0.003 0.000 axis.py:1930(__getitem__) + 1430 0.001 0.000 0.002 0.000 axis.py:1995(__len__) + 80 0.001 0.000 0.006 0.000 axis.py:2013(getBounds) + 80 0.000 0.000 0.000 0.000 axis.py:2029(getExplicitBounds) + 1 0.000 0.000 0.000 0.000 axis.py:21(AliasList) + 8 0.001 0.000 0.002 0.000 axis.py:211(mapLinearExt) + 1 0.000 0.000 0.000 0.000 axis.py:2121(FileVirtualAxis) + 377 0.001 0.000 0.011 0.000 axis.py:2146(axisMatchAxis) + 377 0.004 0.000 0.010 0.000 axis.py:2169(axisMatchIndex) + 5 0.000 0.000 0.000 0.000 axis.py:22(__init__) + 2902 0.009 0.000 0.016 0.000 axis.py:2297(axisMatches) + 1 0.000 0.000 0.000 0.000 axis.py:28(append) + 12 0.000 0.000 0.013 0.001 axis.py:597(allclose) + 1 0.003 0.003 0.004 0.004 axis.py:6() + 1 0.000 0.000 0.000 0.000 axis.py:605(AbstractAxis) + 1611 0.008 0.000 0.028 0.000 axis.py:606(__init__) + 190 0.000 0.000 0.001 0.000 axis.py:625(_getshape) + 180 0.000 0.000 0.001 0.000 axis.py:644(rank) + 246 0.000 0.000 0.003 0.000 axis.py:649(designateLatitude) + 2446 0.009 0.000 0.016 0.000 axis.py:657(isLatitude) + 58 0.000 0.000 0.001 0.000 axis.py:667(designateLevel) + 630 0.009 0.000 0.047 0.000 axis.py:675(isLevel) + 413 0.002 0.000 0.014 0.000 axis.py:694(designateLongitude) + 2347 0.007 0.000 0.012 0.000 axis.py:715(isLongitude) + 51 0.000 0.000 0.002 0.000 axis.py:725(designateTime) + 682 0.002 0.000 0.008 0.000 axis.py:743(isTime) + 7 0.000 0.000 0.000 0.000 axis.py:781(isForecast) + 7 0.000 0.000 0.000 0.000 axis.py:788(asComponentTime) + 36 0.000 0.000 0.000 0.000 axis.py:894(isCircularAxis) + 1667 0.003 0.000 0.009 0.000 axis.py:917(isCircular) + 22 0.000 0.000 0.000 0.000 axis.py:981(getBoundsForDualGrid) + 1 0.000 0.000 0.000 0.000 base64.py:3() + 1 0.000 0.000 0.000 0.000 bdb.py:1() + 1 0.000 0.000 0.000 0.000 bdb.py:10(BdbQuit) + 1 0.000 0.000 0.000 0.000 bdb.py:14(Bdb) + 71 0.000 0.000 0.000 0.000 bdb.py:176(_set_stopinfo) + 71 0.000 0.000 0.000 0.000 bdb.py:23(__init__) + 71 0.001 0.000 0.008 0.000 bdb.py:39(reset) + 1 0.000 0.000 0.000 0.000 bdb.py:449(Breakpoint) + 1 0.000 0.000 0.000 0.000 bdb.py:614(Tdb) + 1 0.000 0.000 0.000 0.000 behavior.py:1() + 1 0.000 0.000 0.000 0.000 behavior.py:1(Behavior) + 1 0.001 0.001 0.001 0.001 bindex.py:4() + 1 0.001 0.001 0.001 0.001 bisect.py:1() + 1 0.002 0.002 0.020 0.020 box.py:1() + 1 0.000 0.000 0.000 0.000 box.py:6(BoxEditor) + 1 0.000 0.000 0.000 0.000 boxfill.py:131(Gfb) + 1 0.003 0.003 0.265 0.265 boxfill.py:3() + 17 0.001 0.000 0.001 0.000 boxfill.py:484(__init__) + 16 0.000 0.000 0.000 0.000 boxfill.py:573(_getcalendar) + 8 0.000 0.000 0.000 0.000 boxfill.py:576(_setcalendar) + 16 0.000 0.000 0.000 0.000 boxfill.py:584(_gettimeunits) + 8 0.000 0.000 0.000 0.000 boxfill.py:587(_settimeunits) + 58 0.000 0.000 0.000 0.000 boxfill.py:595(_getboxfilltype) + 8 0.000 0.000 0.000 0.000 boxfill.py:598(_setboxfilltype) + 28 0.000 0.000 0.000 0.000 boxfill.py:606(_getlevel_1) + 8 0.000 0.000 0.000 0.000 boxfill.py:609(_setlevel_1) + 16 0.000 0.000 0.000 0.000 boxfill.py:614(_getlevel_2) + 8 0.000 0.000 0.000 0.000 boxfill.py:617(_setlevel_2) + 28 0.000 0.000 0.000 0.000 boxfill.py:622(_getcolor_1) + 8 0.000 0.000 0.000 0.000 boxfill.py:625(_setcolor_1) + 28 0.000 0.000 0.000 0.000 boxfill.py:630(_getcolor_2) + 8 0.000 0.000 0.000 0.000 boxfill.py:633(_setcolor_2) + 16 0.000 0.000 0.000 0.000 boxfill.py:642(_getfillareaindices) + 8 0.000 0.000 0.000 0.000 boxfill.py:645(_setfillareaindices) + 28 0.000 0.000 0.000 0.000 boxfill.py:654(_getfillareastyle) + 8 0.000 0.000 0.000 0.000 boxfill.py:657(_setfillareastyle) + 22 0.000 0.000 0.000 0.000 boxfill.py:670(_getmissing) + 8 0.000 0.000 0.000 0.000 boxfill.py:673(_setmissing) + 824 0.000 0.000 0.000 0.000 boxfill.py:680(_getname) + 22 0.000 0.000 0.000 0.000 boxfill.py:689(_getxaxisconvert) + 8 0.000 0.000 0.000 0.000 boxfill.py:692(_setxaxisconvert) + 22 0.000 0.000 0.000 0.000 boxfill.py:700(_getyaxisconvert) + 8 0.000 0.000 0.000 0.000 boxfill.py:703(_setyaxisconvert) + 40 0.000 0.000 0.000 0.000 boxfill.py:713(_getxticlabels1) + 13 0.000 0.000 0.000 0.000 boxfill.py:716(_setxticlabels1) + 46 0.000 0.000 0.000 0.000 boxfill.py:721(_getxticlabels2) + 14 0.000 0.000 0.000 0.000 boxfill.py:724(_setxticlabels2) + 46 0.000 0.000 0.000 0.000 boxfill.py:729(_getyticlabels1) + 13 0.000 0.000 0.000 0.000 boxfill.py:732(_setyticlabels1) + 51 0.000 0.000 0.000 0.000 boxfill.py:737(_getyticlabels2) + 14 0.000 0.000 0.000 0.000 boxfill.py:740(_setyticlabels2) + 34 0.000 0.000 0.000 0.000 boxfill.py:745(_getxmtics1) + 8 0.000 0.000 0.000 0.000 boxfill.py:748(_setxmtics1) + 40 0.000 0.000 0.000 0.000 boxfill.py:753(_getxmtics2) + 8 0.000 0.000 0.000 0.000 boxfill.py:756(_setxmtics2) + 39 0.000 0.000 0.000 0.000 boxfill.py:761(_getymtics1) + 8 0.000 0.000 0.000 0.000 boxfill.py:764(_setymtics1) + 45 0.000 0.000 0.000 0.000 boxfill.py:769(_getymtics2) + 8 0.000 0.000 0.000 0.000 boxfill.py:772(_setymtics2) + 58 0.000 0.000 0.000 0.000 boxfill.py:777(_getdatawc_x1) + 8 0.000 0.000 0.000 0.000 boxfill.py:780(_setdatawc_x1) + 58 0.000 0.000 0.000 0.000 boxfill.py:785(_getdatawc_x2) + 8 0.000 0.000 0.000 0.000 boxfill.py:788(_setdatawc_x2) + 58 0.000 0.000 0.000 0.000 boxfill.py:793(_getdatawc_y1) + 8 0.000 0.000 0.000 0.000 boxfill.py:796(_setdatawc_y1) + 58 0.000 0.000 0.000 0.000 boxfill.py:801(_getdatawc_y2) + 8 0.000 0.000 0.000 0.000 boxfill.py:804(_setdatawc_y2) + 6 0.000 0.000 0.008 0.001 boxfill.py:858(getlevels) + 6 0.000 0.000 0.061 0.010 boxfill.py:893(getlegendlabels) + 1 0.001 0.001 0.002 0.002 boxfillpipeline.py:1() + 6 0.000 0.000 0.000 0.000 boxfillpipeline.py:20(__init__) + 6 0.003 0.001 0.017 0.003 boxfillpipeline.py:206(_plotInternalBoxfill) + 6 0.000 0.000 0.033 0.005 boxfillpipeline.py:28(_updateScalarData) + 6 0.000 0.000 0.070 0.012 boxfillpipeline.py:38(_updateContourLevelsAndColors) + 6 0.000 0.000 0.070 0.012 boxfillpipeline.py:48(_updateContourLevelsAndColorsForBoxfill) + 6 0.001 0.000 2.488 0.415 boxfillpipeline.py:55(_plotInternal) + 1 0.000 0.000 0.000 0.000 boxfillpipeline.py:9(BoxfillPipeline) + 1 0.003 0.003 0.010 0.010 button.py:1() + 1 0.000 0.000 0.000 0.000 button.py:14(ButtonState) + 1 0.000 0.000 0.000 0.000 button.py:365(ToggleButton) + 1 0.000 0.000 0.000 0.000 button.py:39(Button) + 1 0.000 0.000 0.000 0.000 button.py:423(SliderButton) + 1 0.000 0.000 0.000 0.000 cache.py:215(Cache) + 1 0.002 0.002 0.005 0.005 cache.py:3() + 1 0.003 0.003 0.004 0.004 case.py:1() + 1 0.000 0.000 0.000 0.000 case.py:1018(FunctionTestCase) + 1 0.000 0.000 0.000 0.000 case.py:131(TestCase) + 1 0.000 0.000 0.000 0.000 case.py:25(SkipTest) + 1 0.000 0.000 0.000 0.000 case.py:34(_ExpectedFailure) + 1 0.000 0.000 0.000 0.000 case.py:45(_UnexpectedSuccess) + 7 0.000 0.000 0.000 0.000 case.py:607(_deprecate) + 1 0.000 0.000 0.000 0.000 case.py:98(_AssertRaisesContext) + 1 0.006 0.006 0.032 0.032 ccompiler.py:1() + 10 0.000 0.000 0.000 0.000 ccompiler.py:22(replace_method) + 1 0.000 0.000 0.000 0.000 ccompiler.py:23(CCompiler) + 1 0.005 0.005 0.011 0.011 ccompiler.py:4() + 1 0.000 0.000 0.000 0.000 cdat_info.py:12(get_drs_dirs) + 1 0.000 0.000 0.000 0.000 cdat_info.py:14(get_drs_libs) + 1 0.000 0.000 0.000 0.000 cdat_info.py:2() + 4 0.000 0.000 0.000 0.000 cdat_info.py:27(get_prefix) + 1 0.000 0.000 0.000 0.000 cdat_info.py:31(get_sampledata_path) + 43 0.000 0.000 0.000 0.000 cdat_info.py:39(runCheck) + 44 0.000 0.000 0.000 0.000 cdat_info.py:69(askAnonymous) + 44 0.003 0.000 0.042 0.001 cdat_info.py:96(pingPCMDIdb) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:115(CdmsNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:373(DatasetNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:424(VariableNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:454(AxisNode) + 1 0.001 0.001 0.002 0.002 cdmsNode.py:6() + 1 0.000 0.000 0.000 0.000 cdmsNode.py:723(LinearDataNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:79(NotMonotonicError) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:829(RectGridNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:851(XLinkNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:866(DocLinkNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:879(DomainNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:885(DomElemNode) + 1 0.000 0.000 0.000 0.000 cdmsNode.py:931(AttrNode) + 1 0.000 0.000 0.005 0.005 cdmsURLopener.py:1() + 1 0.000 0.000 0.000 0.000 cdmsURLopener.py:6(CDMSURLopener) + 1 0.002 0.002 0.006 0.006 cdmsobj.py:3() + 1 0.000 0.000 0.000 0.000 cdmsobj.py:442(CdmsObj) + 9094 0.080 0.000 0.098 0.000 cdmsobj.py:450(_listatts) + 2421 0.001 0.000 0.001 0.000 cdmsobj.py:458(_setatts) + 2871 0.010 0.000 0.023 0.000 cdmsobj.py:464(__init__) + 53238 0.014 0.000 0.014 0.000 cdmsobj.py:650(_getinternals) + 1 0.001 0.001 0.003 0.003 cdurllib.py:1() + 1 0.000 0.000 0.000 0.000 cdurllib.py:7(CDURLopener) + 1 0.000 0.000 0.000 0.000 cdurlparse.py:4() + 1 0.000 0.000 0.017 0.017 cdxmllib.py:1() + 1 0.000 0.000 0.000 0.000 cdxmllib.py:15(Error) + 1 0.000 0.000 0.000 0.000 cdxmllib.py:808(TestXMLParser) + 1 0.000 0.000 0.000 0.000 cdxmllib.py:91(XMLParser) + 1 0.000 0.000 0.000 0.000 chebyshev.py:2041(Chebyshev) + 1 0.000 0.000 0.000 0.000 chebyshev.py:87() + 1 0.000 0.000 0.000 0.000 clickable.py:1() + 1 0.000 0.000 0.000 0.000 clickable.py:4(ClickableMixin) + 1 0.000 0.000 0.000 0.000 cmd.py:46() + 1 0.000 0.000 0.000 0.000 cmd.py:55(Cmd) + 71 0.001 0.000 0.001 0.000 cmd.py:79(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:92(__new__) + 1 0.003 0.003 0.006 0.006 collections.py:11() + 40535 0.223 0.000 0.510 0.000 collections.py:117(keys) + 15 0.000 0.000 0.000 0.000 collections.py:121(values) + 13 0.009 0.001 0.011 0.001 collections.py:305(namedtuple) + 558 0.000 0.000 0.000 0.000 collections.py:349() + 66 0.000 0.000 0.000 0.000 collections.py:373() + 66 0.000 0.000 0.000 0.000 collections.py:375() + 1 0.000 0.000 0.000 0.000 collections.py:38(OrderedDict) + 1 0.000 0.000 0.000 0.000 collections.py:407(Counter) + 48 0.001 0.000 0.003 0.000 collections.py:50(__init__) + 829 0.002 0.000 0.002 0.000 collections.py:71(__setitem__) + 1136812 0.287 0.000 0.287 0.000 collections.py:90(__iter__) + 3178 0.013 0.000 0.019 0.000 colormap.py:158(__getitem__) + 1 0.000 0.000 0.000 0.000 colormap.py:171(Cp) + 10 0.000 0.000 0.000 0.000 colormap.py:237(getname) + 3262 0.002 0.000 0.007 0.000 colormap.py:248(getindex) + 41 0.016 0.000 0.019 0.000 colormap.py:253(setindex) + 44 0.001 0.000 0.168 0.004 colormap.py:273(__init__) + 1 0.000 0.000 0.000 0.000 colormap.py:3() + 1 0.000 0.000 0.000 0.000 colormap.py:42(RGB_Table) + 1 0.000 0.000 0.000 0.000 colormap.py:45(__init__) + 1 0.000 0.000 0.000 0.000 colorpicker.py:1() + 1 0.000 0.000 0.000 0.000 colorpicker.py:6(ColorPicker) + 2 0.000 0.000 0.000 0.000 colors.py:1() + 9 0.002 0.000 0.006 0.001 colors.py:654(str2rgb) + 1 0.000 0.000 0.000 0.000 common.py:1() + 1 0.000 0.000 0.000 0.000 compat.py:4() + 1 0.001 0.001 0.034 0.034 configurator.py:1() + 1 0.000 0.000 0.000 0.000 configurator.py:79(Configurator) + 1 0.000 0.000 0.000 0.000 contextlib.py:1() + 1 0.000 0.000 0.000 0.000 contextlib.py:132(closing) + 5 0.000 0.000 0.000 0.000 contextlib.py:54(contextmanager) + 1 0.000 0.000 0.000 0.000 contextlib.py:9(GeneratorContextManager) + 1 0.000 0.000 0.000 0.000 continents.py:1() + 1 0.000 0.000 0.000 0.000 continents.py:7(Guc) + 1 0.000 0.000 0.000 0.000 convention.py:1() + 1 0.000 0.000 0.000 0.000 convention.py:12(AliasList) + 5 0.000 0.000 0.000 0.000 convention.py:13(__init__) + 90 0.000 0.000 0.007 0.000 convention.py:143(getVarLatId) + 90 0.000 0.000 0.005 0.000 convention.py:167(getVarLonId) + 330 0.001 0.000 0.005 0.000 convention.py:191(axisIsLatitude) + 330 0.001 0.000 0.004 0.000 convention.py:201(axisIsLongitude) + 30 0.000 0.000 0.000 0.000 convention.py:229(getDatasetConvention) + 1 0.000 0.000 0.000 0.000 convention.py:28(AbstractConvention) + 240 0.001 0.000 0.001 0.000 convention.py:39(axisIsLatitude) + 240 0.000 0.000 0.001 0.000 convention.py:43(axisIsLongitude) + 90 0.001 0.000 0.006 0.000 convention.py:47(getVarLatId) + 90 0.001 0.000 0.005 0.000 convention.py:58(getVarLonId) + 1 0.000 0.000 0.000 0.000 convention.py:68(NUGConvention) + 3 0.000 0.000 0.000 0.000 convention.py:70(__init__) + 30 0.004 0.000 0.004 0.000 convention.py:73(getAxisIds) + 1 0.000 0.000 0.000 0.000 convention.py:85(COARDSConvention) + 2 0.000 0.000 0.000 0.000 convention.py:87(__init__) + 1 0.000 0.000 0.000 0.000 convention.py:90(CFConvention) + 1 0.000 0.000 0.000 0.000 convention.py:94(__init__) + 30 0.000 0.000 0.001 0.000 convention.py:97(getAxisAuxIds) + 1 0.000 0.000 0.000 0.000 coord.py:261(AbstractAxis2D) + 1 0.000 0.000 0.000 0.000 coord.py:295(DatasetAxis2D) + 1 0.000 0.000 0.000 0.000 coord.py:312(FileAxis2D) + 1 0.000 0.000 0.000 0.000 coord.py:327(TransientAxis2D) + 1 0.003 0.003 0.118 0.118 coord.py:6() + 1 0.000 0.000 0.000 0.000 coord.py:61(AbstractCoordinateAxis) + 184 0.000 0.000 0.000 0.000 copy.py:101(_copy_immutable) + 227 0.001 0.000 0.001 0.000 copy.py:113(_copy_with_constructor) + 66412/44 0.074 0.000 0.168 0.004 copy.py:145(deepcopy) + 11200 0.002 0.000 0.002 0.000 copy.py:198(_deepcopy_atomic) + 11017 0.033 0.000 0.085 0.000 copy.py:226(_deepcopy_list) + 2 0.000 0.000 0.000 0.000 copy.py:234(_deepcopy_tuple) + 89/44 0.009 0.000 0.166 0.004 copy.py:253(_deepcopy_dict) + 22369 0.016 0.000 0.021 0.000 copy.py:267(_keep_alive) + 43 0.000 0.000 0.166 0.004 copy.py:283(_deepcopy_inst) + 20402 0.206 0.000 3.386 0.000 copy.py:306(_reconstruct) + 22783 0.083 0.000 3.780 0.000 copy.py:66(copy) + 1 0.000 0.000 0.000 0.000 copy_reg.py:14(pickle) + 1 0.000 0.000 0.000 0.000 copy_reg.py:27(constructor) + 20402 0.014 0.000 0.022 0.000 copy_reg.py:92(__newobj__) + 9 0.000 0.000 0.000 0.000 copy_reg.py:95(_slotnames) + 1 0.000 0.000 0.000 0.000 core.py:1() + 1 0.000 0.000 0.000 0.000 core.py:1118(_DomainedBinaryOperation) + 43 0.000 0.000 0.001 0.000 core.py:113(get_object_signature) + 6 0.000 0.000 0.000 0.000 core.py:1139(__init__) + 13 0.001 0.000 0.003 0.000 core.py:1152(__call__) + 2111 0.001 0.000 0.001 0.000 core.py:1282(_recursive_make_descr) + 1 0.000 0.000 0.000 0.000 core.py:130(MAError) + 2111 0.004 0.000 0.006 0.000 core.py:1303(make_mask_descr) + 11002 0.006 0.000 0.023 0.000 core.py:1339(getmask) + 1 0.000 0.000 0.000 0.000 core.py:138(MaskError) + 2034 0.005 0.000 0.028 0.000 core.py:1403(getmaskarray) + 879 0.001 0.000 0.004 0.000 core.py:1526(make_mask) + 1999 0.003 0.000 0.011 0.000 core.py:1621(make_mask_none) + 829 0.003 0.000 0.006 0.000 core.py:1671(mask_or) + 673/493 0.002 0.000 0.008 0.000 core.py:178(default_fill_value) + 182 0.000 0.000 0.002 0.000 core.py:1793(_check_mask_axis) + 30 0.000 0.000 0.005 0.000 core.py:1805(masked_where) + 30 0.000 0.000 0.011 0.000 core.py:2052(masked_equal) + 1 0.001 0.001 0.005 0.005 core.py:21() + 20 0.002 0.000 0.005 0.000 core.py:2223(masked_values) + 20 0.001 0.000 0.006 0.000 core.py:2305(masked_invalid) + 1 0.000 0.000 0.000 0.000 core.py:2352(_MaskedPrintOption) + 1 0.000 0.000 0.000 0.000 core.py:2358(__init__) + 215 0.001 0.000 0.003 0.000 core.py:242(_recursive_extremum_fill_value) + 9 0.000 0.000 0.000 0.000 core.py:2521(_arraymethod) + 107 0.000 0.000 0.002 0.000 core.py:253(minimum_fill_value) + 4 0.000 0.000 0.001 0.000 core.py:2548(wrapped_method) + 1 0.000 0.000 0.000 0.000 core.py:2569(MaskedIterator) + 1 0.000 0.000 0.000 0.000 core.py:2683(MaskedArray) + 2221 0.032 0.000 0.213 0.000 core.py:2748(__new__) + 8512 0.073 0.000 0.144 0.000 core.py:2882(_update_from) + 6344 0.084 0.000 0.302 0.000 core.py:2908(__array_finalize__) + 482 0.004 0.000 0.039 0.000 core.py:2979(__array_wrap__) + 865 0.003 0.000 0.015 0.000 core.py:3029(view) + 452 0.004 0.000 0.030 0.000 core.py:3112(astype) + 1956 0.009 0.000 0.073 0.000 core.py:3151(__getitem__) + 108 0.000 0.000 0.002 0.000 core.py:316(maximum_fill_value) + 20 0.001 0.000 0.006 0.000 core.py:3220(__setitem__) +52368/50355 0.081 0.000 0.114 0.000 core.py:3308(__setattr__) + 20 0.000 0.000 0.007 0.000 core.py:3329(__setslice__) + 60 0.002 0.000 0.002 0.000 core.py:3339(__setmask__) + 457 0.000 0.000 0.000 0.000 core.py:3410(_get_mask) + 20 0.000 0.000 0.000 0.000 core.py:3476(unshare_mask) + 18285 0.024 0.000 0.024 0.000 core.py:3528(_get_data) + 5525 0.007 0.000 0.010 0.000 core.py:3550(get_fill_value) + 2788 0.006 0.000 0.019 0.000 core.py:3578(set_fill_value) + 379 0.002 0.000 0.009 0.000 core.py:3620(filled) + 778 0.002 0.000 0.004 0.000 core.py:3864(_delegate_binop) + 12 0.000 0.000 0.001 0.000 core.py:3955(__radd__) + 12 0.000 0.000 0.001 0.000 core.py:3964(__sub__) + 753 0.002 0.000 0.034 0.000 core.py:3980(__mul__) + 12 0.000 0.000 0.002 0.000 core.py:3986(__rmul__) + 1 0.000 0.000 0.000 0.000 core.py:4(VCSaddon) + 13 0.000 0.000 0.004 0.000 core.py:4004(__truediv__) + 1059 0.002 0.000 0.003 0.000 core.py:4176(__float__) + 26 0.000 0.000 0.000 0.000 core.py:4189(__int__) + 442 0.003 0.000 0.006 0.000 core.py:4270(count) + 171 0.002 0.000 0.020 0.000 core.py:4377(ravel) + 4554 0.013 0.000 0.027 0.000 core.py:440(_check_fill_value) + 2 0.000 0.000 0.000 0.000 core.py:4425(reshape) + 24 0.000 0.000 0.003 0.000 core.py:4622(all) + 56 0.000 0.000 0.005 0.000 core.py:4847(sum) + 4 0.000 0.000 0.001 0.000 core.py:5011(mean) + 51 0.001 0.000 0.009 0.000 core.py:5435(min) + 51 0.000 0.000 0.008 0.000 core.py:5537(max) + 6 0.000 0.000 0.000 0.000 core.py:5669(tolist) + 1 0.000 0.000 0.000 0.000 core.py:5902(mvoid) + 1320 0.003 0.000 0.007 0.000 core.py:599(filled) + 37 0.000 0.000 0.000 0.000 core.py:6048(isMaskedArray) + 1 0.000 0.000 0.000 0.000 core.py:6104(MaskedConstant) + 1 0.000 0.000 0.000 0.000 core.py:6111(__new__) + 1 0.000 0.000 0.000 0.000 core.py:6114(__array_finalize__) + 363 0.003 0.000 0.034 0.000 core.py:6139(array) + 1 0.000 0.000 0.000 0.000 core.py:6214(_extrema_operation) + 2056 0.006 0.000 0.264 0.000 core.py:6224(__call__) + 929 0.005 0.000 0.058 0.000 core.py:6230(reduce) + 1 0.000 0.000 0.000 0.000 core.py:6271(_minimum_operation) + 1 0.000 0.000 0.000 0.000 core.py:6275(__init__) + 1 0.000 0.000 0.000 0.000 core.py:6285(_maximum_operation) + 1 0.000 0.000 0.000 0.000 core.py:6289(__init__) + 6 0.000 0.000 0.001 0.000 core.py:6298(min) + 6 0.000 0.000 0.001 0.000 core.py:6310(max) + 1 0.000 0.000 0.000 0.000 core.py:6342(_frommethod) + 26 0.000 0.000 0.001 0.000 core.py:6353(__init__) + 26 0.000 0.000 0.001 0.000 core.py:6358(getdoc) + 652 0.003 0.000 0.033 0.000 core.py:6368(__call__) + 502 0.012 0.000 0.065 0.000 core.py:6424(power) + 193 0.001 0.000 0.001 0.000 core.py:645(get_masked_subclass) + 8163 0.021 0.000 0.031 0.000 core.py:672(getdata) + 4 0.000 0.000 0.001 0.000 core.py:6768(transpose) + 22 0.000 0.000 0.000 0.000 core.py:6808(reshape) + 26 0.000 0.000 0.000 0.000 core.py:6918(shape) + 157 0.000 0.000 0.001 0.000 core.py:6924(size) + 1127 0.027 0.000 0.149 0.000 core.py:6935(where) + 12 0.001 0.000 0.013 0.001 core.py:7411(allclose) + 52 0.000 0.000 0.014 0.000 core.py:7516(asarray) + 1 0.000 0.000 0.000 0.000 core.py:7764(_convert2ma) + 8 0.000 0.000 0.000 0.000 core.py:7777(__init__) + 8 0.000 0.000 0.000 0.000 core.py:7782(getdoc) + 6 0.000 0.000 0.000 0.000 core.py:7793(__call__) + 1 0.000 0.000 0.000 0.000 core.py:796(_DomainCheckInterval) + 3 0.000 0.000 0.000 0.000 core.py:805(__init__) + 1 0.000 0.000 0.000 0.000 core.py:818(_DomainTan) + 1 0.000 0.000 0.000 0.000 core.py:826(__init__) + 1 0.000 0.000 0.000 0.000 core.py:835(_DomainSafeDivide) + 6 0.000 0.000 0.000 0.000 core.py:841(__init__) + 13 0.000 0.000 0.000 0.000 core.py:844(__call__) + 1 0.000 0.000 0.000 0.000 core.py:855(_DomainGreater) + 3 0.000 0.000 0.000 0.000 core.py:861(__init__) + 303 0.001 0.000 0.001 0.000 core.py:865(__call__) + 1 0.000 0.000 0.000 0.000 core.py:870(_DomainGreaterEqual) + 2 0.000 0.000 0.000 0.000 core.py:876(__init__) + 1 0.000 0.000 0.000 0.000 core.py:885(_MaskedUnaryOperation) + 1 0.000 0.000 0.000 0.000 core.py:90(MaskedArrayFutureWarning) + 27 0.000 0.000 0.000 0.000 core.py:903(__init__) + 658 0.007 0.000 0.020 0.000 core.py:912(__call__) + 4 0.000 0.000 0.000 0.000 core.py:94(doc_note) + 1 0.000 0.000 0.000 0.000 core.py:961(_MaskedBinaryOperation) + 18 0.000 0.000 0.000 0.000 core.py:981(__init__) + 2009 0.025 0.000 0.102 0.000 core.py:996(__call__) + 1 0.000 0.000 0.000 0.000 create_landsea_mask.py:1() + 1 0.000 0.000 0.000 0.000 crossSection.py:3() + 1 0.000 0.000 0.000 0.000 crossSection.py:7(CrossSectionRegridder) + 1 0.000 0.000 0.000 0.000 ctypeslib.py:177(_ndptr) + 12 0.000 0.000 0.000 0.000 ctypeslib.py:219(ndpointer) + 12 0.000 0.000 0.000 0.000 ctypeslib.py:330(prep_simple) + 1 0.000 0.000 0.000 0.000 ctypeslib.py:51() + 1 0.001 0.001 0.049 0.049 ctypeslib.py:91(load_library) + 1 0.000 0.000 0.000 0.000 cudsinterface.py:11(cuDataset) + 30 0.000 0.000 0.000 0.000 cudsinterface.py:13(__init__) + 20 0.000 0.000 0.088 0.004 cudsinterface.py:16(__call__) + 1 0.000 0.000 0.000 0.000 cudsinterface.py:4() + 30 0.000 0.000 0.000 0.000 cudsinterface.py:55(default_variable) + 30 0.000 0.000 0.000 0.000 cudsinterface.py:59(cleardefault) + 1 0.000 0.000 0.000 0.000 data.py:1() + 1 0.000 0.000 0.000 0.000 data.py:6(DataEditor) + 1 0.002 0.002 0.003 0.003 database.py:1() + 1 0.000 0.000 0.000 0.000 database.py:110(AbstractDatabase) + 1 0.000 0.000 0.000 0.000 database.py:173(LDAPDatabase) + 1 0.000 0.000 0.000 0.000 database.py:403(AbstractSearchResult) + 1 0.000 0.000 0.000 0.000 database.py:414(LDAPSearchResult) + 1 0.000 0.000 0.000 0.000 database.py:488(AbstractResultEntry) + 1 0.000 0.000 0.000 0.000 database.py:518(LDAPResultEntry) + 1 0.000 0.000 0.000 0.000 dataset.py:1023(CdmsFile) + 30 0.007 0.000 0.127 0.004 dataset.py:1025(__init__) + 540 0.002 0.000 0.002 0.000 dataset.py:1208(__setattr__) + 15 0.001 0.000 0.003 0.000 dataset.py:1251(close) + 18 0.001 0.000 0.135 0.007 dataset.py:317(openDataset) + 1 0.012 0.012 0.186 0.186 dataset.py:4() + 1 0.000 0.000 0.000 0.000 dataset.py:528(Dataset) + 1 0.000 0.000 0.000 0.000 dataset.py:57(DuplicateAxisError) + 1 0.000 0.000 0.000 0.000 debug.py:1() + 1 0.000 0.000 0.000 0.000 decoder.py:17(_floatconstants) + 1 0.001 0.001 0.004 0.004 decoder.py:2() + 1 0.000 0.000 0.000 0.000 decoder.py:272(JSONDecoder) + 1 0.000 0.000 0.000 0.000 decoder.py:302(__init__) + 2 0.000 0.000 0.033 0.016 decoder.py:359(decode) + 2 0.033 0.016 0.033 0.016 decoder.py:370(raw_decode) + 1 0.002 0.002 0.026 0.026 decorators.py:15() + 1 0.000 0.000 0.000 0.000 defchararray.py:1669(chararray) + 1 0.000 0.000 0.000 0.000 defchararray.py:17() + 1 0.001 0.001 0.001 0.001 defmatrix.py:1() + 1 0.000 0.000 0.000 0.000 defmatrix.py:208(matrix) + 1 0.000 0.000 0.000 0.000 dep_util.py:5() + 1 0.000 0.000 0.000 0.000 difflib.py:1670(HtmlDiff) + 1 0.000 0.000 0.001 0.001 difflib.py:27() + 1 0.000 0.000 0.000 0.000 difflib.py:44(SequenceMatcher) + 1 0.000 0.000 0.000 0.000 difflib.py:764(Differ) + 1 0.000 0.000 0.000 0.000 dir_util.py:3() + 1 0.002 0.002 0.002 0.002 dis.py:1() + 7449 0.002 0.000 0.002 0.000 displayplot.py:123(_getname) + 169 0.000 0.000 0.001 0.000 displayplot.py:132(_setnewelements) + 169 0.000 0.000 0.000 0.000 displayplot.py:141(_getcontinents) + 338 0.001 0.000 0.023 0.000 displayplot.py:144(_setcontinents) + 169 0.000 0.000 0.000 0.000 displayplot.py:151(_getcontinents_line) + 338 0.001 0.000 0.011 0.000 displayplot.py:154(_setcontinents_line) + 169 0.000 0.000 0.000 0.000 displayplot.py:159(_getpriority) + 169 0.000 0.000 0.002 0.000 displayplot.py:162(_setpriority) + 169 0.000 0.000 0.000 0.000 displayplot.py:170(_getoff) + 169 0.001 0.000 0.004 0.000 displayplot.py:173(_setoff) + 169 0.000 0.000 0.000 0.000 displayplot.py:184(_getg_name) + 338 0.000 0.000 0.002 0.000 displayplot.py:187(_setg_name) + 169 0.000 0.000 0.000 0.000 displayplot.py:194(_getarray) + 338 0.000 0.000 0.000 0.000 displayplot.py:197(_setarray) + 169 0.000 0.000 0.000 0.000 displayplot.py:203(_gettemplate) + 338 0.001 0.000 0.002 0.000 displayplot.py:206(_settemplate) + 169 0.000 0.000 0.000 0.000 displayplot.py:213(_gettemplate_origin) + 338 0.000 0.000 0.002 0.000 displayplot.py:216(_settemplate_origin) + 338 0.000 0.000 0.000 0.000 displayplot.py:223(_getg_type) + 338 0.003 0.000 0.005 0.000 displayplot.py:226(_setg_type) + 262 0.000 0.000 0.000 0.000 displayplot.py:237(_get_backend) + 169 0.000 0.000 0.000 0.000 displayplot.py:240(_set_backend) + 170 0.006 0.000 0.043 0.000 displayplot.py:256(__init__) + 1 0.000 0.000 0.000 0.000 displayplot.py:30(Dp) + 1 0.000 0.000 0.000 0.000 displayplot.py:5() + 71 0.000 0.000 0.028 0.000 doctest.py:1017(_get_test) + 71 0.001 0.000 0.004 0.000 doctest.py:1054(_find_lineno) + 1 0.000 0.000 0.000 0.000 doctest.py:1106(DocTestRunner) + 1 0.000 0.000 0.000 0.000 doctest.py:1166(__init__) + 241 0.001 0.000 0.007 0.000 doctest.py:1202(report_start) + 234 0.000 0.000 0.001 0.000 doctest.py:1215(report_success) + 4 0.000 0.000 0.001 0.000 doctest.py:1223(report_failure) + 3 0.000 0.000 0.001 0.000 doctest.py:1230(report_unexpected_exception) + 7 0.000 0.000 0.000 0.000 doctest.py:1237(_failure_header) + 71 0.009 0.000 16.584 0.234 doctest.py:1257(__run) + 10 0.000 0.000 0.000 0.000 doctest.py:128(register_optionflag) + 71 0.000 0.000 0.000 0.000 doctest.py:1380(__record_outcome) + 38 0.000 0.000 0.046 0.001 doctest.py:1393(__patched_linecache_getlines) + 71 0.002 0.000 16.613 0.234 doctest.py:1404(run) + 1 0.000 0.000 0.000 0.000 doctest.py:1466(summarize) + 1 0.000 0.000 0.000 0.000 doctest.py:1536(OutputChecker) + 243 0.001 0.000 0.007 0.000 doctest.py:1544(check_output) + 4 0.000 0.000 0.000 0.000 doctest.py:1598(_do_a_fancy_diff) + 4 0.000 0.000 0.000 0.000 doctest.py:1621(output_difference) + 1 0.000 0.000 0.000 0.000 doctest.py:1669(DocTestFailure) + 1 0.000 0.000 0.000 0.000 doctest.py:1688(UnexpectedException) + 1 0.000 0.000 0.000 0.000 doctest.py:1707(DebugRunner) + 71 0.001 0.000 0.002 0.000 doctest.py:178(_extract_future_flags) + 1 0.001 0.001 16.649 16.649 doctest.py:1819(testmod) + 1 0.000 0.000 0.000 0.000 doctest.py:2077(Tester) + 1 0.000 0.000 0.000 0.000 doctest.py:2178(DocTestCase) + 362 0.001 0.000 0.005 0.000 doctest.py:225(_indent) + 1 0.000 0.000 0.000 0.000 doctest.py:2341(SkipDocTestCase) + 6 0.000 0.000 0.032 0.005 doctest.py:237(_exception_traceback) + 1 0.000 0.000 0.000 0.000 doctest.py:2431(DocFileCase) + 1 0.000 0.000 0.000 0.000 doctest.py:249(_SpoofOut) + 492 0.002 0.000 0.004 0.000 doctest.py:250(getvalue) + 246 0.001 0.000 0.004 0.000 doctest.py:263(truncate) + 1 0.000 0.000 0.000 0.000 doctest.py:2696(_TestClass) + 104 0.001 0.000 0.001 0.000 doctest.py:272(_ellipsis_match) + 1 0.000 0.000 0.000 0.000 doctest.py:355(_OutputRedirectingPdb) + 71 0.001 0.000 0.015 0.000 doctest.py:361(__init__) + 246 0.000 0.000 0.000 0.000 doctest.py:374(set_continue) + 1 0.000 0.000 0.000 0.000 doctest.py:427(Example) + 1 0.002 0.002 0.014 0.014 doctest.py:46() + 246 0.001 0.000 0.001 0.000 doctest.py:462(__init__) + 1 0.000 0.000 0.000 0.000 doctest.py:499(DocTest) + 71 0.000 0.000 0.001 0.000 doctest.py:523(__init__) + 341 0.001 0.000 0.001 0.000 doctest.py:565(__cmp__) + 1 0.000 0.000 0.005 0.005 doctest.py:575(DocTestParser) + 71 0.007 0.000 0.022 0.000 doctest.py:623(parse) + 71 0.000 0.000 0.023 0.000 doctest.py:662(get_doctest) + 71 0.000 0.000 0.022 0.000 doctest.py:674(get_examples) + 246 0.003 0.000 0.006 0.000 doctest.py:688(_parse_example) + 246 0.000 0.000 0.001 0.000 doctest.py:742(_find_options) + 71 0.001 0.000 0.005 0.000 doctest.py:772(_min_indent) + 246 0.001 0.000 0.001 0.000 doctest.py:780(_check_prompt_blank) + 492 0.000 0.000 0.001 0.000 doctest.py:794(_check_prefix) + 1 0.000 0.000 0.000 0.000 doctest.py:810(DocTestFinder) + 1 0.000 0.000 0.000 0.000 doctest.py:819(__init__) + 1 0.000 0.000 0.034 0.034 doctest.py:841(find) + 73 0.000 0.000 0.001 0.000 doctest.py:934(_from_module) + 73/1 0.001 0.000 0.030 0.030 doctest.py:954(_find) + 1 0.015 0.015 19.115 19.115 doctest_vcs.py:1() + 8 0.000 0.000 0.001 0.000 doctest_vcs.py:49(consume_entry) + 1 0.000 0.000 0.003 0.003 doctest_vcs.py:60(cleanup) + 1 0.002 0.002 0.028 0.028 doctest_vcs.py:8(log_stats) + 1 0.001 0.001 0.001 0.001 draggable.py:1() + 1 0.000 0.000 0.000 0.000 draggable.py:5(DraggableMixin) + 10 0.000 0.000 0.647 0.065 dv3d.py:119(__init__) + 1 0.000 0.000 0.000 0.000 dv3d.py:14(Gfdv3d) + 200 0.001 0.000 0.001 0.000 dv3d.py:178(add_property) + 3 0.000 0.000 0.000 0.000 dv3d.py:196(getPlotAttributes) + 10 0.003 0.000 0.598 0.060 dv3d.py:199(getParameterList) + 10 0.000 0.000 0.599 0.060 dv3d.py:206(addParameters) + 1 0.000 0.000 0.000 0.000 dv3d.py:234(Gf3Dvector) + 3 0.000 0.000 0.394 0.131 dv3d.py:236(__init__) + 1 0.000 0.000 0.000 0.000 dv3d.py:241(Gf3Dscalar) + 4 0.000 0.000 0.142 0.035 dv3d.py:243(__init__) + 1 0.000 0.000 0.000 0.000 dv3d.py:249(Gf3DDualScalar) + 3 0.000 0.000 0.111 0.037 dv3d.py:251(__init__) + 6 0.000 0.000 0.000 0.000 dv3d.py:27(_getname) + 3 0.000 0.000 0.000 0.000 dv3d.py:36(_getaxes) + 3 0.000 0.000 0.000 0.000 dv3d.py:44(_getNumCores) + 1 0.004 0.004 0.011 0.011 dv3d.py:5() + 1 0.000 0.000 0.000 0.000 encoder.py:101(__init__) + 1 0.000 0.000 0.001 0.001 encoder.py:2() + 1 0.000 0.000 0.000 0.000 encoder.py:70(JSONEncoder) + 3 0.000 0.000 0.000 0.000 error.py:1() + 1 0.000 0.000 0.000 0.000 error.py:1(RegridError) + 1 0.000 0.000 0.000 0.000 error.py:3(CDMSError) + 397 0.001 0.000 0.001 0.000 error.py:4(__init__) + 1 0.000 0.000 0.000 0.000 error.py:4(vcsError) + 1 0.000 0.000 0.000 0.000 error.py:6(__init__) + 3 0.000 0.000 0.000 0.000 error.py:9(__str__) + 1 0.000 0.000 0.000 0.000 errors.py:13(DistutilsError) + 1 0.000 0.000 0.000 0.000 errors.py:16(DistutilsModuleError) + 1 0.000 0.000 0.000 0.000 errors.py:20(DistutilsClassError) + 1 0.000 0.000 0.000 0.000 errors.py:26(DistutilsGetoptError) + 1 0.000 0.000 0.000 0.000 errors.py:29(DistutilsArgError) + 1 0.000 0.000 0.000 0.000 errors.py:33(DistutilsFileError) + 1 0.000 0.000 0.000 0.000 errors.py:38(DistutilsOptionError) + 1 0.000 0.000 0.000 0.000 errors.py:46(DistutilsSetupError) + 1 0.000 0.000 0.000 0.000 errors.py:50(DistutilsPlatformError) + 1 0.000 0.000 0.000 0.000 errors.py:55(DistutilsExecError) + 1 0.000 0.000 0.000 0.000 errors.py:59(DistutilsInternalError) + 1 0.000 0.000 0.000 0.000 errors.py:63(DistutilsTemplateError) + 1 0.000 0.000 0.000 0.000 errors.py:66(DistutilsByteCompileError) + 1 0.000 0.000 0.000 0.000 errors.py:70(CCompilerError) + 1 0.000 0.000 0.000 0.000 errors.py:73(PreprocessError) + 1 0.000 0.000 0.000 0.000 errors.py:76(CompileError) + 1 0.000 0.000 0.000 0.000 errors.py:79(LibError) + 1 0.000 0.000 0.000 0.000 errors.py:83(LinkError) + 1 0.000 0.000 0.000 0.000 errors.py:87(UnknownFileError) + 1 0.001 0.001 0.001 0.001 errors.py:9() + 1 0.000 0.000 0.000 0.000 esmf.py:12() + 1 0.000 0.000 0.000 0.000 esmf.py:139(EsmfStructGrid) + 1 0.000 0.000 0.000 0.000 esmf.py:311(EsmfStructField) + 1 0.000 0.000 0.000 0.000 esmf.py:35(EsmfUnstructGrid) + 1 0.000 0.000 0.000 0.000 esmf.py:441(EsmfRegrid) + 1 0.001 0.001 0.001 0.001 exec_command.py:52() + 1 0.000 0.000 0.000 0.000 extras.py:10() + 1 0.000 0.000 0.000 0.000 extras.py:1332(MAxisConcatenator) + 1 0.000 0.000 0.000 0.000 extras.py:1344(__init__) + 1 0.000 0.000 0.000 0.000 extras.py:1398(mr_class) + 1 0.000 0.000 0.000 0.000 extras.py:1414(__init__) + 1 0.000 0.000 0.000 0.000 extras.py:215(_fromnxfunction) + 9 0.000 0.000 0.000 0.000 extras.py:232(__init__) + 9 0.000 0.000 0.000 0.000 extras.py:236(getdoc) + 26 0.002 0.000 0.051 0.002 extras.py:465(average) + 1 0.001 0.001 0.001 0.001 fftpack.py:32() + 1 0.000 0.000 0.000 0.000 file_util.py:4() + 1 0.001 0.001 0.002 0.002 fillarea.py:1() + 1 0.000 0.000 0.000 0.000 fillarea.py:105(Tf) + 129704 0.023 0.000 0.023 0.000 fillarea.py:223(_getname) + 1614 0.001 0.000 0.002 0.000 fillarea.py:232(_getfillareacolors) + 42 0.000 0.000 0.051 0.001 fillarea.py:235(_setfillareacolors) + 3176 0.002 0.000 0.005 0.000 fillarea.py:250(_getfillareaopacity) + 32 0.000 0.000 0.012 0.000 fillarea.py:253(_setfillareaopacity) + 1614 0.001 0.000 0.002 0.000 fillarea.py:264(_getfillareaindices) + 42 0.000 0.000 0.013 0.000 fillarea.py:267(_setfillareaindices) + 1646 0.001 0.000 0.002 0.000 fillarea.py:280(_getfillareastyle) + 42 0.001 0.000 0.008 0.000 fillarea.py:283(_setfillareastyle) + 65 0.000 0.000 0.000 0.000 fillarea.py:296(_getpriority) + 63 0.000 0.000 0.001 0.000 fillarea.py:299(_setpriority) + 11384 0.007 0.000 0.011 0.000 fillarea.py:31(getmember) + 1635 0.001 0.000 0.002 0.000 fillarea.py:314(_getx) + 32 0.003 0.000 0.083 0.003 fillarea.py:317(_setx) + 1634 0.001 0.000 0.002 0.000 fillarea.py:339(_gety) + 32 0.003 0.000 0.082 0.003 fillarea.py:342(_sety) + 23 0.001 0.000 0.105 0.005 fillarea.py:369(__init__) + 1 0.000 0.000 0.000 0.000 fillarea.py:4() + 1 0.000 0.000 0.000 0.000 fillarea.py:7(FillEditor) + 1 0.001 0.001 0.001 0.001 fillareautils.py:1() + 4 0.000 0.000 0.000 0.000 fillareautils.py:11(make_patterned_polydata) + 1 0.000 0.000 0.000 0.000 filters.py:3() + 1 0.000 0.000 0.000 0.000 financial.py:10() + 1 0.000 0.000 0.000 0.000 fnmatch.py:11() + 6 0.000 0.000 0.001 0.000 fnmatch.py:45(filter) + 6 0.000 0.000 0.000 0.000 fnmatch.py:85(translate) + 1 0.000 0.000 0.000 0.000 font.py:1() + 1 0.000 0.000 0.000 0.000 font.py:4(FontEditor) + 1 0.000 0.000 0.000 0.000 forecast.py:108(forecasts) + 1 0.000 0.000 0.000 0.000 forecast.py:4() + 1 0.000 0.000 0.000 0.000 forecast.py:54(forecast) + 1 0.000 0.000 0.000 0.000 format.py:149() + 8 0.000 0.000 0.001 0.000 fromnumeric.py:1036(searchsorted) + 2 0.000 0.000 0.000 0.000 fromnumeric.py:127(reshape) + 39 0.000 0.000 0.000 0.000 fromnumeric.py:1383(ravel) + 1984 0.002 0.000 0.002 0.000 fromnumeric.py:1574(shape) + 36 0.000 0.000 0.001 0.000 fromnumeric.py:1884(alltrue) + 2036 0.003 0.000 0.012 0.000 fromnumeric.py:1900(any) + 2856 0.005 0.000 0.026 0.000 fromnumeric.py:1987(all) + 157 0.000 0.000 0.000 0.000 fromnumeric.py:2706(size) + 1 0.001 0.001 0.001 0.001 fromnumeric.py:3() + 2 0.000 0.000 0.000 0.000 fromnumeric.py:353(repeat) + 2 0.000 0.000 0.000 0.000 fromnumeric.py:506(transpose) + 2 0.002 0.001 0.002 0.001 function_base.py:1() + 136 0.002 0.000 0.051 0.000 function_base.py:1518(diff) + 1 0.000 0.000 0.000 0.000 function_base.py:2047(vectorize) + 273 0.001 0.000 0.002 0.000 function_base.py:3944(add_newdoc) + 8 0.000 0.000 0.000 0.000 functools.py:17(update_wrapper) + 8 0.000 0.000 0.000 0.000 functools.py:39(wraps) + 240 0.004 0.000 0.004 0.000 fvariable.py:136(_getShape) + 1485 0.003 0.000 0.005 0.000 fvariable.py:145(__setattr__) + 1 0.000 0.000 0.000 0.000 fvariable.py:22(FileVariable) + 90 0.003 0.000 0.029 0.000 fvariable.py:24(__init__) + 90 0.002 0.000 0.004 0.000 fvariable.py:39(initDomain) + 1 0.002 0.002 0.116 0.116 fvariable.py:4() + 360 0.001 0.000 0.003 0.000 fvariable.py:49(typecode) + 20 0.000 0.000 0.003 0.000 fvariable.py:70(expertSlice) + 871 0.005 0.000 0.021 0.000 genericpath.py:23(exists) + 2 0.000 0.000 0.000 0.000 genericpath.py:34(isfile) + 1 0.000 0.000 0.000 0.000 genericpath.py:46(isdir) + 19 0.000 0.000 0.000 0.000 genericpath.py:93(_splitext) + 1 0.000 0.000 0.000 0.000 gengrid.py:16(AbstractGenericGrid) + 1 0.000 0.000 0.000 0.000 gengrid.py:289(DatasetGenericGrid) + 1 0.000 0.000 0.000 0.000 gengrid.py:300(FileGenericGrid) + 1 0.000 0.000 0.000 0.000 gengrid.py:311(TransientGenericGrid) + 1 0.000 0.000 0.000 0.000 gengrid.py:4() + 2 0.000 0.000 0.023 0.012 getlimits.py:127(_init) + 24 0.000 0.000 0.000 0.000 getlimits.py:13(_frz) + 4 0.000 0.000 0.000 0.000 getlimits.py:148() + 2 0.000 0.000 0.000 0.000 getlimits.py:149() + 12 0.000 0.000 0.000 0.000 getlimits.py:150() + 10 0.000 0.000 0.000 0.000 getlimits.py:151() + 1 0.000 0.000 0.000 0.000 getlimits.py:195(iinfo) + 5 0.000 0.000 0.000 0.000 getlimits.py:245(__init__) + 1 0.000 0.000 0.000 0.000 getlimits.py:25(finfo) + 2 0.000 0.000 0.000 0.000 getlimits.py:270(max) + 1 0.000 0.000 0.000 0.000 getlimits.py:3() + 15985 0.013 0.000 0.038 0.000 getlimits.py:94(__new__) + 1 0.001 0.001 0.001 0.001 getpass.py:12() + 1 0.000 0.000 0.000 0.000 getpass.py:23(GetPassWarning) + 6 0.011 0.002 0.011 0.002 gettext.py:132(_expand_lang) + 3 0.000 0.000 0.013 0.004 gettext.py:424(find) + 3 0.000 0.000 0.013 0.004 gettext.py:464(translation) + 3 0.000 0.000 0.013 0.004 gettext.py:530(dgettext) + 3 0.000 0.000 0.013 0.004 gettext.py:568(gettext) + 2 0.000 0.000 0.000 0.000 git.py:1() + 1 0.000 0.000 0.000 0.000 glob.py:1() + 6 0.000 0.000 0.003 0.001 glob.py:18(glob) + 6 0.000 0.000 0.003 0.001 glob.py:29(iglob) + 6 0.000 0.000 0.003 0.000 glob.py:71(glob1) + 324 0.000 0.000 0.000 0.000 glob.py:82() + 6 0.000 0.000 0.000 0.000 glob.py:99(has_magic) + 1 0.000 0.000 0.000 0.000 grid.py:152(AbstractGrid) + 218 0.001 0.000 0.002 0.000 grid.py:154(__init__) + 14 0.000 0.000 0.000 0.000 grid.py:189(getAxisList) + 139 0.000 0.000 0.000 0.000 grid.py:199(checkAxes) + 1 0.000 0.000 0.000 0.000 grid.py:225(AbstractRectGrid) + 218 0.001 0.000 0.003 0.000 grid.py:231(__init__) + 28 0.000 0.000 0.000 0.000 grid.py:253(getAxis) + 18 0.000 0.000 0.012 0.001 grid.py:261(getBounds) + 75 0.000 0.000 0.000 0.000 grid.py:272(getLatitude) + 57 0.000 0.000 0.000 0.000 grid.py:275(getLongitude) + 218 0.000 0.000 0.000 0.000 grid.py:290(setType) + 128 0.000 0.000 0.012 0.000 grid.py:30(createRectGrid) + 17 0.001 0.000 0.012 0.001 grid.py:300(getWeights) + 18 0.001 0.000 0.007 0.000 grid.py:357(classify) + 1 0.000 0.000 0.000 0.000 grid.py:4() + 18 0.000 0.000 0.007 0.000 grid.py:435(classifyInFamily) + 18 0.001 0.000 0.012 0.001 grid.py:463(genBounds) + 2 0.000 0.000 0.001 0.001 grid.py:511(getMesh) + 1 0.000 0.000 0.000 0.000 grid.py:666(RectGrid) + 1 0.000 0.000 0.000 0.000 grid.py:702(FileRectGrid) + 90 0.001 0.000 0.002 0.000 grid.py:704(__init__) + 90 0.000 0.000 0.000 0.000 grid.py:734(setMask) + 1 0.000 0.000 0.000 0.000 grid.py:749(TransientRectGrid) + 128 0.001 0.000 0.011 0.000 grid.py:751(__init__) + 128 0.000 0.000 0.001 0.000 grid.py:776(setMask) + 1 0.000 0.000 0.000 0.000 group.py:1() + 1 0.000 0.000 0.000 0.000 group.py:23(GroupEditor) + 1 0.001 0.001 0.234 0.234 grower.py:3() + 1 0.003 0.003 0.003 0.003 gsHost.py:10() + 1 0.000 0.000 0.000 0.000 gsHost.py:37(Host) + 1 0.000 0.000 0.000 0.000 gsRegrid.py:300(Regrid) + 1 0.003 0.003 0.003 0.003 gsRegrid.py:8() + 1 0.000 0.000 0.000 0.000 gsStaticVariable.py:155(StaticFileVariable) + 1 0.000 0.000 0.000 0.000 gsStaticVariable.py:228(StaticTransientVariable) + 1 0.000 0.000 0.000 0.000 gsStaticVariable.py:8() + 1 0.000 0.000 0.000 0.000 gsStaticVariable.py:81(StaticVariable) + 1 0.000 0.000 0.000 0.000 gsTimeVariable.py:26(TimeAggregatedFileVariable) + 1 0.000 0.000 0.000 0.000 gsTimeVariable.py:272(TimeFileVariable) + 1 0.000 0.000 0.000 0.000 gsTimeVariable.py:374(TimeTransientVariable) + 1 0.000 0.000 0.000 0.000 gsTimeVariable.py:8() + 1 0.000 0.000 0.000 0.000 handle.py:1() + 1 0.000 0.000 0.000 0.000 handle.py:5(Handle) + 6 0.000 0.000 0.000 0.000 hashlib.py:100(__get_openssl_constructor) + 1 0.003 0.003 0.003 0.003 hashlib.py:56() + 1 0.003 0.003 0.003 0.003 heapq.py:31() + 1 0.000 0.000 0.000 0.000 helper.py:4() + 1 0.000 0.000 0.000 0.000 hermite.py:1815(Hermite) + 1 0.000 0.000 0.000 0.000 hermite.py:59() + 1 0.000 0.000 0.000 0.000 hermite_e.py:1812(HermiteE) + 1 0.000 0.000 0.000 0.000 hermite_e.py:59() + 1 0.000 0.000 0.000 0.000 hgrid.py:204(AbstractCurveGrid) + 1 0.000 0.000 0.000 0.000 hgrid.py:26(AbstractHorizontalGrid) + 1 0.001 0.001 0.002 0.002 hgrid.py:4() + 1 0.000 0.000 0.000 0.000 hgrid.py:709(DatasetCurveGrid) + 1 0.000 0.000 0.000 0.000 hgrid.py:720(FileCurveGrid) + 1 0.000 0.000 0.000 0.000 hgrid.py:731(TransientCurveGrid) + 1 0.001 0.001 0.001 0.001 histograms.py:1() + 1 0.000 0.000 0.000 0.000 histograms.py:9(Ghg) + 1 0.000 0.000 0.000 0.000 horizontal.py:23(Horizontal) + 1 0.000 0.000 0.000 0.000 horizontal.py:291(Regridder) + 1 0.001 0.001 0.001 0.001 horizontal.py:3() + 1 0.000 0.000 0.000 0.000 httplib.py:1153(HTTP) + 1 0.000 0.000 0.000 0.000 httplib.py:1249(HTTPSConnection) + 1 0.000 0.000 0.000 0.000 httplib.py:1282(HTTPS) + 1 0.000 0.000 0.000 0.000 httplib.py:1316(HTTPException) + 1 0.000 0.000 0.000 0.000 httplib.py:1321(NotConnected) + 1 0.000 0.000 0.000 0.000 httplib.py:1324(InvalidURL) + 1 0.000 0.000 0.000 0.000 httplib.py:1327(UnknownProtocol) + 1 0.000 0.000 0.000 0.000 httplib.py:1332(UnknownTransferEncoding) + 1 0.000 0.000 0.000 0.000 httplib.py:1335(UnimplementedFileMode) + 1 0.000 0.000 0.000 0.000 httplib.py:1338(IncompleteRead) + 1 0.000 0.000 0.000 0.000 httplib.py:1352(ImproperConnectionState) + 1 0.000 0.000 0.000 0.000 httplib.py:1355(CannotSendRequest) + 1 0.000 0.000 0.000 0.000 httplib.py:1358(CannotSendHeader) + 1 0.000 0.000 0.000 0.000 httplib.py:1361(ResponseNotReady) + 1 0.000 0.000 0.000 0.000 httplib.py:1364(BadStatusLine) + 1 0.000 0.000 0.000 0.000 httplib.py:1371(LineTooLong) + 1 0.000 0.000 0.000 0.000 httplib.py:1379(LineAndFileWrapper) + 1 0.000 0.000 0.000 0.000 httplib.py:255(HTTPMessage) + 1 0.000 0.000 0.000 0.000 httplib.py:369(HTTPResponse) + 1 0.003 0.003 0.007 0.007 httplib.py:67() + 1 0.000 0.000 0.000 0.000 httplib.py:725(HTTPConnection) + 1 0.002 0.002 0.008 0.008 image_utils.py:1() + 1 0.005 0.005 0.009 0.009 index_tricks.py:1() + 2 0.000 0.000 0.000 0.000 index_tricks.py:148(__init__) + 1 0.000 0.000 0.000 0.000 index_tricks.py:223(AxisConcatenator) + 3 0.000 0.000 0.000 0.000 index_tricks.py:242(__init__) + 1 0.000 0.000 0.000 0.000 index_tricks.py:352(RClass) + 1 0.000 0.000 0.000 0.000 index_tricks.py:447(__init__) + 1 0.000 0.000 0.000 0.000 index_tricks.py:452(CClass) + 1 0.000 0.000 0.000 0.000 index_tricks.py:470(__init__) + 1 0.000 0.000 0.000 0.000 index_tricks.py:475(ndenumerate) + 1 0.000 0.000 0.000 0.000 index_tricks.py:525(ndindex) + 1 0.000 0.000 0.000 0.000 index_tricks.py:603(IndexExpression) + 2 0.000 0.000 0.000 0.000 index_tricks.py:647(__init__) + 1 0.000 0.000 0.000 0.000 index_tricks.py:87(nd_grid) + 1 0.000 0.000 0.000 0.000 info.py:154() + 1 0.000 0.000 0.000 0.000 info.py:184() + 1 0.000 0.000 0.000 0.000 info.py:3() + 1 0.000 0.000 0.000 0.000 info.py:34() + 1 0.000 0.000 0.000 0.000 info.py:83() + 1 0.000 0.000 0.000 0.000 info.py:86() + 169 0.000 0.000 0.000 0.000 inspect.py:142(isfunction) + 71 0.000 0.000 0.000 0.000 inspect.py:181(istraceback) + 71 0.000 0.000 0.000 0.000 inspect.py:191(isframe) + 71 0.000 0.000 0.000 0.000 inspect.py:209(iscode) + 1 0.002 0.002 0.022 0.022 inspect.py:25() + 1 0.000 0.000 0.000 0.000 inspect.py:398(getfile) + 1 0.000 0.000 0.000 0.000 inspect.py:440(getsourcefile) + 147 0.000 0.000 0.000 0.000 inspect.py:472(getmodule) + 362 0.000 0.000 0.000 0.000 inspect.py:51(ismodule) + 168 0.000 0.000 0.000 0.000 inspect.py:59(isclass) + 1 0.000 0.000 0.000 0.000 inspect.py:630(EndOfBlock) + 1 0.000 0.000 0.000 0.000 inspect.py:632(BlockFinder) + 627 0.001 0.000 0.001 0.000 inspect.py:67(ismethod) + 1 0.000 0.000 0.000 0.000 install_vcs.py:10() + 1 0.000 0.000 0.000 0.000 install_vcs.py:10(_files) + 1 0.001 0.001 0.002 0.002 io.py:34() + 1 0.000 0.000 0.000 0.000 io.py:69(IOBase) + 1 0.000 0.000 0.000 0.000 io.py:73(RawIOBase) + 1 0.000 0.000 0.000 0.000 io.py:76(BufferedIOBase) + 1 0.000 0.000 0.000 0.000 io.py:79(TextIOBase) + 1 0.000 0.000 0.000 0.000 isofill.py:128(Gfi) + 1 0.000 0.000 0.000 0.000 isofill.py:3() + 905 0.000 0.000 0.000 0.000 isofill.py:374(_getname) + 8 0.000 0.000 0.000 0.000 isofill.py:385(_setcalendar) + 8 0.000 0.000 0.000 0.000 isofill.py:396(_settimeunits) + 2 0.000 0.000 0.000 0.000 isofill.py:404(_getxaxisconvert) + 8 0.000 0.000 0.000 0.000 isofill.py:407(_setxaxisconvert) + 2 0.000 0.000 0.000 0.000 isofill.py:415(_getyaxisconvert) + 8 0.000 0.000 0.000 0.000 isofill.py:418(_setyaxisconvert) + 4 0.000 0.000 0.000 0.000 isofill.py:435(_getfillareaindices) + 8 0.000 0.000 0.000 0.000 isofill.py:438(_setfillareaindices) + 6 0.000 0.000 0.000 0.000 isofill.py:447(_getfillareastyle) + 8 0.000 0.000 0.000 0.000 isofill.py:450(_setfillareastyle) + 2 0.000 0.000 0.000 0.000 isofill.py:463(_getmissing) + 8 0.000 0.000 0.000 0.000 isofill.py:466(_setmissing) + 8 0.000 0.000 0.000 0.000 isofill.py:475(_getxticlabels1) + 10 0.000 0.000 0.000 0.000 isofill.py:478(_setxticlabels1) + 10 0.000 0.000 0.000 0.000 isofill.py:486(_getxticlabels2) + 10 0.000 0.000 0.000 0.000 isofill.py:489(_setxticlabels2) + 10 0.000 0.000 0.000 0.000 isofill.py:497(_getyticlabels1) + 10 0.000 0.000 0.000 0.000 isofill.py:500(_setyticlabels1) + 12 0.000 0.000 0.000 0.000 isofill.py:508(_getyticlabels2) + 10 0.000 0.000 0.000 0.000 isofill.py:511(_setyticlabels2) + 6 0.000 0.000 0.000 0.000 isofill.py:519(_getxmtics1) + 8 0.000 0.000 0.000 0.000 isofill.py:522(_setxmtics1) + 8 0.000 0.000 0.000 0.000 isofill.py:530(_getxmtics2) + 8 0.000 0.000 0.000 0.000 isofill.py:533(_setxmtics2) + 8 0.000 0.000 0.000 0.000 isofill.py:541(_getymtics1) + 8 0.000 0.000 0.000 0.000 isofill.py:544(_setymtics1) + 10 0.000 0.000 0.000 0.000 isofill.py:552(_getymtics2) + 8 0.000 0.000 0.000 0.000 isofill.py:555(_setymtics2) + 14 0.000 0.000 0.000 0.000 isofill.py:563(_getdatawc_x1) + 8 0.000 0.000 0.000 0.000 isofill.py:566(_setdatawc_x1) + 14 0.000 0.000 0.000 0.000 isofill.py:571(_getdatawc_x2) + 8 0.000 0.000 0.000 0.000 isofill.py:574(_setdatawc_x2) + 14 0.000 0.000 0.000 0.000 isofill.py:579(_getdatawc_y1) + 8 0.000 0.000 0.000 0.000 isofill.py:582(_setdatawc_y1) + 14 0.000 0.000 0.000 0.000 isofill.py:587(_getdatawc_y2) + 8 0.000 0.000 0.000 0.000 isofill.py:590(_setdatawc_y2) + 13 0.000 0.000 0.001 0.000 isofill.py:597(__init__) + 1 0.000 0.000 0.000 0.000 isofillpipeline.py:1() + 2 0.000 0.000 0.000 0.000 isofillpipeline.py:13(__init__) + 2 0.000 0.000 0.005 0.003 isofillpipeline.py:17(_updateContourLevelsAndColors) + 2 0.001 0.000 0.597 0.298 isofillpipeline.py:20(_plotInternal) + 1 0.000 0.000 0.000 0.000 isofillpipeline.py:9(IsofillPipeline) + 1 0.000 0.000 0.000 0.000 isoline.py:196(Gi) + 1 0.000 0.000 0.000 0.000 isoline.py:3() + 2669 0.000 0.000 0.000 0.000 isoline.py:498(_getname) + 13 0.000 0.000 0.000 0.000 isoline.py:506(_getcalendar) + 21 0.000 0.000 0.000 0.000 isoline.py:509(_setcalendar) + 13 0.000 0.000 0.000 0.000 isoline.py:517(_gettimeunits) + 21 0.000 0.000 0.001 0.000 isoline.py:520(_settimeunits) + 15 0.000 0.000 0.000 0.000 isoline.py:528(_getxaxisconvert) + 21 0.000 0.000 0.000 0.000 isoline.py:531(_setxaxisconvert) + 15 0.000 0.000 0.000 0.000 isoline.py:539(_getyaxisconvert) + 21 0.000 0.000 0.000 0.000 isoline.py:542(_setyaxisconvert) + 15 0.000 0.000 0.000 0.000 isoline.py:550(_getlevels) + 29 0.000 0.000 0.000 0.000 isoline.py:553(_setlevels) + 207 0.000 0.000 0.000 0.000 isoline.py:562(_getprojection) + 21 0.000 0.000 0.000 0.000 isoline.py:565(_setprojection) + 21 0.000 0.000 0.000 0.000 isoline.py:573(_getxticlabels1) + 22 0.000 0.000 0.000 0.000 isoline.py:576(_setxticlabels1) + 23 0.000 0.000 0.000 0.000 isoline.py:584(_getxticlabels2) + 23 0.000 0.000 0.000 0.000 isoline.py:587(_setxticlabels2) + 23 0.000 0.000 0.000 0.000 isoline.py:595(_getyticlabels1) + 22 0.000 0.000 0.000 0.000 isoline.py:598(_setyticlabels1) + 24 0.000 0.000 0.000 0.000 isoline.py:606(_getyticlabels2) + 23 0.000 0.000 0.000 0.000 isoline.py:609(_setyticlabels2) + 19 0.000 0.000 0.000 0.000 isoline.py:617(_getxmtics1) + 21 0.000 0.000 0.000 0.000 isoline.py:620(_setxmtics1) + 21 0.000 0.000 0.000 0.000 isoline.py:628(_getxmtics2) + 21 0.000 0.000 0.000 0.000 isoline.py:631(_setxmtics2) + 20 0.000 0.000 0.000 0.000 isoline.py:639(_getymtics1) + 21 0.000 0.000 0.000 0.000 isoline.py:642(_setymtics1) + 22 0.000 0.000 0.000 0.000 isoline.py:650(_getymtics2) + 21 0.000 0.000 0.000 0.000 isoline.py:653(_setymtics2) + 27 0.000 0.000 0.000 0.000 isoline.py:661(_getdatawc_x1) + 21 0.000 0.000 0.000 0.000 isoline.py:664(_setdatawc_x1) + 27 0.000 0.000 0.000 0.000 isoline.py:669(_getdatawc_x2) + 21 0.000 0.000 0.000 0.000 isoline.py:672(_setdatawc_x2) + 27 0.000 0.000 0.000 0.000 isoline.py:677(_getdatawc_y1) + 21 0.000 0.000 0.000 0.000 isoline.py:680(_setdatawc_y1) + 27 0.000 0.000 0.000 0.000 isoline.py:685(_getdatawc_y2) + 21 0.000 0.000 0.000 0.000 isoline.py:688(_setdatawc_y2) + 15 0.000 0.000 0.000 0.000 isoline.py:693(_getlinewidths) + 21 0.000 0.000 0.000 0.000 isoline.py:696(_setlinewidths) + 15 0.000 0.000 0.000 0.000 isoline.py:707(_getlinecolors) + 21 0.000 0.000 0.001 0.000 isoline.py:710(_setlinecolors) + 15 0.000 0.000 0.000 0.000 isoline.py:719(_getlinetypes) + 13 0.000 0.000 0.000 0.000 isoline.py:722(_setlinetypes) + 15 0.000 0.000 0.000 0.000 isoline.py:784(_gettext) + 21 0.000 0.000 0.000 0.000 isoline.py:787(_settext) + 15 0.000 0.000 0.000 0.000 isoline.py:797(_gettextcolors) + 21 0.000 0.000 0.000 0.000 isoline.py:800(_settextcolors) + 19 0.000 0.000 0.000 0.000 isoline.py:809(_getlabel) + 21 0.000 0.000 0.000 0.000 isoline.py:812(_setlabel) + 14 0.000 0.000 0.000 0.000 isoline.py:820(_getlabelskipdistance) + 13 0.000 0.000 0.000 0.000 isoline.py:823(_setlabelskipdistance) + 13 0.000 0.000 0.000 0.000 isoline.py:831(_getlabelbackgroundcolors) + 13 0.000 0.000 0.000 0.000 isoline.py:834(_setlabelbackgroundcolors) + 13 0.000 0.000 0.000 0.000 isoline.py:845(_getlabelbackgroundopacities) + 13 0.000 0.000 0.000 0.000 isoline.py:848(_setlabelbackgroundopacities) + 13 0.000 0.000 0.000 0.000 isoline.py:859(_getspacing) + 21 0.000 0.000 0.000 0.000 isoline.py:862(_setspacing) + 13 0.000 0.000 0.000 0.000 isoline.py:872(_getangle) + 21 0.000 0.000 0.000 0.000 isoline.py:875(_setangle) + 13 0.000 0.000 0.000 0.000 isoline.py:886(_getscale) + 21 0.000 0.000 0.000 0.000 isoline.py:889(_setscale) + 13 0.000 0.000 0.000 0.000 isoline.py:899(_getclockwise) + 21 0.000 0.000 0.000 0.000 isoline.py:902(_setclockwise) + 14 0.000 0.000 0.006 0.000 isoline.py:909(__init__) + 1 0.000 0.000 0.000 0.000 isolinepipeline.py:1() + 2 0.000 0.000 0.000 0.000 isolinepipeline.py:13(__init__) + 6 0.000 0.000 0.000 0.000 isolinepipeline.py:17(extendAttribute) + 2 0.000 0.000 0.003 0.001 isolinepipeline.py:25(_updateContourLevelsAndColors) + 2 0.001 0.001 0.522 0.261 isolinepipeline.py:45(_plotInternal) + 1 0.000 0.000 0.000 0.000 isolinepipeline.py:9(IsolinePipeline) + 1 0.000 0.000 0.000 0.000 keyable.py:1() + 1 0.000 0.000 0.000 0.000 keyable.py:4(KeyableMixin) + 1 0.000 0.000 0.000 0.000 keyword.py:11() + 1 0.002 0.002 0.002 0.002 label.py:1() + 1 0.000 0.000 0.000 0.000 label.py:33(LabelEditor) + 1 0.000 0.000 0.000 0.000 laguerre.py:1765(Laguerre) + 1 0.000 0.000 0.001 0.001 laguerre.py:59() + 1 0.000 0.000 0.000 0.000 legend.py:1() + 1 0.000 0.000 0.000 0.000 legend.py:6(LegendEditor) + 1 0.000 0.000 0.000 0.000 legendre.py:1795(Legendre) + 1 0.000 0.000 0.000 0.000 legendre.py:83() + 1 0.000 0.000 0.000 0.000 libCFConfig.py:6() + 1 0.002 0.002 0.002 0.002 linalg.py:10() + 1 0.000 0.000 0.000 0.000 linalg.py:43(LinAlgError) + 1 0.000 0.000 0.000 0.000 linalg.py:76(_determine_error_states) + 2 0.000 0.000 0.000 0.000 line.py:1() + 87818 0.015 0.000 0.015 0.000 line.py:188(_getname) + 2052 0.001 0.000 0.001 0.000 line.py:196(_getfillareacolors) + 375 0.001 0.000 0.040 0.000 line.py:199(_setfillareacolors) + 1257 0.000 0.000 0.000 0.000 line.py:208(_gettype) + 375 0.001 0.000 0.010 0.000 line.py:211(_settype) + 1257 0.000 0.000 0.000 0.000 line.py:221(_getwidth) + 374 0.001 0.000 0.009 0.000 line.py:224(_setwidth) + 673 0.000 0.000 0.000 0.000 line.py:235(_getpriority) + 331 0.000 0.000 0.003 0.000 line.py:238(_setpriority) + 1570 0.000 0.000 0.000 0.000 line.py:246(_getprojection) + 336 0.000 0.000 0.003 0.000 line.py:249(_setprojection) + 451 0.000 0.000 0.000 0.000 line.py:256(_getwc) + 279 0.000 0.000 0.007 0.000 line.py:259(_setwc) + 774 0.000 0.000 0.000 0.000 line.py:267(_getvp) + 297 0.000 0.000 0.008 0.000 line.py:270(_setvp) + 1468 0.000 0.000 0.000 0.000 line.py:280(_getx) + 386 0.003 0.000 0.042 0.000 line.py:283(_setx) + 1458 0.000 0.000 0.000 0.000 line.py:306(_gety) + 386 0.002 0.000 0.042 0.000 line.py:309(_sety) + 238 0.007 0.000 0.079 0.000 line.py:337(__init__) + 1 0.000 0.000 0.000 0.000 line.py:4() + 1 0.000 0.000 0.000 0.000 line.py:4(Line) + 1 0.000 0.000 0.000 0.000 line.py:7(LineEditor) + 1 0.000 0.000 0.000 0.000 line.py:73(Tl) + 38 0.000 0.000 0.046 0.001 linecache.py:13(getline) + 33 0.000 0.000 0.047 0.001 linecache.py:33(getlines) + 107 0.001 0.000 0.007 0.000 linecache.py:47(checkcache) + 8 0.001 0.000 0.047 0.006 linecache.py:72(updatecache) + 1 0.001 0.001 0.001 0.001 loader.py:1() + 1 0.000 0.000 0.000 0.000 loader.py:38(TestLoader) + 3 0.000 0.000 0.000 0.000 locale.py:349(_replace_encoding) + 6 0.000 0.000 0.000 0.000 locale.py:365(normalize) + 1 0.000 0.000 0.000 0.000 log.py:1() + 1 0.000 0.000 0.000 0.000 log.py:14(Log) + 1 0.000 0.000 0.000 0.000 log.py:16(__init__) + 1 0.002 0.002 0.011 0.011 log.py:2() + 1 0.000 0.000 0.000 0.000 log.py:25(Log) + 1 0.000 0.000 0.000 0.000 log.py:56(set_threshold) + 1 0.000 0.000 0.000 0.000 log.py:71(set_verbosity) + 2 0.009 0.004 0.023 0.012 machar.py:116(_do_init) + 1 0.000 0.000 0.000 0.000 machar.py:17(MachAr) + 1 0.000 0.000 0.000 0.000 machar.py:7() + 2 0.000 0.000 0.023 0.012 machar.py:98(__init__) + 1 0.001 0.001 0.002 0.002 main.py:1() + 1 0.000 0.000 0.000 0.000 main.py:63(TestProgram) + 2 0.000 0.000 0.000 0.000 manageElements.py:105(createprojection) + 1 0.000 0.000 0.000 0.000 manageElements.py:1064(getfillarea) + 10 0.000 0.000 0.003 0.000 manageElements.py:1133(createtexttable) + 19 0.000 0.000 0.000 0.000 manageElements.py:1204(gettexttable) + 680 0.001 0.000 0.002 0.000 manageElements.py:124(getprojection) + 60 0.000 0.000 0.006 0.000 manageElements.py:1255(createtextorientation) + 19 0.000 0.000 0.000 0.000 manageElements.py:1275(gettextorientation) + 522 0.005 0.000 0.354 0.001 manageElements.py:1298(createtextcombined) + 1 0.000 0.000 0.000 0.000 manageElements.py:1407(gettextcombined) + 16 0.000 0.000 0.002 0.000 manageElements.py:145(createboxfill) + 1 0.000 0.000 0.000 0.000 manageElements.py:1521(get3d_scalar) + 2 0.000 0.000 0.075 0.037 manageElements.py:1543(create3d_scalar) + 1 0.000 0.000 0.000 0.000 manageElements.py:1561(get3d_dual_scalar) + 2 0.000 0.000 0.069 0.034 manageElements.py:1582(create3d_dual_scalar) + 1 0.000 0.000 0.000 0.000 manageElements.py:1601(get3d_vector) + 2 0.000 0.000 0.057 0.028 manageElements.py:1623(create3d_vector) + 43 0.000 0.000 0.169 0.004 manageElements.py:1648(createcolormap) + 15 0.000 0.000 0.000 0.000 manageElements.py:1667(getcolormap) + 1 0.000 0.000 0.000 0.000 manageElements.py:1687(removeG) + 1 0.000 0.000 0.000 0.000 manageElements.py:1710(removeGi) + 2 0.000 0.000 0.000 0.000 manageElements.py:173(getboxfill) + 1 0.000 0.000 0.000 0.000 manageElements.py:1790(removeobject) + 2 0.000 0.000 0.003 0.001 manageElements.py:201(createtaylordiagram) + 1 0.000 0.000 0.000 0.000 manageElements.py:231(gettaylordiagram) + 9 0.000 0.000 0.001 0.000 manageElements.py:255(createmeshfill) + 2 0.000 0.000 0.000 0.000 manageElements.py:273(getmeshfill) + 2080 0.036 0.000 0.178 0.000 manageElements.py:29(check_name_source) + 12 0.000 0.000 0.001 0.000 manageElements.py:295(createisofill) + 2 0.000 0.000 0.000 0.000 manageElements.py:322(getisofill) + 13 0.000 0.000 0.007 0.001 manageElements.py:351(createisoline) + 2 0.000 0.000 0.000 0.000 manageElements.py:378(getisoline) + 16 0.000 0.000 0.011 0.001 manageElements.py:406(create1d) + 4 0.000 0.000 0.000 0.000 manageElements.py:411(get1d) + 2 0.000 0.000 0.001 0.001 manageElements.py:421(createxyvsy) + 1 0.000 0.000 0.000 0.000 manageElements.py:458(getxyvsy) + 2 0.000 0.000 0.002 0.001 manageElements.py:484(createyxvsx) + 1 0.000 0.000 0.000 0.000 manageElements.py:519(getyxvsx) + 2 0.000 0.000 0.001 0.001 manageElements.py:544(createxvsy) + 1 0.000 0.000 0.000 0.000 manageElements.py:579(getxvsy) + 1 0.000 0.000 0.000 0.000 manageElements.py:6() + 2 0.000 0.000 0.001 0.000 manageElements.py:604(createvector) + 1 0.000 0.000 0.000 0.000 manageElements.py:622(getvector) + 2 0.000 0.000 0.002 0.001 manageElements.py:642(createscatter) + 400 0.003 0.000 4.045 0.010 manageElements.py:65(createtemplate) + 1 0.000 0.000 0.000 0.000 manageElements.py:678(getscatter) + 235 0.001 0.000 0.091 0.000 manageElements.py:703(createline) + 54 0.000 0.000 0.000 0.000 manageElements.py:793(getline) + 1235 0.004 0.000 0.005 0.000 manageElements.py:85(gettemplate) + 20 0.000 0.000 0.015 0.001 manageElements.py:861(createmarker) + 2 0.000 0.000 0.000 0.000 manageElements.py:927(getmarker) + 22 0.000 0.000 0.106 0.005 manageElements.py:996(createfillarea) + 1 0.000 0.000 0.000 0.000 manager.py:1() + 1 0.000 0.000 0.000 0.000 manager.py:6(InterfaceManager) + 1 0.000 0.000 0.000 0.000 marker.py:1() + 1 0.000 0.000 0.000 0.000 marker.py:108(Tm) + 1 0.000 0.000 0.000 0.000 marker.py:11(MarkerEditor) + 1 0.000 0.000 0.000 0.000 marker.py:24() + 7138 0.002 0.000 0.002 0.000 marker.py:241(_getname) + 32 0.000 0.000 0.000 0.000 marker.py:250(_getfillareacolors) + 36 0.000 0.000 0.002 0.000 marker.py:253(_setfillareacolors) + 32 0.000 0.000 0.000 0.000 marker.py:264(_gettype) + 36 0.000 0.000 0.008 0.000 marker.py:267(_settype) + 32 0.000 0.000 0.000 0.000 marker.py:278(_getsize) + 36 0.000 0.000 0.001 0.000 marker.py:281(_setsize) + 46 0.000 0.000 0.000 0.000 marker.py:294(_getpriority) + 38 0.000 0.000 0.000 0.000 marker.py:297(_setpriority) + 36 0.000 0.000 0.000 0.000 marker.py:306(_getprojection) + 20 0.000 0.000 0.000 0.000 marker.py:309(_setprojection) + 36 0.000 0.000 0.000 0.000 marker.py:317(_getwc) + 28 0.000 0.000 0.001 0.000 marker.py:320(_setwc) + 48 0.000 0.000 0.000 0.000 marker.py:329(_getvp) + 28 0.000 0.000 0.001 0.000 marker.py:332(_setvp) + 42 0.000 0.000 0.000 0.000 marker.py:343(_getx) + 32 0.000 0.000 0.004 0.000 marker.py:346(_setx) + 40 0.000 0.000 0.000 0.000 marker.py:371(_gety) + 32 0.000 0.000 0.004 0.000 marker.py:374(_sety) + 21 0.000 0.000 0.014 0.001 marker.py:399(__init__) + 1 0.000 0.000 0.000 0.000 memmap.py:1() + 1 0.000 0.000 0.000 0.000 memmap.py:20(memmap) + 1 0.000 0.000 0.000 0.000 meshfill.py:150(Gfm) + 1 0.000 0.000 0.001 0.001 meshfill.py:3() + 604 0.000 0.000 0.000 0.000 meshfill.py:380(_getname) + 2 0.000 0.000 0.000 0.000 meshfill.py:389(_getxaxisconvert) + 5 0.000 0.000 0.000 0.000 meshfill.py:392(_setxaxisconvert) + 2 0.000 0.000 0.000 0.000 meshfill.py:400(_getyaxisconvert) + 5 0.000 0.000 0.000 0.000 meshfill.py:403(_setyaxisconvert) + 4 0.000 0.000 0.000 0.000 meshfill.py:415(_getfillareaindices) + 5 0.000 0.000 0.000 0.000 meshfill.py:418(_setfillareaindices) + 8 0.000 0.000 0.000 0.000 meshfill.py:427(_getfillareastyle) + 5 0.000 0.000 0.000 0.000 meshfill.py:430(_setfillareastyle) + 2 0.000 0.000 0.000 0.000 meshfill.py:443(_getmissing) + 5 0.000 0.000 0.000 0.000 meshfill.py:446(_setmissing) + 2 0.000 0.000 0.000 0.000 meshfill.py:451(_getmesh) + 5 0.000 0.000 0.000 0.000 meshfill.py:454(_setmesh) + 196 0.000 0.000 0.000 0.000 meshfill.py:461(_getprojection) + 5 0.000 0.000 0.000 0.000 meshfill.py:464(_setprojection) + 8 0.000 0.000 0.000 0.000 meshfill.py:472(_getxticlabels1) + 7 0.000 0.000 0.000 0.000 meshfill.py:475(_setxticlabels1) + 10 0.000 0.000 0.000 0.000 meshfill.py:483(_getxticlabels2) + 7 0.000 0.000 0.000 0.000 meshfill.py:486(_setxticlabels2) + 10 0.000 0.000 0.000 0.000 meshfill.py:494(_getyticlabels1) + 7 0.000 0.000 0.000 0.000 meshfill.py:497(_setyticlabels1) + 12 0.000 0.000 0.000 0.000 meshfill.py:505(_getyticlabels2) + 7 0.000 0.000 0.000 0.000 meshfill.py:508(_setyticlabels2) + 6 0.000 0.000 0.000 0.000 meshfill.py:516(_getxmtics1) + 5 0.000 0.000 0.000 0.000 meshfill.py:519(_setxmtics1) + 8 0.000 0.000 0.000 0.000 meshfill.py:527(_getxmtics2) + 5 0.000 0.000 0.000 0.000 meshfill.py:530(_setxmtics2) + 8 0.000 0.000 0.000 0.000 meshfill.py:538(_getymtics1) + 5 0.000 0.000 0.000 0.000 meshfill.py:541(_setymtics1) + 10 0.000 0.000 0.000 0.000 meshfill.py:549(_getymtics2) + 5 0.000 0.000 0.000 0.000 meshfill.py:552(_setymtics2) + 14 0.000 0.000 0.000 0.000 meshfill.py:560(_getdatawc_x1) + 5 0.000 0.000 0.000 0.000 meshfill.py:563(_setdatawc_x1) + 14 0.000 0.000 0.000 0.000 meshfill.py:568(_getdatawc_x2) + 5 0.000 0.000 0.000 0.000 meshfill.py:571(_setdatawc_x2) + 14 0.000 0.000 0.000 0.000 meshfill.py:576(_getdatawc_y1) + 5 0.000 0.000 0.000 0.000 meshfill.py:579(_setdatawc_y1) + 14 0.000 0.000 0.000 0.000 meshfill.py:584(_getdatawc_y2) + 5 0.000 0.000 0.000 0.000 meshfill.py:587(_setdatawc_y2) + 5 0.000 0.000 0.000 0.000 meshfill.py:595(_setcalendar) + 5 0.000 0.000 0.000 0.000 meshfill.py:606(_settimeunits) + 4 0.000 0.000 0.000 0.000 meshfill.py:614(_getwrap) + 7 0.000 0.000 0.000 0.000 meshfill.py:617(_setwrap) + 10 0.000 0.000 0.000 0.000 meshfill.py:622(__init__) + 1 0.000 0.000 0.000 0.000 meshfillpipeline.py:1() + 1 0.000 0.000 0.000 0.000 meshfillpipeline.py:10(MeshfillPipeline) + 2 0.000 0.000 0.000 0.000 meshfillpipeline.py:14(__init__) + 2 0.000 0.000 0.010 0.005 meshfillpipeline.py:20(_updateScalarData) + 2 0.000 0.000 0.006 0.003 meshfillpipeline.py:26(_updateContourLevelsAndColors) + 4 0.000 0.000 0.001 0.000 meshfillpipeline.py:271(getPlottingBounds) + 2 0.004 0.002 0.762 0.381 meshfillpipeline.py:29(_plotInternal) + 1 0.002 0.002 0.002 0.002 mimetools.py:1() + 1 0.000 0.000 0.000 0.000 mimetools.py:20(Message) + 1 0.000 0.000 0.000 0.000 minmax.py:1() + 1 0.000 0.000 0.000 0.000 misc.py:2() + 1 0.003 0.003 0.009 0.009 misc_util.py:1() + 1 0.000 0.000 0.000 0.000 misc_util.py:314(terminal_has_colors) + 1 0.000 0.000 0.000 0.000 misc_util.py:56(InstallableLib) + 2 0.000 0.000 0.000 0.000 misc_util.py:613(get_shared_lib_extension) + 1 0.000 0.000 0.000 0.000 misc_util.py:696(Configuration) + 1 0.000 0.000 0.000 0.000 mvBaseWriter.py:10() + 1 0.000 0.000 0.000 0.000 mvBaseWriter.py:14(BaseWriter) + 1 0.000 0.000 0.000 0.000 mvCdmsRegrid.py:298(CdmsRegrid) + 1 0.001 0.001 0.088 0.088 mvCdmsRegrid.py:7() + 1 0.000 0.000 0.000 0.000 mvESMFRegrid.py:35(ESMFRegrid) + 1 0.002 0.002 0.002 0.002 mvESMFRegrid.py:8() + 1 0.000 0.000 0.000 0.000 mvGenericRegrid.py:39(GenericRegrid) + 1 0.001 0.001 0.006 0.006 mvGenericRegrid.py:8() + 1 0.000 0.000 0.000 0.000 mvLibCFRegrid.py:14(LibCFRegrid) + 1 0.002 0.002 0.002 0.002 mvLibCFRegrid.py:8() + 1 0.000 0.000 0.000 0.000 mvMultiArrayIter.py:10() + 1 0.000 0.000 0.000 0.000 mvMultiArrayIter.py:17(MultiArrayIter) + 1 0.000 0.000 0.000 0.000 mvSphereMesh.py:13(SphereMesh) + 1 0.000 0.000 0.000 0.000 mvSphereMesh.py:8() + 1 0.000 0.000 0.000 0.000 mvVTKSGWriter.py:14(VTKSGWriter) + 1 0.000 0.000 0.000 0.000 mvVTKSGWriter.py:8() + 1 0.000 0.000 0.000 0.000 mvVTKUGWriter.py:14(VTKUGWriter) + 1 0.000 0.000 0.000 0.000 mvVTKUGWriter.py:8() + 1 0.000 0.000 0.000 0.000 mvVsWriter.py:14(VsWriter) + 1 0.000 0.000 0.000 0.000 mvVsWriter.py:8() + 1 0.000 0.000 0.000 0.000 nanfunctions.py:19() + 1 0.000 0.000 0.000 0.000 nosetester.py:128(NoseTester) + 20 0.000 0.000 0.000 0.000 nosetester.py:170(__init__) + 20 0.000 0.000 0.000 0.000 nosetester.py:511(_numpy_tester) + 1 0.000 0.000 0.000 0.000 nosetester.py:6() + 1 0.001 0.001 0.004 0.004 npy_pkg_config.py:1() + 1 0.000 0.000 0.000 0.000 npy_pkg_config.py:153(VariableSet) + 1 0.000 0.000 0.000 0.000 npy_pkg_config.py:17(FormatError) + 1 0.000 0.000 0.000 0.000 npy_pkg_config.py:28(PkgNotFound) + 1 0.000 0.000 0.000 0.000 npy_pkg_config.py:81(LibraryInfo) + 1 0.005 0.005 0.006 0.006 npyio.py:1() + 1 0.000 0.000 0.000 0.000 npyio.py:40(BagObj) + 1 0.000 0.000 0.000 0.000 npyio.py:95(NpzFile) + 1 0.000 0.000 0.000 0.000 numbers.py:13(Number) + 1 0.000 0.000 0.000 0.000 numbers.py:169(Real) + 1 0.000 0.000 0.000 0.000 numbers.py:270(Rational) + 1 0.000 0.000 0.000 0.000 numbers.py:295(Integral) + 1 0.000 0.000 0.000 0.000 numbers.py:34(Complex) + 1 0.000 0.000 0.001 0.001 numbers.py:6() + 1 0.004 0.004 0.007 0.007 numeric.py:1() + 17 0.003 0.000 0.003 0.000 numeric.py:1015(outer) + 22 0.000 0.000 0.000 0.000 numeric.py:148(ones) + 2 0.000 0.000 0.000 0.000 numeric.py:1871(set_string_function) + 1727 0.002 0.000 0.003 0.000 numeric.py:2064(isscalar) + 664 0.003 0.000 0.057 0.000 numeric.py:2310(allclose) + 948 0.010 0.000 0.069 0.000 numeric.py:2375(isclose) + 948 0.016 0.000 0.037 0.000 numeric.py:2434(within_tol) + 9565 0.025 0.000 0.053 0.000 numeric.py:2576(seterr) + 9565 0.017 0.000 0.019 0.000 numeric.py:2676(geterr) + 1 0.000 0.000 0.000 0.000 numeric.py:2896(_unspecified) + 1 0.000 0.000 0.000 0.000 numeric.py:2900(errstate) + 3778 0.005 0.000 0.006 0.000 numeric.py:2963(__init__) + 3778 0.005 0.000 0.031 0.000 numeric.py:2967(__enter__) + 3778 0.005 0.000 0.023 0.000 numeric.py:2972(__exit__) + 1 0.000 0.000 0.000 0.000 numeric.py:2978(_setdef) + 3 0.000 0.000 0.000 0.000 numeric.py:365(extend_all) + 123 0.000 0.000 0.000 0.000 numeric.py:414(asarray) + 5129 0.004 0.000 0.006 0.000 numeric.py:484(asanyarray) + 2 0.000 0.000 0.001 0.001 numeric.py:535(ascontiguousarray) + 1 0.000 0.000 0.000 0.000 numeric.py:55(ComplexWarning) + 72 0.000 0.000 0.000 0.000 numerictypes.py:127(english_lower) + 40 0.000 0.000 0.000 0.000 numerictypes.py:154(english_upper) + 14 0.000 0.000 0.000 0.000 numerictypes.py:181(english_capitalize) + 21 0.000 0.000 0.000 0.000 numerictypes.py:216(_evalname) + 26 0.000 0.000 0.000 0.000 numerictypes.py:229(bitname) + 1 0.000 0.000 0.000 0.000 numerictypes.py:285(_add_types) + 1 0.000 0.000 0.000 0.000 numerictypes.py:301(_add_aliases) + 1 0.000 0.000 0.000 0.000 numerictypes.py:338(_add_integer_aliases) + 1 0.000 0.000 0.000 0.000 numerictypes.py:379(_set_up_aliases) + 1 0.000 0.000 0.000 0.000 numerictypes.py:428(_construct_char_code_lookup) + 30 0.000 0.000 0.000 0.000 numerictypes.py:443(_add_array_type) + 1 0.000 0.000 0.000 0.000 numerictypes.py:451(_set_array_types) + 2 0.000 0.000 0.000 0.000 numerictypes.py:553(_python_type) + 2048 0.011 0.000 0.018 0.000 numerictypes.py:603(obj2sctype) + 355 0.000 0.000 0.000 0.000 numerictypes.py:660(issubclass_) + 355 0.001 0.000 0.001 0.000 numerictypes.py:728(issubdtype) + 1 0.000 0.000 0.000 0.000 numerictypes.py:765(_typedict) + 215 0.001 0.000 0.002 0.000 numerictypes.py:774(__getitem__) + 1 0.000 0.000 0.000 0.000 numerictypes.py:781(_construct_lookups) + 1831 0.005 0.000 0.021 0.000 numerictypes.py:797(sctype2char) + 1 0.002 0.002 0.004 0.004 numerictypes.py:82() + 2254 0.019 0.000 0.021 0.000 numerictypes.py:942(_can_coerce_all) + 1 0.000 0.000 0.000 0.000 numerictypes.py:957(_register_types) + 1127 0.004 0.000 0.025 0.000 numerictypes.py:964(find_common_type) + 39 0.001 0.000 0.006 0.000 numpy_support.py:103(numpy_to_vtk) + 1 0.000 0.000 0.000 0.000 numpy_support.py:27() + 39 0.001 0.000 0.002 0.000 numpy_support.py:48(get_vtk_array_type) + 39 0.000 0.000 0.000 0.000 numpy_support.py:72(get_vtk_to_numpy_typemap) + 39 0.000 0.000 0.000 0.000 numpy_support.py:91(get_numpy_array_type) + 39 0.001 0.000 0.001 0.000 numpy_support.py:96(create_vtk_array) + 1 0.000 0.000 0.000 0.000 oneD.py:4() + 1 0.000 0.000 0.000 0.000 oneD.py:6(oneD) + 119 0.000 0.000 0.000 0.000 opcode.py:27(def_op) + 11 0.000 0.000 0.000 0.000 opcode.py:31(name_op) + 6 0.000 0.000 0.000 0.000 opcode.py:35(jrel_op) + 6 0.000 0.000 0.000 0.000 opcode.py:39(jabs_op) + 1 0.000 0.000 0.000 0.000 opcode.py:5() + 1 0.000 0.000 0.000 0.000 os.py:35(_get_exports_list) + 5 0.000 0.000 0.000 0.000 os.py:472(__setitem__) + 2 0.000 0.000 0.000 0.000 os.py:496(__delitem__) + 1 0.000 0.000 0.000 0.000 parallelCoordinates.py:1() + 1 0.000 0.000 0.000 0.000 parallelCoordinates.py:6(Gpc) + 1 0.001 0.001 0.001 0.001 patterns.py:1() + 1 0.000 0.000 0.000 0.000 patterns.py:100(VertStripe) + 1 0.000 0.000 0.000 0.000 patterns.py:110(HorizDash) + 1 0.000 0.000 0.000 0.000 patterns.py:121(VertDash) + 1 0.000 0.000 0.000 0.000 patterns.py:134(XDash) + 1 0.000 0.000 0.000 0.000 patterns.py:191(ThinDiagDownRight) + 1 0.000 0.000 0.000 0.000 patterns.py:201(ThickDiagRownRight) + 1 0.000 0.000 0.000 0.000 patterns.py:211(ThinDiagUpRight) + 1 0.000 0.000 0.000 0.000 patterns.py:221(ThickDiagUpRight) + 1 0.000 0.000 0.000 0.000 patterns.py:231(ThickThinVertStripe) + 1 0.000 0.000 0.000 0.000 patterns.py:242(ThickThinHorizStripe) + 1 0.000 0.000 0.000 0.000 patterns.py:253(LargeRectDot) + 1 0.000 0.000 0.000 0.000 patterns.py:264(Diamond) + 1 0.000 0.000 0.000 0.000 patterns.py:291(Bubble) + 1 0.000 0.000 0.000 0.000 patterns.py:314(Snake) + 1 0.000 0.000 0.000 0.000 patterns.py:329(EmptyCircle) + 1 0.000 0.000 0.000 0.000 patterns.py:4(Pattern) + 1 0.000 0.000 0.000 0.000 patterns.py:42(BottomLeftTri) + 1 0.000 0.000 0.000 0.000 patterns.py:54(TopRightTri) + 1 0.000 0.000 0.000 0.000 patterns.py:66(SmallRectDot) + 1 0.000 0.000 0.000 0.000 patterns.py:77(CheckerBoard) + 1 0.000 0.000 0.000 0.000 patterns.py:90(HorizStripe) + 71 0.000 0.000 0.008 0.000 pdb.py:107(reset) + 71 0.000 0.000 0.000 0.000 pdb.py:111(forget) + 1 0.000 0.000 0.000 0.000 pdb.py:18(Restart) + 1 0.005 0.005 0.005 0.005 pdb.py:3() + 1 0.000 0.000 0.000 0.000 pdb.py:59(Pdb) + 71 0.009 0.000 0.015 0.000 pdb.py:61(__init__) + 1 0.000 0.000 0.000 0.000 pickle.py:1267(_EmptyClass) + 1 0.000 0.000 0.000 0.000 pickle.py:171(Pickler) + 1 0.001 0.001 0.002 0.002 pickle.py:25() + 1 0.000 0.000 0.000 0.000 pickle.py:58(PickleError) + 1 0.000 0.000 0.000 0.000 pickle.py:62(PicklingError) + 1 0.000 0.000 0.000 0.000 pickle.py:69(UnpicklingError) + 1 0.000 0.000 0.000 0.000 pickle.py:82(_Stop) + 1 0.000 0.000 0.000 0.000 pickle.py:833(Unpickler) + 1 0.000 0.000 0.000 0.000 pipeline.py:1() + 17 0.000 0.000 0.000 0.000 pipeline.py:13(__init__) + 42 0.000 0.000 0.001 0.000 pipeline.py:28(getColorMap) + 1606 0.001 0.000 0.014 0.000 pipeline.py:39(getColorIndexOrRGBA) + 1 0.000 0.000 0.000 0.000 pipeline.py:5(Pipeline) + 1 0.000 0.000 0.000 0.000 pipeline1d.py:1() + 1 0.000 0.000 0.000 0.000 pipeline1d.py:17(Pipeline1D) + 4 0.000 0.000 0.000 0.000 pipeline1d.py:21(__init__) + 4 0.001 0.000 1.971 0.493 pipeline1d.py:24(plot) + 1 0.000 0.000 0.001 0.001 pipeline2d.py:1() + 4 0.000 0.000 0.011 0.003 pipeline2d.py:106(_updateContourLevelsAndColorsGeneric) + 1 0.000 0.000 0.000 0.000 pipeline2d.py:11(IPipeline2D) + 1 0.000 0.000 0.000 0.000 pipeline2d.py:167(Pipeline2D) + 13 0.000 0.000 0.000 0.000 pipeline2d.py:171(__init__) + 4 0.000 0.000 0.003 0.001 pipeline2d.py:190(_prepContours) + 13 0.003 0.000 5.574 0.429 pipeline2d.py:272(plot) + 5 0.000 0.000 0.036 0.007 pipeline2d.py:321(_updateScalarData) + 13 0.002 0.000 0.615 0.047 pipeline2d.py:326(_updateVTKDataSet) + 13 0.003 0.000 0.015 0.001 pipeline2d.py:343(_createPolyDataFilter) + 13 0.000 0.000 0.000 0.000 pipeline2d.py:384(_updateFromGenGridDict) + 13 0.000 0.000 0.004 0.000 pipeline2d.py:394(_createMaskedDataMapper) + 21 0.000 0.000 0.014 0.001 pipeline2d.py:407(getPlottingBounds) + 13 0.000 0.000 0.000 0.000 pipeline2d.py:62(__init__) + 1 0.000 0.000 0.000 0.000 pipelinefactory.py:1() + 349 0.052 0.000 0.061 0.000 pipelinefactory.py:4(createPipeline) + 1 0.000 0.000 0.000 0.000 point.py:1() + 1 0.000 0.000 0.000 0.000 point.py:5(PointEditor) + 1 0.000 0.000 0.000 0.000 polar.py:1() + 1 0.000 0.000 0.000 0.000 polar.py:139(Gpo) + 1 0.000 0.000 0.000 0.000 polynomial.py:1517(Polynomial) + 1 0.000 0.000 0.000 0.000 polynomial.py:22(RankWarning) + 1 0.001 0.001 0.005 0.005 polynomial.py:4() + 1 0.003 0.003 0.004 0.004 polynomial.py:55() + 1 0.000 0.000 0.000 0.000 polynomial.py:940(poly1d) + 1 0.000 0.000 0.000 0.000 polyutils.py:45() + 1 0.000 0.000 0.000 0.000 polyutils.py:58(RankWarning) + 1 0.000 0.000 0.000 0.000 polyutils.py:62(PolyError) + 1 0.000 0.000 0.000 0.000 polyutils.py:66(PolyDomainError) + 1 0.000 0.000 0.000 0.000 polyutils.py:79(PolyBase) + 1 0.000 0.000 0.000 0.000 posixpath.py:112(basename) + 33 0.000 0.000 0.000 0.000 posixpath.py:120(dirname) + 809 0.008 0.000 0.012 0.000 posixpath.py:251(expanduser) + 54 0.001 0.000 0.002 0.000 posixpath.py:329(normpath) + 37 0.000 0.000 0.001 0.000 posixpath.py:358(abspath) + 6 0.000 0.000 0.000 0.000 posixpath.py:44(normcase) + 38 0.000 0.000 0.000 0.000 posixpath.py:52(isabs) + 2077 0.009 0.000 0.013 0.000 posixpath.py:61(join) + 7 0.000 0.000 0.000 0.000 posixpath.py:82(split) + 19 0.000 0.000 0.000 0.000 posixpath.py:97(splitext) + 1 0.000 0.000 0.000 0.000 pprint.py:35() + 1 0.000 0.000 0.000 0.000 pprint.py:84(PrettyPrinter) + 1 0.000 0.000 0.000 0.000 pressure.py:3() + 1 0.000 0.000 0.000 0.000 pressure.py:7(PressureRegridder) + 1 0.000 0.000 0.000 0.000 priority.py:1() + 1 0.000 0.000 0.000 0.000 priority.py:4(PriorityEditor) + 1 0.000 0.000 0.000 0.000 process.py:285(AuthenticationString) + 1 0.000 0.000 0.000 0.000 process.py:299(_MainProcess) + 1 0.000 0.000 0.000 0.000 process.py:301(__init__) + 1 0.000 0.000 0.001 0.001 process.py:35() + 1 0.000 0.000 0.000 0.000 process.py:86(Process) + 1 0.000 0.000 0.000 0.000 projection.py:3() + 11 0.000 0.000 0.002 0.000 projection.py:387(__init__) + 1 0.000 0.000 0.000 0.000 projection.py:46(Proj) + 99 0.000 0.000 0.006 0.000 projection.py:744(checkPP) + 9 0.000 0.000 0.001 0.000 projection.py:751(_setsmajor) + 9 0.000 0.000 0.000 0.000 projection.py:758(_setsminor) + 15 0.000 0.000 0.001 0.000 projection.py:765(_setcentralmeridian) + 3 0.000 0.000 0.000 0.000 projection.py:772(_settruescale) + 18 0.000 0.000 0.001 0.000 projection.py:779(_setfalseeasting) + 18 0.000 0.000 0.001 0.000 projection.py:786(_setfalsenorthing) + 6 0.000 0.000 0.001 0.000 projection.py:800(_setoriginlatitude) + 9 0.000 0.000 0.000 0.000 projection.py:911(_setsphere) + 3 0.000 0.000 0.000 0.000 projection.py:918(_setcenterlongitude) + 3 0.000 0.000 0.000 0.000 projection.py:925(_setcenterlatitude) + 3 0.000 0.000 0.000 0.000 projection.py:932(_setstandardparallel1) + 3 0.000 0.000 0.000 0.000 projection.py:939(_setstandardparallel2) + 443 0.000 0.000 0.000 0.000 projection.py:978(_getname) + 25 0.000 0.000 0.008 0.000 projection.py:986(_settype) + 4124 0.006 0.000 0.023 0.000 projection.py:990(_gettype) + 142 0.000 0.000 0.000 0.000 projection.py:994(_getparameters) + 116 0.000 0.000 0.001 0.000 projection.py:997(_setparameters) + 1 0.000 0.000 0.000 0.000 py3k.py:4() + 1 0.000 0.000 0.002 0.002 py3k.py:71(sixu) + 17 0.000 0.000 0.000 0.000 queries.py:116(graphicsmethodtype) + 398 0.001 0.000 0.001 0.000 queries.py:208(istemplate) + 1 0.005 0.005 0.017 0.017 queries.py:23() + 27 0.000 0.000 0.000 0.000 queries.py:278(isprojection) + 1 0.000 0.000 0.000 0.000 queries.py:342(isisoline) + 483 0.001 0.000 0.001 0.000 queries.py:398(isline) + 377 0.001 0.000 0.001 0.000 queries.py:406(ismarker) + 2136 0.001 0.000 0.002 0.000 queries.py:414(isfillarea) + 251 0.000 0.000 0.000 0.000 queries.py:438(istextcombined) + 745 0.010 0.000 0.012 0.000 queries.py:47(isgraphicsmethod) + 1 0.000 0.000 0.001 0.001 random.py:100(seed) + 1793 0.009 0.000 0.009 0.000 random.py:175(randrange) + 1793 0.003 0.000 0.013 0.000 random.py:238(randint) + 1 0.003 0.003 0.007 0.007 random.py:40() + 1 0.000 0.000 0.000 0.000 random.py:655(WichmannHill) + 1 0.000 0.000 0.000 0.000 random.py:72(Random) + 1 0.000 0.000 0.000 0.000 random.py:805(SystemRandom) + 1 0.000 0.000 0.001 0.001 random.py:91(__init__) + 2687 0.005 0.000 0.015 0.000 re.py:138(match) + 1 0.000 0.000 0.000 0.000 re.py:143(search) + 574 0.001 0.000 0.008 0.000 re.py:148(sub) + 208 0.000 0.000 0.067 0.000 re.py:192(compile) + 135 0.001 0.000 0.001 0.000 re.py:208(escape) + 3470 0.012 0.000 0.077 0.000 re.py:230(_compile) + 1 0.000 0.000 0.000 0.000 records.py:215(record) + 1 0.000 0.000 0.000 0.000 records.py:298(recarray) + 1 0.000 0.000 0.000 0.000 records.py:36() + 1 0.000 0.000 0.000 0.000 records.py:83(format_parser) + 5 0.000 0.000 0.000 0.000 region.py:15(__init__) + 1 0.000 0.000 0.002 0.002 region.py:2() + 5 0.000 0.000 0.002 0.000 region.py:223(domain) + 1 0.000 0.000 0.000 0.000 region.py:4(DomainComponent) + 1 0.000 0.000 0.000 0.000 regression.py:5() + 1 0.000 0.000 0.000 0.000 repr.py:1() + 2 0.000 0.000 0.000 0.000 repr.py:10(__init__) + 1 0.000 0.000 0.000 0.000 repr.py:8(Repr) + 1 0.001 0.001 0.001 0.001 resize_box.py:1() + 1 0.000 0.000 0.000 0.000 resize_box.py:4(ResizeBox) + 1 0.006 0.006 0.022 0.022 restApi.py:1() + 1 0.000 0.000 0.000 0.000 restApi.py:11(esgfConnectionException) + 1 0.000 0.000 0.000 0.000 restApi.py:13(esgfDatasetException) + 1 0.000 0.000 0.000 0.000 restApi.py:15(esgfFilesException) + 1 0.000 0.000 0.000 0.000 restApi.py:24(FacetConnection) + 1 0.000 0.000 0.000 0.000 restApi.py:302(esgfDataset) + 1 0.000 0.000 0.000 0.000 restApi.py:523(esgfFiles) + 1 0.000 0.000 0.000 0.000 restApi.py:690(esgfFile) + 1 0.000 0.000 0.000 0.000 restApi.py:82(esgfConnection) + 1 0.002 0.002 0.003 0.003 result.py:1() + 3 0.000 0.000 0.000 0.000 result.py:14(failfast) + 1 0.000 0.000 0.000 0.000 result.py:26(TestResult) + 1 0.000 0.000 0.000 0.000 retrieve.py:100(WeightedGridMakerError) + 1 0.000 0.000 0.000 0.000 retrieve.py:103(GridAxis) + 1 0.000 0.000 0.000 0.000 retrieve.py:14(WeightsMakerError) + 1 0.000 0.000 0.000 0.000 retrieve.py:143(WeightedGridMaker) + 1 0.000 0.000 0.000 0.000 retrieve.py:18(WeightsMaker) + 1 0.002 0.002 0.002 0.002 retrieve.py:2() + 1 0.000 0.000 0.000 0.000 retrieve.py:253(VariableConditionerError) + 1 0.000 0.000 0.000 0.000 retrieve.py:256(VariableConditioner) + 1 0.000 0.000 0.000 0.000 retrieve.py:532(VariablesMatcherError) + 1 0.000 0.000 0.000 0.000 retrieve.py:535(VariablesMatcher) + 1 0.000 0.000 0.000 0.000 rfc822.py:501(AddrlistClass) + 1 0.000 0.000 0.000 0.000 rfc822.py:71() + 1 0.000 0.000 0.000 0.000 rfc822.py:775(AddressList) + 1 0.000 0.000 0.000 0.000 rfc822.py:85(Message) + 1 0.001 0.001 0.001 0.001 runner.py:1() + 1 0.000 0.000 0.000 0.000 runner.py:119(TextTestRunner) + 1 0.000 0.000 0.000 0.000 runner.py:12(_WritelnDecorator) + 1 0.000 0.000 0.000 0.000 runner.py:28(TextTestResult) + 1 0.000 0.000 0.000 0.000 salstat.py:16() + 1 0.001 0.001 0.002 0.002 scanner.py:2() + 1 0.000 0.000 0.000 0.000 scimath.py:17() + 1 0.000 0.000 0.000 0.000 scrip.py:10(ScripRegridder) + 1 0.000 0.000 0.000 0.000 scrip.py:136(BilinearRegridder) + 1 0.000 0.000 0.000 0.000 scrip.py:145(BicubicRegridder) + 1 0.000 0.000 0.000 0.000 scrip.py:236(DistwgtRegridder) + 1 0.001 0.001 0.001 0.001 scrip.py:3() + 1 0.000 0.000 0.000 0.000 scrip.py:94(ConservativeRegridder) + 85 0.001 0.000 0.271 0.003 selectors.py:134(unmodified_select) + 1 0.000 0.000 0.000 0.000 selectors.py:14(Selector) + 99/91 0.000 0.000 0.001 0.000 selectors.py:16(__init__) + 1 0.000 0.000 0.000 0.000 selectors.py:199(SelectorComponent) + 1 0.000 0.000 0.001 0.001 selectors.py:2() + 36 0.000 0.000 0.000 0.000 selectors.py:238(post) + 1 0.000 0.000 0.000 0.000 selectors.py:249(axisComponent) + 8 0.000 0.000 0.000 0.000 selectors.py:251(__init__) + 8 0.000 0.000 0.001 0.000 selectors.py:255(specify) + 1 0.000 0.000 0.000 0.000 selectors.py:271(coordinateComponent) + 8 0.000 0.000 0.000 0.000 selectors.py:274(__init__) + 1 0.000 0.000 0.000 0.000 selectors.py:286(requiredComponent) + 1 0.000 0.000 0.000 0.000 selectors.py:305(indexComponent) + 1 0.000 0.000 0.000 0.000 selectors.py:313(indexedComponent) + 93 0.000 0.000 0.000 0.000 selectors.py:33(components) + 1 0.000 0.000 0.000 0.000 selectors.py:331(positionalComponent) + 28 0.000 0.000 0.000 0.000 selectors.py:334(__init__) + 28 0.000 0.000 0.000 0.000 selectors.py:337(specify) + 4 0.000 0.000 0.000 0.000 selectors.py:355(longitude) + 4 0.000 0.000 0.000 0.000 selectors.py:364(latitude) + 143/91 0.001 0.000 0.001 0.000 selectors.py:37(refine) + 8 0.000 0.000 0.000 0.000 selectors.py:400(kwselect) + 1 0.000 0.000 0.000 0.000 selectors.py:9(SelectorError) + 1 0.000 0.000 0.000 0.000 selval.py:2() + 1 0.000 0.000 0.000 0.000 selval.py:5(PickComponent) + 1 0.000 0.000 0.000 0.000 sftbyrgn.py:4() + 2 0.000 0.000 0.000 0.000 shape_base.py:1() + 1 0.000 0.000 0.000 0.000 shelve.py:176(BsdDbShelf) + 1 0.000 0.000 0.000 0.000 shelve.py:218(DbfilenameShelf) + 1 0.000 0.000 0.000 0.000 shelve.py:57() + 1 0.000 0.000 0.000 0.000 shelve.py:75(_ClosedDict) + 1 0.000 0.000 0.000 0.000 shelve.py:85(Shelf) + 1 0.000 0.000 0.000 0.000 shlex.py:2() + 1 0.000 0.000 0.000 0.000 shlex.py:21(shlex) + 1 0.000 0.000 0.000 0.000 shutil.py:31(Error) + 1 0.000 0.000 0.000 0.000 shutil.py:34(SpecialFileError) + 1 0.000 0.000 0.000 0.000 shutil.py:38(ExecError) + 1 0.001 0.001 0.001 0.001 shutil.py:5() + 1 0.000 0.000 0.000 0.000 signals.py:1() + 1 0.000 0.000 0.000 0.000 signals.py:9(_InterruptHandler) + 1 0.000 0.000 0.000 0.000 site.py:344(__call__) + 1 0.000 0.000 0.000 0.000 slabinterface.py:11(Slab) + 1012 0.000 0.000 0.000 0.000 slabinterface.py:27(__init__) + 1 0.000 0.000 0.000 0.000 slabinterface.py:4() + 1 0.000 0.000 0.000 0.000 sliceut.py:2() + 1 0.000 0.000 0.000 0.000 slider.py:1() + 1 0.000 0.000 0.000 0.000 slider.py:5(Slider) + 1 0.000 0.000 0.000 0.000 socket.py:171(_closedsocket) + 1 0.000 0.000 0.000 0.000 socket.py:183(_socketobject) + 1 0.000 0.000 0.000 0.000 socket.py:239(_fileobject) + 1 0.004 0.004 0.004 0.004 socket.py:45() + 1 0.003 0.003 0.005 0.005 spawn.py:7() + 79 0.000 0.000 0.000 0.000 sre_compile.py:101(fixup) + 349 0.001 0.000 0.008 0.000 sre_compile.py:228(_compile_charset) + 349 0.004 0.000 0.006 0.000 sre_compile.py:256(_optimize_charset) + 129 0.001 0.000 0.002 0.000 sre_compile.py:411(_mk_bitmap) + 371 0.001 0.000 0.001 0.000 sre_compile.py:428(_simple) + 122 0.001 0.000 0.007 0.000 sre_compile.py:433(_compile_info) + 244 0.000 0.000 0.000 0.000 sre_compile.py:546(isstring) + 122 0.000 0.000 0.026 0.000 sre_compile.py:552(_code) + 122 0.001 0.000 0.064 0.001 sre_compile.py:567(compile) + 888/122 0.007 0.000 0.019 0.000 sre_compile.py:64(_compile) + 1816 0.001 0.000 0.001 0.000 sre_parse.py:137(__len__) + 47 0.000 0.000 0.000 0.000 sre_parse.py:139(__delitem__) + 3657 0.005 0.000 0.006 0.000 sre_parse.py:141(__getitem__) + 371 0.000 0.000 0.000 0.000 sre_parse.py:145(__setitem__) + 1499 0.001 0.000 0.001 0.000 sre_parse.py:149(append) + 1248/493 0.004 0.000 0.005 0.000 sre_parse.py:151(getwidth) + 122 0.000 0.000 0.001 0.000 sre_parse.py:189(__init__) + 5338 0.007 0.000 0.008 0.000 sre_parse.py:193(__next) + 2712 0.001 0.000 0.002 0.000 sre_parse.py:206(match) + 4433 0.003 0.000 0.009 0.000 sre_parse.py:212(get) + 3 0.000 0.000 0.000 0.000 sre_parse.py:216(tell) + 1 0.000 0.000 0.000 0.000 sre_parse.py:218(seek) + 210 0.000 0.000 0.000 0.000 sre_parse.py:221(isident) + 2 0.000 0.000 0.000 0.000 sre_parse.py:224(isdigit) + 40 0.000 0.000 0.000 0.000 sre_parse.py:227(isname) + 98 0.000 0.000 0.000 0.000 sre_parse.py:236(_class_escape) + 235 0.000 0.000 0.001 0.000 sre_parse.py:268(_escape) + 302/122 0.002 0.000 0.034 0.000 sre_parse.py:317(_parse_sub) + 447/128 0.012 0.000 0.033 0.000 sre_parse.py:395(_parse) + 122 0.000 0.000 0.000 0.000 sre_parse.py:67(__init__) + 122 0.001 0.000 0.036 0.000 sre_parse.py:706(parse) + 135 0.000 0.000 0.000 0.000 sre_parse.py:74(opengroup) + 135 0.000 0.000 0.000 0.000 sre_parse.py:85(closegroup) + 1 0.000 0.000 0.000 0.000 sre_parse.py:87(checkgroup) + 892 0.001 0.000 0.001 0.000 sre_parse.py:92(__init__) + 5 0.000 0.000 0.001 0.000 ssl.py:114(_import_symbols) + 1 0.000 0.000 0.000 0.000 ssl.py:129() + 1 0.000 0.000 0.000 0.000 ssl.py:184(CertificateError) + 1 0.000 0.000 0.000 0.000 ssl.py:300(_ASN1Object) + 2 0.000 0.000 0.000 0.000 ssl.py:305(__new__) + 1 0.000 0.000 0.000 0.000 ssl.py:321(Purpose) + 1 0.000 0.000 0.000 0.000 ssl.py:329(SSLContext) + 1 0.000 0.000 0.000 0.000 ssl.py:495(_get_https_context_factory) + 1 0.000 0.000 0.000 0.000 ssl.py:514(SSLSocket) + 1 0.000 0.000 0.003 0.003 ssl.py:88() + 1 0.000 0.000 0.000 0.000 stat.py:24(S_IFMT) + 1 0.000 0.000 0.000 0.000 stat.py:40(S_ISDIR) + 1 0.000 0.000 0.000 0.000 statistics.py:10(StatisticsError) + 1 0.002 0.002 0.003 0.003 statistics.py:2() + 1 0.000 0.000 0.000 0.000 statusbar.py:1() + 1 0.000 0.000 0.000 0.000 stride_tricks.py:15(DummyArray) + 1 0.000 0.000 0.000 0.000 stride_tricks.py:7() + 3020 0.002 0.000 0.003 0.000 string.py:222(lower) + 17 0.000 0.000 0.000 0.000 string.py:231(upper) + 19 0.000 0.000 0.000 0.000 string.py:250(strip) + 13 0.000 0.000 0.000 0.000 string.py:310(join) + 3444 0.002 0.000 0.003 0.000 string.py:513(replace) + 1 0.003 0.003 0.004 0.004 subprocess.py:387() + 1 0.000 0.000 0.000 0.000 subprocess.py:400(CalledProcessError) + 1 0.000 0.000 0.000 0.000 subprocess.py:648(Popen) + 1 0.000 0.000 0.000 0.000 suite.py:1() + 1 0.000 0.000 0.000 0.000 suite.py:16(BaseTestSuite) + 1 0.000 0.000 0.000 0.000 suite.py:252(_ErrorHolder) + 1 0.000 0.000 0.000 0.000 suite.py:299(_DebugResult) + 1 0.000 0.000 0.000 0.000 suite.py:78(TestSuite) + 1 0.000 0.000 0.002 0.002 sysconfig.py:10() + 1 0.000 0.000 0.000 0.000 sysconfig.py:395(_init_posix) + 2 0.000 0.000 0.000 0.000 sysconfig.py:440(get_config_vars) + 1 0.000 0.000 0.000 0.000 sysconfig.py:50(_python_build) + 1 0.000 0.000 0.002 0.002 taylor.py:1171(addMarker) + 1 0.000 0.000 0.008 0.008 taylor.py:1193(draw) + 2 0.000 0.000 0.000 0.000 taylor.py:121(__getstate__) + 16 0.005 0.000 0.009 0.001 taylor.py:1383(getArc) + 2 0.000 0.000 0.000 0.000 taylor.py:140(__setstate__) + 1 0.000 0.000 0.000 0.000 taylor.py:1423(setWorldCoordinate) + 1 0.000 0.000 0.000 0.000 taylor.py:144(__init__) + 1 0.003 0.003 1.153 1.153 taylor.py:1463(drawFrame) + 1 0.000 0.000 0.000 0.000 taylor.py:166(checklineconnectingtype) + 2322 0.004 0.000 0.005 0.000 taylor.py:1902(convert) + 1 0.000 0.000 1.165 1.165 taylor.py:1912(plot) + 5 0.000 0.000 0.000 0.000 taylor.py:196(_getstatus) + 3 0.000 0.000 0.000 0.000 taylor.py:199(_setstatus) + 1 0.000 0.000 0.000 0.000 taylor.py:2() + 5 0.000 0.000 0.000 0.000 taylor.py:207(_getline) + 3 0.000 0.000 0.000 0.000 taylor.py:210(_setline) + 5 0.000 0.000 0.000 0.000 taylor.py:218(_getid) + 3 0.000 0.000 0.000 0.000 taylor.py:221(_setid) + 5 0.000 0.000 0.000 0.000 taylor.py:229(_getid_color) + 3 0.000 0.000 0.000 0.000 taylor.py:232(_setid_color) + 5 0.000 0.000 0.000 0.000 taylor.py:240(_getid_size) + 3 0.000 0.000 0.000 0.000 taylor.py:243(_setid_size) + 5 0.000 0.000 0.000 0.000 taylor.py:255(_getid_font) + 3 0.000 0.000 0.000 0.000 taylor.py:258(_setid_font) + 5 0.000 0.000 0.000 0.000 taylor.py:270(_getsymbol) + 3 0.000 0.000 0.000 0.000 taylor.py:273(_setsymbol) + 5 0.000 0.000 0.000 0.000 taylor.py:281(_getcolor) + 3 0.000 0.000 0.000 0.000 taylor.py:284(_setcolor) + 5 0.000 0.000 0.000 0.000 taylor.py:292(_getsize) + 3 0.000 0.000 0.000 0.000 taylor.py:295(_setsize) + 5 0.000 0.000 0.000 0.000 taylor.py:306(_getxoffset) + 3 0.000 0.000 0.000 0.000 taylor.py:309(_setxoffset) + 5 0.000 0.000 0.000 0.000 taylor.py:318(_getyoffset) + 3 0.000 0.000 0.000 0.000 taylor.py:321(_setyoffset) + 5 0.000 0.000 0.000 0.000 taylor.py:330(_getline_color) + 3 0.000 0.000 0.000 0.000 taylor.py:333(_setline_color) + 5 0.000 0.000 0.000 0.000 taylor.py:341(_getline_size) + 3 0.000 0.000 0.000 0.000 taylor.py:344(_setline_size) + 5 0.000 0.000 0.000 0.000 taylor.py:354(_getline_type) + 3 0.000 0.000 0.000 0.000 taylor.py:357(_setline_type) + 27 0.003 0.000 0.024 0.001 taylor.py:36(createnewvcsobj) + 2 0.000 0.000 0.000 0.000 taylor.py:365(_getnumber) + 2 0.000 0.000 0.000 0.000 taylor.py:368(_setnumber) + 1 0.000 0.000 0.002 0.002 taylor.py:420(addMarker) + 14 0.000 0.000 0.000 0.000 taylor.py:513(eq) + 5 0.000 0.000 0.000 0.000 taylor.py:522(equalize) + 1 0.000 0.000 0.000 0.000 taylor.py:545(Gtd) + 3 0.000 0.000 0.003 0.001 taylor.py:608(__init__) + 233 0.000 0.000 0.000 0.000 taylor.py:669(_getname) + 3 0.000 0.000 0.000 0.000 taylor.py:678(_getmax) + 2 0.000 0.000 0.000 0.000 taylor.py:681(_setmax) + 38 0.000 0.000 0.000 0.000 taylor.py:691(_getquadrans) + 2 0.000 0.000 0.000 0.000 taylor.py:694(_setquadrans) + 3 0.000 0.000 0.000 0.000 taylor.py:705(_getskillvalues) + 2 0.000 0.000 0.000 0.000 taylor.py:708(_setskillvalues) + 2 0.000 0.000 0.000 0.000 taylor.py:729(_getskillcoefficient) + 2 0.000 0.000 0.000 0.000 taylor.py:732(_setskillcoefficient) + 34 0.000 0.000 0.000 0.000 taylor.py:741(_getdetail) + 2 0.000 0.000 0.000 0.000 taylor.py:744(_setdetail) + 5 0.000 0.000 0.000 0.000 taylor.py:754(_getreferencevalue) + 2 0.000 0.000 0.000 0.000 taylor.py:757(_setreferencevalue) + 2 0.000 0.000 0.000 0.000 taylor.py:767(_getskillcolor) + 2 0.000 0.000 0.002 0.001 taylor.py:770(_setskillcolor) + 9 0.000 0.000 0.000 0.000 taylor.py:776(_getMarker) + 2 0.000 0.000 0.000 0.000 taylor.py:779(_setMarker) + 2 0.000 0.000 0.000 0.000 taylor.py:786(_getarrowlength) + 2 0.000 0.000 0.000 0.000 taylor.py:789(_setarrowlength) + 2 0.000 0.000 0.000 0.000 taylor.py:799(_getarrowangle) + 2 0.000 0.000 0.000 0.000 taylor.py:802(_setarrowangle) + 2 0.000 0.000 0.000 0.000 taylor.py:814(_getarrowbase) + 2 0.000 0.000 0.000 0.000 taylor.py:817(_setarrowbase) + 2 0.000 0.000 0.000 0.000 taylor.py:828(_getskillDrawLabels) + 2 0.000 0.000 0.000 0.000 taylor.py:831(_setskillDrawLabels) + 1 0.000 0.000 0.000 0.000 taylor.py:84(TDMarker) + 3 0.000 0.000 0.000 0.000 taylor.py:840(_getxticlabels1) + 2 0.000 0.000 0.000 0.000 taylor.py:843(_setxticlabels1) + 3 0.000 0.000 0.000 0.000 taylor.py:851(_getxmtics1) + 2 0.000 0.000 0.000 0.000 taylor.py:854(_setxmtics1) + 3 0.000 0.000 0.000 0.000 taylor.py:862(_getyticlabels1) + 2 0.000 0.000 0.000 0.000 taylor.py:865(_setyticlabels1) + 3 0.000 0.000 0.000 0.000 taylor.py:873(_getymtics1) + 2 0.000 0.000 0.000 0.000 taylor.py:876(_setymtics1) + 3 0.000 0.000 0.000 0.000 taylor.py:884(_getcticlabels1) + 2 0.000 0.000 0.000 0.000 taylor.py:887(_setcticlabels1) + 3 0.000 0.000 0.000 0.000 taylor.py:895(_getcmtics1) + 2 0.000 0.000 0.000 0.000 taylor.py:898(_setcmtics1) + 1 0.000 0.000 0.000 0.000 taylor.py:938(drawSkill) + 1 0.000 0.000 0.000 0.000 tempfile.py:108(_RandomNameSequence) + 1 0.003 0.003 0.011 0.011 tempfile.py:18() + 1 0.000 0.000 0.000 0.000 tempfile.py:383(_TemporaryFileWrapper) + 1 0.000 0.000 0.000 0.000 tempfile.py:519(SpooledTemporaryFile) + 68 0.027 0.000 2.008 0.030 template.py:1005(drawTicks) + 23 0.008 0.000 0.027 0.001 template.py:1248(reset) + 23 0.000 0.000 0.027 0.001 template.py:1387(scale) + 1 0.000 0.000 0.000 0.000 template.py:140(P) + 17 0.005 0.000 2.138 0.126 template.py:1524(drawAttributes) + 17 0.005 0.000 4.948 0.291 template.py:1604(plot) + 10 0.013 0.001 0.918 0.092 template.py:1779(drawColorBar) + 99 0.000 0.000 0.002 0.000 template.py:2003(in_bounds) + 23 0.002 0.000 0.245 0.011 template.py:2117(ratio) + 23605 0.008 0.000 0.008 0.000 template.py:213(_getName) + 423 0.000 0.000 0.000 0.000 template.py:217(_getOrientation) + 400 0.001 0.000 0.007 0.000 template.py:220(_setOrientation) + 401 0.112 0.000 4.025 0.010 template.py:234(__init__) + 464 0.000 0.000 0.001 0.000 template.py:257() + 400 0.001 0.000 0.002 0.000 template.py:258() + 464 0.000 0.000 0.001 0.000 template.py:259() + 400 0.001 0.000 0.002 0.000 template.py:260() + 464 0.000 0.000 0.001 0.000 template.py:261() + 400 0.000 0.000 0.002 0.000 template.py:262() + 464 0.000 0.000 0.001 0.000 template.py:263() + 400 0.000 0.000 0.002 0.000 template.py:264() + 481 0.000 0.000 0.001 0.000 template.py:265() + 400 0.000 0.000 0.002 0.000 template.py:266() + 481 0.000 0.000 0.001 0.000 template.py:267() + 400 0.000 0.000 0.002 0.000 template.py:268() + 481 0.000 0.000 0.001 0.000 template.py:269() + 400 0.000 0.000 0.002 0.000 template.py:270() + 481 0.000 0.000 0.001 0.000 template.py:271() + 400 0.000 0.000 0.002 0.000 template.py:272() + 477 0.000 0.000 0.001 0.000 template.py:273() + 400 0.000 0.000 0.002 0.000 template.py:274() + 477 0.000 0.000 0.001 0.000 template.py:275() + 400 0.000 0.000 0.002 0.000 template.py:276() + 464 0.001 0.000 0.001 0.000 template.py:277() + 400 0.000 0.000 0.002 0.000 template.py:278() + 464 0.000 0.000 0.001 0.000 template.py:279() + 400 0.000 0.000 0.002 0.000 template.py:280() + 464 0.000 0.000 0.001 0.000 template.py:281() + 400 0.000 0.000 0.002 0.000 template.py:282() + 464 0.000 0.000 0.001 0.000 template.py:283() + 400 0.000 0.000 0.002 0.000 template.py:284() + 494 0.000 0.000 0.001 0.000 template.py:285() + 400 0.000 0.000 0.002 0.000 template.py:286() + 490 0.000 0.000 0.001 0.000 template.py:287() + 400 0.000 0.000 0.002 0.000 template.py:288() + 481 0.000 0.000 0.001 0.000 template.py:289() + 400 0.000 0.000 0.002 0.000 template.py:290() + 468 0.000 0.000 0.001 0.000 template.py:291() + 400 0.000 0.000 0.002 0.000 template.py:292() + 464 0.000 0.000 0.001 0.000 template.py:293() + 400 0.000 0.000 0.002 0.000 template.py:294() + 464 0.000 0.000 0.001 0.000 template.py:295() + 400 0.000 0.000 0.002 0.000 template.py:296() + 477 0.000 0.000 0.001 0.000 template.py:297() + 400 0.000 0.000 0.002 0.000 template.py:298() + 464 0.000 0.000 0.001 0.000 template.py:299() + 400 0.000 0.000 0.002 0.000 template.py:300() + 464 0.000 0.000 0.001 0.000 template.py:301() + 400 0.000 0.000 0.002 0.000 template.py:302() + 464 0.000 0.000 0.001 0.000 template.py:303() + 400 0.000 0.000 0.002 0.000 template.py:304() + 477 0.000 0.000 0.001 0.000 template.py:305() + 400 0.000 0.000 0.002 0.000 template.py:306() + 464 0.001 0.000 0.002 0.000 template.py:307() + 400 0.000 0.000 0.002 0.000 template.py:308() + 481 0.000 0.000 0.001 0.000 template.py:309() + 400 0.000 0.000 0.002 0.000 template.py:310() + 481 0.000 0.000 0.001 0.000 template.py:311() + 400 0.000 0.000 0.002 0.000 template.py:312() + 481 0.000 0.000 0.001 0.000 template.py:313() + 400 0.000 0.000 0.002 0.000 template.py:314() + 537 0.000 0.000 0.001 0.000 template.py:315() + 400 0.000 0.000 0.002 0.000 template.py:316() + 520 0.000 0.000 0.001 0.000 template.py:317() + 400 0.000 0.000 0.002 0.000 template.py:318() + 500 0.000 0.000 0.001 0.000 template.py:319() + 400 0.000 0.000 0.002 0.000 template.py:320() + 493 0.000 0.000 0.001 0.000 template.py:321() + 400 0.000 0.000 0.002 0.000 template.py:322() + 532 0.000 0.000 0.001 0.000 template.py:323() + 400 0.000 0.000 0.002 0.000 template.py:324() + 521 0.000 0.000 0.001 0.000 template.py:325() + 400 0.000 0.000 0.002 0.000 template.py:326() + 505 0.000 0.000 0.001 0.000 template.py:327() + 400 0.000 0.000 0.002 0.000 template.py:328() + 494 0.000 0.000 0.001 0.000 template.py:329() + 400 0.000 0.000 0.002 0.000 template.py:330() + 511 0.000 0.000 0.001 0.000 template.py:331() + 400 0.000 0.000 0.002 0.000 template.py:332() + 491 0.000 0.000 0.001 0.000 template.py:333() + 400 0.000 0.000 0.002 0.000 template.py:334() + 511 0.000 0.000 0.001 0.000 template.py:335() + 400 0.000 0.000 0.002 0.000 template.py:336() + 539 0.000 0.000 0.001 0.000 template.py:337() + 400 0.000 0.000 0.002 0.000 template.py:338() + 501 0.000 0.000 0.001 0.000 template.py:339() + 400 0.000 0.000 0.002 0.000 template.py:340() + 481 0.000 0.000 0.001 0.000 template.py:341() + 400 0.000 0.000 0.002 0.000 template.py:342() + 464 0.000 0.000 0.001 0.000 template.py:343() + 400 0.000 0.000 0.001 0.000 template.py:344() + 464 0.000 0.000 0.001 0.000 template.py:345() + 400 0.000 0.000 0.002 0.000 template.py:346() + 483 0.000 0.000 0.001 0.000 template.py:347() + 400 0.000 0.000 0.002 0.000 template.py:348() + 483 0.000 0.000 0.001 0.000 template.py:349() + 400 0.000 0.000 0.002 0.000 template.py:350() + 464 0.000 0.000 0.001 0.000 template.py:351() + 400 0.000 0.000 0.001 0.000 template.py:352() + 464 0.000 0.000 0.001 0.000 template.py:353() + 400 0.000 0.000 0.002 0.000 template.py:354() + 741 0.001 0.000 0.002 0.000 template.py:355() + 400 0.000 0.000 0.002 0.000 template.py:356() + 3384 0.002 0.000 0.007 0.000 template.py:357() + 400 0.000 0.000 0.002 0.000 template.py:358() + 27787 0.024 0.000 0.039 0.000 template.py:47(_getgen) + 1 0.008 0.008 0.045 0.045 template.py:5() + 20400 0.045 0.000 0.069 0.000 template.py:51(_setgen) + 15968 0.045 0.000 0.060 0.000 template.py:67(epsilon_lte) + 2 0.002 0.001 0.006 0.003 text.py:1() + 1 0.000 0.000 0.000 0.000 text.py:187(Label) + 1 0.000 0.000 0.000 0.000 text.py:21(TextEditor) + 1 0.001 0.001 0.001 0.001 textbox.py:1() + 1 0.000 0.000 0.000 0.000 textbox.py:17(Textbox) + 249 0.000 0.000 0.000 0.000 textcombined.py:233(_getTtname) + 249 0.000 0.000 0.000 0.000 textcombined.py:240(_getToname) + 17 0.000 0.000 0.001 0.000 textcombined.py:250(_setcolor) + 563 0.001 0.000 0.001 0.000 textcombined.py:268(_getpriority) + 321 0.001 0.000 0.004 0.000 textcombined.py:271(_setpriority) + 17 0.000 0.000 0.000 0.000 textcombined.py:278(_setfont) + 313 0.001 0.000 0.002 0.000 textcombined.py:285(_setstring) + 17 0.000 0.000 0.000 0.000 textcombined.py:292(_setspacing) + 17 0.000 0.000 0.001 0.000 textcombined.py:299(_setexpansion) + 1 0.000 0.000 0.000 0.000 textcombined.py:3() + 313 0.001 0.000 0.009 0.000 textcombined.py:306(_setx) + 313 0.000 0.000 0.008 0.000 textcombined.py:313(_sety) + 830 0.001 0.000 0.001 0.000 textcombined.py:317(_getviewport) + 20 0.000 0.000 0.001 0.000 textcombined.py:320(_setviewport) + 20 0.000 0.000 0.001 0.000 textcombined.py:327(_setworldcoordinate) + 430 0.001 0.000 0.001 0.000 textcombined.py:331(_getprojection) + 68 0.000 0.000 0.001 0.000 textcombined.py:334(_setprojection) + 17 0.000 0.000 0.000 0.000 textcombined.py:341(_setheight) + 1 0.000 0.000 0.000 0.000 textcombined.py:345(_getangle) + 31 0.000 0.000 0.000 0.000 textcombined.py:348(_setangle) + 17 0.000 0.000 0.000 0.000 textcombined.py:355(_setpath) + 30 0.000 0.000 0.001 0.000 textcombined.py:362(_sethalign) + 18 0.000 0.000 0.000 0.000 textcombined.py:369(_setvalign) + 521 0.008 0.000 0.224 0.000 textcombined.py:378(__init__) + 1 0.000 0.000 0.000 0.000 textcombined.py:45(Tc) + 12409 0.003 0.000 0.003 0.000 textorientation.py:171(_getname) + 1178 0.001 0.000 0.001 0.000 textorientation.py:179(_getheight) + 664 0.001 0.000 0.005 0.000 textorientation.py:182(_setheight) + 1179 0.001 0.000 0.001 0.000 textorientation.py:189(_getangle) + 680 0.001 0.000 0.007 0.000 textorientation.py:192(_setangle) + 602 0.000 0.000 0.000 0.000 textorientation.py:202(_getpath) + 664 0.001 0.000 0.016 0.000 textorientation.py:205(_setpath) + 1895 0.001 0.000 0.001 0.000 textorientation.py:214(_gethalign) + 681 0.001 0.000 0.012 0.000 textorientation.py:217(_sethalign) + 1821 0.001 0.000 0.001 0.000 textorientation.py:226(_getvalign) + 667 0.001 0.000 0.016 0.000 textorientation.py:229(_setvalign) + 586 0.014 0.000 0.070 0.000 textorientation.py:243(__init__) + 1 0.000 0.000 0.000 0.000 textorientation.py:3() + 1 0.000 0.000 0.000 0.000 textorientation.py:51(To) + 65608 0.012 0.000 0.012 0.000 texttable.py:215(_getname) + 1124 0.001 0.000 0.001 0.000 texttable.py:224(_getcolor) + 556 0.001 0.000 0.023 0.000 texttable.py:227(_setcolor) + 1683 0.001 0.000 0.001 0.000 texttable.py:233(_getbackgroundcolor) + 531 0.001 0.000 0.019 0.000 texttable.py:236(_setbackgroundcolor) + 1107 0.000 0.000 0.000 0.000 texttable.py:242(_getbackgroundopacity) + 531 0.001 0.000 0.003 0.000 texttable.py:245(_setbackgroundopacity) + 531 0.000 0.000 0.000 0.000 texttable.py:251(_getfillincolor) + 539 0.001 0.000 0.006 0.000 texttable.py:254(_setfillincolor) + 548 0.000 0.000 0.000 0.000 texttable.py:263(_getspacing) + 556 0.001 0.000 0.008 0.000 texttable.py:266(_setspacing) + 548 0.000 0.000 0.000 0.000 texttable.py:276(_getexpansion) + 556 0.001 0.000 0.006 0.000 texttable.py:279(_setexpansion) + 1124 0.001 0.000 0.001 0.000 texttable.py:288(_getfont) + 556 0.001 0.000 0.005 0.000 texttable.py:291(_setfont) + 775 0.001 0.000 0.001 0.000 texttable.py:295(_getstring) + 852 0.003 0.000 0.003 0.000 texttable.py:298(_setstring) + 1953 0.001 0.000 0.001 0.000 texttable.py:311(_getpriority) + 860 0.001 0.000 0.009 0.000 texttable.py:314(_setpriority) + 2035 0.001 0.000 0.001 0.000 texttable.py:322(_getprojection) + 607 0.001 0.000 0.006 0.000 texttable.py:325(_setprojection) + 1311 0.000 0.000 0.000 0.000 texttable.py:332(_getwc) + 559 0.001 0.000 0.016 0.000 texttable.py:335(_setwc) + 2141 0.001 0.000 0.001 0.000 texttable.py:343(_getvp) + 559 0.001 0.000 0.017 0.000 texttable.py:346(_setvp) + 775 0.000 0.000 0.000 0.000 texttable.py:356(_getx) + 852 0.002 0.000 0.014 0.000 texttable.py:359(_setx) + 775 0.000 0.000 0.000 0.000 texttable.py:383(_gety) + 852 0.001 0.000 0.013 0.000 texttable.py:386(_sety) + 1 0.000 0.000 0.000 0.000 texttable.py:4() + 532 0.024 0.000 0.153 0.000 texttable.py:415(__init__) + 1 0.000 0.000 0.000 0.000 texttable.py:79(Tt) + 1 0.004 0.004 0.011 0.011 threading.py:1() + 1 0.000 0.000 0.000 0.000 threading.py:1049(_Timer) + 1 0.000 0.000 0.000 0.000 threading.py:1079(_MainThread) + 1 0.000 0.000 0.000 0.000 threading.py:1081(__init__) + 1 0.000 0.000 0.000 0.000 threading.py:1088(_set_daemon) + 1 0.000 0.000 0.000 0.000 threading.py:1119(_DummyThread) + 44 0.000 0.000 0.000 0.000 threading.py:1143(currentThread) + 1 0.000 0.000 0.000 0.000 threading.py:125(_RLock) + 90 0.000 0.000 0.001 0.000 threading.py:242(Condition) + 1 0.000 0.000 0.000 0.000 threading.py:255(_Condition) + 90 0.001 0.000 0.001 0.000 threading.py:260(__init__) + 45 0.000 0.000 0.001 0.000 threading.py:285(__enter__) + 45 0.000 0.000 0.000 0.000 threading.py:288(__exit__) + 42 0.000 0.000 0.000 0.000 threading.py:294(_release_save) + 42 0.000 0.000 0.000 0.000 threading.py:297(_acquire_restore) + 43 0.000 0.000 0.000 0.000 threading.py:300(_is_owned) + 42 0.001 0.000 0.019 0.000 threading.py:309(wait) + 1 0.000 0.000 0.000 0.000 threading.py:373(notify) + 1 0.000 0.000 0.000 0.000 threading.py:400(notifyAll) + 1 0.000 0.000 0.000 0.000 threading.py:423(_Semaphore) + 1 0.000 0.000 0.000 0.000 threading.py:515(_BoundedSemaphore) + 45 0.000 0.000 0.001 0.000 threading.py:542(Event) + 1 0.000 0.000 0.000 0.000 threading.py:552(_Event) + 45 0.000 0.000 0.001 0.000 threading.py:561(__init__) + 1 0.000 0.000 0.000 0.000 threading.py:57(_Verbose) + 44 0.000 0.000 0.000 0.000 threading.py:570(isSet) + 1 0.000 0.000 0.000 0.000 threading.py:576(set) + 180 0.000 0.000 0.000 0.000 threading.py:59(__init__) + 44 0.001 0.000 0.021 0.000 threading.py:597(wait) + 44 0.000 0.000 0.000 0.000 threading.py:620(_newname) + 1 0.000 0.000 0.000 0.000 threading.py:631(Thread) + 87 0.000 0.000 0.000 0.000 threading.py:64(_note) + 45 0.001 0.000 0.003 0.000 threading.py:647(__init__) + 44 0.000 0.000 0.000 0.000 threading.py:700(_set_daemon) + 44 0.001 0.000 0.025 0.001 threading.py:717(start) + 1 0.000 0.000 0.000 0.000 threading.py:780(_set_ident) + 44 0.000 0.000 0.000 0.000 threading.py:999(daemon) + 1 0.000 0.000 0.000 0.000 times.py:1281(ASeason) + 1 0.000 0.000 0.000 0.000 times.py:1288(Seasons) + 19 0.000 0.000 0.000 0.000 times.py:1289(__init__) + 1 0.000 0.000 0.001 0.001 times.py:2() + 1 0.000 0.000 0.000 0.000 times.py:333(TimeSlicer) + 12 0.000 0.000 0.000 0.000 times.py:88(getMonthString) + 1 0.000 0.000 0.000 0.000 token.py:1() + 1 0.000 0.000 0.000 0.000 tokenize.py:146(TokenError) + 1 0.000 0.000 0.000 0.000 tokenize.py:148(StopTokenizing) + 1 0.000 0.000 0.000 0.000 tokenize.py:179(Untokenizer) + 1 0.001 0.001 0.012 0.012 tokenize.py:23() + 19 0.000 0.000 0.000 0.000 tokenize.py:45(group) + 1 0.000 0.000 0.000 0.000 tokenize.py:46(any) + 2 0.000 0.000 0.000 0.000 tokenize.py:47(maybe) + 1 0.000 0.000 0.000 0.000 toolbar.py:1() + 1 0.000 0.000 0.000 0.000 toolbar.py:4(Toolbar) + 6 0.000 0.000 0.032 0.005 traceback.py:110(print_exception) + 84 0.000 0.000 0.001 0.000 traceback.py:12(_print) + 9 0.000 0.000 0.000 0.000 traceback.py:147(format_exception_only) + 9 0.000 0.000 0.000 0.000 traceback.py:203(_format_final_exc_line) + 9 0.000 0.000 0.000 0.000 traceback.py:212(_some_str) + 6 0.000 0.000 0.032 0.005 traceback.py:46(print_tb) + 1743 0.004 0.000 0.150 0.000 tvariable.py:113(__array_finalize__) + 922 0.025 0.000 0.208 0.000 tvariable.py:145(__init__) + 58 0.000 0.000 0.000 0.000 tvariable.py:182() + 4591 0.004 0.000 0.010 0.000 tvariable.py:234(_getmissing) + 2762 0.009 0.000 0.038 0.000 tvariable.py:237(_setmissing) + 901 0.012 0.000 0.203 0.000 tvariable.py:245(__new__) + 346 0.001 0.000 0.066 0.000 tvariable.py:305(expertSlice) + 2777 0.015 0.000 0.093 0.000 tvariable.py:308(initDomain) + 494 0.002 0.000 0.005 0.000 tvariable.py:343(getDomain) + 3666 0.004 0.000 0.007 0.000 tvariable.py:349(getAxis) + 825 0.003 0.000 0.009 0.000 tvariable.py:360(setAxis) + 655 0.007 0.000 0.056 0.000 tvariable.py:377(copyAxis) + 733 0.005 0.000 0.026 0.000 tvariable.py:403(getGrid) + 346 0.000 0.000 0.000 0.000 tvariable.py:552(isEncoded) + 92 0.000 0.000 0.001 0.000 tvariable.py:556(__len__) + 1 0.000 0.000 0.000 0.000 tvariable.py:57(TransientVariable) + 10314 0.015 0.000 0.029 0.000 tvariable.py:62(_getShape) + 26 0.000 0.000 0.000 0.000 tvariable.py:67(iscontiguous) + 1 0.005 0.005 0.014 0.014 tvariable.py:8() + 922 0.001 0.000 0.001 0.000 tvariable.py:813(__getMPIType) + 431 0.003 0.000 0.191 0.000 tvariable.py:842(createVariable) + 26 0.000 0.000 0.000 0.000 tvariable.py:849(isVariable) + 423 0.005 0.000 0.178 0.000 tvariable.py:854(asVariable) + 2306 0.035 0.000 0.155 0.000 tvariable.py:86(_update_from) + 1 0.000 0.000 0.000 0.000 twodim_base.py:3() + 1 0.001 0.001 0.237 0.237 type_check.py:3() + 1 0.000 0.000 0.000 0.000 typeconv.py:1() + 360 0.001 0.000 0.001 0.000 typeconv.py:33(convtypecode2) + 1 0.000 0.000 0.000 0.000 typeconv.py:51(_oldtypecodes) + 1 0.001 0.001 0.001 0.001 udunits.py:1() + 1 0.001 0.001 0.005 0.005 udunits.py:13(_readUnits) + 567 0.002 0.000 0.021 0.000 udunits.py:155(__init__) + 545 0.002 0.000 0.014 0.000 udunits.py:177(to) + 4 0.000 0.000 0.005 0.001 udunits.py:193(available_units) + 4 0.000 0.000 0.005 0.001 udunits.py:197(known_units) + 545 0.000 0.000 0.000 0.000 udunits.py:206(_getunits) + 20 0.000 0.000 0.000 0.000 udunits.py:225(_getvalue) + 1 0.000 0.000 0.000 0.000 udunits.py:98(udunits) + 1 0.000 0.000 0.000 0.000 ufunclike.py:5() + 1 0.000 0.000 0.000 0.000 unicode_escape.py:13(Codec) + 1 0.000 0.000 0.000 0.000 unicode_escape.py:20(IncrementalEncoder) + 1 0.000 0.000 0.000 0.000 unicode_escape.py:24(IncrementalDecoder) + 1 0.000 0.000 0.000 0.000 unicode_escape.py:28(StreamWriter) + 1 0.000 0.000 0.000 0.000 unicode_escape.py:31(StreamReader) + 1 0.000 0.000 0.000 0.000 unicode_escape.py:36(getregentry) + 1 0.001 0.001 0.001 0.001 unicode_escape.py:8() + 1 0.000 0.000 0.000 0.000 unified1D.py:145(G1d) + 1 0.000 0.000 0.000 0.000 unified1D.py:3() + 2903 0.001 0.000 0.001 0.000 unified1D.py:385(_getname) + 20 0.000 0.000 0.000 0.000 unified1D.py:394(_getcalendar) + 28 0.000 0.000 0.000 0.000 unified1D.py:397(_setcalendar) + 20 0.000 0.000 0.000 0.000 unified1D.py:405(_gettimeunits) + 28 0.000 0.000 0.001 0.000 unified1D.py:408(_settimeunits) + 22 0.000 0.000 0.000 0.000 unified1D.py:416(_getxaxisconvert) + 28 0.000 0.000 0.000 0.000 unified1D.py:419(_setxaxisconvert) + 22 0.000 0.000 0.000 0.000 unified1D.py:427(_getyaxisconvert) + 28 0.000 0.000 0.000 0.000 unified1D.py:430(_setyaxisconvert) + 162 0.000 0.000 0.000 0.000 unified1D.py:438(_getprojection) + 28 0.000 0.000 0.000 0.000 unified1D.py:441(_setprojection) + 36 0.000 0.000 0.000 0.000 unified1D.py:449(_getxticlabels1) + 32 0.000 0.000 0.000 0.000 unified1D.py:452(_setxticlabels1) + 40 0.000 0.000 0.000 0.000 unified1D.py:460(_getxticlabels2) + 32 0.000 0.000 0.000 0.000 unified1D.py:463(_setxticlabels2) + 38 0.000 0.000 0.000 0.000 unified1D.py:471(_getyticlabels1) + 32 0.000 0.000 0.000 0.000 unified1D.py:474(_setyticlabels1) + 42 0.000 0.000 0.000 0.000 unified1D.py:482(_getyticlabels2) + 32 0.000 0.000 0.000 0.000 unified1D.py:485(_setyticlabels2) + 32 0.000 0.000 0.000 0.000 unified1D.py:493(_getxmtics1) + 28 0.000 0.000 0.000 0.000 unified1D.py:496(_setxmtics1) + 36 0.000 0.000 0.000 0.000 unified1D.py:504(_getxmtics2) + 28 0.000 0.000 0.000 0.000 unified1D.py:507(_setxmtics2) + 34 0.000 0.000 0.000 0.000 unified1D.py:515(_getymtics1) + 28 0.000 0.000 0.000 0.000 unified1D.py:518(_setymtics1) + 38 0.000 0.000 0.000 0.000 unified1D.py:526(_getymtics2) + 28 0.000 0.000 0.000 0.000 unified1D.py:529(_setymtics2) + 38 0.000 0.000 0.000 0.000 unified1D.py:537(_getdatawc_x1) + 28 0.000 0.000 0.000 0.000 unified1D.py:540(_setdatawc_x1) + 38 0.000 0.000 0.000 0.000 unified1D.py:545(_getdatawc_x2) + 28 0.000 0.000 0.000 0.000 unified1D.py:548(_setdatawc_x2) + 38 0.000 0.000 0.000 0.000 unified1D.py:553(_getdatawc_y1) + 28 0.000 0.000 0.000 0.000 unified1D.py:556(_setdatawc_y1) + 38 0.000 0.000 0.000 0.000 unified1D.py:561(_getdatawc_y2) + 28 0.000 0.000 0.000 0.000 unified1D.py:564(_setdatawc_y2) + 297 0.000 0.000 0.000 0.000 unified1D.py:569(_getlinewidth) + 30 0.000 0.000 0.000 0.000 unified1D.py:572(_setlinewidth) + 24 0.000 0.000 0.000 0.000 unified1D.py:583(_getlinecolor) + 28 0.000 0.000 0.001 0.000 unified1D.py:586(_setlinecolor) + 24 0.000 0.000 0.000 0.000 unified1D.py:595(_getlinetype) + 20 0.000 0.000 0.000 0.000 unified1D.py:598(_setlinetype) + 36 0.000 0.000 0.000 0.000 unified1D.py:627(_getmarker) + 28 0.000 0.000 0.006 0.000 unified1D.py:630(_setmarker) + 28 0.000 0.000 0.000 0.000 unified1D.py:636(_getmarkersize) + 28 0.000 0.000 0.000 0.000 unified1D.py:639(_setmarkersize) + 24 0.000 0.000 0.000 0.000 unified1D.py:650(_getmarkercolor) + 28 0.000 0.000 0.001 0.000 unified1D.py:653(_setmarkercolor) + 371 0.000 0.000 0.000 0.000 unified1D.py:662(_getflip) + 31 0.000 0.000 0.000 0.000 unified1D.py:665(_setflip) + 24 0.000 0.000 0.000 0.000 unified1D.py:670(_getsmooth) + 28 0.000 0.000 0.000 0.000 unified1D.py:673(_setsmooth) + 335 0.000 0.000 0.001 0.000 unified1D.py:683(_gtype) + 21 0.001 0.000 0.012 0.001 unified1D.py:691(__init__) + 1 0.000 0.000 0.000 0.000 unixccompiler.py:14() + 1 0.001 0.001 0.001 0.001 unixccompiler.py:4() + 1 0.000 0.000 0.000 0.000 unixccompiler.py:48(UnixCCompiler) + 1 0.000 0.000 0.000 0.000 urllib.py:1004(addinfo) + 1 0.000 0.000 0.000 0.000 urllib.py:1014(addinfourl) + 1 0.000 0.000 0.000 0.000 urllib.py:114(ContentTooShortError) + 1 0.000 0.000 0.000 0.000 urllib.py:120(URLopener) + 485 0.000 0.000 0.001 0.000 urllib.py:1217() + 1 0.000 0.000 0.005 0.005 urllib.py:133(__init__) + 1 0.000 0.000 0.000 0.000 urllib.py:1372(getproxies_environment) + 1 0.000 0.000 0.005 0.005 urllib.py:1492(getproxies_macosx_sysconf) + 1 0.000 0.000 0.005 0.005 urllib.py:1512(getproxies) + 1 0.007 0.007 0.019 0.019 urllib.py:23() + 1 0.000 0.000 0.000 0.000 urllib.py:616(FancyURLopener) + 1 0.000 0.000 0.005 0.005 urllib.py:619(__init__) + 1 0.000 0.000 0.000 0.000 urllib.py:862(ftpwrapper) + 1 0.000 0.000 0.000 0.000 urllib.py:955(addbase) + 1 0.000 0.000 0.000 0.000 urllib.py:984(addclosehook) + 1 0.000 0.000 0.000 0.000 urllib2.py:1085(HTTPDigestAuthHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:1103(ProxyDigestAuthHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:1115(AbstractHTTPHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:1225(HTTPHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:1233(HTTPSHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:1245(HTTPCookieProcessor) + 1 0.000 0.000 0.000 0.000 urllib2.py:1263(UnknownHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:1327(FileHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:1379(FTPHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:1439(CacheFTPHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:164(URLError) + 1 0.000 0.000 0.000 0.000 urllib2.py:177(HTTPError) + 1 0.000 0.000 0.000 0.000 urllib2.py:224(Request) + 1 0.000 0.000 0.000 0.000 urllib2.py:336(OpenerDirector) + 1 0.000 0.000 0.000 0.000 urllib2.py:518(BaseHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:537(HTTPErrorProcessor) + 1 0.000 0.000 0.000 0.000 urllib2.py:554(HTTPDefaultErrorHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:558(HTTPRedirectHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:735(ProxyHandler) + 1 0.003 0.003 0.012 0.012 urllib2.py:76() + 1 0.000 0.000 0.000 0.000 urllib2.py:778(HTTPPasswordMgr) + 1 0.000 0.000 0.000 0.000 urllib2.py:842(HTTPPasswordMgrWithDefaultRealm) + 1 0.000 0.000 0.001 0.001 urllib2.py:852(AbstractBasicAuthHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:902(HTTPBasicAuthHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:913(ProxyBasicAuthHandler) + 1 0.000 0.000 0.000 0.000 urllib2.py:942(AbstractDigestAuthHandler) + 1 0.000 0.000 0.000 0.000 urlparse.py:121(SplitResult) + 1 0.000 0.000 0.000 0.000 urlparse.py:129(ParseResult) + 15 0.000 0.000 0.000 0.000 urlparse.py:137(urlparse) + 15 0.000 0.000 0.000 0.000 urlparse.py:168(urlsplit) + 1 0.000 0.000 0.003 0.003 urlparse.py:29() + 485 0.000 0.000 0.001 0.000 urlparse.py:332() + 1 0.000 0.000 0.000 0.000 urlparse.py:73(ResultMixin) + 1 0.000 0.000 0.001 0.001 util.py:1() + 1 0.000 0.000 0.000 0.000 util.py:172(Finalize) + 1 0.000 0.000 0.000 0.000 util.py:336(ForkAwareThreadLock) + 1 0.000 0.000 0.000 0.000 util.py:346(ForkAwareLocal) + 1 0.000 0.000 0.000 0.000 util.py:35() + 1 0.000 0.000 0.000 0.000 util.py:5() + 1 0.000 0.000 0.001 0.001 utils.py:1() + 1 0.000 0.000 0.000 0.000 utils.py:1002(SafeEval) + 34 0.002 0.000 0.040 0.001 utils.py:1054(mkscale) + 3 0.000 0.000 0.000 0.000 utils.py:117(deprecate) + 26 0.012 0.000 0.256 0.010 utils.py:1192(mklabels) + 4 0.000 0.000 0.004 0.001 utils.py:1318(getcolors) + 1 0.000 0.000 0.000 0.000 utils.py:1580(WarningMessage) + 12 0.000 0.000 0.000 0.000 utils.py:1602(prettifyAxisLabels) + 1 0.000 0.000 0.000 0.000 utils.py:1612(WarningManager) + 21 0.001 0.000 0.143 0.007 utils.py:1641(setTicksandLabels) + 1 0.000 0.000 0.000 0.000 utils.py:1841(IgnoreException) + 1 0.000 0.000 0.000 0.000 utils.py:1881(clear_and_catch_warnings) + 136 0.002 0.000 0.081 0.001 utils.py:1978(monotonic) + 397 0.003 0.000 0.003 0.000 utils.py:1983(getgraphicsmethod) + 397 0.002 0.000 0.112 0.000 utils.py:1998(creategraphicsmethod) + 1 0.029 0.029 1.133 1.133 utils.py:2() + 284 0.001 0.000 0.002 0.000 utils.py:2039(getDataWcValue) + 71 0.006 0.000 0.282 0.004 utils.py:2046(getworldcoordinates) + 1606 0.002 0.000 0.013 0.000 utils.py:2147(rgba_color) + 150 0.000 0.000 0.000 0.000 utils.py:2181() + 556 0.001 0.000 0.001 0.000 utils.py:325(getfontname) + 1 0.000 0.000 0.000 0.000 utils.py:37(KnownFailureException) + 39971 0.134 0.000 2.513 0.000 utils.py:396(listelements) + 1 0.010 0.010 0.024 0.024 utils.py:4() + 22 0.001 0.000 0.004 0.000 utils.py:421(show) + 3 0.000 0.000 0.000 0.000 utils.py:51(_set_function_name) + 1 0.000 0.000 0.000 0.000 utils.py:56(_Deprecate) + 1 0.000 0.000 0.000 0.000 utils.py:68(Logo) + 3 0.000 0.000 0.000 0.000 utils.py:68(__init__) + 3 0.000 0.000 0.000 0.000 utils.py:73(__call__) + 1 0.001 0.001 0.685 0.685 utils.py:822(scriptrun) + 41 0.012 0.000 0.383 0.009 utils.py:883(loadTemplate) + 190 0.011 0.000 0.263 0.001 utils.py:896(loadVCSItem) + 1565 0.001 0.000 0.001 0.000 utils.py:952(getdotdirectory) + 1 0.000 0.000 0.000 0.000 utils.py:956(VCSUtilsError) + 248 0.001 0.000 0.261 0.001 utils.py:968(minmax) + 628/248 0.011 0.000 0.260 0.001 utils.py:999(myfunction) + 360 0.000 0.000 0.003 0.000 variable.py:108(_getdtype) + 400 0.000 0.000 0.000 0.000 variable.py:158(getAxis) + 360 0.000 0.000 0.000 0.000 variable.py:162(getDomain) + 1 0.000 0.000 0.000 0.000 variable.py:39(DatasetVariable) + 90 0.001 0.000 0.007 0.000 variable.py:41(__init__) + 1 0.002 0.002 0.113 0.113 variable.py:5() + 576 0.019 0.000 0.036 0.000 vcs2vtk.py:1155(prepTextProperty) + 244 0.148 0.001 0.205 0.001 vcs2vtk.py:1209(genTextActor) + 124 0.006 0.000 0.208 0.002 vcs2vtk.py:1263(prepPrimitive) + 10 0.001 0.000 0.001 0.000 vcs2vtk.py:1301(__build_pd__) + 11 0.109 0.010 0.275 0.025 vcs2vtk.py:1310(prepFillarea) + 4 0.000 0.000 0.001 0.000 vcs2vtk.py:1438(prepGlyph) + 4 0.000 0.000 0.000 0.000 vcs2vtk.py:1619(setMarkerColor) + 4 0.000 0.000 0.000 0.000 vcs2vtk.py:1635(scaleMarkerGlyph) + 6 0.001 0.000 0.009 0.002 vcs2vtk.py:1654(prepMarker) + 105 0.007 0.000 0.007 0.000 vcs2vtk.py:1692(__build_ld__) + 120 0.001 0.000 0.001 0.000 vcs2vtk.py:1704(stippleLine) + 107 0.162 0.002 0.322 0.003 vcs2vtk.py:1724(prepLine) + 22 0.000 0.000 0.001 0.000 vcs2vtk.py:178(getBoundsList) + 575 0.002 0.000 0.004 0.000 vcs2vtk.py:1820(getRendererCorners) + 575 0.002 0.000 0.006 0.000 vcs2vtk.py:1828(world2Renderer) + 1 0.000 0.000 0.000 0.000 vcs2vtk.py:1847(checkProjType) + 1 0.000 0.000 0.001 0.001 vcs2vtk.py:1897(generateVectorArray) + 16 0.000 0.000 0.003 0.000 vcs2vtk.py:1921(getPlottingBounds) + 38 0.000 0.000 0.000 0.000 vcs2vtk.py:1938(switchAndTranslate) + 23 0.000 0.000 0.006 0.000 vcs2vtk.py:1958(getWrappedBounds) + 1 0.002 0.002 0.009 0.009 vcs2vtk.py:2() + 13 0.143 0.011 0.214 0.016 vcs2vtk.py:218(setInfToValid) + 13 0.212 0.016 0.612 0.047 vcs2vtk.py:303(genGrid) + 13 0.036 0.003 0.069 0.005 vcs2vtk.py:578(prepContinents) + 65 0.001 0.000 0.046 0.001 vcs2vtk.py:59(applyAttributesFromVCStmpl) + 33 0.000 0.000 0.001 0.000 vcs2vtk.py:647(apply_proj_parameters) + 39 0.000 0.000 0.006 0.000 vcs2vtk.py:70(numpy_to_vtk_wrapper) + 188 0.002 0.000 0.035 0.000 vcs2vtk.py:727(project) + 26 0.005 0.000 0.183 0.007 vcs2vtk.py:929(doWrapData) + 13 0.000 0.000 0.003 0.000 vcs2vtk.py:96(putMaskOnVTKGrid) + 1 0.000 0.000 0.000 0.000 vcshelp.py:3() + 1 0.000 0.000 0.000 0.000 vector.py:148(Gv) + 1 0.000 0.000 0.000 0.000 vector.py:3() + 164 0.000 0.000 0.000 0.000 vector.py:367(_getname) + 2 0.000 0.000 0.000 0.000 vector.py:376(_getcalendar) + 2 0.000 0.000 0.000 0.000 vector.py:379(_setcalendar) + 2 0.000 0.000 0.000 0.000 vector.py:387(_gettimeunits) + 2 0.000 0.000 0.000 0.000 vector.py:390(_settimeunits) + 3 0.000 0.000 0.000 0.000 vector.py:398(_getxaxisconvert) + 2 0.000 0.000 0.000 0.000 vector.py:401(_setxaxisconvert) + 3 0.000 0.000 0.000 0.000 vector.py:409(_getyaxisconvert) + 2 0.000 0.000 0.000 0.000 vector.py:412(_setyaxisconvert) + 78 0.000 0.000 0.000 0.000 vector.py:420(_getprojection) + 2 0.000 0.000 0.000 0.000 vector.py:423(_setprojection) + 6 0.000 0.000 0.000 0.000 vector.py:431(_getxticlabels1) + 3 0.000 0.000 0.000 0.000 vector.py:434(_setxticlabels1) + 7 0.000 0.000 0.000 0.000 vector.py:442(_getxticlabels2) + 3 0.000 0.000 0.000 0.000 vector.py:445(_setxticlabels2) + 7 0.000 0.000 0.000 0.000 vector.py:453(_getyticlabels1) + 3 0.000 0.000 0.000 0.000 vector.py:456(_setyticlabels1) + 8 0.000 0.000 0.000 0.000 vector.py:464(_getyticlabels2) + 3 0.000 0.000 0.000 0.000 vector.py:467(_setyticlabels2) + 5 0.000 0.000 0.000 0.000 vector.py:475(_getxmtics1) + 2 0.000 0.000 0.000 0.000 vector.py:478(_setxmtics1) + 6 0.000 0.000 0.000 0.000 vector.py:486(_getxmtics2) + 2 0.000 0.000 0.000 0.000 vector.py:489(_setxmtics2) + 6 0.000 0.000 0.000 0.000 vector.py:497(_getymtics1) + 2 0.000 0.000 0.000 0.000 vector.py:500(_setymtics1) + 7 0.000 0.000 0.000 0.000 vector.py:508(_getymtics2) + 2 0.000 0.000 0.000 0.000 vector.py:511(_setymtics2) + 9 0.000 0.000 0.000 0.000 vector.py:519(_getdatawc_x1) + 2 0.000 0.000 0.000 0.000 vector.py:522(_setdatawc_x1) + 9 0.000 0.000 0.000 0.000 vector.py:527(_getdatawc_x2) + 2 0.000 0.000 0.000 0.000 vector.py:530(_setdatawc_x2) + 9 0.000 0.000 0.000 0.000 vector.py:535(_getdatawc_y1) + 2 0.000 0.000 0.000 0.000 vector.py:538(_setdatawc_y1) + 9 0.000 0.000 0.000 0.000 vector.py:543(_getdatawc_y2) + 2 0.000 0.000 0.000 0.000 vector.py:546(_setdatawc_y2) + 2 0.000 0.000 0.000 0.000 vector.py:551(_getreference) + 2 0.000 0.000 0.000 0.000 vector.py:554(_setreference) + 3 0.000 0.000 0.000 0.000 vector.py:559(_getscale) + 2 0.000 0.000 0.000 0.000 vector.py:562(_setscale) + 3 0.000 0.000 0.000 0.000 vector.py:567(_getlinewidth) + 2 0.000 0.000 0.000 0.000 vector.py:570(_setlinewidth) + 3 0.000 0.000 0.000 0.000 vector.py:581(_getlinecolor) + 2 0.000 0.000 0.000 0.000 vector.py:584(_setlinecolor) + 3 0.000 0.000 0.000 0.000 vector.py:593(_getlinetype) + 2 0.000 0.000 0.000 0.000 vector.py:596(_setlinetype) + 2 0.000 0.000 0.000 0.000 vector.py:625(_gettype) + 2 0.000 0.000 0.000 0.000 vector.py:628(_settype) + 2 0.000 0.000 0.000 0.000 vector.py:633(_getalignment) + 2 0.000 0.000 0.000 0.000 vector.py:636(_setalignment) + 11 0.000 0.000 0.000 0.000 vector.py:644(_getscaletype) + 2 0.000 0.000 0.000 0.000 vector.py:647(_setscaletype) + 2 0.000 0.000 0.000 0.000 vector.py:655(_getscalerange) + 2 0.000 0.000 0.000 0.000 vector.py:658(_setscalerange) + 3 0.000 0.000 0.001 0.000 vector.py:668(__init__) + 1 0.000 0.000 0.000 0.000 vectorpipeline.py:1() + 1 0.000 0.000 0.000 0.000 vectorpipeline.py:12(__init__) + 1 0.000 0.000 0.374 0.374 vectorpipeline.py:17(_plotInternal) + 1 0.000 0.000 0.000 0.000 vectorpipeline.py:241(_updateContourLevelsAndColors) + 1 0.000 0.000 0.000 0.000 vectorpipeline.py:8(VectorPipeline) + 1 0.000 0.000 0.000 0.000 version.py:228(LooseVersion) + 1 0.000 0.000 0.001 0.001 version.py:27() + 1 0.000 0.000 0.000 0.000 version.py:32(Version) + 1 0.000 0.000 0.000 0.000 version.py:5() + 1 0.000 0.000 0.001 0.001 version.py:63(StrictVersion) + 1 0.000 0.000 0.000 0.000 vertical.py:2() + 1 0.005 0.005 0.005 0.005 vtkChartsCore.py:1() + 1 0.003 0.003 0.003 0.003 vtkCommonColor.py:1() + 1 0.003 0.003 0.003 0.003 vtkCommonComputationalGeometry.py:1() + 1 0.014 0.014 0.014 0.014 vtkCommonCore.py:1() + 1 0.011 0.011 0.011 0.011 vtkCommonDataModel.py:1() + 1 0.006 0.006 0.006 0.006 vtkCommonExecutionModel.py:1() + 1 0.002 0.002 0.002 0.002 vtkCommonMath.py:1() + 1 0.001 0.001 0.001 0.001 vtkCommonMisc.py:1() + 1 0.002 0.002 0.002 0.002 vtkCommonSystem.py:1() + 1 0.002 0.002 0.002 0.002 vtkCommonTransforms.py:1() + 1 0.002 0.002 0.002 0.002 vtkFiltersAMR.py:1() + 1 0.006 0.006 0.006 0.006 vtkFiltersCore.py:1() + 1 0.003 0.003 0.003 0.003 vtkFiltersExtraction.py:1() + 1 0.003 0.003 0.003 0.003 vtkFiltersFlowPaths.py:1() + 1 0.005 0.005 0.005 0.005 vtkFiltersGeneral.py:1() + 1 0.003 0.003 0.003 0.003 vtkFiltersGeneric.py:1() + 1 0.003 0.003 0.003 0.003 vtkFiltersGeometry.py:1() + 1 0.004 0.004 0.004 0.004 vtkFiltersHybrid.py:1() + 1 0.004 0.004 0.004 0.004 vtkFiltersImaging.py:1() + 1 0.005 0.005 0.005 0.005 vtkFiltersModeling.py:1() + 1 0.003 0.003 0.003 0.003 vtkFiltersSMP.py:1() + 1 0.021 0.021 0.021 0.021 vtkFiltersSelection.py:1() + 1 0.003 0.003 0.003 0.003 vtkFiltersSources.py:1() + 1 0.002 0.002 0.002 0.002 vtkFiltersStatistics.py:1() + 1 0.004 0.004 0.004 0.004 vtkFiltersTexture.py:1() + 1 0.006 0.006 0.006 0.006 vtkGeovisCore.py:1() + 1 0.003 0.003 0.003 0.003 vtkIOCore.py:1() + 1 0.006 0.006 0.006 0.006 vtkIOExport.py:1() + 1 0.005 0.005 0.005 0.005 vtkIOExportOpenGL.py:1() + 1 0.010 0.010 0.010 0.010 vtkIOFFMPEG.py:1() + 1 0.004 0.004 0.004 0.004 vtkIOGeometry.py:1() + 1 0.006 0.006 0.006 0.006 vtkIOImage.py:1() + 1 0.005 0.005 0.005 0.005 vtkIOImport.py:1() + 1 0.004 0.004 0.004 0.004 vtkIOLegacy.py:1() + 1 0.005 0.005 0.005 0.005 vtkIOMovie.py:1() + 1 0.005 0.005 0.005 0.005 vtkIOXML.py:1() + 1 0.004 0.004 0.004 0.004 vtkIOXMLParser.py:1() + 1 0.005 0.005 0.005 0.005 vtkImagingColor.py:1() + 1 0.005 0.005 0.005 0.005 vtkImagingCore.py:1() + 1 0.002 0.002 0.002 0.002 vtkImagingFourier.py:1() + 1 0.003 0.003 0.003 0.003 vtkImagingGeneral.py:1() + 1 0.004 0.004 0.004 0.004 vtkImagingHybrid.py:1() + 1 0.005 0.005 0.005 0.005 vtkImagingMath.py:1() + 1 0.003 0.003 0.003 0.003 vtkImagingSources.py:1() + 1 0.006 0.006 0.006 0.006 vtkImagingStencil.py:1() + 1 0.003 0.003 0.003 0.003 vtkInfovisCore.py:1() + 1 0.005 0.005 0.005 0.005 vtkInfovisLayout.py:1() + 1 0.007 0.007 0.007 0.007 vtkInteractionImage.py:1() + 1 0.004 0.004 0.004 0.004 vtkInteractionStyle.py:1() + 1 0.011 0.011 0.011 0.011 vtkInteractionWidgets.py:1() + 1 0.003 0.003 0.003 0.003 vtkParallelCore.py:1() + 1 0.005 0.005 0.005 0.005 vtkPythonInterpreter.py:1() + 1 0.007 0.007 0.007 0.007 vtkRenderingAnnotation.py:1() + 1 0.004 0.004 0.004 0.004 vtkRenderingContext2D.py:1() + 1 0.007 0.007 0.007 0.007 vtkRenderingContextOpenGL.py:1() + 1 0.009 0.009 0.009 0.009 vtkRenderingCore.py:1() + 1 0.008 0.008 0.008 0.008 vtkRenderingFreeType.py:1() + 1 0.005 0.005 0.005 0.005 vtkRenderingGL2PS.py:1() + 1 0.007 0.007 0.007 0.007 vtkRenderingImage.py:1() + 1 0.007 0.007 0.007 0.007 vtkRenderingLIC.py:1() + 1 0.006 0.006 0.006 0.006 vtkRenderingLOD.py:1() + 1 0.005 0.005 0.005 0.005 vtkRenderingLabel.py:1() + 1 0.006 0.006 0.006 0.006 vtkRenderingMatplotlib.py:1() + 1 0.014 0.014 0.014 0.014 vtkRenderingOpenGL.py:1() + 1 0.007 0.007 0.007 0.007 vtkRenderingVolume.py:1() + 1 0.007 0.007 0.007 0.007 vtkRenderingVolumeOpenGL.py:1() + 1 0.000 0.000 0.000 0.000 vtkVariant.py:180(vtkVariantStrictWeakOrderKey) + 1 0.000 0.000 0.000 0.000 vtkVariant.py:3() + 1 0.006 0.006 0.006 0.006 vtkViewsContext2D.py:1() + 1 0.005 0.005 0.005 0.005 vtkViewsCore.py:1() + 1 0.009 0.009 0.009 0.009 vtkViewsGeovis.py:1() + 1 0.010 0.010 0.010 0.010 vtkViewsInfovis.py:1() + 1 0.010 0.010 0.010 0.010 vtkWebCore.py:1() + 1 0.008 0.008 0.008 0.008 vtkWebGLExporter.py:1() + 2 0.000 0.000 0.000 0.000 warnings.py:15(warnpy3k) + 2 0.000 0.000 0.015 0.008 warnings.py:25(_show_warning) + 3 0.000 0.000 0.000 0.000 warnings.py:340(__init__) + 3 0.000 0.000 0.000 0.000 warnings.py:361(__enter__) + 3 0.000 0.000 0.000 0.000 warnings.py:377(__exit__) + 2 0.000 0.000 0.015 0.008 warnings.py:40(formatwarning) + 5 0.000 0.000 0.001 0.000 warnings.py:67(filterwarnings) + 2 0.000 0.000 0.000 0.000 warnings.py:96(simplefilter) + 1714 0.023 0.000 0.023 0.000 weakref.py:297(__init__) + 539 0.004 0.000 0.004 0.000 weakref.py:329(__getitem__) + 539 0.002 0.000 0.002 0.000 weakref.py:335(__setitem__) + 539 0.003 0.000 0.003 0.000 weakref.py:367(__contains__) + 100 0.000 0.000 0.001 0.000 weakref.py:374(items) + 1 0.000 0.000 0.000 0.000 weakref.py:47(__init__) + 1 0.001 0.001 0.001 0.001 widget.py:1() + 1 0.000 0.000 0.000 0.000 widget.py:4(Widget) + 1 0.000 0.000 0.000 0.000 widget.py:78(WidgetReprShim) + 1 0.000 0.000 0.000 0.000 xmgrace.py:134(REGION) + 1 0.000 0.000 0.000 0.000 xmgrace.py:1463(DSET) + 1 0.005 0.005 0.005 0.005 xmgrace.py:2() + 1 0.000 0.000 0.000 0.000 xmgrace.py:2110(STRING) + 1 0.000 0.000 0.000 0.000 xmgrace.py:2226(LINE) + 1 0.000 0.000 0.000 0.000 xmgrace.py:227(GRAPH) + 1 0.000 0.000 0.000 0.000 xmgrace.py:2385(FILL) + 1 0.000 0.000 0.000 0.000 xmgrace.py:2414(BOX_ELLIPSE) + 1 0.000 0.000 0.000 0.000 xmgrace.py:2523(init) + 1 0.000 0.000 0.000 0.000 xmgrace.py:66(FONT) + 1 0.000 0.000 0.000 0.000 xmgrace.py:81(COLOR) + 4 0.001 0.000 0.001 0.000 xmldocs.py:239(populate_docstrings) + 1 0.000 0.000 0.001 0.001 xmldocs.py:84() + 1 0.000 0.000 0.000 0.000 yxvsxfill.py:1() + 1 0.000 0.000 0.000 0.000 yxvsxfill.py:4(Gyf) + 275 0.002 0.000 0.003 0.000 {__import__} + 33 0.000 0.000 0.000 0.000 {_ctypes.POINTER} + 2 0.002 0.001 0.002 0.001 {_ctypes.dlopen} + 1 0.000 0.000 0.000 0.000 {_ctypes.set_conversion_mode} + 50 0.000 0.000 0.000 0.000 {_ctypes.sizeof} + 313 0.001 0.000 0.003 0.000 {_functools.reduce} + 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_md5} + 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha1} + 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha224} + 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha256} + 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha384} + 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha512} + 1 0.005 0.005 0.005 0.005 {_scproxy._get_proxies} + 122 0.000 0.000 0.000 0.000 {_sre.compile} + 202 0.000 0.000 0.000 0.000 {_sre.getlower} + 2 0.000 0.000 0.000 0.000 {_ssl.txt2obj} + 18 0.000 0.000 0.000 0.000 {_struct.calcsize} + 17822 0.005 0.000 0.005 0.000 {_struct.unpack} + 42 0.000 0.000 0.016 0.000 {_warnings.warn} + 33922 0.006 0.000 0.006 0.000 {abs} + 77 0.000 0.000 0.001 0.000 {all} + 30 0.000 0.000 0.000 0.000 {any} + 20 0.003 0.000 0.003 0.000 {apply} + 1 0.000 0.000 0.000 0.000 {binascii.hexlify} + 20515 0.009 0.000 0.009 0.000 {built-in method __new__ of type object at 0x10016cf18} + 15 0.001 0.000 0.001 0.000 {built-in method close} + 4 0.000 0.000 0.000 0.000 {built-in method cmp} + 5 0.002 0.000 0.008 0.002 {built-in method load} + 80 0.001 0.000 0.001 0.000 {built-in method readDimension} + 26 0.000 0.000 0.000 0.000 {built-in method tocomp} + 72 0.001 0.000 0.001 0.000 {built-in method torel} + 360 0.000 0.000 0.000 0.000 {built-in method typecode} + 5 0.000 0.000 0.000 0.000 {cPickle.Pickler} + 5 0.000 0.000 0.000 0.000 {cPickle.Unpickler} + 1 0.257 0.257 0.257 0.257 {cPickle.load} + 30 0.022 0.001 0.022 0.001 {cdms2.Cdunif.CdunifFile} + 1 0.000 0.000 0.000 0.000 {cdms2.Cdunif.CdunifSetNCFLAGS} + 74 0.000 0.000 0.000 0.000 {cdtime.comptime} + 395 0.002 0.000 0.002 0.000 {cdtime.reltime} + 72 0.000 0.000 0.000 0.000 {cdtime.s2c} + 1798 0.000 0.000 0.000 0.000 {chr} + 341 0.000 0.000 0.000 0.000 {cmp} + 246 0.012 0.000 0.012 0.000 {compile} + 31 0.002 0.000 0.002 0.000 {dir} + 1361 0.008 0.000 0.008 0.000 {eval} + 6 0.000 0.000 0.000 0.000 {filter} + 1 0.001 0.001 0.001 0.001 {function seed at 0x107d546e0} +208178/204391 0.154 0.000 0.165 0.000 {getattr} + 407 0.000 0.000 0.000 0.000 {globals} + 311796 0.249 0.000 0.296 0.000 {hasattr} + 121256 0.014 0.000 0.014 0.000 {id} + 1 0.000 0.000 0.000 0.000 {imp.get_suffixes} + 561871 0.187 0.000 0.188 0.000 {isinstance} +4479/4444 0.005 0.000 0.006 0.000 {issubclass} + 472 0.000 0.000 0.000 0.000 {iter} +212526/200112 0.038 0.000 0.047 0.000 {len} + 1 0.000 0.000 0.000 0.000 {locals} + 58 0.000 0.000 0.020 0.000 {map} + 1 0.000 0.000 0.000 0.000 {math.exp} + 297042 0.037 0.000 0.037 0.000 {math.isinf} + 2 0.000 0.000 0.000 0.000 {math.log10} + 2 0.000 0.000 0.000 0.000 {math.log} + 1 0.000 0.000 0.000 0.000 {math.sqrt} + 5819 0.003 0.000 0.003 0.000 {max} + 765 0.002 0.000 0.002 0.000 {method 'AddActor' of 'vtkRenderingCorePython.vtkRenderer' objects} + 18 0.000 0.000 0.000 0.000 {method 'AddArray' of 'vtkCommonDataModelPython.vtkFieldData' objects} + 34 0.001 0.000 0.001 0.000 {method 'AddInputData' of 'vtkFiltersCorePython.vtkAppendPolyData' objects} + 1 0.000 0.000 0.000 0.000 {method 'AddItem' of 'vtkRenderingCorePython.vtkTextPropertyCollection' objects} + 478 0.005 0.000 0.005 0.000 {method 'AddObserver' of 'vtkCommonCorePython.vtkObject' objects} + 6 0.000 0.000 0.000 0.000 {method 'AddPickList' of 'vtkRenderingCorePython.vtkAbstractPicker' objects} + 84 0.000 0.000 0.000 0.000 {method 'AddPoint' of 'vtkCommonDataModelPython.vtkPiecewiseFunction' objects} + 1536 0.003 0.000 0.003 0.000 {method 'AddRGBPoint' of 'vtkRenderingCorePython.vtkColorTransferFunction' objects} + 569 0.002 0.000 0.002 0.000 {method 'AddRenderer' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 39 0.000 0.000 0.000 0.000 {method 'AddViewProp' of 'vtkRenderingCorePython.vtkViewport' objects} + 14 0.000 0.000 0.000 0.000 {method 'Allocate' of 'vtkCommonDataModelPython.vtkCellArray' objects} + 13 0.003 0.000 0.003 0.000 {method 'AllocatePointGhostArray' of 'vtkCommonDataModelPython.vtkDataSet' objects} + 3 0.000 0.000 0.000 0.000 {method 'BoldOff' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 30 0.000 0.000 0.000 0.000 {method 'Build' of 'vtkCommonCorePython.vtkLookupTable' objects} + 2 0.000 0.000 0.000 0.000 {method 'ClippingOn' of 'vtkFiltersModelingPython.vtkBandedPolyDataContourFilter' objects} + 9 0.009 0.001 0.009 0.001 {method 'ComputeScaledFont' of 'vtkRenderingCorePython.vtkTextActor' objects} + 3 0.002 0.001 0.002 0.001 {method 'CopyComponent' of 'vtkCommonCorePython.vtkDataArray' objects} + 10 0.000 0.000 0.000 0.000 {method 'CopyStructure' of 'vtkCommonDataModelPython.vtkPolyData' objects} + 13 0.000 0.000 0.000 0.000 {method 'DeepCopy' of 'vtkCommonCorePython.vtkDataArray' objects} + 3 0.002 0.001 0.002 0.001 {method 'EnabledOn' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} + 14 0.000 0.000 0.000 0.000 {method 'EstimateSize' of 'vtkCommonDataModelPython.vtkCellArray' objects} + 13 0.000 0.000 0.000 0.000 {method 'ExtractBoundaryCellsOn' of 'vtkFiltersExtractionPython.vtkExtractPolyDataGeometry' objects} + 13 0.000 0.000 0.000 0.000 {method 'ExtractInsideOn' of 'vtkFiltersExtractionPython.vtkExtractPolyDataGeometry' objects} + 1 0.000 0.000 0.000 0.000 {method 'FilledOff' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} + 4 0.000 0.000 0.000 0.000 {method 'FilledOn' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} + 28 0.000 0.000 0.000 0.000 {method 'GetAbstractArray' of 'vtkCommonDataModelPython.vtkFieldData' objects} + 170 0.004 0.000 0.004 0.000 {method 'GetActiveCamera' of 'vtkRenderingCorePython.vtkRenderer' objects} + 29 0.000 0.000 0.000 0.000 {method 'GetArray' of 'vtkCommonDataModelPython.vtkFieldData' objects} + 6 0.000 0.000 0.000 0.000 {method 'GetArrayName' of 'vtkCommonDataModelPython.vtkFieldData' objects} + 39 0.003 0.000 0.003 0.000 {method 'GetBounds' of 'vtkCommonCorePython.vtkPoints' objects} + 51 0.013 0.000 0.013 0.000 {method 'GetBounds' of 'vtkCommonDataModelPython.vtkDataSet' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetCapProperty' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} + 196 0.001 0.000 0.001 0.000 {method 'GetCellData' of 'vtkCommonDataModelPython.vtkDataSet' objects} + 29 0.000 0.000 0.000 0.000 {method 'GetCenter' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 174 0.000 0.000 0.000 0.000 {method 'GetClippingPlanes' of 'vtkRenderingCorePython.vtkAbstractMapper' objects} + 13 0.000 0.000 0.000 0.000 {method 'GetComputedDisplayValue' of 'vtkRenderingCorePython.vtkCoordinate' objects} + 350 0.000 0.000 0.000 0.000 {method 'GetCurrentCursor' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 28 0.000 0.000 0.000 0.000 {method 'GetData' of 'vtkCommonCorePython.vtkPoints' objects} + 2 0.000 0.000 0.000 0.000 {method 'GetDataTypeSize' of 'vtkCommonCorePython.vtkAbstractArray' objects} + 5 0.000 0.000 0.000 0.000 {method 'GetDepthBufferSize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} + 334 0.000 0.000 0.000 0.000 {method 'GetDimensions' of 'vtkCommonDataModelPython.vtkImageData' objects} + 158 0.000 0.000 0.000 0.000 {method 'GetDistance' of 'vtkRenderingCorePython.vtkCamera' objects} + 112 0.000 0.000 0.000 0.000 {method 'GetExtent' of 'vtkCommonDataModelPython.vtkImageData' objects} + 13 0.000 0.000 0.000 0.000 {method 'GetFirstRenderer' of 'vtkRenderingCorePython.vtkRendererCollection' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetFocalPoint' of 'vtkRenderingCorePython.vtkCamera' objects} + 342 0.001 0.000 0.001 0.000 {method 'GetHoveringProperty' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} + 38 0.000 0.000 0.000 0.000 {method 'GetImageProperty' of 'vtkInteractionWidgetsPython.vtkLogoRepresentation' objects} + 46 0.000 0.000 0.000 0.000 {method 'GetInput' of 'vtkCommonExecutionModelPython.vtkImageAlgorithm' objects} + 7 0.000 0.000 0.000 0.000 {method 'GetInput' of 'vtkRenderingCorePython.vtkPolyDataMapper' objects} + 91 0.000 0.000 0.000 0.000 {method 'GetInput' of 'vtkRenderingCorePython.vtkTextActor' objects} + 29 0.000 0.000 0.000 0.000 {method 'GetInteractor' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 7 0.000 0.000 0.000 0.000 {method 'GetInteractorStyle' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} + 15 0.000 0.000 0.000 0.000 {method 'GetItemAsObject' of 'vtkCommonCorePython.vtkCollection' objects} + 251 0.002 0.000 0.002 0.000 {method 'GetMapper' of 'vtkRenderingCorePython.vtkActor' objects} + 1 0.000 0.000 0.000 0.000 {method 'GetMaxNorm' of 'vtkCommonCorePython.vtkDataArray' objects} + 1 0.000 0.000 0.000 0.000 {method 'GetName' of 'vtkCommonCorePython.vtkAbstractArray' objects} + 58 0.000 0.000 0.000 0.000 {method 'GetNormal' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 8 0.000 0.000 0.000 0.000 {method 'GetNumberOfArrays' of 'vtkCommonDataModelPython.vtkFieldData' objects} + 13 0.000 0.000 0.000 0.000 {method 'GetNumberOfCells' of 'vtkCommonDataModelPython.vtkPolyData' objects} + 9 0.000 0.000 0.000 0.000 {method 'GetNumberOfItems' of 'vtkCommonCorePython.vtkCollection' objects} + 748 0.000 0.000 0.000 0.000 {method 'GetNumberOfLayers' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 1091 0.000 0.000 0.000 0.000 {method 'GetNumberOfPoints' of 'vtkCommonCorePython.vtkPoints' objects} + 1 0.000 0.000 0.000 0.000 {method 'GetNumberOfProjections' of 'vtkGeovisCorePython.vtkGeoProjection' objects} + 6 0.000 0.000 0.000 0.000 {method 'GetNumberOfTableValues' of 'vtkCommonCorePython.vtkLookupTable' objects} + 32 0.000 0.000 0.000 0.000 {method 'GetNumberOfTuples' of 'vtkCommonCorePython.vtkAbstractArray' objects} + 9 0.000 0.000 0.000 0.000 {method 'GetNumberOfValues' of 'vtkCommonCorePython.vtkStringArray' objects} + 108 0.000 0.000 0.000 0.000 {method 'GetOrigin' of 'vtkCommonDataModelPython.vtkImageData' objects} + 161 0.000 0.000 0.000 0.000 {method 'GetOrigin' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 575 0.000 0.000 0.000 0.000 {method 'GetOrigin' of 'vtkRenderingCorePython.vtkViewport' objects} + 434 0.004 0.000 0.004 0.000 {method 'GetOutput' of 'vtkCommonExecutionModelPython.vtkImageAlgorithm' objects} + 100 0.001 0.000 0.001 0.000 {method 'GetOutput' of 'vtkCommonExecutionModelPython.vtkPolyDataAlgorithm' objects} + 136 0.001 0.000 0.001 0.000 {method 'GetOutputPort' of 'vtkCommonExecutionModelPython.vtkAlgorithm' objects} + 6 0.000 0.000 0.000 0.000 {method 'GetPlanes' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} + 148572 0.029 0.000 0.029 0.000 {method 'GetPoint' of 'vtkCommonCorePython.vtkPoints' objects} + 64 0.000 0.000 0.000 0.000 {method 'GetPoint1' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 8 0.000 0.000 0.000 0.000 {method 'GetPoint1Coordinate' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} + 64 0.000 0.000 0.000 0.000 {method 'GetPoint2' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 8 0.000 0.000 0.000 0.000 {method 'GetPoint2Coordinate' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} + 16 0.000 0.000 0.000 0.000 {method 'GetPointData' of 'vtkCommonDataModelPython.vtkDataSet' objects} + 33204 0.032 0.000 0.032 0.000 {method 'GetPointIds' of 'vtkCommonDataModelPython.vtkCell' objects} + 60 0.000 0.000 0.000 0.000 {method 'GetPoints' of 'vtkCommonDataModelPython.vtkPointSet' objects} + 1 0.000 0.000 0.000 0.000 {method 'GetPolyDataMapper' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetPosition' of 'vtkRenderingCorePython.vtkCamera' objects} + 6 0.000 0.000 0.000 0.000 {method 'GetPosition' of 'vtkRenderingCorePython.vtkProp3D' objects} + 5 0.000 0.000 0.000 0.000 {method 'GetPosition' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} + 18 0.000 0.000 0.000 0.000 {method 'GetPosition2Coordinate' of 'vtkRenderingCorePython.vtkActor2D' objects} + 18 0.000 0.000 0.000 0.000 {method 'GetPositionCoordinate' of 'vtkRenderingCorePython.vtkActor2D' objects} + 137 0.000 0.000 0.000 0.000 {method 'GetProjectionName' of 'vtkGeovisCorePython.vtkGeoProjection' objects} + 342 0.002 0.000 0.002 0.000 {method 'GetProperty' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} + 125 0.001 0.000 0.001 0.000 {method 'GetProperty' of 'vtkRenderingCorePython.vtkActor' objects} + 33 0.000 0.000 0.000 0.000 {method 'GetRenderWindow' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} + 253 0.001 0.000 0.001 0.000 {method 'GetRenderWindow' of 'vtkRenderingCorePython.vtkRenderer' objects} + 13 0.000 0.000 0.000 0.000 {method 'GetRenderers' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 10 0.000 0.000 0.000 0.000 {method 'GetRepresentation' of 'vtkInteractionWidgetsPython.vtkAbstractWidget' objects} + 63 0.001 0.000 0.001 0.000 {method 'GetScalarRange' of 'vtkCommonDataModelPython.vtkDataSet' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetScalarType' of 'vtkCommonDataModelPython.vtkImageData' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetScalarTypeAsString' of 'vtkCommonDataModelPython.vtkImageData' objects} + 4 0.000 0.000 0.000 0.000 {method 'GetScale' of 'vtkCommonTransformsPython.vtkTransform' objects} + 19 0.026 0.001 0.026 0.001 {method 'GetScreenSize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetSelectedProperty' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} + 575 0.001 0.000 0.001 0.000 {method 'GetSize' of 'vtkRenderingCorePython.vtkViewport' objects} + 827 0.002 0.000 0.002 0.000 {method 'GetSize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetSliderProperty' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} + 168 0.000 0.000 0.000 0.000 {method 'GetSpacing' of 'vtkCommonDataModelPython.vtkImageData' objects} + 24 0.000 0.000 0.000 0.000 {method 'GetTable' of 'vtkCommonCorePython.vtkLookupTable' objects} + 21 0.000 0.000 0.000 0.000 {method 'GetTableRange' of 'vtkCommonCorePython.vtkLookupTable' objects} + 1536 0.001 0.000 0.001 0.000 {method 'GetTableValue' of 'vtkCommonCorePython.vtkLookupTable' objects} + 578 0.003 0.000 0.003 0.000 {method 'GetTextProperty' of 'vtkRenderingCorePython.vtkTextActor' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetTubeProperty' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} + 8 0.000 0.000 0.000 0.000 {method 'GetUserTransform' of 'vtkRenderingCorePython.vtkProp3D' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetValue' of 'vtkCommonCorePython.vtkFloatArray' objects} + 11 0.000 0.000 0.000 0.000 {method 'GetValue' of 'vtkCommonCorePython.vtkStringArray' objects} + 30 0.000 0.000 0.000 0.000 {method 'GetValueRange' of 'vtkCommonCorePython.vtkLookupTable' objects} + 2 0.000 0.000 0.000 0.000 {method 'GetVectors' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 9 0.000 0.000 0.000 0.000 {method 'GetViewProps' of 'vtkRenderingCorePython.vtkViewport' objects} + 3 0.000 0.000 0.000 0.000 {method 'GetViewUp' of 'vtkRenderingCorePython.vtkCamera' objects} + 5 0.000 0.000 0.000 0.000 {method 'GetWindowCreated' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} + 307 0.000 0.000 0.000 0.000 {method 'Highlight' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} + 29 0.000 0.000 0.000 0.000 {method 'Identity' of 'vtkCommonMathPython.vtkMatrix4x4' objects} + 10 0.000 0.000 0.000 0.000 {method 'Identity' of 'vtkCommonTransformsPython.vtkTransform' objects} + 3 0.000 0.000 0.000 0.000 {method 'Initialize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindowInteractor' objects} + 3 0.000 0.000 0.000 0.000 {method 'InitializePickList' of 'vtkRenderingCorePython.vtkAbstractPicker' objects} + 13859 0.017 0.000 0.017 0.000 {method 'InsertNextCell' of 'vtkCommonDataModelPython.vtkCellArray' objects} + 15520 0.007 0.000 0.007 0.000 {method 'InsertNextCell' of 'vtkCommonDataModelPython.vtkUnstructuredGrid' objects} + 15468 0.004 0.000 0.004 0.000 {method 'InsertNextId' of 'vtkCommonCorePython.vtkIdList' objects} + 43219 0.014 0.000 0.014 0.000 {method 'InsertNextPoint' of 'vtkCommonCorePython.vtkPoints' objects} + 11545 0.004 0.000 0.004 0.000 {method 'InsertNextTypedTuple' of 'vtkCommonCorePython.vtkUnsignedCharArray' objects} + 11 0.000 0.000 0.000 0.000 {method 'InsertNextValue' of 'vtkCommonCorePython.vtkStringArray' objects} + 14 0.000 0.000 0.000 0.000 {method 'InsideOutOn' of 'vtkFiltersCorePython.vtkClipPolyData' objects} + 3 0.000 0.000 0.000 0.000 {method 'InsideOutOn' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} + 9 0.000 0.000 0.000 0.000 {method 'IsA' of 'vtkInteractionWidgetsPython.vtkLogoRepresentation' objects} + 6 0.000 0.000 0.000 0.000 {method 'IsA' of 'vtkRenderingCorePython.vtkTextActor' objects} + 3 0.000 0.000 0.000 0.000 {method 'ItalicOff' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 9 0.000 0.000 0.000 0.000 {method 'KeyPressActivationOff' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} + 3 0.000 0.000 0.000 0.000 {method 'MakeCurrent' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} + 6 0.000 0.000 0.000 0.000 {method 'MapColorScalarsThroughLookupTableOff' of 'vtkRenderingCorePython.vtkTexture' objects} + 267 0.000 0.000 0.000 0.000 {method 'Modified' of 'vtkCommonCorePython.vtkObject' objects} + 58 0.000 0.000 0.000 0.000 {method 'MultiplyPoint' of 'vtkCommonMathPython.vtkMatrix4x4' objects} + 5 0.000 0.000 0.000 0.000 {method 'NeedToRenderOn' of 'vtkInteractionWidgetsPython.vtkWidgetRepresentation' objects} + 1 0.000 0.000 0.000 0.000 {method 'NestedDisplayListsOff' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} + 13 0.000 0.000 0.000 0.000 {method 'NewInstance' of 'vtkCommonCorePython.vtkLongLongArray' objects} + 15 0.000 0.000 0.000 0.000 {method 'Off' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} + 25 0.000 0.000 0.000 0.000 {method 'On' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} + 1 0.000 0.000 0.000 0.000 {method 'OrientOn' of 'vtkFiltersCorePython.vtkGlyph3D' objects} + 1 0.000 0.000 0.000 0.000 {method 'OrientOn' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} + 158 0.000 0.000 0.000 0.000 {method 'ParallelProjectionOn' of 'vtkRenderingCorePython.vtkCamera' objects} + 6 0.000 0.000 0.000 0.000 {method 'PassAlphaToOutputOn' of 'vtkImagingCorePython.vtkImageMapToColors' objects} + 13 0.000 0.000 0.000 0.000 {method 'PassPointsOff' of 'vtkFiltersExtractionPython.vtkExtractPolyDataGeometry' objects} + 9 0.000 0.000 0.000 0.000 {method 'PickFromListOn' of 'vtkRenderingCorePython.vtkAbstractPicker' objects} + 20 0.000 0.000 0.000 0.000 {method 'PickableOff' of 'vtkRenderingCorePython.vtkProp' objects} + 16 0.000 0.000 0.000 0.000 {method 'PickableOn' of 'vtkRenderingCorePython.vtkProp' objects} + 6 0.000 0.000 0.000 0.000 {method 'PlaceWidget' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} + 90 0.000 0.000 0.000 0.000 {method 'PlaceWidget' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} + 19 0.000 0.000 0.000 0.000 {method 'ProportionalResizeOn' of 'vtkInteractionWidgetsPython.vtkBorderRepresentation' objects} + 6 0.000 0.000 0.000 0.000 {method 'RemoveAllPoints' of 'vtkCommonDataModelPython.vtkPiecewiseFunction' objects} + 6 0.000 0.000 0.000 0.000 {method 'RemoveAllPoints' of 'vtkRenderingCorePython.vtkColorTransferFunction' objects} + 5 0.000 0.000 0.000 0.000 {method 'RemoveArray' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 108/99 6.221 0.058 6.233 0.063 {method 'Render' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 9 0.107 0.012 0.107 0.012 {method 'Render' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} + 6 0.000 0.000 0.000 0.000 {method 'RepeatOff' of 'vtkRenderingCorePython.vtkTexture' objects} + 42 0.000 0.000 0.000 0.000 {method 'Reset' of 'vtkCommonCorePython.vtkIdList' objects} + 32 0.004 0.000 0.004 0.000 {method 'ResetCameraClippingRange' of 'vtkRenderingCorePython.vtkRenderer' objects} + 3 0.000 0.000 0.000 0.000 {method 'RotationEnabledOff' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} + 1 0.000 0.000 0.000 0.000 {method 'ScalarVisibilityOff' of 'vtkRenderingCorePython.vtkMapper' objects} + 1 0.000 0.000 0.000 0.000 {method 'ScalarVisibilityOn' of 'vtkRenderingCorePython.vtkMapper' objects} + 188 0.000 0.000 0.000 0.000 {method 'Scale' of 'vtkCommonTransformsPython.vtkTransform' objects} + 1 0.000 0.000 0.000 0.000 {method 'ScalingOn' of 'vtkFiltersCorePython.vtkGlyph3D' objects} + 1 0.000 0.000 0.000 0.000 {method 'ScalingOn' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} + 1 0.000 0.000 0.000 0.000 {method 'SelectColorArray' of 'vtkRenderingCorePython.vtkMapper' objects} + 3 0.000 0.000 0.000 0.000 {method 'SelectableOff' of 'vtkInteractionWidgetsPython.vtkBorderWidget' objects} + 52 0.000 0.000 0.000 0.000 {method 'SetActiveAttribute' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 4 0.000 0.000 0.000 0.000 {method 'SetActiveScalars' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetActiveVectors' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetAlphaBitPlanes' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 6 0.000 0.000 0.000 0.000 {method 'SetAlphaRange' of 'vtkCommonCorePython.vtkLookupTable' objects} + 28 0.000 0.000 0.000 0.000 {method 'SetAmbient' of 'vtkRenderingCorePython.vtkProperty' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetAnimationModeToAnimate' of 'vtkInteractionWidgetsPython.vtkSliderWidget' objects} + 229 0.000 0.000 0.000 0.000 {method 'SetBackground' of 'vtkRenderingCorePython.vtkViewport' objects} + 576 0.000 0.000 0.000 0.000 {method 'SetBackgroundColor' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 576 0.000 0.000 0.000 0.000 {method 'SetBackgroundOpacity' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 268 0.001 0.000 0.001 0.000 {method 'SetButtonTexture' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} + 29 0.000 0.000 0.000 0.000 {method 'SetCenter' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 33 0.000 0.000 0.000 0.000 {method 'SetCentralMeridian' of 'vtkGeovisCorePython.vtkGeoProjection' objects} + 14 0.000 0.000 0.000 0.000 {method 'SetClipFunction' of 'vtkFiltersCorePython.vtkClipPolyData' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetClipTolerance' of 'vtkFiltersModelingPython.vtkBandedPolyDataContourFilter' objects} + 49 0.000 0.000 0.000 0.000 {method 'SetColor' of 'vtkRenderingCorePython.vtkProperty' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetColor' of 'vtkRenderingCorePython.vtkProperty2D' objects} + 597 0.001 0.000 0.001 0.000 {method 'SetColor' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 35 0.000 0.000 0.000 0.000 {method 'SetCoordinateSystemToNormalizedDisplay' of 'vtkRenderingCorePython.vtkCoordinate' objects} + 18 0.000 0.000 0.000 0.000 {method 'SetCoordinateSystemToNormalizedViewport' of 'vtkRenderingCorePython.vtkCoordinate' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetCurrentRenderer' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetCutFunction' of 'vtkFiltersCorePython.vtkCutter' objects} + 13 0.000 0.000 0.000 0.000 {method 'SetData' of 'vtkCommonCorePython.vtkPoints' objects} + 33 0.000 0.000 0.000 0.000 {method 'SetDestinationProjection' of 'vtkGeovisCorePython.vtkGeoTransform' objects} + 11 0.000 0.000 0.000 0.000 {method 'SetDimensions' of 'vtkCommonDataModelPython.vtkStructuredGrid' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetDisplayLocationToBackground' of 'vtkRenderingCorePython.vtkProperty2D' objects} + 13 0.000 0.000 0.000 0.000 {method 'SetDraw' of 'vtkRenderingCorePython.vtkRenderer' objects} + 348 0.000 0.000 0.000 0.000 {method 'SetElement' of 'vtkCommonMathPython.vtkMatrix4x4' objects} + 7 0.001 0.000 0.001 0.000 {method 'SetEnabled' of 'vtkInteractionWidgetsPython.vtkAbstractWidget' objects} + 6 0.000 0.000 0.000 0.000 {method 'SetEnabled' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetEnabled' of 'vtkRenderingCorePython.vtkInteractorStyle' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetEndCapLength' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetEndCapWidth' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetExtent' of 'vtkCommonDataModelPython.vtkImageData' objects} + 290 0.000 0.000 0.000 0.000 {method 'SetFileName' of 'vtkIOImagePython.vtkImageReader2' objects} + 161 0.001 0.000 0.001 0.000 {method 'SetFocalPoint' of 'vtkRenderingCorePython.vtkCamera' objects} + 576 0.001 0.000 0.001 0.000 {method 'SetFontFamily' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 576 0.000 0.000 0.000 0.000 {method 'SetFontFile' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 597 0.000 0.000 0.000 0.000 {method 'SetFontSize' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetGenerateCutScalars' of 'vtkFiltersCorePython.vtkCutter' objects} + 13 0.000 0.000 0.000 0.000 {method 'SetGlobalIds' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetGlyphTypeToArrow' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} + 4 0.000 0.000 0.000 0.000 {method 'SetGlyphTypeToCircle' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetHandleSize' of 'vtkInteractionWidgetsPython.vtk3DWidget' objects} + 342 0.000 0.000 0.000 0.000 {method 'SetHoveringProperty' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} + 6 0.000 0.000 0.000 0.000 {method 'SetHueRange' of 'vtkCommonCorePython.vtkLookupTable' objects} + 37635 0.008 0.000 0.008 0.000 {method 'SetId' of 'vtkCommonCorePython.vtkIdList' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetImage' of 'vtkInteractionWidgetsPython.vtkLogoRepresentation' objects} + 13 0.000 0.000 0.000 0.000 {method 'SetImplicitFunction' of 'vtkFiltersExtractionPython.vtkExtractPolyDataGeometry' objects} + 584 0.001 0.000 0.001 0.000 {method 'SetInput' of 'vtkRenderingCorePython.vtkTextActor' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetInputArrayToProcess' of 'vtkCommonExecutionModelPython.vtkAlgorithm' objects} + 127 0.003 0.000 0.003 0.000 {method 'SetInputConnection' of 'vtkCommonExecutionModelPython.vtkAlgorithm' objects} + 243 0.003 0.000 0.003 0.000 {method 'SetInputData' of 'vtkCommonExecutionModelPython.vtkImageAlgorithm' objects} + 57 0.003 0.000 0.003 0.000 {method 'SetInputData' of 'vtkCommonExecutionModelPython.vtkPolyDataAlgorithm' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetInputData' of 'vtkRenderingCorePython.vtkImageActor' objects} + 157 0.010 0.000 0.010 0.000 {method 'SetInputData' of 'vtkRenderingCorePython.vtkPolyDataMapper' objects} + 283 0.000 0.000 0.000 0.000 {method 'SetInteractor' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} + 46 0.011 0.000 0.011 0.000 {method 'SetInteractorStyle' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} + 66 0.000 0.000 0.000 0.000 {method 'SetInterpolate' of 'vtkRenderingCorePython.vtkTexture' objects} + 63 0.000 0.000 0.000 0.000 {method 'SetInterpolationModeToLinear' of 'vtkImagingCorePython.vtkImageReslice' objects} + 28 0.000 0.000 0.000 0.000 {method 'SetInterpolationToFlat' of 'vtkRenderingCorePython.vtkProperty' objects} + 315 0.000 0.000 0.000 0.000 {method 'SetJustificationToCentered' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 177 0.000 0.000 0.000 0.000 {method 'SetJustificationToLeft' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 87 0.000 0.000 0.000 0.000 {method 'SetJustificationToRight' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetLabelTextProperty' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetLabelVisibility' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} + 748 0.001 0.000 0.001 0.000 {method 'SetLayer' of 'vtkRenderingCorePython.vtkRenderer' objects} + 120 0.000 0.000 0.000 0.000 {method 'SetLineStipplePattern' of 'vtkRenderingCorePython.vtkProperty' objects} + 120 0.000 0.000 0.000 0.000 {method 'SetLineStippleRepeatFactor' of 'vtkRenderingCorePython.vtkProperty' objects} + 123 0.000 0.000 0.000 0.000 {method 'SetLineWidth' of 'vtkRenderingCorePython.vtkProperty' objects} + 123 0.000 0.000 0.000 0.000 {method 'SetLines' of 'vtkCommonDataModelPython.vtkPolyData' objects} + 72 0.000 0.000 0.000 0.000 {method 'SetLookupTable' of 'vtkImagingCorePython.vtkImageMapToColors' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetLookupTable' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} + 29 0.000 0.000 0.000 0.000 {method 'SetLookupTable' of 'vtkRenderingCorePython.vtkMapper' objects} + 54 0.000 0.000 0.000 0.000 {method 'SetLookupTable' of 'vtkRenderingCorePython.vtkTexture' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetManagesCursor' of 'vtkInteractionWidgetsPython.vtkAbstractWidget' objects} + 203 0.000 0.000 0.000 0.000 {method 'SetMapper' of 'vtkRenderingCorePython.vtkActor' objects} + 5 0.000 0.000 0.000 0.000 {method 'SetMaximumValue' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetMaximumWidthInPixels' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} + 5 0.005 0.001 0.005 0.001 {method 'SetMinimumValue' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetMultiSamples' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 163 0.000 0.000 0.000 0.000 {method 'SetName' of 'vtkCommonCorePython.vtkAbstractArray' objects} + 33 0.000 0.000 0.000 0.000 {method 'SetName' of 'vtkGeovisCorePython.vtkGeoProjection' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetNearClippingPlaneTolerance' of 'vtkRenderingCorePython.vtkRenderer' objects} + 30 0.000 0.000 0.000 0.000 {method 'SetNumberOfColors' of 'vtkCommonCorePython.vtkLookupTable' objects} + 162 0.000 0.000 0.000 0.000 {method 'SetNumberOfComponents' of 'vtkCommonCorePython.vtkAbstractArray' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetNumberOfContours' of 'vtkFiltersCorePython.vtkContourFilter' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetNumberOfContours' of 'vtkFiltersModelingPython.vtkBandedPolyDataContourFilter' objects} + 1855 0.001 0.000 0.001 0.000 {method 'SetNumberOfIds' of 'vtkCommonCorePython.vtkIdList' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetNumberOfLabels' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} + 748 0.003 0.000 0.008 0.000 {method 'SetNumberOfLayers' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 14 0.000 0.000 0.000 0.000 {method 'SetNumberOfPoints' of 'vtkCommonCorePython.vtkPoints' objects} + 268 0.000 0.000 0.000 0.000 {method 'SetNumberOfStates' of 'vtkInteractionWidgetsPython.vtkButtonRepresentation' objects} + 28 0.000 0.000 0.000 0.000 {method 'SetNumberOfTableValues' of 'vtkCommonCorePython.vtkLookupTable' objects} + 70 0.000 0.000 0.000 0.000 {method 'SetNumberOfTuples' of 'vtkCommonCorePython.vtkAbstractArray' objects} + 6 0.000 0.000 0.000 0.000 {method 'SetOpacity' of 'vtkRenderingCorePython.vtkImageActor' objects} + 17 0.000 0.000 0.000 0.000 {method 'SetOpacity' of 'vtkRenderingCorePython.vtkProperty' objects} + 715 0.000 0.000 0.000 0.000 {method 'SetOpacity' of 'vtkRenderingCorePython.vtkProperty2D' objects} + 579 0.000 0.000 0.000 0.000 {method 'SetOpacity' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 33 0.000 0.000 0.000 0.000 {method 'SetOptionalParameter' of 'vtkGeovisCorePython.vtkGeoProjection' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetOrientation' of 'vtkRenderingCorePython.vtkProp3D' objects} + 576 0.000 0.000 0.000 0.000 {method 'SetOrientation' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetOrigin' of 'vtkCommonDataModelPython.vtkImageData' objects} + 30 0.000 0.000 0.000 0.000 {method 'SetOrigin' of 'vtkCommonDataModelPython.vtkPlane' objects} + 28 0.000 0.000 0.000 0.000 {method 'SetOrigin' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetOrigin' of 'vtkRenderingCorePython.vtkProp3D' objects} + 29 0.000 0.000 0.000 0.000 {method 'SetOutputExtent' of 'vtkImagingCorePython.vtkImageReslice' objects} + 6 0.000 0.000 0.000 0.000 {method 'SetOutputFormatToRGBA' of 'vtkImagingCorePython.vtkImageMapToColors' objects} + 29 0.000 0.000 0.000 0.000 {method 'SetOutputOrigin' of 'vtkImagingCorePython.vtkImageReslice' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetOutputPointsPrecision' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} + 29 0.000 0.000 0.000 0.000 {method 'SetOutputSpacing' of 'vtkImagingCorePython.vtkImageReslice' objects} + 158 0.000 0.000 0.000 0.000 {method 'SetParallelScale' of 'vtkRenderingCorePython.vtkCamera' objects} + 13 0.000 0.000 0.000 0.000 {method 'SetPedigreeIds' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetPicker' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetPlaceFactor' of 'vtkInteractionWidgetsPython.vtk3DWidget' objects} + 268 0.000 0.000 0.000 0.000 {method 'SetPlaceFactor' of 'vtkInteractionWidgetsPython.vtkWidgetRepresentation' objects} + 168 0.000 0.000 0.000 0.000 {method 'SetPoint' of 'vtkCommonCorePython.vtkPoints' objects} + 28 0.000 0.000 0.000 0.000 {method 'SetPoint1' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 28 0.000 0.000 0.000 0.000 {method 'SetPoint2' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 306 0.000 0.000 0.000 0.000 {method 'SetPoints' of 'vtkCommonDataModelPython.vtkPointSet' objects} + 10 0.000 0.000 0.000 0.000 {method 'SetPolys' of 'vtkCommonDataModelPython.vtkPolyData' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetPosition' of 'vtkInteractionWidgetsPython.vtkBorderRepresentation' objects} + 584 0.000 0.000 0.000 0.000 {method 'SetPosition' of 'vtkRenderingCorePython.vtkActor2D' objects} + 161 0.001 0.000 0.001 0.000 {method 'SetPosition' of 'vtkRenderingCorePython.vtkCamera' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetPosition' of 'vtkRenderingCorePython.vtkProp3D' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetPosition2' of 'vtkInteractionWidgetsPython.vtkBorderRepresentation' objects} + 268 0.000 0.000 0.000 0.000 {method 'SetPriority' of 'vtkInteractionWidgetsPython.vtkAbstractWidget' objects} + 342 0.000 0.000 0.000 0.000 {method 'SetProperty' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} + 23 0.000 0.000 0.000 0.000 {method 'SetProperty' of 'vtkRenderingCorePython.vtkActor' objects} + 6 0.000 0.000 0.000 0.000 {method 'SetQualityTo32Bit' of 'vtkRenderingCorePython.vtkTexture' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetRenderWindow' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} + 346 0.001 0.000 0.001 0.000 {method 'SetRenderer' of 'vtkInteractionWidgetsPython.vtkWidgetRepresentation' objects} + 268 0.000 0.000 0.000 0.000 {method 'SetRepresentation' of 'vtkInteractionWidgetsPython.vtkButtonWidget' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetRepresentation' of 'vtkInteractionWidgetsPython.vtkLogoWidget' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetRepresentation' of 'vtkInteractionWidgetsPython.vtkSliderWidget' objects} + 21 0.000 0.000 0.000 0.000 {method 'SetRepresentationToWireframe' of 'vtkRenderingCorePython.vtkProperty' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetResizable' of 'vtkInteractionWidgetsPython.vtkBorderWidget' objects} + 29 0.000 0.000 0.000 0.000 {method 'SetResliceAxes' of 'vtkImagingCorePython.vtkImageReslice' objects} + 14 0.000 0.000 0.000 0.000 {method 'SetResolveCoincidentTopologyToPolygonOffset' of 'vtkRenderingCorePython.vtkMapper' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetSampleRate' of 'vtkImagingCorePython.vtkExtractVOI' objects} + 6 0.000 0.000 0.000 0.000 {method 'SetSaturationRange' of 'vtkCommonCorePython.vtkLookupTable' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetScalarModeToUseCellData' of 'vtkRenderingCorePython.vtkMapper' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetScalarModeToUsePointData' of 'vtkRenderingCorePython.vtkMapper' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetScalarModeToUsePointFieldData' of 'vtkRenderingCorePython.vtkMapper' objects} + 28 0.000 0.000 0.000 0.000 {method 'SetScalarRange' of 'vtkRenderingCorePython.vtkMapper' objects} + 127 0.001 0.000 0.001 0.000 {method 'SetScalars' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 4 0.000 0.000 0.000 0.000 {method 'SetScale' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetScale' of 'vtkRenderingCorePython.vtkProp3D' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetScaleFactor' of 'vtkFiltersCorePython.vtkGlyph3D' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetScaleFactor' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetScaleModeToScaleByMagnitude' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetScaleModeToScaleByVector' of 'vtkFiltersCorePython.vtkGlyph3D' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetShaftResolution' of 'vtkFiltersSourcesPython.vtkArrowSource' objects} + 22 0.000 0.000 0.000 0.000 {method 'SetSize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetSkipDistance' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetSliderLength' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetSliderWidth' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetSourceConnection' of 'vtkFiltersCorePython.vtkGlyph3D' objects} + 10 0.000 0.000 0.000 0.000 {method 'SetSourceData' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} + 33 0.000 0.000 0.000 0.000 {method 'SetSourceProjection' of 'vtkGeovisCorePython.vtkGeoTransform' objects} + 17 0.000 0.000 0.000 0.000 {method 'SetSpacing' of 'vtkCommonDataModelPython.vtkImageData' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetStencilCapable' of 'vtkRenderingCorePython.vtkRenderWindow' objects} + 24 0.000 0.000 0.000 0.000 {method 'SetTable' of 'vtkCommonCorePython.vtkLookupTable' objects} + 24 0.000 0.000 0.000 0.000 {method 'SetTableRange' of 'vtkCommonCorePython.vtkLookupTable' objects} + 7736 0.002 0.000 0.002 0.000 {method 'SetTableValue' of 'vtkCommonCorePython.vtkLookupTable' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetTextProperties' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetTextPropertyMapping' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetTextScaleModeToProp' of 'vtkRenderingCorePython.vtkTextActor' objects} + 6 0.000 0.000 0.000 0.000 {method 'SetTexture' of 'vtkRenderingCorePython.vtkActor' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetTipResolution' of 'vtkFiltersSourcesPython.vtkArrowSource' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetTitle' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetTitleHeight' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 5 0.000 0.000 0.000 0.000 {method 'SetTitleText' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetTitleTextProperty' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetTolerance' of 'vtkRenderingCorePython.vtkPicker' objects} + 12 0.000 0.000 0.000 0.000 {method 'SetTransform' of 'vtkFiltersGeneralPython.vtkTransformPolyDataFilter' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetTubeWidth' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 10 0.000 0.000 0.000 0.000 {method 'SetTuple' of 'vtkCommonCorePython.vtkDataArray' objects} + 1572 0.001 0.000 0.001 0.000 {method 'SetTypedTuple' of 'vtkCommonCorePython.vtkUnsignedCharArray' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetUseCells' of 'vtkRenderingCorePython.vtkPointPicker' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetUseLookupTableScalarRange' of 'vtkRenderingCorePython.vtkMapper' objects} + 174 0.000 0.000 0.000 0.000 {method 'SetUserTransform' of 'vtkRenderingCorePython.vtkProp3D' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetVOI' of 'vtkImagingCorePython.vtkExtractVOI' objects} + 100880 0.014 0.000 0.014 0.000 {method 'SetValue' of 'vtkCommonCorePython.vtkIntArray' objects} + 20 0.000 0.000 0.000 0.000 {method 'SetValue' of 'vtkFiltersCorePython.vtkContourFilter' objects} + 20 0.000 0.000 0.000 0.000 {method 'SetValue' of 'vtkFiltersModelingPython.vtkBandedPolyDataContourFilter' objects} + 5 0.000 0.000 0.000 0.000 {method 'SetValue' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} + 41 0.000 0.000 0.000 0.000 {method 'SetValue' of 'vtkRenderingCorePython.vtkCoordinate' objects} + 30 0.000 0.000 0.000 0.000 {method 'SetValueRange' of 'vtkCommonCorePython.vtkLookupTable' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetVectorModeToMagnitude' of 'vtkCommonCorePython.vtkScalarsToColors' objects} + 1 0.000 0.000 0.000 0.000 {method 'SetVectorModeToUseVector' of 'vtkFiltersCorePython.vtkGlyph3D' objects} + 2 0.000 0.000 0.000 0.000 {method 'SetVectors' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} + 26 0.000 0.000 0.000 0.000 {method 'SetVerticalJustificationToBottom' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 553 0.000 0.000 0.000 0.000 {method 'SetVerticalJustificationToCentered' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 3 0.000 0.000 0.000 0.000 {method 'SetViewUp' of 'vtkRenderingCorePython.vtkCamera' objects} + 158 0.000 0.000 0.000 0.000 {method 'SetViewport' of 'vtkRenderingCorePython.vtkViewport' objects} + 9 0.000 0.000 0.000 0.000 {method 'SetVisibility' of 'vtkRenderingCorePython.vtkProp' objects} + 45 0.000 0.000 0.000 0.000 {method 'SetVoidArray' of 'vtkCommonCorePython.vtkAbstractArray' objects} + 19 0.000 0.000 0.000 0.000 {method 'SetWindowName' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} + 4 0.000 0.000 0.000 0.000 {method 'SetWorldPoint' of 'vtkRenderingCorePython.vtkViewport' objects} + 27 0.000 0.000 0.000 0.000 {method 'SetXMax' of 'vtkCommonDataModelPython.vtkBox' objects} + 27 0.000 0.000 0.000 0.000 {method 'SetXMin' of 'vtkCommonDataModelPython.vtkBox' objects} + 7 0.000 0.000 0.000 0.000 {method 'SetXResolution' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 7 0.000 0.000 0.000 0.000 {method 'SetYResolution' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} + 3 0.000 0.000 0.000 0.000 {method 'ShadowOff' of 'vtkRenderingCorePython.vtkTextProperty' objects} + 1 0.000 0.000 0.000 0.000 {method 'SourceIndexingOff' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} + 23 0.000 0.000 0.000 0.000 {method 'ThresholdBetween' of 'vtkFiltersCorePython.vtkThreshold' objects} + 1 0.000 0.000 0.000 0.000 {method 'ThresholdByUpper' of 'vtkFiltersCorePython.vtkThreshold' objects} + 7 0.000 0.000 0.000 0.000 {method 'TransformInputSamplingOff' of 'vtkImagingCorePython.vtkImageReslice' objects} + 10 0.000 0.000 0.000 0.000 {method 'TransformPoints' of 'vtkCommonTransformsPython.vtkLinearTransform' objects} + 84 0.031 0.000 0.031 0.000 {method 'TransformPoints' of 'vtkGeovisCorePython.vtkGeoTransform' objects} + 8 0.000 0.000 0.000 0.000 {method 'Translate' of 'vtkCommonTransformsPython.vtkTransform' objects} + 29 0.000 0.000 0.000 0.000 {method 'Transpose' of 'vtkCommonMathPython.vtkMatrix4x4' objects} + 633 0.745 0.001 0.745 0.001 {method 'Update' of 'vtkCommonExecutionModelPython.vtkAlgorithm' objects} + 89 0.005 0.000 0.005 0.000 {method 'Update' of 'vtkRenderingCorePython.vtkPolyDataMapper' objects} + 1 0.000 0.000 0.000 0.000 {method 'UseSelectionIdsOff' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} + 33 0.000 0.000 0.000 0.000 {method 'VisibilityOff' of 'vtkRenderingCorePython.vtkProp' objects} + 28 0.000 0.000 0.000 0.000 {method 'VisibilityOn' of 'vtkRenderingCorePython.vtkProp' objects} + 66 0.000 0.000 0.000 0.000 {method '__contains__' of 'frozenset' objects} + 14 0.000 0.000 0.000 0.000 {method '__deepcopy__' of 'numpy.generic' objects} + 4 0.000 0.000 0.000 0.000 {method '__deepcopy__' of 'numpy.ndarray' objects} + 45 0.000 0.000 0.000 0.000 {method '__enter__' of 'thread.lock' objects} + 45 0.000 0.000 0.000 0.000 {method '__exit__' of 'thread.lock' objects} + 20402 0.238 0.000 0.269 0.000 {method '__reduce_ex__' of 'object' objects} + 25 0.000 0.000 0.000 0.000 {method '__subclasses__' of 'type' objects} + 25 0.000 0.000 0.000 0.000 {method '__subclasshook__' of 'object' objects} + 169 0.018 0.000 0.018 0.000 {method 'acquire' of 'thread.lock' objects} + 1855 0.001 0.000 0.001 0.000 {method 'add' of 'set' objects} + 3043 0.003 0.000 0.017 0.000 {method 'all' of 'numpy.ndarray' objects} + 502 0.001 0.000 0.004 0.000 {method 'any' of 'numpy.generic' objects} + 3720 0.003 0.000 0.021 0.000 {method 'any' of 'numpy.ndarray' objects} + 228660 0.035 0.000 0.035 0.000 {method 'append' of 'list' objects} + 452 0.002 0.000 0.002 0.000 {method 'astype' of 'numpy.generic' objects} + 7050 0.009 0.000 0.009 0.000 {method 'astype' of 'numpy.ndarray' objects} + 44 0.000 0.000 0.000 0.000 {method 'capitalize' of 'str' objects} + 166 0.001 0.000 0.001 0.000 {method 'clear' of 'dict' objects} + 7 0.000 0.000 0.000 0.000 {method 'close' of 'file' objects} + 157 0.000 0.000 0.000 0.000 {method 'copy' of 'dict' objects} + 584 0.001 0.000 0.001 0.000 {method 'copy' of 'numpy.generic' objects} + 236 0.001 0.000 0.001 0.000 {method 'copy' of 'numpy.ndarray' objects} + 492 0.000 0.000 0.000 0.000 {method 'count' of 'str' objects} + 1317 0.001 0.000 0.001 0.000 {method 'count' of 'tuple' objects} + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 5 0.002 0.000 0.002 0.000 {method 'dump' of 'cPickle.Pickler' objects} + 811 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 5131 0.002 0.000 0.002 0.000 {method 'endswith' of 'str' objects} + 71 0.001 0.000 0.001 0.000 {method 'expandtabs' of 'str' objects} + 224 0.000 0.000 0.000 0.000 {method 'extend' of 'list' objects} + 1251 0.001 0.000 0.001 0.000 {method 'find' of 'bytearray' objects} + 1729 0.001 0.000 0.001 0.000 {method 'find' of 'str' objects} + 71 0.004 0.000 0.004 0.000 {method 'findall' of '_sre.SRE_Pattern' objects} + 317 0.000 0.000 0.000 0.000 {method 'finditer' of '_sre.SRE_Pattern' objects} + 346 0.001 0.000 0.001 0.000 {method 'format' of 'str' objects} + 176687 0.035 0.000 0.035 0.000 {method 'get' of 'dict' objects} + 9 0.000 0.000 0.000 0.000 {method 'get' of 'dictproxy' objects} + 1314 0.000 0.000 0.000 0.000 {method 'group' of '_sre.SRE_Match' objects} + 1 0.000 0.000 0.000 0.000 {method 'groups' of '_sre.SRE_Match' objects} + 3 0.000 0.000 0.000 0.000 {method 'has_key' of 'dict' objects} + 34 0.000 0.000 0.000 0.000 {method 'index' of 'list' objects} + 10 0.000 0.000 0.000 0.000 {method 'index' of 'str' objects} + 1853 0.001 0.000 0.001 0.000 {method 'insert' of 'list' objects} + 6 0.000 0.000 0.000 0.000 {method 'intersection' of 'set' objects} + 492 0.000 0.000 0.000 0.000 {method 'isalnum' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {method 'isatty' of 'file' objects} + 66 0.000 0.000 0.000 0.000 {method 'isdigit' of 'str' objects} + 346 0.001 0.000 0.001 0.000 {method 'item' of 'numpy.generic' objects} + 1720 0.001 0.000 0.001 0.000 {method 'item' of 'numpy.ndarray' objects} + 12458 0.010 0.000 0.010 0.000 {method 'items' of 'dict' objects} + 22842 0.006 0.000 0.006 0.000 {method 'iteritems' of 'dict' objects} + 1873 0.001 0.000 0.002 0.000 {method 'join' of 'str' objects} + 67228 0.148 0.000 0.148 0.000 {method 'keys' of 'dict' objects} + 255 0.000 0.000 0.000 0.000 {method 'ljust' of 'str' objects} + 17413 0.006 0.000 0.006 0.000 {method 'lower' of 'str' objects} + 13 0.000 0.000 0.000 0.000 {method 'lstrip' of 'str' objects} + 4753 0.004 0.000 0.004 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 53 0.000 0.000 0.001 0.000 {method 'max' of 'numpy.ndarray' objects} + 53 0.000 0.000 0.001 0.000 {method 'min' of 'numpy.ndarray' objects} + 39 0.000 0.000 0.000 0.000 {method 'mro' of 'type' objects} + 3799 0.001 0.000 0.001 0.000 {method 'pop' of 'dict' objects} + 801 0.001 0.000 0.001 0.000 {method 'pop' of 'list' objects} + 1793 0.001 0.000 0.001 0.000 {method 'random' of '_random.Random' objects} + 985 0.001 0.000 0.001 0.000 {method 'ravel' of 'numpy.ndarray' objects} + 17835 0.067 0.000 0.067 0.000 {method 'read' of 'file' objects} + 3719 0.021 0.000 0.021 0.000 {method 'readline' of 'file' objects} + 13 0.056 0.004 0.056 0.004 {method 'readlines' of 'file' objects} + 8529 0.039 0.000 0.052 0.000 {method 'reduce' of 'numpy.ufunc' objects} + 42 0.000 0.000 0.000 0.000 {method 'release' of 'thread.lock' objects} + 230 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} + 128 0.000 0.000 0.000 0.000 {method 'remove' of 'set' objects} + 2 0.000 0.000 0.000 0.000 {method 'repeat' of 'numpy.ndarray' objects} + 3503 0.001 0.000 0.001 0.000 {method 'replace' of 'str' objects} + 141 0.000 0.000 0.000 0.000 {method 'reshape' of 'numpy.ndarray' objects} + 2 0.000 0.000 0.000 0.000 {method 'resize' of 'numpy.ndarray' objects} + 6 0.000 0.000 0.000 0.000 {method 'reverse' of 'list' objects} + 79 0.000 0.000 0.000 0.000 {method 'rfind' of 'str' objects} + 801 0.001 0.000 0.001 0.000 {method 'rstrip' of 'str' objects} + 7 0.000 0.000 0.000 0.000 {method 'search' of '_sre.SRE_Pattern' objects} + 8 0.001 0.000 0.001 0.000 {method 'searchsorted' of 'numpy.ndarray' objects} + 411 0.002 0.000 0.002 0.000 {method 'seek' of 'file' objects} + 617 0.000 0.000 0.000 0.000 {method 'setdefault' of 'dict' objects} + 29 0.000 0.000 0.000 0.000 {method 'setter' of 'property' objects} + 5 0.001 0.000 0.002 0.000 {method 'sort' of 'list' objects} + 5417 0.006 0.000 0.006 0.000 {method 'split' of 'str' objects} + 6 0.000 0.000 0.000 0.000 {method 'splitlines' of 'str' objects} + 738 0.000 0.000 0.000 0.000 {method 'start' of '_sre.SRE_Match' objects} + 6630 0.004 0.000 0.004 0.000 {method 'startswith' of 'str' objects} + 13347 0.004 0.000 0.004 0.000 {method 'strip' of 'str' objects} + 574 0.004 0.000 0.004 0.000 {method 'sub' of '_sre.SRE_Pattern' objects} + 116 0.000 0.000 0.003 0.000 {method 'sum' of 'numpy.ndarray' objects} + 807 0.000 0.000 0.000 0.000 {method 'tell' of 'file' objects} + 76 0.000 0.000 0.000 0.000 {method 'title' of 'str' objects} + 38 0.002 0.000 0.002 0.000 {method 'tolist' of 'numpy.ndarray' objects} + 251 0.000 0.000 0.000 0.000 {method 'translate' of 'str' objects} + 10 0.000 0.000 0.000 0.000 {method 'transpose' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.000 0.000 {method 'union' of 'set' objects} + 40355 0.022 0.000 0.022 0.000 {method 'update' of 'dict' objects} + 17 0.000 0.000 0.000 0.000 {method 'upper' of 'str' objects} + 215 0.000 0.000 0.000 0.000 {method 'values' of 'dict' objects} + 126 0.001 0.000 0.011 0.000 {method 'view' of 'numpy.generic' objects} + 3190 0.006 0.000 0.143 0.000 {method 'view' of 'numpy.ndarray' objects} + 853 0.002 0.000 0.002 0.000 {method 'write' of 'file' objects} + 5451 0.002 0.000 0.002 0.000 {min} + 271 0.000 0.000 0.000 0.000 {numpy.core.multiarray.add_docstring} + 69 0.001 0.000 0.001 0.000 {numpy.core.multiarray.arange} + 31622 0.045 0.000 0.050 0.000 {numpy.core.multiarray.array} + 17 0.000 0.000 0.000 0.000 {numpy.core.multiarray.can_cast} + 84 0.005 0.000 0.005 0.000 {numpy.core.multiarray.concatenate} + 4640 0.010 0.000 0.010 0.000 {numpy.core.multiarray.copyto} + 1170 0.001 0.000 0.001 0.000 {numpy.core.multiarray.empty} + 986 0.002 0.000 0.002 0.000 {numpy.core.multiarray.result_type} + 2 0.000 0.000 0.000 0.000 {numpy.core.multiarray.set_string_function} + 1 0.000 0.000 0.000 0.000 {numpy.core.multiarray.set_typeDict} + 502 0.003 0.000 0.003 0.000 {numpy.core.multiarray.where} + 3230 0.004 0.000 0.004 0.000 {numpy.core.multiarray.zeros} + 19132 0.004 0.000 0.004 0.000 {numpy.core.umath.geterrobj} + 9566 0.006 0.000 0.006 0.000 {numpy.core.umath.seterrobj} + 180 0.008 0.000 0.008 0.000 {open} + 1706 0.000 0.000 0.000 0.000 {ord} + 1 0.000 0.000 0.000 0.000 {posix.access} + 16 0.002 0.000 0.002 0.000 {posix.getcwd} + 6 0.001 0.000 0.001 0.000 {posix.listdir} + 10 0.005 0.000 0.005 0.000 {posix.popen} + 5 0.000 0.000 0.000 0.000 {posix.putenv} + 1279 0.022 0.000 0.022 0.000 {posix.stat} + 1 0.000 0.000 0.000 0.000 {posix.sysconf} + 1 0.000 0.000 0.000 0.000 {posix.uname} + 2 0.000 0.000 0.000 0.000 {posix.unsetenv} + 2 0.000 0.000 0.000 0.000 {posix.urandom} + 42278 0.046 0.000 0.046 0.000 {range} + 72 0.007 0.000 0.007 0.000 {regrid2._regrid.gridattr} + 1 0.000 0.000 0.000 0.000 {reload} + 73 0.000 0.000 0.000 0.000 {repr} + 866 0.001 0.000 0.001 0.000 {round} +282579/282513 0.175 0.000 3.568 0.000 {setattr} + 40010 1.767 0.000 1.767 0.000 {sorted} + 3 0.000 0.000 0.000 0.000 {strop.maketrans} + 34 0.000 0.000 0.000 0.000 {sys._getframe} + 6 0.000 0.000 0.000 0.000 {sys.exc_info} + 2 0.000 0.000 0.000 0.000 {sys.getdlopenflags} + 20 0.000 0.000 0.000 0.000 {sys.getrefcount} + 2 0.000 0.000 0.000 0.000 {sys.setdlopenflags} + 135 0.000 0.000 0.000 0.000 {thread.allocate_lock} + 46 0.000 0.000 0.000 0.000 {thread.get_ident} + 44 0.004 0.000 0.004 0.000 {thread.start_new_thread} + 61 0.001 0.000 0.001 0.000 {time.sleep} + 545 0.012 0.000 0.012 0.000 {unidata.udunits_wrap.convert} + 1 0.018 0.018 0.018 0.018 {unidata.udunits_wrap.init} + 1587 0.001 0.000 0.001 0.000 {vars} + 3 0.000 0.000 0.000 0.000 {zip} + + diff --git a/docs/doctest_info/doctest_timing.txt b/docs/doctest_info/doctest_timing.txt new file mode 100644 index 0000000000000000000000000000000000000000..5112bd18ed1f3e704b0dd9622703a66fb1e380d7 GIT binary patch literal 832056 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 ZWuWgVvQE>5qi(u#ATKZ8pD}Ub{{u}+Dr*1$ literal 0 HcmV?d00001 diff --git a/docs/doctest_info/doctest_vcs.py b/docs/doctest_info/doctest_vcs.py index 9e4b8b97f..553c98c1e 100644 --- a/docs/doctest_info/doctest_vcs.py +++ b/docs/doctest_info/doctest_vcs.py @@ -1,43 +1,48 @@ -import vcs, sys, doctest, argparse, importlib, re - -# TODO: add cleanup function -# TODO: add args for only running cleanup, only logging missing doctests -# *.png, filename.*, ex_*, example.* +import doctest, argparse, importlib, re def log_stats(module_name, verbose): # open .results file to read, and .md file to log - results = open(module_name+".results", "r+") - log = open(module_name+'.md', 'w+') - missing_header = re.compile("^[0-9]+ items had no tests:$") - # missing tests will be followed by either passed all tests or "tests in items" entry - passing_header = re.compile("^[0-9]+ items passed all tests:$") - tests_in_items = re.compile("^[0-9]+ tests in [0-9]+ items\.$") - trying = re.compile("^Trying:$") - expecting_something = re.compile("^Expecting:$") - expecting_nothing = re.compile("^Expecting nothing$") - err_header = re.compile('File "') - err_indicator = re.compile('\*\*\*\*') - line = results.readline() - if verbose: - err_endpoint = [trying] - missing_endpoints = [passing_header, tests_in_items] + try: + results = open(module_name+".report", "r+") + except: + raise SystemError("File not found: " + module_name + ".results") else: - err_endpoint = [err_indicator] - while line != '': - if re.match(err_header, line): - where = line.split()[-1] - log.write(where+"\n") - for i in range(len(where)): - log.write("-") - log.write("\n") - log.write("```python\n") - consume_entry(results, log, err_endpoint, "") - log.write("```\n\n") - if re.match(missing_header, line): - log.write("\nMissing Docstrings\n------------------\n") - consume_entry(results, log, missing_endpoints, "- [ ] ") + log = open(module_name+'.md', 'w+') + missing_header = re.compile("^[0-9]+ items had no tests:$") + # missing tests will be followed by either passed all tests or "tests in items" entry + passing_header = re.compile("^[0-9]+ items passed all tests:$") + tests_in_items = re.compile("^[0-9]+ tests in [0-9]+ items\.$") + no_tests = re.compile("^[0-9]+ items had no tests:$") + trying = re.compile("^Trying:$") + err_header = re.compile('File "') + err_indicator = re.compile('\*\*\*\*') line = results.readline() + if verbose: + err_endpoints = [trying, no_tests] + missing_endpoints = [passing_header, tests_in_items] + else: + err_endpoints = [err_indicator,] + while line != '': + if re.match(err_header, line): + where = line.split()[-1] + log.write(where+"\n") + for i in range(len(where)): + log.write("-") + log.write("\n") + log.write("```python\n") + consume_entry(results, log, err_endpoints, "") + log.write("```\n\n") + if re.match(missing_header, line): + header="Missing Doctests" + log.write(header+"\n") + map(lambda x: log.write('-'), range(len(header))) + log.write("\n") + consume_entry(results, log, missing_endpoints, ":x:") + line = results.readline() + log.close() + results.close() + print ("Done logging "+module_name+".md") # note: will only consume the first full error @@ -52,6 +57,22 @@ def consume_entry(readfile, writefile, endpoints, prepend): more = False +def cleanup(): + import glob, os + gb = glob.glob + patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*"] + files = [] + for pattern in patterns: + fnames = gb(pattern) + for name in fnames: + files.append(name) + for file in files: + try: + os.remove(file) + except: + pass + + # Make parser and add options parser = argparse.ArgumentParser() parser.add_argument('module', type=str, help="Name of the VCS module to test.") @@ -68,16 +89,18 @@ def consume_entry(readfile, writefile, endpoints, prepend): args = parser.parse_args() if not args.LO: + import vcs if args.log and not args.report: - args.report=True + args.report = True options=doctest.ELLIPSIS if not args.all: options=options|doctest.REPORT_ONLY_FIRST_FAILURE # Import module and run doctests m = importlib.import_module(args.package + '.' + args.module) doctest.testmod(m, optionflags=options, report=args.report, verbose=args.verbose) - -if args.log or args.LO: + cleanup() + if args.log: + log_stats(args.module, args.verbose) +else: log_stats(args.module, args.verbose) exit() - diff --git a/docs/doctest_info/dv3d.md b/docs/doctest_info/dv3d.md new file mode 100644 index 000000000..43c478156 --- /dev/null +++ b/docs/doctest_info/dv3d.md @@ -0,0 +1,97 @@ +Missing Doctests +---------------- +:x: vcs.dv3d +:x: vcs.dv3d.Gf3DDualScalar +:x: vcs.dv3d.Gf3DDualScalar.Animation +:x: vcs.dv3d.Gf3DDualScalar.BasemapOpacity +:x: vcs.dv3d.Gf3DDualScalar.Camera +:x: vcs.dv3d.Gf3DDualScalar.ChooseColormap +:x: vcs.dv3d.Gf3DDualScalar.Colorbar +:x: vcs.dv3d.Gf3DDualScalar.Configure +:x: vcs.dv3d.Gf3DDualScalar.IsosurfaceValue +:x: vcs.dv3d.Gf3DDualScalar.PointSize +:x: vcs.dv3d.Gf3DDualScalar.ScaleColormap +:x: vcs.dv3d.Gf3DDualScalar.ScaleOpacity +:x: vcs.dv3d.Gf3DDualScalar.ScaleTransferFunction +:x: vcs.dv3d.Gf3DDualScalar.SliceThickness +:x: vcs.dv3d.Gf3DDualScalar.ToggleClipping +:x: vcs.dv3d.Gf3DDualScalar.ToggleSphericalProj +:x: vcs.dv3d.Gf3DDualScalar.ToggleSurfacePlot +:x: vcs.dv3d.Gf3DDualScalar.ToggleVolumePlot +:x: vcs.dv3d.Gf3DDualScalar.VerticalScaling +:x: vcs.dv3d.Gf3DDualScalar.XSlider +:x: vcs.dv3d.Gf3DDualScalar.YSlider +:x: vcs.dv3d.Gf3DDualScalar.ZSlider +:x: vcs.dv3d.Gf3DDualScalar.__init__ +:x: vcs.dv3d.Gf3Dscalar +:x: vcs.dv3d.Gf3Dscalar.Animation +:x: vcs.dv3d.Gf3Dscalar.BasemapOpacity +:x: vcs.dv3d.Gf3Dscalar.Camera +:x: vcs.dv3d.Gf3Dscalar.ChooseColormap +:x: vcs.dv3d.Gf3Dscalar.Colorbar +:x: vcs.dv3d.Gf3Dscalar.Configure +:x: vcs.dv3d.Gf3Dscalar.IsosurfaceValue +:x: vcs.dv3d.Gf3Dscalar.PointSize +:x: vcs.dv3d.Gf3Dscalar.ScaleColormap +:x: vcs.dv3d.Gf3Dscalar.ScaleOpacity +:x: vcs.dv3d.Gf3Dscalar.ScaleTransferFunction +:x: vcs.dv3d.Gf3Dscalar.SliceThickness +:x: vcs.dv3d.Gf3Dscalar.ToggleClipping +:x: vcs.dv3d.Gf3Dscalar.ToggleSphericalProj +:x: vcs.dv3d.Gf3Dscalar.ToggleSurfacePlot +:x: vcs.dv3d.Gf3Dscalar.ToggleVolumePlot +:x: vcs.dv3d.Gf3Dscalar.VerticalScaling +:x: vcs.dv3d.Gf3Dscalar.XSlider +:x: vcs.dv3d.Gf3Dscalar.YSlider +:x: vcs.dv3d.Gf3Dscalar.ZSlider +:x: vcs.dv3d.Gf3Dscalar.__init__ +:x: vcs.dv3d.Gf3Dvector +:x: vcs.dv3d.Gf3Dvector.Animation +:x: vcs.dv3d.Gf3Dvector.BasemapOpacity +:x: vcs.dv3d.Gf3Dvector.Camera +:x: vcs.dv3d.Gf3Dvector.ChooseColormap +:x: vcs.dv3d.Gf3Dvector.Colorbar +:x: vcs.dv3d.Gf3Dvector.Configure +:x: vcs.dv3d.Gf3Dvector.IsosurfaceValue +:x: vcs.dv3d.Gf3Dvector.PointSize +:x: vcs.dv3d.Gf3Dvector.ScaleColormap +:x: vcs.dv3d.Gf3Dvector.ScaleOpacity +:x: vcs.dv3d.Gf3Dvector.ScaleTransferFunction +:x: vcs.dv3d.Gf3Dvector.SliceThickness +:x: vcs.dv3d.Gf3Dvector.ToggleClipping +:x: vcs.dv3d.Gf3Dvector.ToggleSphericalProj +:x: vcs.dv3d.Gf3Dvector.ToggleSurfacePlot +:x: vcs.dv3d.Gf3Dvector.ToggleVolumePlot +:x: vcs.dv3d.Gf3Dvector.VerticalScaling +:x: vcs.dv3d.Gf3Dvector.XSlider +:x: vcs.dv3d.Gf3Dvector.YSlider +:x: vcs.dv3d.Gf3Dvector.ZSlider +:x: vcs.dv3d.Gf3Dvector.__init__ +:x: vcs.dv3d.Gfdv3d +:x: vcs.dv3d.Gfdv3d.NumCores +:x: vcs.dv3d.Gfdv3d.__init__ +:x: vcs.dv3d.Gfdv3d._getNumCores +:x: vcs.dv3d.Gfdv3d._getaxes +:x: vcs.dv3d.Gfdv3d._getname +:x: vcs.dv3d.Gfdv3d._setNumCores +:x: vcs.dv3d.Gfdv3d._setaxes +:x: vcs.dv3d.Gfdv3d._setname +:x: vcs.dv3d.Gfdv3d.addParameters +:x: vcs.dv3d.Gfdv3d.addPlotAttribute +:x: vcs.dv3d.Gfdv3d.add_property +:x: vcs.dv3d.Gfdv3d.axes +:x: vcs.dv3d.Gfdv3d.getConfigurationData +:x: vcs.dv3d.Gfdv3d.getConfigurationParms +:x: vcs.dv3d.Gfdv3d.getConfigurationState +:x: vcs.dv3d.Gfdv3d.getParameter +:x: vcs.dv3d.Gfdv3d.getParameterList +:x: vcs.dv3d.Gfdv3d.getPlotAttribute +:x: vcs.dv3d.Gfdv3d.getPlotAttributes +:x: vcs.dv3d.Gfdv3d.getStateData +:x: vcs.dv3d.Gfdv3d.initDefaultState +:x: vcs.dv3d.Gfdv3d.list +:x: vcs.dv3d.Gfdv3d.name +:x: vcs.dv3d.Gfdv3d.restoreState +:x: vcs.dv3d.Gfdv3d.script +:x: vcs.dv3d.Gfdv3d.setParameter +:x: vcs.dv3d.Gfdv3d.setProvenanceHandler diff --git a/docs/doctest_info/dv3d.results b/docs/doctest_info/dv3d.report similarity index 100% rename from docs/doctest_info/dv3d.results rename to docs/doctest_info/dv3d.report diff --git a/docs/doctest_info/editors.md b/docs/doctest_info/editors.md new file mode 100644 index 000000000..1487316ad --- /dev/null +++ b/docs/doctest_info/editors.md @@ -0,0 +1,3 @@ +Missing Doctests +---------------- +:x: vcs.editors diff --git a/docs/doctest_info/editors.results b/docs/doctest_info/editors.report similarity index 100% rename from docs/doctest_info/editors.results rename to docs/doctest_info/editors.report diff --git a/docs/doctest_info/error.md b/docs/doctest_info/error.md new file mode 100644 index 000000000..a89b2e637 --- /dev/null +++ b/docs/doctest_info/error.md @@ -0,0 +1,6 @@ +Missing Doctests +---------------- +:x: vcs.error +:x: vcs.error.vcsError +:x: vcs.error.vcsError.__init__ +:x: vcs.error.vcsError.__str__ diff --git a/docs/doctest_info/error.results b/docs/doctest_info/error.report similarity index 100% rename from docs/doctest_info/error.results rename to docs/doctest_info/error.report diff --git a/docs/doctest_info/fillarea.md b/docs/doctest_info/fillarea.md new file mode 100644 index 000000000..719c50938 --- /dev/null +++ b/docs/doctest_info/fillarea.md @@ -0,0 +1,36 @@ +Missing Doctests +---------------- +:x: vcs.fillarea +:x: vcs.fillarea.Tf +:x: vcs.fillarea.Tf.__init__ +:x: vcs.fillarea.Tf._getfillareacolors +:x: vcs.fillarea.Tf._getfillareaindices +:x: vcs.fillarea.Tf._getfillareaopacity +:x: vcs.fillarea.Tf._getfillareastyle +:x: vcs.fillarea.Tf._getname +:x: vcs.fillarea.Tf._getpriority +:x: vcs.fillarea.Tf._getx +:x: vcs.fillarea.Tf._gety +:x: vcs.fillarea.Tf._setfillareacolors +:x: vcs.fillarea.Tf._setfillareaindices +:x: vcs.fillarea.Tf._setfillareaopacity +:x: vcs.fillarea.Tf._setfillareastyle +:x: vcs.fillarea.Tf._setname +:x: vcs.fillarea.Tf._setpriority +:x: vcs.fillarea.Tf._setx +:x: vcs.fillarea.Tf._sety +:x: vcs.fillarea.Tf.color +:x: vcs.fillarea.Tf.colormap +:x: vcs.fillarea.Tf.index +:x: vcs.fillarea.Tf.list +:x: vcs.fillarea.Tf.name +:x: vcs.fillarea.Tf.opacity +:x: vcs.fillarea.Tf.priority +:x: vcs.fillarea.Tf.projection +:x: vcs.fillarea.Tf.style +:x: vcs.fillarea.Tf.viewport +:x: vcs.fillarea.Tf.worldcoordinate +:x: vcs.fillarea.Tf.x +:x: vcs.fillarea.Tf.y +:x: vcs.fillarea.getmember +:x: vcs.fillarea.process_src diff --git a/docs/doctest_info/fillarea.results b/docs/doctest_info/fillarea.report similarity index 100% rename from docs/doctest_info/fillarea.results rename to docs/doctest_info/fillarea.report diff --git a/docs/doctest_info/isofill.md b/docs/doctest_info/isofill.md new file mode 100644 index 000000000..4acc42bba --- /dev/null +++ b/docs/doctest_info/isofill.md @@ -0,0 +1,101 @@ +vcs.isofill.Gfi.script +---------------------- +```python +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 856, in script + fp.write("%s.missing = %g\n" % (unique_name, self.missing)) + TypeError: float argument required, not tuple +``` + +Missing Doctests +---------------- +:x: vcs.isofill +:x: vcs.isofill.Gfi +:x: vcs.isofill.Gfi.__init__ +:x: vcs.isofill.Gfi._getcalendar +:x: vcs.isofill.Gfi._getdatawc_x1 +:x: vcs.isofill.Gfi._getdatawc_x2 +:x: vcs.isofill.Gfi._getdatawc_y1 +:x: vcs.isofill.Gfi._getdatawc_y2 +:x: vcs.isofill.Gfi._getfillareacolors +:x: vcs.isofill.Gfi._getfillareaindices +:x: vcs.isofill.Gfi._getfillareastyle +:x: vcs.isofill.Gfi._getmissing +:x: vcs.isofill.Gfi._getname +:x: vcs.isofill.Gfi._gettimeunits +:x: vcs.isofill.Gfi._getxaxisconvert +:x: vcs.isofill.Gfi._getxmtics1 +:x: vcs.isofill.Gfi._getxmtics2 +:x: vcs.isofill.Gfi._getxticlabels1 +:x: vcs.isofill.Gfi._getxticlabels2 +:x: vcs.isofill.Gfi._getyaxisconvert +:x: vcs.isofill.Gfi._getymtics1 +:x: vcs.isofill.Gfi._getymtics2 +:x: vcs.isofill.Gfi._getyticlabels1 +:x: vcs.isofill.Gfi._getyticlabels2 +:x: vcs.isofill.Gfi._setcalendar +:x: vcs.isofill.Gfi._setdatawc_x1 +:x: vcs.isofill.Gfi._setdatawc_x2 +:x: vcs.isofill.Gfi._setdatawc_y1 +:x: vcs.isofill.Gfi._setdatawc_y2 +:x: vcs.isofill.Gfi._setfillareacolors +:x: vcs.isofill.Gfi._setfillareaindices +:x: vcs.isofill.Gfi._setfillareastyle +:x: vcs.isofill.Gfi._setmissing +:x: vcs.isofill.Gfi._setname +:x: vcs.isofill.Gfi._settimeunits +:x: vcs.isofill.Gfi._setxaxisconvert +:x: vcs.isofill.Gfi._setxmtics1 +:x: vcs.isofill.Gfi._setxmtics2 +:x: vcs.isofill.Gfi._setxticlabels1 +:x: vcs.isofill.Gfi._setxticlabels2 +:x: vcs.isofill.Gfi._setyaxisconvert +:x: vcs.isofill.Gfi._setymtics1 +:x: vcs.isofill.Gfi._setymtics2 +:x: vcs.isofill.Gfi._setyticlabels1 +:x: vcs.isofill.Gfi._setyticlabels2 +:x: vcs.isofill.Gfi.colormap +:x: vcs.isofill.Gfi.colors +:x: vcs.isofill.Gfi.datawc +:x: vcs.isofill.Gfi.datawc_calendar +:x: vcs.isofill.Gfi.datawc_timeunits +:x: vcs.isofill.Gfi.datawc_x1 +:x: vcs.isofill.Gfi.datawc_x2 +:x: vcs.isofill.Gfi.datawc_y1 +:x: vcs.isofill.Gfi.datawc_y2 +:x: vcs.isofill.Gfi.ext_1 +:x: vcs.isofill.Gfi.ext_2 +:x: vcs.isofill.Gfi.exts +:x: vcs.isofill.Gfi.fillareacolors +:x: vcs.isofill.Gfi.fillareaindices +:x: vcs.isofill.Gfi.fillareaopacity +:x: vcs.isofill.Gfi.fillareastyle +:x: vcs.isofill.Gfi.legend +:x: vcs.isofill.Gfi.levels +:x: vcs.isofill.Gfi.list +:x: vcs.isofill.Gfi.missing +:x: vcs.isofill.Gfi.name +:x: vcs.isofill.Gfi.projection +:x: vcs.isofill.Gfi.xaxisconvert +:x: vcs.isofill.Gfi.xmtics +:x: vcs.isofill.Gfi.xmtics1 +:x: vcs.isofill.Gfi.xmtics2 +:x: vcs.isofill.Gfi.xticlabels +:x: vcs.isofill.Gfi.xticlabels1 +:x: vcs.isofill.Gfi.xticlabels2 +:x: vcs.isofill.Gfi.yaxisconvert +:x: vcs.isofill.Gfi.ymtics +:x: vcs.isofill.Gfi.ymtics1 +:x: vcs.isofill.Gfi.ymtics2 +:x: vcs.isofill.Gfi.yticlabels +:x: vcs.isofill.Gfi.yticlabels1 +:x: vcs.isofill.Gfi.yticlabels2 +:x: vcs.isofill.load +:x: vcs.isofill.process_src diff --git a/docs/doctest_info/isofill.results b/docs/doctest_info/isofill.report similarity index 97% rename from docs/doctest_info/isofill.results rename to docs/doctest_info/isofill.report index 9640ca9cb..1a34d709b 100644 --- a/docs/doctest_info/isofill.results +++ b/docs/doctest_info/isofill.report @@ -22,10 +22,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 856, in script fp.write("%s.missing = %g\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple -Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. -Expecting nothing -ok Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/isoline.md b/docs/doctest_info/isoline.md new file mode 100644 index 000000000..ff1973de7 --- /dev/null +++ b/docs/doctest_info/isoline.md @@ -0,0 +1,116 @@ +Missing Doctests +---------------- +:x: vcs.isoline +:x: vcs.isoline.Gi +:x: vcs.isoline.Gi.__init__ +:x: vcs.isoline.Gi._getangle +:x: vcs.isoline.Gi._getcalendar +:x: vcs.isoline.Gi._getclockwise +:x: vcs.isoline.Gi._getdatawc_x1 +:x: vcs.isoline.Gi._getdatawc_x2 +:x: vcs.isoline.Gi._getdatawc_y1 +:x: vcs.isoline.Gi._getdatawc_y2 +:x: vcs.isoline.Gi._getlabel +:x: vcs.isoline.Gi._getlabelbackgroundcolors +:x: vcs.isoline.Gi._getlabelbackgroundopacities +:x: vcs.isoline.Gi._getlabelskipdistance +:x: vcs.isoline.Gi._getlevels +:x: vcs.isoline.Gi._getline +:x: vcs.isoline.Gi._getlinecolors +:x: vcs.isoline.Gi._getlinetypes +:x: vcs.isoline.Gi._getlinewidths +:x: vcs.isoline.Gi._getname +:x: vcs.isoline.Gi._getprojection +:x: vcs.isoline.Gi._getscale +:x: vcs.isoline.Gi._getspacing +:x: vcs.isoline.Gi._gettext +:x: vcs.isoline.Gi._gettextcolors +:x: vcs.isoline.Gi._gettimeunits +:x: vcs.isoline.Gi._getxaxisconvert +:x: vcs.isoline.Gi._getxmtics1 +:x: vcs.isoline.Gi._getxmtics2 +:x: vcs.isoline.Gi._getxticlabels1 +:x: vcs.isoline.Gi._getxticlabels2 +:x: vcs.isoline.Gi._getyaxisconvert +:x: vcs.isoline.Gi._getymtics1 +:x: vcs.isoline.Gi._getymtics2 +:x: vcs.isoline.Gi._getyticlabels1 +:x: vcs.isoline.Gi._getyticlabels2 +:x: vcs.isoline.Gi._setangle +:x: vcs.isoline.Gi._setcalendar +:x: vcs.isoline.Gi._setclockwise +:x: vcs.isoline.Gi._setdatawc_x1 +:x: vcs.isoline.Gi._setdatawc_x2 +:x: vcs.isoline.Gi._setdatawc_y1 +:x: vcs.isoline.Gi._setdatawc_y2 +:x: vcs.isoline.Gi._setlabel +:x: vcs.isoline.Gi._setlabelbackgroundcolors +:x: vcs.isoline.Gi._setlabelbackgroundopacities +:x: vcs.isoline.Gi._setlabelskipdistance +:x: vcs.isoline.Gi._setlevels +:x: vcs.isoline.Gi._setline +:x: vcs.isoline.Gi._setlinecolors +:x: vcs.isoline.Gi._setlinetypes +:x: vcs.isoline.Gi._setlinewidths +:x: vcs.isoline.Gi._setname +:x: vcs.isoline.Gi._setprojection +:x: vcs.isoline.Gi._setscale +:x: vcs.isoline.Gi._setspacing +:x: vcs.isoline.Gi._settext +:x: vcs.isoline.Gi._settextcolors +:x: vcs.isoline.Gi._settimeunits +:x: vcs.isoline.Gi._setxaxisconvert +:x: vcs.isoline.Gi._setxmtics1 +:x: vcs.isoline.Gi._setxmtics2 +:x: vcs.isoline.Gi._setxticlabels1 +:x: vcs.isoline.Gi._setxticlabels2 +:x: vcs.isoline.Gi._setyaxisconvert +:x: vcs.isoline.Gi._setymtics1 +:x: vcs.isoline.Gi._setymtics2 +:x: vcs.isoline.Gi._setyticlabels1 +:x: vcs.isoline.Gi._setyticlabels2 +:x: vcs.isoline.Gi.angle +:x: vcs.isoline.Gi.clockwise +:x: vcs.isoline.Gi.colormap +:x: vcs.isoline.Gi.datawc +:x: vcs.isoline.Gi.datawc_calendar +:x: vcs.isoline.Gi.datawc_timeunits +:x: vcs.isoline.Gi.datawc_x1 +:x: vcs.isoline.Gi.datawc_x2 +:x: vcs.isoline.Gi.datawc_y1 +:x: vcs.isoline.Gi.datawc_y2 +:x: vcs.isoline.Gi.label +:x: vcs.isoline.Gi.labelbackgroundcolors +:x: vcs.isoline.Gi.labelbackgroundopacities +:x: vcs.isoline.Gi.labelskipdistance +:x: vcs.isoline.Gi.level +:x: vcs.isoline.Gi.levels +:x: vcs.isoline.Gi.line +:x: vcs.isoline.Gi.linecolors +:x: vcs.isoline.Gi.linetypes +:x: vcs.isoline.Gi.linewidths +:x: vcs.isoline.Gi.list +:x: vcs.isoline.Gi.name +:x: vcs.isoline.Gi.projection +:x: vcs.isoline.Gi.scale +:x: vcs.isoline.Gi.setLineAttributes +:x: vcs.isoline.Gi.spacing +:x: vcs.isoline.Gi.text +:x: vcs.isoline.Gi.textcolors +:x: vcs.isoline.Gi.xaxisconvert +:x: vcs.isoline.Gi.xmtics +:x: vcs.isoline.Gi.xmtics1 +:x: vcs.isoline.Gi.xmtics2 +:x: vcs.isoline.Gi.xticlabels +:x: vcs.isoline.Gi.xticlabels1 +:x: vcs.isoline.Gi.xticlabels2 +:x: vcs.isoline.Gi.yaxisconvert +:x: vcs.isoline.Gi.ymtics +:x: vcs.isoline.Gi.ymtics1 +:x: vcs.isoline.Gi.ymtics2 +:x: vcs.isoline.Gi.yticlabels +:x: vcs.isoline.Gi.yticlabels1 +:x: vcs.isoline.Gi.yticlabels2 +:x: vcs.isoline.get_att_from_sub +:x: vcs.isoline.load +:x: vcs.isoline.process_src diff --git a/docs/doctest_info/isoline.results b/docs/doctest_info/isoline.report similarity index 100% rename from docs/doctest_info/isoline.results rename to docs/doctest_info/isoline.report diff --git a/docs/doctest_info/line.md b/docs/doctest_info/line.md new file mode 100644 index 000000000..fc8857fb8 --- /dev/null +++ b/docs/doctest_info/line.md @@ -0,0 +1,38 @@ +Missing Doctests +---------------- +:x: vcs.line +:x: vcs.line.Tl +:x: vcs.line.Tl.__init__ +:x: vcs.line.Tl._getfillareacolors +:x: vcs.line.Tl._getname +:x: vcs.line.Tl._getpriority +:x: vcs.line.Tl._getprojection +:x: vcs.line.Tl._gettype +:x: vcs.line.Tl._getvp +:x: vcs.line.Tl._getwc +:x: vcs.line.Tl._getwidth +:x: vcs.line.Tl._getx +:x: vcs.line.Tl._gety +:x: vcs.line.Tl._setfillareacolors +:x: vcs.line.Tl._setname +:x: vcs.line.Tl._setpriority +:x: vcs.line.Tl._setprojection +:x: vcs.line.Tl._settype +:x: vcs.line.Tl._setvp +:x: vcs.line.Tl._setwc +:x: vcs.line.Tl._setwidth +:x: vcs.line.Tl._setx +:x: vcs.line.Tl._sety +:x: vcs.line.Tl.color +:x: vcs.line.Tl.colormap +:x: vcs.line.Tl.list +:x: vcs.line.Tl.name +:x: vcs.line.Tl.priority +:x: vcs.line.Tl.projection +:x: vcs.line.Tl.type +:x: vcs.line.Tl.viewport +:x: vcs.line.Tl.width +:x: vcs.line.Tl.worldcoordinate +:x: vcs.line.Tl.x +:x: vcs.line.Tl.y +:x: vcs.line.process_src diff --git a/docs/doctest_info/line.results b/docs/doctest_info/line.report similarity index 100% rename from docs/doctest_info/line.results rename to docs/doctest_info/line.report diff --git a/docs/doctest_info/log_all_doctests.sh b/docs/doctest_info/log_all_doctests.sh new file mode 100755 index 000000000..50545ef11 --- /dev/null +++ b/docs/doctest_info/log_all_doctests.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" +"Pxtickmarks" "Pylabels" "Pytickmarks" "validation_functions" "VTKAnimate" "VTKPlots" +"animate_helper" "boxfill" "colormap" "colorpicker" "colors" "configurator" "displayplot" +"dv3d" "editors" "error" "fillarea" "isofill" "isoline" "line" "manageElements" +"marker" "meshfill" "projection" "queries" "taylor" "template" "textcombined" +"textorientation" "texttable" "unified1D" "utils" "vcs2vtk" "vcshelp" "vcsvtk" "vector" +"vtk_ui") + + +for module in "${MODULES[@]}"; do python doctest_vcs.py -v -r --LO "$module"; done; \ No newline at end of file diff --git a/docs/doctest_info/manageElements.md b/docs/doctest_info/manageElements.md index 6ab8046d4..8b4c28515 100644 --- a/docs/doctest_info/manageElements.md +++ b/docs/doctest_info/manageElements.md @@ -21,16 +21,7 @@ Exception raised: raise ex(err) Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) ``` -vcs.manageElements.createprojection ------------------------------------ -```python -Failed example: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection -Expected: - [...'projection_ex2'...] -Got: - ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] -``` + vcs.manageElements.createtext ----------------------------- ```python @@ -44,6 +35,7 @@ Got: *******************Textcombined Names List********************** *******************End Textcombined Names List********************** ``` + vcs.manageElements.get3d_dual_scalar ------------------------------------ ```python @@ -53,8 +45,9 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` + vcs.manageElements.get3d_scalar ------------------------------- ```python @@ -64,8 +57,9 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` + vcs.manageElements.get3d_vector ------------------------------- ```python @@ -77,8 +71,9 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` + vcs.manageElements.gettaylordiagram ----------------------------------- ```python @@ -102,6 +97,7 @@ Exception raised: raise TypeError("Only length-1 arrays can be converted " TypeError: Only length-1 arrays can be converted to Python scalars ``` + vcs.manageElements.gettextcombined ---------------------------------- ```python @@ -113,38 +109,37 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error texttable object named EXAMPLE_tt already exists ``` -Missing Docstrings ------------------- -- [ ] vcs.manageElements -- [ ] vcs.manageElements.check_name_source -- [ ] vcs.manageElements.create1d -- [ ] vcs.manageElements.get1d -- [ ] vcs.manageElements.removeCp -- [ ] vcs.manageElements.removeG -- [ ] vcs.manageElements.removeG1d -- [ ] vcs.manageElements.removeGSp -- [ ] vcs.manageElements.removeGXY -- [ ] vcs.manageElements.removeGXy -- [ ] vcs.manageElements.removeGYx -- [ ] vcs.manageElements.removeGfb -- [ ] vcs.manageElements.removeGfi -- [ ] vcs.manageElements.removeGfm -- [ ] vcs.manageElements.removeGi -- [ ] vcs.manageElements.removeGtd -- [ ] vcs.manageElements.removeGv -- [ ] vcs.manageElements.removeP -- [ ] vcs.manageElements.removeProj -- [ ] vcs.manageElements.removeTc -- [ ] vcs.manageElements.removeTf -- [ ] vcs.manageElements.removeTl -- [ ] vcs.manageElements.removeTm -- [ ] vcs.manageElements.removeTo -- [ ] vcs.manageElements.removeTt -- [ ] vcs.manageElements.setLineAttributes +Missing Doctests +---------------- +:x: vcs.manageElements +:x: vcs.manageElements.check_name_source +:x: vcs.manageElements.create1d +:x: vcs.manageElements.get1d +:x: vcs.manageElements.removeCp +:x: vcs.manageElements.removeG +:x: vcs.manageElements.removeG1d +:x: vcs.manageElements.removeGSp +:x: vcs.manageElements.removeGXY +:x: vcs.manageElements.removeGXy +:x: vcs.manageElements.removeGYx +:x: vcs.manageElements.removeGfb +:x: vcs.manageElements.removeGfi +:x: vcs.manageElements.removeGfm +:x: vcs.manageElements.removeGi +:x: vcs.manageElements.removeGtd +:x: vcs.manageElements.removeGv +:x: vcs.manageElements.removeP +:x: vcs.manageElements.removeProj +:x: vcs.manageElements.removeTc +:x: vcs.manageElements.removeTf +:x: vcs.manageElements.removeTl +:x: vcs.manageElements.removeTm +:x: vcs.manageElements.removeTo +:x: vcs.manageElements.removeTt diff --git a/docs/doctest_info/manageElements.results b/docs/doctest_info/manageElements.report similarity index 95% rename from docs/doctest_info/manageElements.results rename to docs/doctest_info/manageElements.report index 43b78a6da..28d6890d9 100644 --- a/docs/doctest_info/manageElements.results +++ b/docs/doctest_info/manageElements.report @@ -277,18 +277,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise raise ex(err) Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) -Trying: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection -Expecting: - [...'projection_ex2'...] -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 130, in vcs.manageElements.createprojection -Failed example: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection -Expected: - [...'projection_ex2'...] -Got: - ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] Trying: vcs.show('scatter') # show all available scatter Expecting: @@ -353,7 +341,7 @@ Expecting: ... *******************End Textcombined Names List********************** ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1318, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1343, in vcs.manageElements.createtext Failed example: vcs.show('textcombined') # show all available textcombined Expected: @@ -363,16 +351,6 @@ Expected: Got: *******************Textcombined Names List********************** *******************End Textcombined Names List********************** -Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Expecting: - -ok -Trying: - vcs.listelements('textcombined') # should now contain the 'EXAMPLE_tt:::EXAMPLE_tto' textcombined -Expecting: - [...'EXAMPLE_tt:::EXAMPLE_tto'...] -ok Trying: vcs.show('textorientation') # show all available textorientation Expecting: @@ -521,14 +499,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1586, in vcs.manageElements.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1611, in vcs.manageElements.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -559,14 +537,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1545, in vcs.manageElements.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1570, in vcs.manageElements.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -601,7 +579,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1626, in vcs.manageElements.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1651, in vcs.manageElements.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -610,7 +588,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1032,7 +1010,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1430, in vcs.manageElements.gettextcombined +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1455, in vcs.manageElements.gettextcombined Failed example: vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' Exception raised: @@ -1041,20 +1019,11 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error texttable object named EXAMPLE_tt already exists -Trying: - ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method -Expecting nothing -ok -Trying: - a.textcombined(ex) # plot using specified textcombined object -Expecting: - -ok Trying: a=vcs.init() Expecting nothing @@ -1230,7 +1199,22 @@ Trying: Expecting: 'Removed isoline object dean' ok -26 items had no tests: +Trying: + vcs.show('line') +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + new_isoline=vcs.createisoline('new_iso') +Expecting nothing +ok +Trying: + vcs.setLineAttributes(new_isoline, 'continents') +Expecting nothing +ok +25 items had no tests: vcs.manageElements vcs.manageElements.check_name_source vcs.manageElements.create1d @@ -1256,8 +1240,7 @@ ok vcs.manageElements.removeTm vcs.manageElements.removeTo vcs.manageElements.removeTt - vcs.manageElements.setLineAttributes -38 items passed all tests: +39 items passed all tests: 3 tests in vcs.manageElements.create3d_dual_scalar 3 tests in vcs.manageElements.create3d_scalar 3 tests in vcs.manageElements.create3d_vector @@ -1296,6 +1279,7 @@ ok 7 tests in vcs.manageElements.getxyvsy 7 tests in vcs.manageElements.getyxvsx 3 tests in vcs.manageElements.removeobject + 3 tests in vcs.manageElements.setLineAttributes ********************************************************************** 7 items had failures: 2 of 5 in vcs.manageElements.createprojection @@ -1305,6 +1289,6 @@ ok 1 of 8 in vcs.manageElements.get3d_vector 1 of 7 in vcs.manageElements.gettaylordiagram 1 of 5 in vcs.manageElements.gettextcombined -246 tests in 71 items. -238 passed and 8 failed. +249 tests in 71 items. +241 passed and 8 failed. ***Test Failed*** 8 failures. diff --git a/docs/doctest_info/marker.md b/docs/doctest_info/marker.md new file mode 100644 index 000000000..a73d8a579 --- /dev/null +++ b/docs/doctest_info/marker.md @@ -0,0 +1,38 @@ +Missing Doctests +---------------- +:x: vcs.marker +:x: vcs.marker.Tm +:x: vcs.marker.Tm.__init__ +:x: vcs.marker.Tm._getfillareacolors +:x: vcs.marker.Tm._getname +:x: vcs.marker.Tm._getpriority +:x: vcs.marker.Tm._getprojection +:x: vcs.marker.Tm._getsize +:x: vcs.marker.Tm._gettype +:x: vcs.marker.Tm._getvp +:x: vcs.marker.Tm._getwc +:x: vcs.marker.Tm._getx +:x: vcs.marker.Tm._gety +:x: vcs.marker.Tm._setfillareacolors +:x: vcs.marker.Tm._setname +:x: vcs.marker.Tm._setpriority +:x: vcs.marker.Tm._setprojection +:x: vcs.marker.Tm._setsize +:x: vcs.marker.Tm._settype +:x: vcs.marker.Tm._setvp +:x: vcs.marker.Tm._setwc +:x: vcs.marker.Tm._setx +:x: vcs.marker.Tm._sety +:x: vcs.marker.Tm.color +:x: vcs.marker.Tm.colormap +:x: vcs.marker.Tm.list +:x: vcs.marker.Tm.name +:x: vcs.marker.Tm.priority +:x: vcs.marker.Tm.projection +:x: vcs.marker.Tm.size +:x: vcs.marker.Tm.type +:x: vcs.marker.Tm.viewport +:x: vcs.marker.Tm.worldcoordinate +:x: vcs.marker.Tm.x +:x: vcs.marker.Tm.y +:x: vcs.marker.process_src diff --git a/docs/doctest_info/marker.results b/docs/doctest_info/marker.report similarity index 100% rename from docs/doctest_info/marker.results rename to docs/doctest_info/marker.report diff --git a/docs/doctest_info/meshfill.md b/docs/doctest_info/meshfill.md new file mode 100644 index 000000000..300dba476 --- /dev/null +++ b/docs/doctest_info/meshfill.md @@ -0,0 +1,107 @@ +vcs.meshfill.Gfm.script +----------------------- +```python +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 900, in script + fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) + TypeError: float argument required, not tuple +``` + +Missing Doctests +---------------- +:x: vcs.meshfill +:x: vcs.meshfill.Gfm +:x: vcs.meshfill.Gfm.__init__ +:x: vcs.meshfill.Gfm._getcalendar +:x: vcs.meshfill.Gfm._getdatawc_x1 +:x: vcs.meshfill.Gfm._getdatawc_x2 +:x: vcs.meshfill.Gfm._getdatawc_y1 +:x: vcs.meshfill.Gfm._getdatawc_y2 +:x: vcs.meshfill.Gfm._getfillareaindices +:x: vcs.meshfill.Gfm._getfillareastyle +:x: vcs.meshfill.Gfm._getmesh +:x: vcs.meshfill.Gfm._getmissing +:x: vcs.meshfill.Gfm._getname +:x: vcs.meshfill.Gfm._getprojection +:x: vcs.meshfill.Gfm._gettimeunits +:x: vcs.meshfill.Gfm._getwrap +:x: vcs.meshfill.Gfm._getxaxisconvert +:x: vcs.meshfill.Gfm._getxmtics1 +:x: vcs.meshfill.Gfm._getxmtics2 +:x: vcs.meshfill.Gfm._getxticlabels1 +:x: vcs.meshfill.Gfm._getxticlabels2 +:x: vcs.meshfill.Gfm._getyaxisconvert +:x: vcs.meshfill.Gfm._getymtics1 +:x: vcs.meshfill.Gfm._getymtics2 +:x: vcs.meshfill.Gfm._getyticlabels1 +:x: vcs.meshfill.Gfm._getyticlabels2 +:x: vcs.meshfill.Gfm._setcalendar +:x: vcs.meshfill.Gfm._setdatawc_x1 +:x: vcs.meshfill.Gfm._setdatawc_x2 +:x: vcs.meshfill.Gfm._setdatawc_y1 +:x: vcs.meshfill.Gfm._setdatawc_y2 +:x: vcs.meshfill.Gfm._setfillareaindices +:x: vcs.meshfill.Gfm._setfillareastyle +:x: vcs.meshfill.Gfm._setmesh +:x: vcs.meshfill.Gfm._setmissing +:x: vcs.meshfill.Gfm._setname +:x: vcs.meshfill.Gfm._setprojection +:x: vcs.meshfill.Gfm._settimeunits +:x: vcs.meshfill.Gfm._setwrap +:x: vcs.meshfill.Gfm._setxaxisconvert +:x: vcs.meshfill.Gfm._setxmtics1 +:x: vcs.meshfill.Gfm._setxmtics2 +:x: vcs.meshfill.Gfm._setxticlabels1 +:x: vcs.meshfill.Gfm._setxticlabels2 +:x: vcs.meshfill.Gfm._setyaxisconvert +:x: vcs.meshfill.Gfm._setymtics1 +:x: vcs.meshfill.Gfm._setymtics2 +:x: vcs.meshfill.Gfm._setyticlabels1 +:x: vcs.meshfill.Gfm._setyticlabels2 +:x: vcs.meshfill.Gfm.colormap +:x: vcs.meshfill.Gfm.colors +:x: vcs.meshfill.Gfm.datawc +:x: vcs.meshfill.Gfm.datawc_calendar +:x: vcs.meshfill.Gfm.datawc_timeunits +:x: vcs.meshfill.Gfm.datawc_x1 +:x: vcs.meshfill.Gfm.datawc_x2 +:x: vcs.meshfill.Gfm.datawc_y1 +:x: vcs.meshfill.Gfm.datawc_y2 +:x: vcs.meshfill.Gfm.ext_1 +:x: vcs.meshfill.Gfm.ext_2 +:x: vcs.meshfill.Gfm.exts +:x: vcs.meshfill.Gfm.fillareacolors +:x: vcs.meshfill.Gfm.fillareaindices +:x: vcs.meshfill.Gfm.fillareaopacity +:x: vcs.meshfill.Gfm.fillareastyle +:x: vcs.meshfill.Gfm.legend +:x: vcs.meshfill.Gfm.levels +:x: vcs.meshfill.Gfm.list +:x: vcs.meshfill.Gfm.mesh +:x: vcs.meshfill.Gfm.missing +:x: vcs.meshfill.Gfm.name +:x: vcs.meshfill.Gfm.projection +:x: vcs.meshfill.Gfm.wrap +:x: vcs.meshfill.Gfm.xaxisconvert +:x: vcs.meshfill.Gfm.xmtics +:x: vcs.meshfill.Gfm.xmtics1 +:x: vcs.meshfill.Gfm.xmtics2 +:x: vcs.meshfill.Gfm.xticlabels +:x: vcs.meshfill.Gfm.xticlabels1 +:x: vcs.meshfill.Gfm.xticlabels2 +:x: vcs.meshfill.Gfm.yaxisconvert +:x: vcs.meshfill.Gfm.ymtics +:x: vcs.meshfill.Gfm.ymtics1 +:x: vcs.meshfill.Gfm.ymtics2 +:x: vcs.meshfill.Gfm.yticlabels +:x: vcs.meshfill.Gfm.yticlabels1 +:x: vcs.meshfill.Gfm.yticlabels2 +:x: vcs.meshfill.load +:x: vcs.meshfill.process_src diff --git a/docs/doctest_info/meshfill.results b/docs/doctest_info/meshfill.report similarity index 97% rename from docs/doctest_info/meshfill.results rename to docs/doctest_info/meshfill.report index afc4f1977..c3c62b6a1 100644 --- a/docs/doctest_info/meshfill.results +++ b/docs/doctest_info/meshfill.report @@ -22,10 +22,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 900, in script fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple -Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. -Expecting nothing -ok Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/projection.md b/docs/doctest_info/projection.md new file mode 100644 index 000000000..ecce4d3fb --- /dev/null +++ b/docs/doctest_info/projection.md @@ -0,0 +1,114 @@ +Missing Doctests +---------------- +:x: vcs.projection +:x: vcs.projection.Proj +:x: vcs.projection.Proj.__init__ +:x: vcs.projection.Proj._getangle +:x: vcs.projection.Proj._getazimuthalangle +:x: vcs.projection.Proj._getazimuthallongitude +:x: vcs.projection.Proj._getcenterlatitude +:x: vcs.projection.Proj._getcenterlongitude +:x: vcs.projection.Proj._getcentralmeridian +:x: vcs.projection.Proj._getfactor +:x: vcs.projection.Proj._getfalseeasting +:x: vcs.projection.Proj._getfalsenorthing +:x: vcs.projection.Proj._getheight +:x: vcs.projection.Proj._getlandsatcompensationratio +:x: vcs.projection.Proj._getlatitude1 +:x: vcs.projection.Proj._getlatitude2 +:x: vcs.projection.Proj._getlongitude1 +:x: vcs.projection.Proj._getlongitude2 +:x: vcs.projection.Proj._getname +:x: vcs.projection.Proj._getorbitinclination +:x: vcs.projection.Proj._getorbitlongitude +:x: vcs.projection.Proj._getoriginlatitude +:x: vcs.projection.Proj._getparameters +:x: vcs.projection.Proj._getpath +:x: vcs.projection.Proj._getpathflag +:x: vcs.projection.Proj._getsatellite +:x: vcs.projection.Proj._getsatelliterevolutionperiod +:x: vcs.projection.Proj._getshapem +:x: vcs.projection.Proj._getshapen +:x: vcs.projection.Proj._getsmajor +:x: vcs.projection.Proj._getsminor +:x: vcs.projection.Proj._getsphere +:x: vcs.projection.Proj._getstandardparallel +:x: vcs.projection.Proj._getstandardparallel1 +:x: vcs.projection.Proj._getstandardparallel2 +:x: vcs.projection.Proj._getsubtype +:x: vcs.projection.Proj._gettruescale +:x: vcs.projection.Proj._gettype +:x: vcs.projection.Proj._setangle +:x: vcs.projection.Proj._setazimuthalangle +:x: vcs.projection.Proj._setazimuthallongitude +:x: vcs.projection.Proj._setcenterlatitude +:x: vcs.projection.Proj._setcenterlongitude +:x: vcs.projection.Proj._setcentralmeridian +:x: vcs.projection.Proj._setfactor +:x: vcs.projection.Proj._setfalseeasting +:x: vcs.projection.Proj._setfalsenorthing +:x: vcs.projection.Proj._setheight +:x: vcs.projection.Proj._setlandsatcompensationratio +:x: vcs.projection.Proj._setlatitude1 +:x: vcs.projection.Proj._setlatitude2 +:x: vcs.projection.Proj._setlongitude1 +:x: vcs.projection.Proj._setlongitude2 +:x: vcs.projection.Proj._setname +:x: vcs.projection.Proj._setorbitinclination +:x: vcs.projection.Proj._setorbitlongitude +:x: vcs.projection.Proj._setoriginlatitude +:x: vcs.projection.Proj._setparameters +:x: vcs.projection.Proj._setpath +:x: vcs.projection.Proj._setpathflag +:x: vcs.projection.Proj._setsatellite +:x: vcs.projection.Proj._setsatelliterevolutionperiod +:x: vcs.projection.Proj._setshapem +:x: vcs.projection.Proj._setshapen +:x: vcs.projection.Proj._setsmajor +:x: vcs.projection.Proj._setsminor +:x: vcs.projection.Proj._setsphere +:x: vcs.projection.Proj._setstandardparallel +:x: vcs.projection.Proj._setstandardparallel1 +:x: vcs.projection.Proj._setstandardparallel2 +:x: vcs.projection.Proj._setsubtype +:x: vcs.projection.Proj._settruescale +:x: vcs.projection.Proj._settype +:x: vcs.projection.Proj.angle +:x: vcs.projection.Proj.attributes +:x: vcs.projection.Proj.azimuthalangle +:x: vcs.projection.Proj.azimuthallongitude +:x: vcs.projection.Proj.centerlatitude +:x: vcs.projection.Proj.centerlongitude +:x: vcs.projection.Proj.centralmeridian +:x: vcs.projection.Proj.checkPP +:x: vcs.projection.Proj.factor +:x: vcs.projection.Proj.falseeasting +:x: vcs.projection.Proj.falsenorthing +:x: vcs.projection.Proj.height +:x: vcs.projection.Proj.landsatcompensationratio +:x: vcs.projection.Proj.latitude1 +:x: vcs.projection.Proj.latitude2 +:x: vcs.projection.Proj.list +:x: vcs.projection.Proj.longitude1 +:x: vcs.projection.Proj.longitude2 +:x: vcs.projection.Proj.name +:x: vcs.projection.Proj.orbitinclination +:x: vcs.projection.Proj.orbitlongitude +:x: vcs.projection.Proj.originlatitude +:x: vcs.projection.Proj.parameters +:x: vcs.projection.Proj.path +:x: vcs.projection.Proj.pathflag +:x: vcs.projection.Proj.satellite +:x: vcs.projection.Proj.satelliterevolutionperiod +:x: vcs.projection.Proj.shapem +:x: vcs.projection.Proj.shapen +:x: vcs.projection.Proj.smajor +:x: vcs.projection.Proj.sminor +:x: vcs.projection.Proj.sphere +:x: vcs.projection.Proj.standardparallel +:x: vcs.projection.Proj.standardparallel1 +:x: vcs.projection.Proj.standardparallel2 +:x: vcs.projection.Proj.subtype +:x: vcs.projection.Proj.truescale +:x: vcs.projection.Proj.type +:x: vcs.projection.process_src diff --git a/docs/doctest_info/projection.results b/docs/doctest_info/projection.report similarity index 100% rename from docs/doctest_info/projection.results rename to docs/doctest_info/projection.report diff --git a/docs/doctest_info/queries.md b/docs/doctest_info/queries.md new file mode 100644 index 000000000..2ffcc4ec4 --- /dev/null +++ b/docs/doctest_info/queries.md @@ -0,0 +1,14 @@ +vcs.queries.isplot +------------------ +```python +Failed example: + vcs.queries.isplot(dsp_plot) +Expected: + 1 +Got: + 0 +``` + +Missing Doctests +---------------- +:x: vcs.queries diff --git a/docs/doctest_info/queries.results b/docs/doctest_info/queries.report similarity index 100% rename from docs/doctest_info/queries.results rename to docs/doctest_info/queries.report diff --git a/docs/doctest_info/run_all_doctests.sh b/docs/doctest_info/run_all_doctests.sh index bd3866a38..ee1fcd63c 100755 --- a/docs/doctest_info/run_all_doctests.sh +++ b/docs/doctest_info/run_all_doctests.sh @@ -8,4 +8,5 @@ MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" "vtk_ui") -for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r -l > "$module.report"; done; \ No newline at end of file +for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r > "$module.report"; done; +for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r --LO; done; \ No newline at end of file diff --git a/docs/doctest_info/sample.png b/docs/doctest_info/sample.png new file mode 100644 index 0000000000000000000000000000000000000000..5f7004ae450b6632aeeea99c54c8aaab0329c928 GIT binary patch literal 7618 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 AeE", line 4, in + ["sample A","type B","thing C"],True) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend + strings, scratched, bg, render) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2390, in drawLinesAndMarkersLegend + if scratched is not None and scratched[i] is not False: + TypeError: 'bool' object has no attribute '__getitem__' +``` + +vcs.template.P.moveto +--------------------- +```python +Failed example: + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + name, source = check_name_source(name, source, 'template') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error template object named example1 already exists +``` + +vcs.template.P.reset +-------------------- +```python +Failed example: + t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + name, source = check_name_source(name, source, 'template') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error template object named example1 already exists +``` + +vcs.template.P.scale +-------------------- +```python +Failed example: + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + name, source = check_name_source(name, source, 'template') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error template object named example1 already exists +``` + +Missing Doctests +---------------- +:x: vcs.template +:x: vcs.template.P +:x: vcs.template.P.__init__ +:x: vcs.template.P._getName +:x: vcs.template.P._getOrientation +:x: vcs.template.P._setOrientation +:x: vcs.template.P.blank +:x: vcs.template.P.box1 +:x: vcs.template.P.box2 +:x: vcs.template.P.box3 +:x: vcs.template.P.box4 +:x: vcs.template.P.comment1 +:x: vcs.template.P.comment2 +:x: vcs.template.P.comment3 +:x: vcs.template.P.comment4 +:x: vcs.template.P.crdate +:x: vcs.template.P.crtime +:x: vcs.template.P.data +:x: vcs.template.P.dataname +:x: vcs.template.P.drawAttributes +:x: vcs.template.P.drawColorBar +:x: vcs.template.P.drawTicks +:x: vcs.template.P.file +:x: vcs.template.P.function +:x: vcs.template.P.legend +:x: vcs.template.P.line1 +:x: vcs.template.P.line2 +:x: vcs.template.P.line3 +:x: vcs.template.P.line4 +:x: vcs.template.P.list +:x: vcs.template.P.logicalmask +:x: vcs.template.P.max +:x: vcs.template.P.mean +:x: vcs.template.P.min +:x: vcs.template.P.name +:x: vcs.template.P.orientation +:x: vcs.template.P.plot +:x: vcs.template.P.ratio +:x: vcs.template.P.ratio_linear_projection +:x: vcs.template.P.scalefont +:x: vcs.template.P.source +:x: vcs.template.P.title +:x: vcs.template.P.tname +:x: vcs.template.P.transformation +:x: vcs.template.P.tunits +:x: vcs.template.P.tvalue +:x: vcs.template.P.units +:x: vcs.template.P.xlabel1 +:x: vcs.template.P.xlabel2 +:x: vcs.template.P.xmintic1 +:x: vcs.template.P.xmintic2 +:x: vcs.template.P.xname +:x: vcs.template.P.xtic1 +:x: vcs.template.P.xtic2 +:x: vcs.template.P.xunits +:x: vcs.template.P.xvalue +:x: vcs.template.P.ylabel1 +:x: vcs.template.P.ylabel2 +:x: vcs.template.P.ymintic1 +:x: vcs.template.P.ymintic2 +:x: vcs.template.P.yname +:x: vcs.template.P.ytic1 +:x: vcs.template.P.ytic2 +:x: vcs.template.P.yunits +:x: vcs.template.P.yvalue +:x: vcs.template.P.zname +:x: vcs.template.P.zunits +:x: vcs.template.P.zvalue +:x: vcs.template._getgen +:x: vcs.template._setgen +:x: vcs.template.epsilon_gte +:x: vcs.template.epsilon_lte +:x: vcs.template.process_src diff --git a/docs/doctest_info/template.results b/docs/doctest_info/template.report similarity index 69% rename from docs/doctest_info/template.results rename to docs/doctest_info/template.report index 47deedfcc..3d7824018 100644 --- a/docs/doctest_info/template.results +++ b/docs/doctest_info/template.report @@ -34,10 +34,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2390, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' -Trying: - x.png("sample") -Expecting nothing -ok Trying: t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' Expecting nothing @@ -68,20 +64,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists -Trying: - t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1367, in vcs.template.P.moveto -Failed example: - t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 - NameError: name 't' is not defined Trying: t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' Expecting nothing @@ -100,20 +82,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists -Trying: - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1265, in vcs.template.P.reset -Failed example: - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 - NameError: name 't' is not defined Trying: t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' Expecting nothing @@ -132,48 +100,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists -Trying: - t.scale(0.5) # Halves the template size -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1400, in vcs.template.P.scale -Failed example: - t.scale(0.5) # Halves the template size -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(0.5) # Halves the template size - NameError: name 't' is not defined -Trying: - t.scale(1.2) # Upsize everything to 20% more than the original size -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1401, in vcs.template.P.scale -Failed example: - t.scale(1.2) # Upsize everything to 20% more than the original size -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(1.2) # Upsize everything to 20% more than the original size - NameError: name 't' is not defined -Trying: - t.scale(2,'x') # Double the x axis -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1402, in vcs.template.P.scale -Failed example: - t.scale(2,'x') # Double the x axis -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(2,'x') # Double the x axis - NameError: name 't' is not defined Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing diff --git a/docs/doctest_info/textcombined.md b/docs/doctest_info/textcombined.md new file mode 100644 index 000000000..9aa908418 --- /dev/null +++ b/docs/doctest_info/textcombined.md @@ -0,0 +1,16 @@ +vcs.textcombined.Tc.script +-------------------------- +```python +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 503, in script + fp.write("%s.color = %g\n\n" % (unique_name, self.color)) + TypeError: float argument required, not list +``` + diff --git a/docs/doctest_info/textcombined.results b/docs/doctest_info/textcombined.report similarity index 97% rename from docs/doctest_info/textcombined.results rename to docs/doctest_info/textcombined.report index 859cd5246..f539a4bb1 100644 --- a/docs/doctest_info/textcombined.results +++ b/docs/doctest_info/textcombined.report @@ -27,10 +27,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 503, in script fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not list -Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. -Expecting nothing -ok 64 items had no tests: vcs.textcombined vcs.textcombined.Tc diff --git a/docs/doctest_info/textorientation.md b/docs/doctest_info/textorientation.md new file mode 100644 index 000000000..1b72b86cd --- /dev/null +++ b/docs/doctest_info/textorientation.md @@ -0,0 +1,25 @@ +Missing Doctests +---------------- +:x: vcs.textorientation +:x: vcs.textorientation.To +:x: vcs.textorientation.To.__init__ +:x: vcs.textorientation.To._getangle +:x: vcs.textorientation.To._gethalign +:x: vcs.textorientation.To._getheight +:x: vcs.textorientation.To._getname +:x: vcs.textorientation.To._getpath +:x: vcs.textorientation.To._getvalign +:x: vcs.textorientation.To._setangle +:x: vcs.textorientation.To._sethalign +:x: vcs.textorientation.To._setheight +:x: vcs.textorientation.To._setname +:x: vcs.textorientation.To._setpath +:x: vcs.textorientation.To._setvalign +:x: vcs.textorientation.To.angle +:x: vcs.textorientation.To.halign +:x: vcs.textorientation.To.height +:x: vcs.textorientation.To.list +:x: vcs.textorientation.To.name +:x: vcs.textorientation.To.path +:x: vcs.textorientation.To.valign +:x: vcs.textorientation.process_src diff --git a/docs/doctest_info/textorientation.results b/docs/doctest_info/textorientation.report similarity index 100% rename from docs/doctest_info/textorientation.results rename to docs/doctest_info/textorientation.report diff --git a/docs/doctest_info/texttable.md b/docs/doctest_info/texttable.md new file mode 100644 index 000000000..3e292cbed --- /dev/null +++ b/docs/doctest_info/texttable.md @@ -0,0 +1,16 @@ +vcs.texttable.Tt.script +----------------------- +```python +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.script('filename.py') # Append to a Python script named 'filename.py' + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 558, in script + fp.write("%s.color = %g\n\n" % (unique_name, self.color)) + TypeError: float argument required, not tuple +``` + diff --git a/docs/doctest_info/texttable.results b/docs/doctest_info/texttable.report similarity index 96% rename from docs/doctest_info/texttable.results rename to docs/doctest_info/texttable.report index cb7d20f0e..5613d876c 100644 --- a/docs/doctest_info/texttable.results +++ b/docs/doctest_info/texttable.report @@ -22,10 +22,6 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 558, in script fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not tuple -Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. -Expecting nothing -ok 51 items had no tests: vcs.texttable vcs.texttable.Tt diff --git a/docs/doctest_info/unified1D.md b/docs/doctest_info/unified1D.md new file mode 100644 index 000000000..109f83b7e --- /dev/null +++ b/docs/doctest_info/unified1D.md @@ -0,0 +1,98 @@ +Missing Doctests +---------------- +:x: vcs.unified1D +:x: vcs.unified1D.G1d +:x: vcs.unified1D.G1d.__init__ +:x: vcs.unified1D.G1d._getcalendar +:x: vcs.unified1D.G1d._getdatawc_x1 +:x: vcs.unified1D.G1d._getdatawc_x2 +:x: vcs.unified1D.G1d._getdatawc_y1 +:x: vcs.unified1D.G1d._getdatawc_y2 +:x: vcs.unified1D.G1d._getflip +:x: vcs.unified1D.G1d._getline +:x: vcs.unified1D.G1d._getlinecolor +:x: vcs.unified1D.G1d._getlinetype +:x: vcs.unified1D.G1d._getlinewidth +:x: vcs.unified1D.G1d._getmarker +:x: vcs.unified1D.G1d._getmarkercolor +:x: vcs.unified1D.G1d._getmarkersize +:x: vcs.unified1D.G1d._getname +:x: vcs.unified1D.G1d._getprojection +:x: vcs.unified1D.G1d._getsmooth +:x: vcs.unified1D.G1d._gettimeunits +:x: vcs.unified1D.G1d._getxaxisconvert +:x: vcs.unified1D.G1d._getxmtics1 +:x: vcs.unified1D.G1d._getxmtics2 +:x: vcs.unified1D.G1d._getxticlabels1 +:x: vcs.unified1D.G1d._getxticlabels2 +:x: vcs.unified1D.G1d._getyaxisconvert +:x: vcs.unified1D.G1d._getymtics1 +:x: vcs.unified1D.G1d._getymtics2 +:x: vcs.unified1D.G1d._getyticlabels1 +:x: vcs.unified1D.G1d._getyticlabels2 +:x: vcs.unified1D.G1d._gtype +:x: vcs.unified1D.G1d._setcalendar +:x: vcs.unified1D.G1d._setdatawc_x1 +:x: vcs.unified1D.G1d._setdatawc_x2 +:x: vcs.unified1D.G1d._setdatawc_y1 +:x: vcs.unified1D.G1d._setdatawc_y2 +:x: vcs.unified1D.G1d._setflip +:x: vcs.unified1D.G1d._setline +:x: vcs.unified1D.G1d._setlinecolor +:x: vcs.unified1D.G1d._setlinetype +:x: vcs.unified1D.G1d._setlinewidth +:x: vcs.unified1D.G1d._setmarker +:x: vcs.unified1D.G1d._setmarkercolor +:x: vcs.unified1D.G1d._setmarkersize +:x: vcs.unified1D.G1d._setname +:x: vcs.unified1D.G1d._setprojection +:x: vcs.unified1D.G1d._setsmooth +:x: vcs.unified1D.G1d._settimeunits +:x: vcs.unified1D.G1d._setxaxisconvert +:x: vcs.unified1D.G1d._setxmtics1 +:x: vcs.unified1D.G1d._setxmtics2 +:x: vcs.unified1D.G1d._setxticlabels1 +:x: vcs.unified1D.G1d._setxticlabels2 +:x: vcs.unified1D.G1d._setyaxisconvert +:x: vcs.unified1D.G1d._setymtics1 +:x: vcs.unified1D.G1d._setymtics2 +:x: vcs.unified1D.G1d._setyticlabels1 +:x: vcs.unified1D.G1d._setyticlabels2 +:x: vcs.unified1D.G1d.colormap +:x: vcs.unified1D.G1d.datawc +:x: vcs.unified1D.G1d.datawc_calendar +:x: vcs.unified1D.G1d.datawc_timeunits +:x: vcs.unified1D.G1d.datawc_x1 +:x: vcs.unified1D.G1d.datawc_x2 +:x: vcs.unified1D.G1d.datawc_y1 +:x: vcs.unified1D.G1d.datawc_y2 +:x: vcs.unified1D.G1d.flip +:x: vcs.unified1D.G1d.g_type +:x: vcs.unified1D.G1d.line +:x: vcs.unified1D.G1d.linecolor +:x: vcs.unified1D.G1d.linetype +:x: vcs.unified1D.G1d.linewidth +:x: vcs.unified1D.G1d.list +:x: vcs.unified1D.G1d.marker +:x: vcs.unified1D.G1d.markercolor +:x: vcs.unified1D.G1d.markersize +:x: vcs.unified1D.G1d.name +:x: vcs.unified1D.G1d.projection +:x: vcs.unified1D.G1d.setLineAttributes +:x: vcs.unified1D.G1d.smooth +:x: vcs.unified1D.G1d.xaxisconvert +:x: vcs.unified1D.G1d.xmtics +:x: vcs.unified1D.G1d.xmtics1 +:x: vcs.unified1D.G1d.xmtics2 +:x: vcs.unified1D.G1d.xticlabels +:x: vcs.unified1D.G1d.xticlabels1 +:x: vcs.unified1D.G1d.xticlabels2 +:x: vcs.unified1D.G1d.yaxisconvert +:x: vcs.unified1D.G1d.ymtics +:x: vcs.unified1D.G1d.ymtics1 +:x: vcs.unified1D.G1d.ymtics2 +:x: vcs.unified1D.G1d.yticlabels +:x: vcs.unified1D.G1d.yticlabels1 +:x: vcs.unified1D.G1d.yticlabels2 +:x: vcs.unified1D.load +:x: vcs.unified1D.process_src diff --git a/docs/doctest_info/unified1D.results b/docs/doctest_info/unified1D.report similarity index 100% rename from docs/doctest_info/unified1D.results rename to docs/doctest_info/unified1D.report diff --git a/docs/doctest_info/utils.md b/docs/doctest_info/utils.md new file mode 100644 index 000000000..1802903b2 --- /dev/null +++ b/docs/doctest_info/utils.md @@ -0,0 +1,44 @@ +vcs.utils.mklabels +------------------ +```python +Failed example: + vcs.mklabels ( [5,.005]) +Expected: + {0.005: '0.005', 5.0: '5.000'} +Got: + {5.0: '5.000', 0.005: '0.005'} +``` + +Missing Doctests +---------------- +:x: vcs.utils +:x: vcs.utils.Logo.__init__ +:x: vcs.utils.VCSUtilsError +:x: vcs.utils.VCSUtilsError.__init__ +:x: vcs.utils.VCSUtilsError.__str__ +:x: vcs.utils.__split2contiguous +:x: vcs.utils._scriptrun +:x: vcs.utils.creategraphicsmethod +:x: vcs.utils.download_sample_data_files +:x: vcs.utils.dumpToDict +:x: vcs.utils.dumpToJson +:x: vcs.utils.getDataWcValue +:x: vcs.utils.get_png_dims +:x: vcs.utils.getdotdirectory +:x: vcs.utils.getfontname +:x: vcs.utils.getfontnumber +:x: vcs.utils.getgraphicsmethod +:x: vcs.utils.getworldcoordinates +:x: vcs.utils.listelements +:x: vcs.utils.loadTemplate +:x: vcs.utils.loadVCSItem +:x: vcs.utils.monotonic +:x: vcs.utils.png_read_metadata +:x: vcs.utils.prettifyAxisLabels +:x: vcs.utils.process_range_from_old_scr +:x: vcs.utils.process_src_element +:x: vcs.utils.return_display_names +:x: vcs.utils.saveinitialfile +:x: vcs.utils.scriptrun +:x: vcs.utils.scriptrun_scr +:x: vcs.utils.setTicksandLabels diff --git a/docs/doctest_info/utils.results b/docs/doctest_info/utils.report similarity index 98% rename from docs/doctest_info/utils.results rename to docs/doctest_info/utils.report index 22345077d..a2647ab38 100644 --- a/docs/doctest_info/utils.results +++ b/docs/doctest_info/utils.report @@ -288,16 +288,6 @@ Expected: {0.005: '0.005', 5.0: '5.000'} Got: {5.0: '5.000', 0.005: '0.005'} -Trying: - vcs.mklabels ( [.00002,.00005]) -Expecting: - {2e-05: '2E-5', 5e-05: '5E-5'} -ok -Trying: - vcs.mklabels ( [.00002,.00005],output='list') -Expecting: - ['2E-5', '5E-5'] -ok Trying: vcs.mkscale(0,100) Expecting: diff --git a/docs/doctest_info/elp.results b/docs/doctest_info/validation_functions.md similarity index 100% rename from docs/doctest_info/elp.results rename to docs/doctest_info/validation_functions.md diff --git a/docs/doctest_info/tk.results b/docs/doctest_info/validation_functions.report similarity index 100% rename from docs/doctest_info/tk.results rename to docs/doctest_info/validation_functions.report diff --git a/docs/doctest_info/validation_functions.results b/docs/doctest_info/validation_functions.results deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/doctest_info/vcs2vtk.md b/docs/doctest_info/vcs2vtk.md new file mode 100644 index 000000000..6018e7aea --- /dev/null +++ b/docs/doctest_info/vcs2vtk.md @@ -0,0 +1,45 @@ +Missing Doctests +---------------- +:x: vcs.vcs2vtk +:x: vcs.vcs2vtk.__build_ld__ +:x: vcs.vcs2vtk.__build_pd__ +:x: vcs.vcs2vtk.applyAttributesFromVCStmpl +:x: vcs.vcs2vtk.apply_proj_parameters +:x: vcs.vcs2vtk.checkProjParameters +:x: vcs.vcs2vtk.checkProjType +:x: vcs.vcs2vtk.doWrapData +:x: vcs.vcs2vtk.dump2VTK +:x: vcs.vcs2vtk.genGrid +:x: vcs.vcs2vtk.genPoly +:x: vcs.vcs2vtk.genTextActor +:x: vcs.vcs2vtk.generateVectorArray +:x: vcs.vcs2vtk.getBoundsList +:x: vcs.vcs2vtk.getPlottingBounds +:x: vcs.vcs2vtk.getProjType +:x: vcs.vcs2vtk.getRendererCorners +:x: vcs.vcs2vtk.getWrappedBounds +:x: vcs.vcs2vtk.numpy_to_vtk_wrapper +:x: vcs.vcs2vtk.prepContinents +:x: vcs.vcs2vtk.prepFillarea +:x: vcs.vcs2vtk.prepGlyph +:x: vcs.vcs2vtk.prepLine +:x: vcs.vcs2vtk.prepMarker +:x: vcs.vcs2vtk.prepPrimitive +:x: vcs.vcs2vtk.prepTextProperty +:x: vcs.vcs2vtk.project +:x: vcs.vcs2vtk.projectArray +:x: vcs.vcs2vtk.putMaskOnVTKGrid +:x: vcs.vcs2vtk.removeHiddenPoints +:x: vcs.vcs2vtk.scaleMarkerGlyph +:x: vcs.vcs2vtk.setArray +:x: vcs.vcs2vtk.setClipPlanes +:x: vcs.vcs2vtk.setInfToValid +:x: vcs.vcs2vtk.setMarkerColor +:x: vcs.vcs2vtk.setProjectionParameters +:x: vcs.vcs2vtk.starPoints +:x: vcs.vcs2vtk.stippleLine +:x: vcs.vcs2vtk.switchAndTranslate +:x: vcs.vcs2vtk.vtkIterate +:x: vcs.vcs2vtk.vtkWorld2Renderer +:x: vcs.vcs2vtk.world2Renderer +:x: vcs.vcs2vtk.wrapDataSetX diff --git a/docs/doctest_info/vcs2vtk.report b/docs/doctest_info/vcs2vtk.report new file mode 100644 index 000000000..d17d3a24d --- /dev/null +++ b/docs/doctest_info/vcs2vtk.report @@ -0,0 +1,47 @@ +43 items had no tests: + vcs.vcs2vtk + vcs.vcs2vtk.__build_ld__ + vcs.vcs2vtk.__build_pd__ + vcs.vcs2vtk.applyAttributesFromVCStmpl + vcs.vcs2vtk.apply_proj_parameters + vcs.vcs2vtk.checkProjParameters + vcs.vcs2vtk.checkProjType + vcs.vcs2vtk.doWrapData + vcs.vcs2vtk.dump2VTK + vcs.vcs2vtk.genGrid + vcs.vcs2vtk.genPoly + vcs.vcs2vtk.genTextActor + vcs.vcs2vtk.generateVectorArray + vcs.vcs2vtk.getBoundsList + vcs.vcs2vtk.getPlottingBounds + vcs.vcs2vtk.getProjType + vcs.vcs2vtk.getRendererCorners + vcs.vcs2vtk.getWrappedBounds + vcs.vcs2vtk.numpy_to_vtk_wrapper + vcs.vcs2vtk.prepContinents + vcs.vcs2vtk.prepFillarea + vcs.vcs2vtk.prepGlyph + vcs.vcs2vtk.prepLine + vcs.vcs2vtk.prepMarker + vcs.vcs2vtk.prepPrimitive + vcs.vcs2vtk.prepTextProperty + vcs.vcs2vtk.project + vcs.vcs2vtk.projectArray + vcs.vcs2vtk.putMaskOnVTKGrid + vcs.vcs2vtk.removeHiddenPoints + vcs.vcs2vtk.scaleMarkerGlyph + vcs.vcs2vtk.setArray + vcs.vcs2vtk.setClipPlanes + vcs.vcs2vtk.setInfToValid + vcs.vcs2vtk.setMarkerColor + vcs.vcs2vtk.setProjectionParameters + vcs.vcs2vtk.starPoints + vcs.vcs2vtk.stippleLine + vcs.vcs2vtk.switchAndTranslate + vcs.vcs2vtk.vtkIterate + vcs.vcs2vtk.vtkWorld2Renderer + vcs.vcs2vtk.world2Renderer + vcs.vcs2vtk.wrapDataSetX +0 tests in 43 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/vcshelp.md b/docs/doctest_info/vcshelp.md new file mode 100644 index 000000000..7e08b700e --- /dev/null +++ b/docs/doctest_info/vcshelp.md @@ -0,0 +1,98 @@ +vcs.vcshelp.objecthelp +---------------------- +```python +Failed example: + vcs.objecthelp(fa) +Expected: + + The Fillarea class object... +Got: + + The Fillarea class object allows the user to edit fillarea attributes, including + fillarea interior style, style index, and color index. + + This class is used to define an fillarea table entry used in VCS, or it + can be used to change some or all of the fillarea attributes in an + existing fillarea table entry. + + + .. describe:: Useful Functions: + + .. code-block:: python + + # VCS Canvas Constructor + a=vcs.init() + # Show predefined fillarea objects + a.show('fillarea') + # Updates the VCS Canvas at user's request + a.update() + + .. describe:: Create a fillarea object: + + .. code-block:: python + + #Create a VCS Canvas object + a=vcs.init() + + # Two ways to create a fillarea: + + # Copies content of 'def37' to 'new'ea: + fa=a.createfillarea('new','def37') + # Copies content of 'default' to 'new' + fa=a.createfillarea('new') + + .. describe:: Modify an existing fillarea: + + .. code-block:: python + + fa=a.getfillarea('red') + + * Overview of fillarea attributes: + + * List all the fillarea attribute values + + .. code-block:: python + + fa.list() + + * There are three possibilities for setting the isofill style: + + .. code-block:: python + + fa.style = 'solid' + fa.style = 'hatch' + fa.style = 'pattern' + + * Setting index, color, opacity: + + .. code-block:: python + + # Range from 1 to 20 + fa.index=1 + # Range from 1 to 256 + fa.color=100 + # Range from 0 to 100 + fa.opacity=100 + + * Setting the graphics priority viewport, worldcoordinate: + + .. code-block:: python + + fa.priority=1 + # FloatType [0,1]x[0,1] + fa.viewport=[0, 1.0, 0,1.0] + # FloatType [#,#]x[#,#] + fa.worldcoordinate=[0,1.0,0,1.0] + + * Setting x and y values: + + .. code-block:: python + + #List of FloatTypes + fa.x=[[0,.1,.2], [.3,.4,.5]] + # List of FloatTypes + fa.y=[[.5,.4,.3], [.2,.1,0]] + + +``` + diff --git a/docs/doctest_info/vcshelp.report b/docs/doctest_info/vcshelp.report new file mode 100644 index 000000000..2e35033d4 --- /dev/null +++ b/docs/doctest_info/vcshelp.report @@ -0,0 +1,115 @@ +Trying: + fa=vcs.getfillarea() +Expecting nothing +ok +Trying: + vcs.objecthelp(fa) +Expecting: + + The Fillarea class object... +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vcshelp.py", line 39, in vcs.vcshelp.objecthelp +Failed example: + vcs.objecthelp(fa) +Expected: + + The Fillarea class object... +Got: + + The Fillarea class object allows the user to edit fillarea attributes, including + fillarea interior style, style index, and color index. + + This class is used to define an fillarea table entry used in VCS, or it + can be used to change some or all of the fillarea attributes in an + existing fillarea table entry. + + + .. describe:: Useful Functions: + + .. code-block:: python + + # VCS Canvas Constructor + a=vcs.init() + # Show predefined fillarea objects + a.show('fillarea') + # Updates the VCS Canvas at user's request + a.update() + + .. describe:: Create a fillarea object: + + .. code-block:: python + + #Create a VCS Canvas object + a=vcs.init() + + # Two ways to create a fillarea: + + # Copies content of 'def37' to 'new'ea: + fa=a.createfillarea('new','def37') + # Copies content of 'default' to 'new' + fa=a.createfillarea('new') + + .. describe:: Modify an existing fillarea: + + .. code-block:: python + + fa=a.getfillarea('red') + + * Overview of fillarea attributes: + + * List all the fillarea attribute values + + .. code-block:: python + + fa.list() + + * There are three possibilities for setting the isofill style: + + .. code-block:: python + + fa.style = 'solid' + fa.style = 'hatch' + fa.style = 'pattern' + + * Setting index, color, opacity: + + .. code-block:: python + + # Range from 1 to 20 + fa.index=1 + # Range from 1 to 256 + fa.color=100 + # Range from 0 to 100 + fa.opacity=100 + + * Setting the graphics priority viewport, worldcoordinate: + + .. code-block:: python + + fa.priority=1 + # FloatType [0,1]x[0,1] + fa.viewport=[0, 1.0, 0,1.0] + # FloatType [#,#]x[#,#] + fa.worldcoordinate=[0,1.0,0,1.0] + + * Setting x and y values: + + .. code-block:: python + + #List of FloatTypes + fa.x=[[0,.1,.2], [.3,.4,.5]] + # List of FloatTypes + fa.y=[[.5,.4,.3], [.2,.1,0]] + + +4 items had no tests: + vcs.vcshelp + vcs.vcshelp.help + vcs.vcshelp.help__doc__ + vcs.vcshelp.mode__doc__ +********************************************************************** +1 items had failures: + 1 of 2 in vcs.vcshelp.objecthelp +2 tests in 5 items. +1 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/vcsvtk.md b/docs/doctest_info/vcsvtk.md new file mode 100644 index 000000000..248de7091 --- /dev/null +++ b/docs/doctest_info/vcsvtk.md @@ -0,0 +1,3 @@ +Missing Doctests +---------------- +:x: vcs.vcsvtk diff --git a/docs/doctest_info/vcsvtk.report b/docs/doctest_info/vcsvtk.report new file mode 100644 index 000000000..eaced438f --- /dev/null +++ b/docs/doctest_info/vcsvtk.report @@ -0,0 +1,5 @@ +1 items had no tests: + vcs.vcsvtk +0 tests in 1 items. +0 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/vector.md b/docs/doctest_info/vector.md new file mode 100644 index 000000000..404e2758b --- /dev/null +++ b/docs/doctest_info/vector.md @@ -0,0 +1,10 @@ +vcs.vector.Gv.script +-------------------- +```python +Failed example: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expected nothing +Got: + DEPRECATED: Use linetype or setLineAttributes instead. +``` + diff --git a/docs/doctest_info/vector.results b/docs/doctest_info/vector.report similarity index 97% rename from docs/doctest_info/vector.results rename to docs/doctest_info/vector.report index f6713517d..fccfbf922 100644 --- a/docs/doctest_info/vector.results +++ b/docs/doctest_info/vector.report @@ -16,10 +16,6 @@ Failed example: Expected nothing Got: DEPRECATED: Use linetype or setLineAttributes instead. -Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. -Expecting nothing -ok 98 items had no tests: vcs.vector vcs.vector.Gv diff --git a/docs/doctest_info/vtk.results b/docs/doctest_info/vtk.results deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/doctest_info/vtk_ui.md b/docs/doctest_info/vtk_ui.md new file mode 100644 index 000000000..5bc10e552 --- /dev/null +++ b/docs/doctest_info/vtk_ui.md @@ -0,0 +1,3 @@ +Missing Doctests +---------------- +:x: vcs.vtk_ui diff --git a/docs/doctest_info/vtk_ui.results b/docs/doctest_info/vtk_ui.report similarity index 100% rename from docs/doctest_info/vtk_ui.results rename to docs/doctest_info/vtk_ui.report From 357f78ff7b16e917d2df63f8fe7d8a7825c989b9 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 7 Dec 2016 16:10:56 -0800 Subject: [PATCH 11/45] Added README.md with links to doctest logs --- docs/doctest_info/.colormap.results.swp | Bin 16384 -> 0 bytes docs/doctest_info/Canvas.md | 318 ++++++++++++------- docs/doctest_info/Pboxeslines.md | 30 +- docs/doctest_info/Pdata.md | 27 +- docs/doctest_info/Pformat.md | 36 ++- docs/doctest_info/Plegend.md | 42 ++- docs/doctest_info/Ptext.md | 27 +- docs/doctest_info/Pxlabels.md | 24 +- docs/doctest_info/Pxtickmarks.md | 24 +- docs/doctest_info/Pylabels.md | 24 +- docs/doctest_info/Pytickmarks.md | 24 +- docs/doctest_info/README.md | 46 +++ docs/doctest_info/VTKAnimate.md | 72 +++-- docs/doctest_info/VTKPlots.md | 180 +++++++---- docs/doctest_info/animate_helper.md | 240 +++++++++----- docs/doctest_info/boxfill.md | 291 +++++++++++------ docs/doctest_info/colorpicker.md | 42 ++- docs/doctest_info/colors.md | 6 +- docs/doctest_info/configurator.md | 156 ++++++--- docs/doctest_info/displayplot.md | 123 +++++--- docs/doctest_info/doctest_vcs.py | 15 +- docs/doctest_info/dv3d.md | 285 +++++++++++------ docs/doctest_info/editors.md | 3 +- docs/doctest_info/error.md | 12 +- docs/doctest_info/fillarea.md | 102 ++++-- docs/doctest_info/isofill.md | 249 ++++++++++----- docs/doctest_info/isoline.md | 342 +++++++++++++------- docs/doctest_info/line.md | 108 ++++--- docs/doctest_info/log_all_doctests.sh | 2 +- docs/doctest_info/manageElements.md | 75 +++-- docs/doctest_info/marker.md | 108 ++++--- docs/doctest_info/meshfill.md | 267 ++++++++++------ docs/doctest_info/projection.md | 336 +++++++++++++------- docs/doctest_info/queries.md | 3 +- docs/doctest_info/taylor.md | 399 ++++++++++++++++-------- docs/doctest_info/template.md | 219 ++++++++----- docs/doctest_info/textorientation.md | 69 ++-- docs/doctest_info/unified1D.md | 288 +++++++++++------ docs/doctest_info/utils.md | 93 ++++-- docs/doctest_info/vcs2vtk.md | 129 +++++--- docs/doctest_info/vcsvtk.md | 3 +- docs/doctest_info/vtk_ui.md | 3 +- 42 files changed, 3243 insertions(+), 1599 deletions(-) delete mode 100644 docs/doctest_info/.colormap.results.swp create mode 100644 docs/doctest_info/README.md diff --git a/docs/doctest_info/.colormap.results.swp b/docs/doctest_info/.colormap.results.swp deleted file mode 100644 index 696dfc1c3a03e06f997689d8ecc895cca5fdae26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI3%WvF79LJ|mC{P{+A)#J|l(HLSyzAZO(a;99Q5ykjp(I6AX<5zMvl};FkL8)o zLkJKO7fxJy;>rb%6+KY#s00!RkSh2S5H~7u;Q|5#-?6>UZn9|_B^0Q}(x;Ah9{$aD ze)AiTJ*}5tdF~V)v8x2fgM{ooKKbg;F9_0-gw$iP5LU~hI_YLdQwD;CJRWMOu(;FCn+vf%?}%*dhqkvJsC}0#Y3K#{9 z0!D%VpaRSzM6dPV)&Jo8e`o#w>jQ**53YgFz!eaJ^WYpf1D*u?!EUev{C+) zGWZC*4t&r6uYrfaUwaAp1dIb4{BR#3-+^y|08Q{H*a^0Q-|j^^_yT+iJ_ao?10DgF z?jhtIFb*uR3w*eTkhj4QxN$cj3LF8S;|0b=@Y8NW-UsKv8L%Jh0blMS zsov-ysUK48fUxtu4ik~xMspe#pI~Mv6lxYUOhGC>|RrnIOts55D2wwr;d_ujH} zR`OVu^1VPTWUdH3R^s8jELH5$QsCE1(UO`KVZ|Ql?EkT&rQC+9GnAN7tHtdwv0*x9 zF0V6pjuu-&DjIVayNRf)$40=U8XO}h7F{0c?L{^?Kj_BEx2uyp9r|#wI;iqb7&;#GIy4{b2UAFYf`jhH;rl($3&F; zY<2$7v6&vFs|pnRWwa0tvMq3h+tws!csTV#7agQ{$AC;x^bl9=IGeM2a`bJ&R+~M+ z!g~}iCO236Gz4dMZ*z);Y)BU%GNLTQ{=$NepA$(nl;!T5)wGca>fG58 zbaQgv)`*%;VE=AJ-JD#V2rK5+2-*zw>jvuQkz$Vr<5!xF7qV_Ge9@L}>_@6tXkfr9kR*8745*&`8`A=4^KpsLg`svPh*&$yJxXJO+kf8OO8bm z4?U^`?0+eF=Adb-v&m_>B`82{r>EipuHQ-^weFvt^|wr~TX3?YEMMFpE+_6fi3ip! z058Yfb*o}Wdwl*Bo6|m-dVA+t0o}YH;yJqDtJ&NqF^;rb&QyjiTDE8vlZR6-UsxVo zT~CTw0VLC(UWXO&n0tU~W4oWO*R^x=)6crMSRq9|f%O^wdi{SLYjVAY*X#ez_x-E5 z{s6oI^jiNJ@C4BLb^&u31&jhl0i%FXz$jo8FbWt2i~>dhqkvK1|EB;xp-kgz6;0po z;0oVj8~D!C#(y)n$w>aC6>o~t1n$|yDKCGobw<8wo30lKI4j2hdj7eIdltUOIW diff --git a/docs/doctest_info/Canvas.md b/docs/doctest_info/Canvas.md index 9c48f7dd8..109fea152 100644 --- a/docs/doctest_info/Canvas.md +++ b/docs/doctest_info/Canvas.md @@ -243,109 +243,215 @@ Got: Missing Doctests ---------------- -:x: vcs.Canvas -:x: vcs.Canvas.Canvas -:x: vcs.Canvas.Canvas._Canvas__new_elts -:x: vcs.Canvas.Canvas._Canvas__plot -:x: vcs.Canvas.Canvas.__init__ -:x: vcs.Canvas.Canvas._compute_margins -:x: vcs.Canvas.Canvas._compute_width_height -:x: vcs.Canvas.Canvas._continentspath -:x: vcs.Canvas.Canvas._datawc_tv -:x: vcs.Canvas.Canvas._get_user_actions -:x: vcs.Canvas.Canvas._get_user_actions_names -:x: vcs.Canvas.Canvas._getanimate -:x: vcs.Canvas.Canvas._getanimate_info -:x: vcs.Canvas.Canvas._getcanvas -:x: vcs.Canvas.Canvas._getisplottinggridded -:x: vcs.Canvas.Canvas._getmode -:x: vcs.Canvas.Canvas._getpausetime -:x: vcs.Canvas.Canvas._getvarglist -:x: vcs.Canvas.Canvas._getviewport -:x: vcs.Canvas.Canvas._getwinfo_id -:x: vcs.Canvas.Canvas._getworldcoordinate -:x: vcs.Canvas.Canvas._reconstruct_tv -:x: vcs.Canvas.Canvas._scriptrun -:x: vcs.Canvas.Canvas._set_user_actions -:x: vcs.Canvas.Canvas._set_user_actions_names -:x: vcs.Canvas.Canvas._setanimate -:x: vcs.Canvas.Canvas._setanimate_info -:x: vcs.Canvas.Canvas._setcanvas -:x: vcs.Canvas.Canvas._setisplottinggridded -:x: vcs.Canvas.Canvas._setmode -:x: vcs.Canvas.Canvas._setpausetime -:x: vcs.Canvas.Canvas._setvarglist -:x: vcs.Canvas.Canvas._setviewport -:x: vcs.Canvas.Canvas._setwinfo_id -:x: vcs.Canvas.Canvas._setworldcoordinate -:x: vcs.Canvas.Canvas.addfont -:x: vcs.Canvas.Canvas.animate -:x: vcs.Canvas.Canvas.animate_info -:x: vcs.Canvas.Canvas.canvas -:x: vcs.Canvas.Canvas.canvasid -:x: vcs.Canvas.Canvas.canvasinfo -:x: vcs.Canvas.Canvas.cgm -:x: vcs.Canvas.Canvas.change_display_graphic_method -:x: vcs.Canvas.Canvas.check_name_source -:x: vcs.Canvas.Canvas.clean_auto_generated_objects -:x: vcs.Canvas.Canvas.configure -:x: vcs.Canvas.Canvas.copyfontto -:x: vcs.Canvas.Canvas.create1d -:x: vcs.Canvas.Canvas.dual_scalar3d -:x: vcs.Canvas.Canvas.dummy_user_action -:x: vcs.Canvas.Canvas.endconfigure -:x: vcs.Canvas.Canvas.get1d -:x: vcs.Canvas.Canvas.get_selected_display -:x: vcs.Canvas.Canvas.getantialiasing -:x: vcs.Canvas.Canvas.getcolormapname -:x: vcs.Canvas.Canvas.getcontinentsline -:x: vcs.Canvas.Canvas.getfontname -:x: vcs.Canvas.Canvas.getfontnumber -:x: vcs.Canvas.Canvas.getplot -:x: vcs.Canvas.Canvas.gif -:x: vcs.Canvas.Canvas.grid -:x: vcs.Canvas.Canvas.gs -:x: vcs.Canvas.Canvas.initLogoDrawing -:x: vcs.Canvas.Canvas.interact -:x: vcs.Canvas.Canvas.isinfile -:x: vcs.Canvas.Canvas.isopened -:x: vcs.Canvas.Canvas.isplottinggridded -:x: vcs.Canvas.Canvas.match_color -:x: vcs.Canvas.Canvas.mode -:x: vcs.Canvas.Canvas.onClosing -:x: vcs.Canvas.Canvas.pause_time -:x: vcs.Canvas.Canvas.plot_annotation -:x: vcs.Canvas.Canvas.plot_filledcontinents -:x: vcs.Canvas.Canvas.processParameterChange -:x: vcs.Canvas.Canvas.put_png_on_canvas -:x: vcs.Canvas.Canvas.raisecanvas -:x: vcs.Canvas.Canvas.removeP -:x: vcs.Canvas.Canvas.remove_display_name -:x: vcs.Canvas.Canvas.return_display_names -:x: vcs.Canvas.Canvas.savecontinentstype -:x: vcs.Canvas.Canvas.scalar3d -:x: vcs.Canvas.Canvas.scriptrun -:x: vcs.Canvas.Canvas.setAnimationStepper -:x: vcs.Canvas.Canvas.setantialiasing -:x: vcs.Canvas.Canvas.setdefaultfont -:x: vcs.Canvas.Canvas.show -:x: vcs.Canvas.Canvas.start -:x: vcs.Canvas.Canvas.switchfonts -:x: vcs.Canvas.Canvas.updateorientation -:x: vcs.Canvas.Canvas.user_actions -:x: vcs.Canvas.Canvas.user_actions_names -:x: vcs.Canvas.Canvas.varglist -:x: vcs.Canvas.Canvas.vector3d -:x: vcs.Canvas.Canvas.viewport -:x: vcs.Canvas.Canvas.winfo_id -:x: vcs.Canvas.Canvas.worldcoordinate -:x: vcs.Canvas.SIGNAL -:x: vcs.Canvas.SIGNAL.__call__ -:x: vcs.Canvas.SIGNAL.__init__ -:x: vcs.Canvas.SIGNAL.clear -:x: vcs.Canvas.SIGNAL.connect -:x: vcs.Canvas.SIGNAL.disconnect -:x: vcs.Canvas._determine_arg_list -:x: vcs.Canvas._process_keyword -:x: vcs.Canvas.change_date_time -:x: vcs.Canvas.dictionarytovcslist +:x:``` vcs.Canvas``` + +:x:``` vcs.Canvas.Canvas``` + +:x:``` vcs.Canvas.Canvas._Canvas__new_elts``` + +:x:``` vcs.Canvas.Canvas._Canvas__plot``` + +:x:``` vcs.Canvas.Canvas.__init__``` + +:x:``` vcs.Canvas.Canvas._compute_margins``` + +:x:``` vcs.Canvas.Canvas._compute_width_height``` + +:x:``` vcs.Canvas.Canvas._continentspath``` + +:x:``` vcs.Canvas.Canvas._datawc_tv``` + +:x:``` vcs.Canvas.Canvas._get_user_actions``` + +:x:``` vcs.Canvas.Canvas._get_user_actions_names``` + +:x:``` vcs.Canvas.Canvas._getanimate``` + +:x:``` vcs.Canvas.Canvas._getanimate_info``` + +:x:``` vcs.Canvas.Canvas._getcanvas``` + +:x:``` vcs.Canvas.Canvas._getisplottinggridded``` + +:x:``` vcs.Canvas.Canvas._getmode``` + +:x:``` vcs.Canvas.Canvas._getpausetime``` + +:x:``` vcs.Canvas.Canvas._getvarglist``` + +:x:``` vcs.Canvas.Canvas._getviewport``` + +:x:``` vcs.Canvas.Canvas._getwinfo_id``` + +:x:``` vcs.Canvas.Canvas._getworldcoordinate``` + +:x:``` vcs.Canvas.Canvas._reconstruct_tv``` + +:x:``` vcs.Canvas.Canvas._scriptrun``` + +:x:``` vcs.Canvas.Canvas._set_user_actions``` + +:x:``` vcs.Canvas.Canvas._set_user_actions_names``` + +:x:``` vcs.Canvas.Canvas._setanimate``` + +:x:``` vcs.Canvas.Canvas._setanimate_info``` + +:x:``` vcs.Canvas.Canvas._setcanvas``` + +:x:``` vcs.Canvas.Canvas._setisplottinggridded``` + +:x:``` vcs.Canvas.Canvas._setmode``` + +:x:``` vcs.Canvas.Canvas._setpausetime``` + +:x:``` vcs.Canvas.Canvas._setvarglist``` + +:x:``` vcs.Canvas.Canvas._setviewport``` + +:x:``` vcs.Canvas.Canvas._setwinfo_id``` + +:x:``` vcs.Canvas.Canvas._setworldcoordinate``` + +:x:``` vcs.Canvas.Canvas.addfont``` + +:x:``` vcs.Canvas.Canvas.animate``` + +:x:``` vcs.Canvas.Canvas.animate_info``` + +:x:``` vcs.Canvas.Canvas.canvas``` + +:x:``` vcs.Canvas.Canvas.canvasid``` + +:x:``` vcs.Canvas.Canvas.canvasinfo``` + +:x:``` vcs.Canvas.Canvas.cgm``` + +:x:``` vcs.Canvas.Canvas.change_display_graphic_method``` + +:x:``` vcs.Canvas.Canvas.check_name_source``` + +:x:``` vcs.Canvas.Canvas.clean_auto_generated_objects``` + +:x:``` vcs.Canvas.Canvas.configure``` + +:x:``` vcs.Canvas.Canvas.copyfontto``` + +:x:``` vcs.Canvas.Canvas.create1d``` + +:x:``` vcs.Canvas.Canvas.dual_scalar3d``` + +:x:``` vcs.Canvas.Canvas.dummy_user_action``` + +:x:``` vcs.Canvas.Canvas.endconfigure``` + +:x:``` vcs.Canvas.Canvas.get1d``` + +:x:``` vcs.Canvas.Canvas.get_selected_display``` + +:x:``` vcs.Canvas.Canvas.getantialiasing``` + +:x:``` vcs.Canvas.Canvas.getcolormapname``` + +:x:``` vcs.Canvas.Canvas.getcontinentsline``` + +:x:``` vcs.Canvas.Canvas.getfontname``` + +:x:``` vcs.Canvas.Canvas.getfontnumber``` + +:x:``` vcs.Canvas.Canvas.getplot``` + +:x:``` vcs.Canvas.Canvas.gif``` + +:x:``` vcs.Canvas.Canvas.grid``` + +:x:``` vcs.Canvas.Canvas.gs``` + +:x:``` vcs.Canvas.Canvas.initLogoDrawing``` + +:x:``` vcs.Canvas.Canvas.interact``` + +:x:``` vcs.Canvas.Canvas.isinfile``` + +:x:``` vcs.Canvas.Canvas.isopened``` + +:x:``` vcs.Canvas.Canvas.isplottinggridded``` + +:x:``` vcs.Canvas.Canvas.match_color``` + +:x:``` vcs.Canvas.Canvas.mode``` + +:x:``` vcs.Canvas.Canvas.onClosing``` + +:x:``` vcs.Canvas.Canvas.pause_time``` + +:x:``` vcs.Canvas.Canvas.plot_annotation``` + +:x:``` vcs.Canvas.Canvas.plot_filledcontinents``` + +:x:``` vcs.Canvas.Canvas.processParameterChange``` + +:x:``` vcs.Canvas.Canvas.put_png_on_canvas``` + +:x:``` vcs.Canvas.Canvas.raisecanvas``` + +:x:``` vcs.Canvas.Canvas.removeP``` + +:x:``` vcs.Canvas.Canvas.remove_display_name``` + +:x:``` vcs.Canvas.Canvas.return_display_names``` + +:x:``` vcs.Canvas.Canvas.savecontinentstype``` + +:x:``` vcs.Canvas.Canvas.scalar3d``` + +:x:``` vcs.Canvas.Canvas.scriptrun``` + +:x:``` vcs.Canvas.Canvas.setAnimationStepper``` + +:x:``` vcs.Canvas.Canvas.setantialiasing``` + +:x:``` vcs.Canvas.Canvas.setdefaultfont``` + +:x:``` vcs.Canvas.Canvas.show``` + +:x:``` vcs.Canvas.Canvas.start``` + +:x:``` vcs.Canvas.Canvas.switchfonts``` + +:x:``` vcs.Canvas.Canvas.updateorientation``` + +:x:``` vcs.Canvas.Canvas.user_actions``` + +:x:``` vcs.Canvas.Canvas.user_actions_names``` + +:x:``` vcs.Canvas.Canvas.varglist``` + +:x:``` vcs.Canvas.Canvas.vector3d``` + +:x:``` vcs.Canvas.Canvas.viewport``` + +:x:``` vcs.Canvas.Canvas.winfo_id``` + +:x:``` vcs.Canvas.Canvas.worldcoordinate``` + +:x:``` vcs.Canvas.SIGNAL``` + +:x:``` vcs.Canvas.SIGNAL.__call__``` + +:x:``` vcs.Canvas.SIGNAL.__init__``` + +:x:``` vcs.Canvas.SIGNAL.clear``` + +:x:``` vcs.Canvas.SIGNAL.connect``` + +:x:``` vcs.Canvas.SIGNAL.disconnect``` + +:x:``` vcs.Canvas._determine_arg_list``` + +:x:``` vcs.Canvas._process_keyword``` + +:x:``` vcs.Canvas.change_date_time``` + +:x:``` vcs.Canvas.dictionarytovcslist``` + diff --git a/docs/doctest_info/Pboxeslines.md b/docs/doctest_info/Pboxeslines.md index c769d95bd..ad0d440c3 100644 --- a/docs/doctest_info/Pboxeslines.md +++ b/docs/doctest_info/Pboxeslines.md @@ -1,12 +1,22 @@ Missing Doctests ---------------- -:x: vcs.Pboxeslines -:x: vcs.Pboxeslines.Pbl -:x: vcs.Pboxeslines.Pbl.__init__ -:x: vcs.Pboxeslines.Pbl.line -:x: vcs.Pboxeslines.Pbl.list -:x: vcs.Pboxeslines.Pbl.priority -:x: vcs.Pboxeslines.Pbl.x1 -:x: vcs.Pboxeslines.Pbl.x2 -:x: vcs.Pboxeslines.Pbl.y1 -:x: vcs.Pboxeslines.Pbl.y2 +:x:``` vcs.Pboxeslines``` + +:x:``` vcs.Pboxeslines.Pbl``` + +:x:``` vcs.Pboxeslines.Pbl.__init__``` + +:x:``` vcs.Pboxeslines.Pbl.line``` + +:x:``` vcs.Pboxeslines.Pbl.list``` + +:x:``` vcs.Pboxeslines.Pbl.priority``` + +:x:``` vcs.Pboxeslines.Pbl.x1``` + +:x:``` vcs.Pboxeslines.Pbl.x2``` + +:x:``` vcs.Pboxeslines.Pbl.y1``` + +:x:``` vcs.Pboxeslines.Pbl.y2``` + diff --git a/docs/doctest_info/Pdata.md b/docs/doctest_info/Pdata.md index dd1e50094..6315adc83 100644 --- a/docs/doctest_info/Pdata.md +++ b/docs/doctest_info/Pdata.md @@ -1,11 +1,20 @@ Missing Doctests ---------------- -:x: vcs.Pdata -:x: vcs.Pdata.Pds -:x: vcs.Pdata.Pds.__init__ -:x: vcs.Pdata.Pds.list -:x: vcs.Pdata.Pds.priority -:x: vcs.Pdata.Pds.x1 -:x: vcs.Pdata.Pds.x2 -:x: vcs.Pdata.Pds.y1 -:x: vcs.Pdata.Pds.y2 +:x:``` vcs.Pdata``` + +:x:``` vcs.Pdata.Pds``` + +:x:``` vcs.Pdata.Pds.__init__``` + +:x:``` vcs.Pdata.Pds.list``` + +:x:``` vcs.Pdata.Pds.priority``` + +:x:``` vcs.Pdata.Pds.x1``` + +:x:``` vcs.Pdata.Pds.x2``` + +:x:``` vcs.Pdata.Pds.y1``` + +:x:``` vcs.Pdata.Pds.y2``` + diff --git a/docs/doctest_info/Pformat.md b/docs/doctest_info/Pformat.md index 33eabece7..d84d33c37 100644 --- a/docs/doctest_info/Pformat.md +++ b/docs/doctest_info/Pformat.md @@ -1,14 +1,26 @@ Missing Doctests ---------------- -:x: vcs.Pformat -:x: vcs.Pformat.Pf -:x: vcs.Pformat.Pf.__init__ -:x: vcs.Pformat.Pf._getformat -:x: vcs.Pformat.Pf._setformat -:x: vcs.Pformat.Pf.format -:x: vcs.Pformat.Pf.list -:x: vcs.Pformat.Pf.priority -:x: vcs.Pformat.Pf.textorientation -:x: vcs.Pformat.Pf.texttable -:x: vcs.Pformat.Pf.x -:x: vcs.Pformat.Pf.y +:x:``` vcs.Pformat``` + +:x:``` vcs.Pformat.Pf``` + +:x:``` vcs.Pformat.Pf.__init__``` + +:x:``` vcs.Pformat.Pf._getformat``` + +:x:``` vcs.Pformat.Pf._setformat``` + +:x:``` vcs.Pformat.Pf.format``` + +:x:``` vcs.Pformat.Pf.list``` + +:x:``` vcs.Pformat.Pf.priority``` + +:x:``` vcs.Pformat.Pf.textorientation``` + +:x:``` vcs.Pformat.Pf.texttable``` + +:x:``` vcs.Pformat.Pf.x``` + +:x:``` vcs.Pformat.Pf.y``` + diff --git a/docs/doctest_info/Plegend.md b/docs/doctest_info/Plegend.md index f6752b1ef..02012a145 100644 --- a/docs/doctest_info/Plegend.md +++ b/docs/doctest_info/Plegend.md @@ -1,16 +1,30 @@ Missing Doctests ---------------- -:x: vcs.Plegend -:x: vcs.Plegend.Pls -:x: vcs.Plegend.Pls.__init__ -:x: vcs.Plegend.Pls.arrow -:x: vcs.Plegend.Pls.line -:x: vcs.Plegend.Pls.list -:x: vcs.Plegend.Pls.offset -:x: vcs.Plegend.Pls.priority -:x: vcs.Plegend.Pls.textorientation -:x: vcs.Plegend.Pls.texttable -:x: vcs.Plegend.Pls.x1 -:x: vcs.Plegend.Pls.x2 -:x: vcs.Plegend.Pls.y1 -:x: vcs.Plegend.Pls.y2 +:x:``` vcs.Plegend``` + +:x:``` vcs.Plegend.Pls``` + +:x:``` vcs.Plegend.Pls.__init__``` + +:x:``` vcs.Plegend.Pls.arrow``` + +:x:``` vcs.Plegend.Pls.line``` + +:x:``` vcs.Plegend.Pls.list``` + +:x:``` vcs.Plegend.Pls.offset``` + +:x:``` vcs.Plegend.Pls.priority``` + +:x:``` vcs.Plegend.Pls.textorientation``` + +:x:``` vcs.Plegend.Pls.texttable``` + +:x:``` vcs.Plegend.Pls.x1``` + +:x:``` vcs.Plegend.Pls.x2``` + +:x:``` vcs.Plegend.Pls.y1``` + +:x:``` vcs.Plegend.Pls.y2``` + diff --git a/docs/doctest_info/Ptext.md b/docs/doctest_info/Ptext.md index 95a830b09..ed6eb7c8c 100644 --- a/docs/doctest_info/Ptext.md +++ b/docs/doctest_info/Ptext.md @@ -1,11 +1,20 @@ Missing Doctests ---------------- -:x: vcs.Ptext -:x: vcs.Ptext.Pt -:x: vcs.Ptext.Pt.__init__ -:x: vcs.Ptext.Pt.list -:x: vcs.Ptext.Pt.priority -:x: vcs.Ptext.Pt.textorientation -:x: vcs.Ptext.Pt.texttable -:x: vcs.Ptext.Pt.x -:x: vcs.Ptext.Pt.y +:x:``` vcs.Ptext``` + +:x:``` vcs.Ptext.Pt``` + +:x:``` vcs.Ptext.Pt.__init__``` + +:x:``` vcs.Ptext.Pt.list``` + +:x:``` vcs.Ptext.Pt.priority``` + +:x:``` vcs.Ptext.Pt.textorientation``` + +:x:``` vcs.Ptext.Pt.texttable``` + +:x:``` vcs.Ptext.Pt.x``` + +:x:``` vcs.Ptext.Pt.y``` + diff --git a/docs/doctest_info/Pxlabels.md b/docs/doctest_info/Pxlabels.md index e51af6c17..7a3a2cdca 100644 --- a/docs/doctest_info/Pxlabels.md +++ b/docs/doctest_info/Pxlabels.md @@ -1,10 +1,18 @@ Missing Doctests ---------------- -:x: vcs.Pxlabels -:x: vcs.Pxlabels.Pxl -:x: vcs.Pxlabels.Pxl.__init__ -:x: vcs.Pxlabels.Pxl.list -:x: vcs.Pxlabels.Pxl.priority -:x: vcs.Pxlabels.Pxl.textorientation -:x: vcs.Pxlabels.Pxl.texttable -:x: vcs.Pxlabels.Pxl.y +:x:``` vcs.Pxlabels``` + +:x:``` vcs.Pxlabels.Pxl``` + +:x:``` vcs.Pxlabels.Pxl.__init__``` + +:x:``` vcs.Pxlabels.Pxl.list``` + +:x:``` vcs.Pxlabels.Pxl.priority``` + +:x:``` vcs.Pxlabels.Pxl.textorientation``` + +:x:``` vcs.Pxlabels.Pxl.texttable``` + +:x:``` vcs.Pxlabels.Pxl.y``` + diff --git a/docs/doctest_info/Pxtickmarks.md b/docs/doctest_info/Pxtickmarks.md index 7fe13151a..5d87807fb 100644 --- a/docs/doctest_info/Pxtickmarks.md +++ b/docs/doctest_info/Pxtickmarks.md @@ -1,10 +1,18 @@ Missing Doctests ---------------- -:x: vcs.Pxtickmarks -:x: vcs.Pxtickmarks.Pxt -:x: vcs.Pxtickmarks.Pxt.__init__ -:x: vcs.Pxtickmarks.Pxt.line -:x: vcs.Pxtickmarks.Pxt.list -:x: vcs.Pxtickmarks.Pxt.priority -:x: vcs.Pxtickmarks.Pxt.y1 -:x: vcs.Pxtickmarks.Pxt.y2 +:x:``` vcs.Pxtickmarks``` + +:x:``` vcs.Pxtickmarks.Pxt``` + +:x:``` vcs.Pxtickmarks.Pxt.__init__``` + +:x:``` vcs.Pxtickmarks.Pxt.line``` + +:x:``` vcs.Pxtickmarks.Pxt.list``` + +:x:``` vcs.Pxtickmarks.Pxt.priority``` + +:x:``` vcs.Pxtickmarks.Pxt.y1``` + +:x:``` vcs.Pxtickmarks.Pxt.y2``` + diff --git a/docs/doctest_info/Pylabels.md b/docs/doctest_info/Pylabels.md index d31a05a1b..723e10b1a 100644 --- a/docs/doctest_info/Pylabels.md +++ b/docs/doctest_info/Pylabels.md @@ -1,10 +1,18 @@ Missing Doctests ---------------- -:x: vcs.Pylabels -:x: vcs.Pylabels.Pyl -:x: vcs.Pylabels.Pyl.__init__ -:x: vcs.Pylabels.Pyl.list -:x: vcs.Pylabels.Pyl.priority -:x: vcs.Pylabels.Pyl.textorientation -:x: vcs.Pylabels.Pyl.texttable -:x: vcs.Pylabels.Pyl.x +:x:``` vcs.Pylabels``` + +:x:``` vcs.Pylabels.Pyl``` + +:x:``` vcs.Pylabels.Pyl.__init__``` + +:x:``` vcs.Pylabels.Pyl.list``` + +:x:``` vcs.Pylabels.Pyl.priority``` + +:x:``` vcs.Pylabels.Pyl.textorientation``` + +:x:``` vcs.Pylabels.Pyl.texttable``` + +:x:``` vcs.Pylabels.Pyl.x``` + diff --git a/docs/doctest_info/Pytickmarks.md b/docs/doctest_info/Pytickmarks.md index 802b97d87..0c2295118 100644 --- a/docs/doctest_info/Pytickmarks.md +++ b/docs/doctest_info/Pytickmarks.md @@ -1,10 +1,18 @@ Missing Doctests ---------------- -:x: vcs.Pytickmarks -:x: vcs.Pytickmarks.Pyt -:x: vcs.Pytickmarks.Pyt.__init__ -:x: vcs.Pytickmarks.Pyt.line -:x: vcs.Pytickmarks.Pyt.list -:x: vcs.Pytickmarks.Pyt.priority -:x: vcs.Pytickmarks.Pyt.x1 -:x: vcs.Pytickmarks.Pyt.x2 +:x:``` vcs.Pytickmarks``` + +:x:``` vcs.Pytickmarks.Pyt``` + +:x:``` vcs.Pytickmarks.Pyt.__init__``` + +:x:``` vcs.Pytickmarks.Pyt.line``` + +:x:``` vcs.Pytickmarks.Pyt.list``` + +:x:``` vcs.Pytickmarks.Pyt.priority``` + +:x:``` vcs.Pytickmarks.Pyt.x1``` + +:x:``` vcs.Pytickmarks.Pyt.x2``` + diff --git a/docs/doctest_info/README.md b/docs/doctest_info/README.md new file mode 100644 index 000000000..f1342f017 --- /dev/null +++ b/docs/doctest_info/README.md @@ -0,0 +1,46 @@ +Doctest Info +------------ +[Canvas] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Canvas.md) +[Pboxeslines] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pboxeslines.md) +[Pdata] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pdata.md) +[Pformat] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pformat.md) +[Plegend] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Plegend.md) +[Ptext] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Ptext.md) +[Pxlabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pxlabels.md) +[Pxtickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pxtickmarks.md) +[Pylabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pylabels.md) +[Pytickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pytickmarks.md) +[validation_functions] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/validation_functions.md) +[VTKAnimate] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/VTKAnimate.md) +[VTKPlots] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/VTKPlots.md) +[animate_helper] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/animate_helper.md) +[boxfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/boxfill.md) +[colormap] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colormap.md) +[colorpicker] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colorpicker.md) +[colors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colors.md) +[configurator] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/configurator.md) +[displayplot] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/displayplot.md) +[dv3d] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/dv3d.md) +[editors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/editors.md) +[error] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/error.md) +[fillarea] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/fillarea.md) +[isofill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/isofill.md) +[isoline] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/isoline.md) +[line] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/line.md) +[manageElements] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/manageElements.md) +[marker] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/marker.md) +[meshfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/meshfill.md) +[projection] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/projection.md) +[queries] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/queries.md) +[taylor] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/taylor.md) +[template] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/template.md) +[textcombined] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/textcombined.md) +[textorientation] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/textorientation.md) +[texttable] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/texttable.md) +[unified1D] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/unified1D.md) +[utils] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/utils.md) +[vcs2vtk] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcs2vtk.md) +[vcshelp] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcshelp.md) +[vcsvtk] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcsvtk.md) +[vector] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vector.md) +[vtk_ui] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vtk_ui.md) diff --git a/docs/doctest_info/VTKAnimate.md b/docs/doctest_info/VTKAnimate.md index 1e2f1284c..4a04c7e45 100644 --- a/docs/doctest_info/VTKAnimate.md +++ b/docs/doctest_info/VTKAnimate.md @@ -1,26 +1,50 @@ Missing Doctests ---------------- -:x: vcs.VTKAnimate -:x: vcs.VTKAnimate.VTKAnimate -:x: vcs.VTKAnimate.VTKAnimate.__init__ -:x: vcs.VTKAnimate.VTKAnimate.draw_frame -:x: vcs.VTKAnimate.VTKAnimate.extract_renderers -:x: vcs.VTKAnimate.VTKAnimate.frame -:x: vcs.VTKAnimate.VTKAnimate.modified -:x: vcs.VTKAnimate.VTKAnimate.plot_to_canvas -:x: vcs.VTKAnimate.VTKAnimate.reclaim_renderers -:x: vcs.VTKAnimate.VTKAnimate.reset -:x: vcs.VTKAnimate.VTKAnimate.stop -:x: vcs.VTKAnimate.VTKAnimationCreate -:x: vcs.VTKAnimate.VTKAnimationCreate.__init__ -:x: vcs.VTKAnimate.VTKAnimationCreate.close -:x: vcs.VTKAnimate.VTKAnimationCreate.create_prefix -:x: vcs.VTKAnimate.VTKAnimationCreate.describe -:x: vcs.VTKAnimate.VTKAnimationCreate.draw_frame -:x: vcs.VTKAnimate.VTKAnimationCreate.get_frame -:x: vcs.VTKAnimate.VTKAnimationCreate.get_frame_name -:x: vcs.VTKAnimate.VTKAnimationCreate.run -:x: vcs.VTKAnimate.VTKAnimationPlayback -:x: vcs.VTKAnimate.VTKAnimationPlayback.__init__ -:x: vcs.VTKAnimate.VTKAnimationPlayback.run -:x: vcs.VTKAnimate.update_input +:x:``` vcs.VTKAnimate``` + +:x:``` vcs.VTKAnimate.VTKAnimate``` + +:x:``` vcs.VTKAnimate.VTKAnimate.__init__``` + +:x:``` vcs.VTKAnimate.VTKAnimate.draw_frame``` + +:x:``` vcs.VTKAnimate.VTKAnimate.extract_renderers``` + +:x:``` vcs.VTKAnimate.VTKAnimate.frame``` + +:x:``` vcs.VTKAnimate.VTKAnimate.modified``` + +:x:``` vcs.VTKAnimate.VTKAnimate.plot_to_canvas``` + +:x:``` vcs.VTKAnimate.VTKAnimate.reclaim_renderers``` + +:x:``` vcs.VTKAnimate.VTKAnimate.reset``` + +:x:``` vcs.VTKAnimate.VTKAnimate.stop``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate.__init__``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate.close``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate.create_prefix``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate.describe``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate.draw_frame``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate.get_frame``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate.get_frame_name``` + +:x:``` vcs.VTKAnimate.VTKAnimationCreate.run``` + +:x:``` vcs.VTKAnimate.VTKAnimationPlayback``` + +:x:``` vcs.VTKAnimate.VTKAnimationPlayback.__init__``` + +:x:``` vcs.VTKAnimate.VTKAnimationPlayback.run``` + +:x:``` vcs.VTKAnimate.update_input``` + diff --git a/docs/doctest_info/VTKPlots.md b/docs/doctest_info/VTKPlots.md index 585bf1ab0..024ba8211 100644 --- a/docs/doctest_info/VTKPlots.md +++ b/docs/doctest_info/VTKPlots.md @@ -1,62 +1,122 @@ Missing Doctests ---------------- -:x: vcs.VTKPlots -:x: vcs.VTKPlots.VCSInteractorStyle -:x: vcs.VTKPlots.VCSInteractorStyle.__init__ -:x: vcs.VTKPlots.VTKVCSBackend -:x: vcs.VTKPlots.VTKVCSBackend.Animate -:x: vcs.VTKPlots.VTKVCSBackend.__init__ -:x: vcs.VTKPlots.VTKVCSBackend.canvasinfo -:x: vcs.VTKPlots.VTKVCSBackend.cgm -:x: vcs.VTKPlots.VTKVCSBackend.cleanupData -:x: vcs.VTKPlots.VTKVCSBackend.clear -:x: vcs.VTKPlots.VTKVCSBackend.close -:x: vcs.VTKPlots.VTKVCSBackend.configureEvent -:x: vcs.VTKPlots.VTKVCSBackend.createDefaultInteractor -:x: vcs.VTKPlots.VTKVCSBackend.createLogo -:x: vcs.VTKPlots.VTKVCSBackend.createRenWin -:x: vcs.VTKPlots.VTKVCSBackend.createRenderer -:x: vcs.VTKPlots.VTKVCSBackend.endEvent -:x: vcs.VTKPlots.VTKVCSBackend.fitToViewport -:x: vcs.VTKPlots.VTKVCSBackend.flush -:x: vcs.VTKPlots.VTKVCSBackend.geometry -:x: vcs.VTKPlots.VTKVCSBackend.get3DPlot -:x: vcs.VTKPlots.VTKVCSBackend.getantialiasing -:x: vcs.VTKPlots.VTKVCSBackend.gettextextent -:x: vcs.VTKPlots.VTKVCSBackend.gif -:x: vcs.VTKPlots.VTKVCSBackend.hideGUI -:x: vcs.VTKPlots.VTKVCSBackend.initialSize -:x: vcs.VTKPlots.VTKVCSBackend.interact -:x: vcs.VTKPlots.VTKVCSBackend.isopened -:x: vcs.VTKPlots.VTKVCSBackend.landscape -:x: vcs.VTKPlots.VTKVCSBackend.leftButtonPressEvent -:x: vcs.VTKPlots.VTKVCSBackend.leftButtonReleaseEvent -:x: vcs.VTKPlots.VTKVCSBackend.onClosing -:x: vcs.VTKPlots.VTKVCSBackend.open -:x: vcs.VTKPlots.VTKVCSBackend.orientation -:x: vcs.VTKPlots.VTKVCSBackend.pdf -:x: vcs.VTKPlots.VTKVCSBackend.plot -:x: vcs.VTKPlots.VTKVCSBackend.plot3D -:x: vcs.VTKPlots.VTKVCSBackend.plotContinents -:x: vcs.VTKPlots.VTKVCSBackend.png -:x: vcs.VTKPlots.VTKVCSBackend.png_dimensions -:x: vcs.VTKPlots.VTKVCSBackend.portrait -:x: vcs.VTKPlots.VTKVCSBackend.postscript -:x: vcs.VTKPlots.VTKVCSBackend.put_img_on_canvas -:x: vcs.VTKPlots.VTKVCSBackend.put_png_on_canvas -:x: vcs.VTKPlots.VTKVCSBackend.raisecanvas -:x: vcs.VTKPlots.VTKVCSBackend.renderColorBar -:x: vcs.VTKPlots.VTKVCSBackend.renderEvent -:x: vcs.VTKPlots.VTKVCSBackend.renderTemplate -:x: vcs.VTKPlots.VTKVCSBackend.resize_or_rotate_window -:x: vcs.VTKPlots.VTKVCSBackend.scaleLogo -:x: vcs.VTKPlots.VTKVCSBackend.setAnimationStepper -:x: vcs.VTKPlots.VTKVCSBackend.setLayer -:x: vcs.VTKPlots.VTKVCSBackend.setantialiasing -:x: vcs.VTKPlots.VTKVCSBackend.showGUI -:x: vcs.VTKPlots.VTKVCSBackend.svg -:x: vcs.VTKPlots.VTKVCSBackend.trimData1D -:x: vcs.VTKPlots.VTKVCSBackend.trimData2D -:x: vcs.VTKPlots.VTKVCSBackend.update -:x: vcs.VTKPlots.VTKVCSBackend.update_input -:x: vcs.VTKPlots.VTKVCSBackend.vectorGraphics +:x:``` vcs.VTKPlots``` + +:x:``` vcs.VTKPlots.VCSInteractorStyle``` + +:x:``` vcs.VTKPlots.VCSInteractorStyle.__init__``` + +:x:``` vcs.VTKPlots.VTKVCSBackend``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.Animate``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.__init__``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.canvasinfo``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.cgm``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.cleanupData``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.clear``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.close``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.configureEvent``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.createDefaultInteractor``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.createLogo``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.createRenWin``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.createRenderer``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.endEvent``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.fitToViewport``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.flush``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.geometry``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.get3DPlot``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.getantialiasing``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.gettextextent``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.gif``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.hideGUI``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.initialSize``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.interact``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.isopened``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.landscape``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.leftButtonPressEvent``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.leftButtonReleaseEvent``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.onClosing``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.open``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.orientation``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.pdf``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.plot``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.plot3D``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.plotContinents``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.png``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.png_dimensions``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.portrait``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.postscript``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.put_img_on_canvas``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.put_png_on_canvas``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.raisecanvas``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.renderColorBar``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.renderEvent``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.renderTemplate``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.resize_or_rotate_window``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.scaleLogo``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.setAnimationStepper``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.setLayer``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.setantialiasing``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.showGUI``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.svg``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.trimData1D``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.trimData2D``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.update``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.update_input``` + +:x:``` vcs.VTKPlots.VTKVCSBackend.vectorGraphics``` + diff --git a/docs/doctest_info/animate_helper.md b/docs/doctest_info/animate_helper.md index e00a2cc7b..cbe82822e 100644 --- a/docs/doctest_info/animate_helper.md +++ b/docs/doctest_info/animate_helper.md @@ -1,82 +1,162 @@ Missing Doctests ---------------- -:x: vcs.animate_helper -:x: vcs.animate_helper.AnimationController -:x: vcs.animate_helper.AnimationController.__init__ -:x: vcs.animate_helper.AnimationController.close -:x: vcs.animate_helper.AnimationController.create -:x: vcs.animate_helper.AnimationController.create_pause -:x: vcs.animate_helper.AnimationController.create_resume -:x: vcs.animate_helper.AnimationController.create_stop -:x: vcs.animate_helper.AnimationController.created -:x: vcs.animate_helper.AnimationController.draw_frame -:x: vcs.animate_helper.AnimationController.fps -:x: vcs.animate_helper.AnimationController.generate_number_of_frames -:x: vcs.animate_helper.AnimationController.get_all_frame_args -:x: vcs.animate_helper.AnimationController.horizontal -:x: vcs.animate_helper.AnimationController.initialize_create_canvas -:x: vcs.animate_helper.AnimationController.is_playing -:x: vcs.animate_helper.AnimationController.number_of_frames -:x: vcs.animate_helper.AnimationController.pause -:x: vcs.animate_helper.AnimationController.playback_pause -:x: vcs.animate_helper.AnimationController.playback_resume -:x: vcs.animate_helper.AnimationController.playback_stop -:x: vcs.animate_helper.AnimationController.render_frame -:x: vcs.animate_helper.AnimationController.reset_file_paths -:x: vcs.animate_helper.AnimationController.run -:x: vcs.animate_helper.AnimationController.save -:x: vcs.animate_helper.AnimationController.set_anim_min_max -:x: vcs.animate_helper.AnimationController.set_signals -:x: vcs.animate_helper.AnimationController.stop -:x: vcs.animate_helper.AnimationController.vertical -:x: vcs.animate_helper.AnimationController.zoom -:x: vcs.animate_helper.AnimationCreate -:x: vcs.animate_helper.AnimationCreate.__init__ -:x: vcs.animate_helper.AnimationCreate.run -:x: vcs.animate_helper.AnimationCreateParams -:x: vcs.animate_helper.AnimationCreateParams.__init__ -:x: vcs.animate_helper.AnimationPlayback -:x: vcs.animate_helper.AnimationPlayback.__init__ -:x: vcs.animate_helper.AnimationPlayback.run -:x: vcs.animate_helper.AnimationPlaybackParams -:x: vcs.animate_helper.AnimationPlaybackParams.__init__ -:x: vcs.animate_helper.AnimationPlaybackParams.fps -:x: vcs.animate_helper.AnimationPlaybackParams.horizontal -:x: vcs.animate_helper.AnimationPlaybackParams.vertical -:x: vcs.animate_helper.AnimationPlaybackParams.zoom -:x: vcs.animate_helper.RT -:x: vcs.animate_helper.RT.__init__ -:x: vcs.animate_helper.RT.start -:x: vcs.animate_helper.RT.stop -:x: vcs.animate_helper.StoppableThread -:x: vcs.animate_helper.StoppableThread.__init__ -:x: vcs.animate_helper.StoppableThread.is_stopped -:x: vcs.animate_helper.StoppableThread.pause -:x: vcs.animate_helper.StoppableThread.resume -:x: vcs.animate_helper.StoppableThread.stop -:x: vcs.animate_helper.StoppableThread.wait_if_paused -:x: vcs.animate_helper.animate_obj_old -:x: vcs.animate_helper.animate_obj_old.__init__ -:x: vcs.animate_helper.animate_obj_old.animate_info_from_python -:x: vcs.animate_helper.animate_obj_old.close -:x: vcs.animate_helper.animate_obj_old.create -:x: vcs.animate_helper.animate_obj_old.creating_animation_flg -:x: vcs.animate_helper.animate_obj_old.direction -:x: vcs.animate_helper.animate_obj_old.frame -:x: vcs.animate_helper.animate_obj_old.horizontal -:x: vcs.animate_helper.animate_obj_old.load_from_file -:x: vcs.animate_helper.animate_obj_old.mode -:x: vcs.animate_helper.animate_obj_old.number_of_frames -:x: vcs.animate_helper.animate_obj_old.pause -:x: vcs.animate_helper.animate_obj_old.restore_min_max -:x: vcs.animate_helper.animate_obj_old.return_animation_min_max -:x: vcs.animate_helper.animate_obj_old.run -:x: vcs.animate_helper.animate_obj_old.run_animation_flg -:x: vcs.animate_helper.animate_obj_old.save_original_min_max -:x: vcs.animate_helper.animate_obj_old.set_animation_min_max -:x: vcs.animate_helper.animate_obj_old.stop -:x: vcs.animate_helper.animate_obj_old.stop_create -:x: vcs.animate_helper.animate_obj_old.update_animate_display_list -:x: vcs.animate_helper.animate_obj_old.vertical -:x: vcs.animate_helper.animate_obj_old.zoom -:x: vcs.animate_helper.showerror +:x:``` vcs.animate_helper``` + +:x:``` vcs.animate_helper.AnimationController``` + +:x:``` vcs.animate_helper.AnimationController.__init__``` + +:x:``` vcs.animate_helper.AnimationController.close``` + +:x:``` vcs.animate_helper.AnimationController.create``` + +:x:``` vcs.animate_helper.AnimationController.create_pause``` + +:x:``` vcs.animate_helper.AnimationController.create_resume``` + +:x:``` vcs.animate_helper.AnimationController.create_stop``` + +:x:``` vcs.animate_helper.AnimationController.created``` + +:x:``` vcs.animate_helper.AnimationController.draw_frame``` + +:x:``` vcs.animate_helper.AnimationController.fps``` + +:x:``` vcs.animate_helper.AnimationController.generate_number_of_frames``` + +:x:``` vcs.animate_helper.AnimationController.get_all_frame_args``` + +:x:``` vcs.animate_helper.AnimationController.horizontal``` + +:x:``` vcs.animate_helper.AnimationController.initialize_create_canvas``` + +:x:``` vcs.animate_helper.AnimationController.is_playing``` + +:x:``` vcs.animate_helper.AnimationController.number_of_frames``` + +:x:``` vcs.animate_helper.AnimationController.pause``` + +:x:``` vcs.animate_helper.AnimationController.playback_pause``` + +:x:``` vcs.animate_helper.AnimationController.playback_resume``` + +:x:``` vcs.animate_helper.AnimationController.playback_stop``` + +:x:``` vcs.animate_helper.AnimationController.render_frame``` + +:x:``` vcs.animate_helper.AnimationController.reset_file_paths``` + +:x:``` vcs.animate_helper.AnimationController.run``` + +:x:``` vcs.animate_helper.AnimationController.save``` + +:x:``` vcs.animate_helper.AnimationController.set_anim_min_max``` + +:x:``` vcs.animate_helper.AnimationController.set_signals``` + +:x:``` vcs.animate_helper.AnimationController.stop``` + +:x:``` vcs.animate_helper.AnimationController.vertical``` + +:x:``` vcs.animate_helper.AnimationController.zoom``` + +:x:``` vcs.animate_helper.AnimationCreate``` + +:x:``` vcs.animate_helper.AnimationCreate.__init__``` + +:x:``` vcs.animate_helper.AnimationCreate.run``` + +:x:``` vcs.animate_helper.AnimationCreateParams``` + +:x:``` vcs.animate_helper.AnimationCreateParams.__init__``` + +:x:``` vcs.animate_helper.AnimationPlayback``` + +:x:``` vcs.animate_helper.AnimationPlayback.__init__``` + +:x:``` vcs.animate_helper.AnimationPlayback.run``` + +:x:``` vcs.animate_helper.AnimationPlaybackParams``` + +:x:``` vcs.animate_helper.AnimationPlaybackParams.__init__``` + +:x:``` vcs.animate_helper.AnimationPlaybackParams.fps``` + +:x:``` vcs.animate_helper.AnimationPlaybackParams.horizontal``` + +:x:``` vcs.animate_helper.AnimationPlaybackParams.vertical``` + +:x:``` vcs.animate_helper.AnimationPlaybackParams.zoom``` + +:x:``` vcs.animate_helper.RT``` + +:x:``` vcs.animate_helper.RT.__init__``` + +:x:``` vcs.animate_helper.RT.start``` + +:x:``` vcs.animate_helper.RT.stop``` + +:x:``` vcs.animate_helper.StoppableThread``` + +:x:``` vcs.animate_helper.StoppableThread.__init__``` + +:x:``` vcs.animate_helper.StoppableThread.is_stopped``` + +:x:``` vcs.animate_helper.StoppableThread.pause``` + +:x:``` vcs.animate_helper.StoppableThread.resume``` + +:x:``` vcs.animate_helper.StoppableThread.stop``` + +:x:``` vcs.animate_helper.StoppableThread.wait_if_paused``` + +:x:``` vcs.animate_helper.animate_obj_old``` + +:x:``` vcs.animate_helper.animate_obj_old.__init__``` + +:x:``` vcs.animate_helper.animate_obj_old.animate_info_from_python``` + +:x:``` vcs.animate_helper.animate_obj_old.close``` + +:x:``` vcs.animate_helper.animate_obj_old.create``` + +:x:``` vcs.animate_helper.animate_obj_old.creating_animation_flg``` + +:x:``` vcs.animate_helper.animate_obj_old.direction``` + +:x:``` vcs.animate_helper.animate_obj_old.frame``` + +:x:``` vcs.animate_helper.animate_obj_old.horizontal``` + +:x:``` vcs.animate_helper.animate_obj_old.load_from_file``` + +:x:``` vcs.animate_helper.animate_obj_old.mode``` + +:x:``` vcs.animate_helper.animate_obj_old.number_of_frames``` + +:x:``` vcs.animate_helper.animate_obj_old.pause``` + +:x:``` vcs.animate_helper.animate_obj_old.restore_min_max``` + +:x:``` vcs.animate_helper.animate_obj_old.return_animation_min_max``` + +:x:``` vcs.animate_helper.animate_obj_old.run``` + +:x:``` vcs.animate_helper.animate_obj_old.run_animation_flg``` + +:x:``` vcs.animate_helper.animate_obj_old.save_original_min_max``` + +:x:``` vcs.animate_helper.animate_obj_old.set_animation_min_max``` + +:x:``` vcs.animate_helper.animate_obj_old.stop``` + +:x:``` vcs.animate_helper.animate_obj_old.stop_create``` + +:x:``` vcs.animate_helper.animate_obj_old.update_animate_display_list``` + +:x:``` vcs.animate_helper.animate_obj_old.vertical``` + +:x:``` vcs.animate_helper.animate_obj_old.zoom``` + +:x:``` vcs.animate_helper.showerror``` + diff --git a/docs/doctest_info/boxfill.md b/docs/doctest_info/boxfill.md index 6d12d9471..f6f97b1bb 100644 --- a/docs/doctest_info/boxfill.md +++ b/docs/doctest_info/boxfill.md @@ -1,99 +1,196 @@ Missing Doctests ---------------- -:x: vcs.boxfill -:x: vcs.boxfill.Gfb -:x: vcs.boxfill.Gfb.__init__ -:x: vcs.boxfill.Gfb._getboxfilltype -:x: vcs.boxfill.Gfb._getcalendar -:x: vcs.boxfill.Gfb._getcolor_1 -:x: vcs.boxfill.Gfb._getcolor_2 -:x: vcs.boxfill.Gfb._getdatawc_x1 -:x: vcs.boxfill.Gfb._getdatawc_x2 -:x: vcs.boxfill.Gfb._getdatawc_y1 -:x: vcs.boxfill.Gfb._getdatawc_y2 -:x: vcs.boxfill.Gfb._getfillareaindices -:x: vcs.boxfill.Gfb._getfillareastyle -:x: vcs.boxfill.Gfb._getlevel_1 -:x: vcs.boxfill.Gfb._getlevel_2 -:x: vcs.boxfill.Gfb._getmissing -:x: vcs.boxfill.Gfb._getname -:x: vcs.boxfill.Gfb._gettimeunits -:x: vcs.boxfill.Gfb._getxaxisconvert -:x: vcs.boxfill.Gfb._getxmtics1 -:x: vcs.boxfill.Gfb._getxmtics2 -:x: vcs.boxfill.Gfb._getxticlabels1 -:x: vcs.boxfill.Gfb._getxticlabels2 -:x: vcs.boxfill.Gfb._getyaxisconvert -:x: vcs.boxfill.Gfb._getymtics1 -:x: vcs.boxfill.Gfb._getymtics2 -:x: vcs.boxfill.Gfb._getyticlabels1 -:x: vcs.boxfill.Gfb._getyticlabels2 -:x: vcs.boxfill.Gfb._setboxfilltype -:x: vcs.boxfill.Gfb._setcalendar -:x: vcs.boxfill.Gfb._setcolor_1 -:x: vcs.boxfill.Gfb._setcolor_2 -:x: vcs.boxfill.Gfb._setdatawc_x1 -:x: vcs.boxfill.Gfb._setdatawc_x2 -:x: vcs.boxfill.Gfb._setdatawc_y1 -:x: vcs.boxfill.Gfb._setdatawc_y2 -:x: vcs.boxfill.Gfb._setfillareaindices -:x: vcs.boxfill.Gfb._setfillareastyle -:x: vcs.boxfill.Gfb._setlevel_1 -:x: vcs.boxfill.Gfb._setlevel_2 -:x: vcs.boxfill.Gfb._setmissing -:x: vcs.boxfill.Gfb._setname -:x: vcs.boxfill.Gfb._settimeunits -:x: vcs.boxfill.Gfb._setxaxisconvert -:x: vcs.boxfill.Gfb._setxmtics1 -:x: vcs.boxfill.Gfb._setxmtics2 -:x: vcs.boxfill.Gfb._setxticlabels1 -:x: vcs.boxfill.Gfb._setxticlabels2 -:x: vcs.boxfill.Gfb._setyaxisconvert -:x: vcs.boxfill.Gfb._setymtics1 -:x: vcs.boxfill.Gfb._setymtics2 -:x: vcs.boxfill.Gfb._setyticlabels1 -:x: vcs.boxfill.Gfb._setyticlabels2 -:x: vcs.boxfill.Gfb.boxfill_type -:x: vcs.boxfill.Gfb.color_1 -:x: vcs.boxfill.Gfb.color_2 -:x: vcs.boxfill.Gfb.colormap -:x: vcs.boxfill.Gfb.colors -:x: vcs.boxfill.Gfb.datawc -:x: vcs.boxfill.Gfb.datawc_calendar -:x: vcs.boxfill.Gfb.datawc_timeunits -:x: vcs.boxfill.Gfb.datawc_x1 -:x: vcs.boxfill.Gfb.datawc_x2 -:x: vcs.boxfill.Gfb.datawc_y1 -:x: vcs.boxfill.Gfb.datawc_y2 -:x: vcs.boxfill.Gfb.ext_1 -:x: vcs.boxfill.Gfb.ext_2 -:x: vcs.boxfill.Gfb.exts -:x: vcs.boxfill.Gfb.fillareacolors -:x: vcs.boxfill.Gfb.fillareaindices -:x: vcs.boxfill.Gfb.fillareaopacity -:x: vcs.boxfill.Gfb.fillareastyle -:x: vcs.boxfill.Gfb.getlegendlabels -:x: vcs.boxfill.Gfb.getlevels -:x: vcs.boxfill.Gfb.legend -:x: vcs.boxfill.Gfb.level_1 -:x: vcs.boxfill.Gfb.level_2 -:x: vcs.boxfill.Gfb.levels -:x: vcs.boxfill.Gfb.list -:x: vcs.boxfill.Gfb.missing -:x: vcs.boxfill.Gfb.name -:x: vcs.boxfill.Gfb.projection -:x: vcs.boxfill.Gfb.xaxisconvert -:x: vcs.boxfill.Gfb.xmtics -:x: vcs.boxfill.Gfb.xmtics1 -:x: vcs.boxfill.Gfb.xmtics2 -:x: vcs.boxfill.Gfb.xticlabels -:x: vcs.boxfill.Gfb.xticlabels1 -:x: vcs.boxfill.Gfb.xticlabels2 -:x: vcs.boxfill.Gfb.yaxisconvert -:x: vcs.boxfill.Gfb.ymtics -:x: vcs.boxfill.Gfb.ymtics1 -:x: vcs.boxfill.Gfb.ymtics2 -:x: vcs.boxfill.Gfb.yticlabels -:x: vcs.boxfill.Gfb.yticlabels1 -:x: vcs.boxfill.Gfb.yticlabels2 -:x: vcs.boxfill.process_src +:x:``` vcs.boxfill``` + +:x:``` vcs.boxfill.Gfb``` + +:x:``` vcs.boxfill.Gfb.__init__``` + +:x:``` vcs.boxfill.Gfb._getboxfilltype``` + +:x:``` vcs.boxfill.Gfb._getcalendar``` + +:x:``` vcs.boxfill.Gfb._getcolor_1``` + +:x:``` vcs.boxfill.Gfb._getcolor_2``` + +:x:``` vcs.boxfill.Gfb._getdatawc_x1``` + +:x:``` vcs.boxfill.Gfb._getdatawc_x2``` + +:x:``` vcs.boxfill.Gfb._getdatawc_y1``` + +:x:``` vcs.boxfill.Gfb._getdatawc_y2``` + +:x:``` vcs.boxfill.Gfb._getfillareaindices``` + +:x:``` vcs.boxfill.Gfb._getfillareastyle``` + +:x:``` vcs.boxfill.Gfb._getlevel_1``` + +:x:``` vcs.boxfill.Gfb._getlevel_2``` + +:x:``` vcs.boxfill.Gfb._getmissing``` + +:x:``` vcs.boxfill.Gfb._getname``` + +:x:``` vcs.boxfill.Gfb._gettimeunits``` + +:x:``` vcs.boxfill.Gfb._getxaxisconvert``` + +:x:``` vcs.boxfill.Gfb._getxmtics1``` + +:x:``` vcs.boxfill.Gfb._getxmtics2``` + +:x:``` vcs.boxfill.Gfb._getxticlabels1``` + +:x:``` vcs.boxfill.Gfb._getxticlabels2``` + +:x:``` vcs.boxfill.Gfb._getyaxisconvert``` + +:x:``` vcs.boxfill.Gfb._getymtics1``` + +:x:``` vcs.boxfill.Gfb._getymtics2``` + +:x:``` vcs.boxfill.Gfb._getyticlabels1``` + +:x:``` vcs.boxfill.Gfb._getyticlabels2``` + +:x:``` vcs.boxfill.Gfb._setboxfilltype``` + +:x:``` vcs.boxfill.Gfb._setcalendar``` + +:x:``` vcs.boxfill.Gfb._setcolor_1``` + +:x:``` vcs.boxfill.Gfb._setcolor_2``` + +:x:``` vcs.boxfill.Gfb._setdatawc_x1``` + +:x:``` vcs.boxfill.Gfb._setdatawc_x2``` + +:x:``` vcs.boxfill.Gfb._setdatawc_y1``` + +:x:``` vcs.boxfill.Gfb._setdatawc_y2``` + +:x:``` vcs.boxfill.Gfb._setfillareaindices``` + +:x:``` vcs.boxfill.Gfb._setfillareastyle``` + +:x:``` vcs.boxfill.Gfb._setlevel_1``` + +:x:``` vcs.boxfill.Gfb._setlevel_2``` + +:x:``` vcs.boxfill.Gfb._setmissing``` + +:x:``` vcs.boxfill.Gfb._setname``` + +:x:``` vcs.boxfill.Gfb._settimeunits``` + +:x:``` vcs.boxfill.Gfb._setxaxisconvert``` + +:x:``` vcs.boxfill.Gfb._setxmtics1``` + +:x:``` vcs.boxfill.Gfb._setxmtics2``` + +:x:``` vcs.boxfill.Gfb._setxticlabels1``` + +:x:``` vcs.boxfill.Gfb._setxticlabels2``` + +:x:``` vcs.boxfill.Gfb._setyaxisconvert``` + +:x:``` vcs.boxfill.Gfb._setymtics1``` + +:x:``` vcs.boxfill.Gfb._setymtics2``` + +:x:``` vcs.boxfill.Gfb._setyticlabels1``` + +:x:``` vcs.boxfill.Gfb._setyticlabels2``` + +:x:``` vcs.boxfill.Gfb.boxfill_type``` + +:x:``` vcs.boxfill.Gfb.color_1``` + +:x:``` vcs.boxfill.Gfb.color_2``` + +:x:``` vcs.boxfill.Gfb.colormap``` + +:x:``` vcs.boxfill.Gfb.colors``` + +:x:``` vcs.boxfill.Gfb.datawc``` + +:x:``` vcs.boxfill.Gfb.datawc_calendar``` + +:x:``` vcs.boxfill.Gfb.datawc_timeunits``` + +:x:``` vcs.boxfill.Gfb.datawc_x1``` + +:x:``` vcs.boxfill.Gfb.datawc_x2``` + +:x:``` vcs.boxfill.Gfb.datawc_y1``` + +:x:``` vcs.boxfill.Gfb.datawc_y2``` + +:x:``` vcs.boxfill.Gfb.ext_1``` + +:x:``` vcs.boxfill.Gfb.ext_2``` + +:x:``` vcs.boxfill.Gfb.exts``` + +:x:``` vcs.boxfill.Gfb.fillareacolors``` + +:x:``` vcs.boxfill.Gfb.fillareaindices``` + +:x:``` vcs.boxfill.Gfb.fillareaopacity``` + +:x:``` vcs.boxfill.Gfb.fillareastyle``` + +:x:``` vcs.boxfill.Gfb.getlegendlabels``` + +:x:``` vcs.boxfill.Gfb.getlevels``` + +:x:``` vcs.boxfill.Gfb.legend``` + +:x:``` vcs.boxfill.Gfb.level_1``` + +:x:``` vcs.boxfill.Gfb.level_2``` + +:x:``` vcs.boxfill.Gfb.levels``` + +:x:``` vcs.boxfill.Gfb.list``` + +:x:``` vcs.boxfill.Gfb.missing``` + +:x:``` vcs.boxfill.Gfb.name``` + +:x:``` vcs.boxfill.Gfb.projection``` + +:x:``` vcs.boxfill.Gfb.xaxisconvert``` + +:x:``` vcs.boxfill.Gfb.xmtics``` + +:x:``` vcs.boxfill.Gfb.xmtics1``` + +:x:``` vcs.boxfill.Gfb.xmtics2``` + +:x:``` vcs.boxfill.Gfb.xticlabels``` + +:x:``` vcs.boxfill.Gfb.xticlabels1``` + +:x:``` vcs.boxfill.Gfb.xticlabels2``` + +:x:``` vcs.boxfill.Gfb.yaxisconvert``` + +:x:``` vcs.boxfill.Gfb.ymtics``` + +:x:``` vcs.boxfill.Gfb.ymtics1``` + +:x:``` vcs.boxfill.Gfb.ymtics2``` + +:x:``` vcs.boxfill.Gfb.yticlabels``` + +:x:``` vcs.boxfill.Gfb.yticlabels1``` + +:x:``` vcs.boxfill.Gfb.yticlabels2``` + +:x:``` vcs.boxfill.process_src``` + diff --git a/docs/doctest_info/colorpicker.md b/docs/doctest_info/colorpicker.md index fc48ad8d0..73bcf4837 100644 --- a/docs/doctest_info/colorpicker.md +++ b/docs/doctest_info/colorpicker.md @@ -1,16 +1,30 @@ Missing Doctests ---------------- -:x: vcs.colorpicker -:x: vcs.colorpicker.ColorPicker -:x: vcs.colorpicker.ColorPicker.__init__ -:x: vcs.colorpicker.ColorPicker.cancel -:x: vcs.colorpicker.ColorPicker.change_map -:x: vcs.colorpicker.ColorPicker.clickEvent -:x: vcs.colorpicker.ColorPicker.close -:x: vcs.colorpicker.ColorPicker.make_current -:x: vcs.colorpicker.ColorPicker.save -:x: vcs.colorpicker.ColorPicker.selectCell -:x: vcs.colorpicker.ColorPicker.topRendererAtPoint -:x: vcs.colorpicker.collection -:x: vcs.colorpicker.colors_to_scalars -:x: vcs.colorpicker.make_color_plane +:x:``` vcs.colorpicker``` + +:x:``` vcs.colorpicker.ColorPicker``` + +:x:``` vcs.colorpicker.ColorPicker.__init__``` + +:x:``` vcs.colorpicker.ColorPicker.cancel``` + +:x:``` vcs.colorpicker.ColorPicker.change_map``` + +:x:``` vcs.colorpicker.ColorPicker.clickEvent``` + +:x:``` vcs.colorpicker.ColorPicker.close``` + +:x:``` vcs.colorpicker.ColorPicker.make_current``` + +:x:``` vcs.colorpicker.ColorPicker.save``` + +:x:``` vcs.colorpicker.ColorPicker.selectCell``` + +:x:``` vcs.colorpicker.ColorPicker.topRendererAtPoint``` + +:x:``` vcs.colorpicker.collection``` + +:x:``` vcs.colorpicker.colors_to_scalars``` + +:x:``` vcs.colorpicker.make_color_plane``` + diff --git a/docs/doctest_info/colors.md b/docs/doctest_info/colors.md index baa1e2283..2d0ceba94 100644 --- a/docs/doctest_info/colors.md +++ b/docs/doctest_info/colors.md @@ -1,4 +1,6 @@ Missing Doctests ---------------- -:x: vcs.colors -:x: vcs.colors.matplotlib2vcs +:x:``` vcs.colors``` + +:x:``` vcs.colors.matplotlib2vcs``` + diff --git a/docs/doctest_info/configurator.md b/docs/doctest_info/configurator.md index d42db7b24..0c8ddba6f 100644 --- a/docs/doctest_info/configurator.md +++ b/docs/doctest_info/configurator.md @@ -1,54 +1,106 @@ Missing Doctests ---------------- -:x: vcs.configurator -:x: vcs.configurator.Configurator -:x: vcs.configurator.Configurator.__init__ -:x: vcs.configurator.Configurator.activate -:x: vcs.configurator.Configurator.actor_at_point -:x: vcs.configurator.Configurator.animate -:x: vcs.configurator.Configurator.click -:x: vcs.configurator.Configurator.create -:x: vcs.configurator.Configurator.creator_disabled -:x: vcs.configurator.Configurator.creator_enabled -:x: vcs.configurator.Configurator.deactivate -:x: vcs.configurator.Configurator.delete -:x: vcs.configurator.Configurator.detach -:x: vcs.configurator.Configurator.display_and_key_for_actor -:x: vcs.configurator.Configurator.fill_click -:x: vcs.configurator.Configurator.get_save_path -:x: vcs.configurator.Configurator.hover -:x: vcs.configurator.Configurator.init_buttons -:x: vcs.configurator.Configurator.init_toolbar -:x: vcs.configurator.Configurator.line_click -:x: vcs.configurator.Configurator.marker_click -:x: vcs.configurator.Configurator.place -:x: vcs.configurator.Configurator.release -:x: vcs.configurator.Configurator.render_window -:x: vcs.configurator.Configurator.save -:x: vcs.configurator.Configurator.save_animation -:x: vcs.configurator.Configurator.save_animation_press -:x: vcs.configurator.Configurator.save_tick -:x: vcs.configurator.Configurator.set_animation_frame -:x: vcs.configurator.Configurator.set_animation_speed -:x: vcs.configurator.Configurator.set_background_blue -:x: vcs.configurator.Configurator.set_background_green -:x: vcs.configurator.Configurator.set_background_red -:x: vcs.configurator.Configurator.setup_animation -:x: vcs.configurator.Configurator.shift -:x: vcs.configurator.Configurator.show -:x: vcs.configurator.Configurator.start_animating -:x: vcs.configurator.Configurator.step_back -:x: vcs.configurator.Configurator.step_forward -:x: vcs.configurator.Configurator.stop_animating -:x: vcs.configurator.Configurator.text_click -:x: vcs.configurator.Configurator.update -:x: vcs.configurator.display_supports_animation -:x: vcs.configurator.editable_type -:x: vcs.configurator.get_attribute -:x: vcs.configurator.is_box -:x: vcs.configurator.is_label -:x: vcs.configurator.is_point -:x: vcs.configurator.is_point_in_box -:x: vcs.configurator.safe_get -:x: vcs.configurator.sync_template -:x: vcs.configurator.vcstemp +:x:``` vcs.configurator``` + +:x:``` vcs.configurator.Configurator``` + +:x:``` vcs.configurator.Configurator.__init__``` + +:x:``` vcs.configurator.Configurator.activate``` + +:x:``` vcs.configurator.Configurator.actor_at_point``` + +:x:``` vcs.configurator.Configurator.animate``` + +:x:``` vcs.configurator.Configurator.click``` + +:x:``` vcs.configurator.Configurator.create``` + +:x:``` vcs.configurator.Configurator.creator_disabled``` + +:x:``` vcs.configurator.Configurator.creator_enabled``` + +:x:``` vcs.configurator.Configurator.deactivate``` + +:x:``` vcs.configurator.Configurator.delete``` + +:x:``` vcs.configurator.Configurator.detach``` + +:x:``` vcs.configurator.Configurator.display_and_key_for_actor``` + +:x:``` vcs.configurator.Configurator.fill_click``` + +:x:``` vcs.configurator.Configurator.get_save_path``` + +:x:``` vcs.configurator.Configurator.hover``` + +:x:``` vcs.configurator.Configurator.init_buttons``` + +:x:``` vcs.configurator.Configurator.init_toolbar``` + +:x:``` vcs.configurator.Configurator.line_click``` + +:x:``` vcs.configurator.Configurator.marker_click``` + +:x:``` vcs.configurator.Configurator.place``` + +:x:``` vcs.configurator.Configurator.release``` + +:x:``` vcs.configurator.Configurator.render_window``` + +:x:``` vcs.configurator.Configurator.save``` + +:x:``` vcs.configurator.Configurator.save_animation``` + +:x:``` vcs.configurator.Configurator.save_animation_press``` + +:x:``` vcs.configurator.Configurator.save_tick``` + +:x:``` vcs.configurator.Configurator.set_animation_frame``` + +:x:``` vcs.configurator.Configurator.set_animation_speed``` + +:x:``` vcs.configurator.Configurator.set_background_blue``` + +:x:``` vcs.configurator.Configurator.set_background_green``` + +:x:``` vcs.configurator.Configurator.set_background_red``` + +:x:``` vcs.configurator.Configurator.setup_animation``` + +:x:``` vcs.configurator.Configurator.shift``` + +:x:``` vcs.configurator.Configurator.show``` + +:x:``` vcs.configurator.Configurator.start_animating``` + +:x:``` vcs.configurator.Configurator.step_back``` + +:x:``` vcs.configurator.Configurator.step_forward``` + +:x:``` vcs.configurator.Configurator.stop_animating``` + +:x:``` vcs.configurator.Configurator.text_click``` + +:x:``` vcs.configurator.Configurator.update``` + +:x:``` vcs.configurator.display_supports_animation``` + +:x:``` vcs.configurator.editable_type``` + +:x:``` vcs.configurator.get_attribute``` + +:x:``` vcs.configurator.is_box``` + +:x:``` vcs.configurator.is_label``` + +:x:``` vcs.configurator.is_point``` + +:x:``` vcs.configurator.is_point_in_box``` + +:x:``` vcs.configurator.safe_get``` + +:x:``` vcs.configurator.sync_template``` + +:x:``` vcs.configurator.vcstemp``` + diff --git a/docs/doctest_info/displayplot.md b/docs/doctest_info/displayplot.md index af9d08091..9ce19df33 100644 --- a/docs/doctest_info/displayplot.md +++ b/docs/doctest_info/displayplot.md @@ -1,43 +1,84 @@ Missing Doctests ---------------- -:x: vcs.displayplot -:x: vcs.displayplot.Dp -:x: vcs.displayplot.Dp.__init__ -:x: vcs.displayplot.Dp._get_backend -:x: vcs.displayplot.Dp._getarray -:x: vcs.displayplot.Dp._getcontinents -:x: vcs.displayplot.Dp._getcontinents_line -:x: vcs.displayplot.Dp._getg_name -:x: vcs.displayplot.Dp._getg_type -:x: vcs.displayplot.Dp._getname -:x: vcs.displayplot.Dp._getnewelements -:x: vcs.displayplot.Dp._getoff -:x: vcs.displayplot.Dp._getpriority -:x: vcs.displayplot.Dp._gettemplate -:x: vcs.displayplot.Dp._gettemplate_origin -:x: vcs.displayplot.Dp._repr_png_ -:x: vcs.displayplot.Dp._set_backend -:x: vcs.displayplot.Dp._setarray -:x: vcs.displayplot.Dp._setcontinents -:x: vcs.displayplot.Dp._setcontinents_line -:x: vcs.displayplot.Dp._setg_name -:x: vcs.displayplot.Dp._setg_type -:x: vcs.displayplot.Dp._setname -:x: vcs.displayplot.Dp._setnewelements -:x: vcs.displayplot.Dp._setoff -:x: vcs.displayplot.Dp._setpriority -:x: vcs.displayplot.Dp._settemplate -:x: vcs.displayplot.Dp._settemplate_origin -:x: vcs.displayplot.Dp._template_origin -:x: vcs.displayplot.Dp.array -:x: vcs.displayplot.Dp.backend -:x: vcs.displayplot.Dp.continents -:x: vcs.displayplot.Dp.continents_line -:x: vcs.displayplot.Dp.g_name -:x: vcs.displayplot.Dp.g_type -:x: vcs.displayplot.Dp.list -:x: vcs.displayplot.Dp.name -:x: vcs.displayplot.Dp.newelements -:x: vcs.displayplot.Dp.off -:x: vcs.displayplot.Dp.priority -:x: vcs.displayplot.Dp.template +:x:``` vcs.displayplot``` + +:x:``` vcs.displayplot.Dp``` + +:x:``` vcs.displayplot.Dp.__init__``` + +:x:``` vcs.displayplot.Dp._get_backend``` + +:x:``` vcs.displayplot.Dp._getarray``` + +:x:``` vcs.displayplot.Dp._getcontinents``` + +:x:``` vcs.displayplot.Dp._getcontinents_line``` + +:x:``` vcs.displayplot.Dp._getg_name``` + +:x:``` vcs.displayplot.Dp._getg_type``` + +:x:``` vcs.displayplot.Dp._getname``` + +:x:``` vcs.displayplot.Dp._getnewelements``` + +:x:``` vcs.displayplot.Dp._getoff``` + +:x:``` vcs.displayplot.Dp._getpriority``` + +:x:``` vcs.displayplot.Dp._gettemplate``` + +:x:``` vcs.displayplot.Dp._gettemplate_origin``` + +:x:``` vcs.displayplot.Dp._repr_png_``` + +:x:``` vcs.displayplot.Dp._set_backend``` + +:x:``` vcs.displayplot.Dp._setarray``` + +:x:``` vcs.displayplot.Dp._setcontinents``` + +:x:``` vcs.displayplot.Dp._setcontinents_line``` + +:x:``` vcs.displayplot.Dp._setg_name``` + +:x:``` vcs.displayplot.Dp._setg_type``` + +:x:``` vcs.displayplot.Dp._setname``` + +:x:``` vcs.displayplot.Dp._setnewelements``` + +:x:``` vcs.displayplot.Dp._setoff``` + +:x:``` vcs.displayplot.Dp._setpriority``` + +:x:``` vcs.displayplot.Dp._settemplate``` + +:x:``` vcs.displayplot.Dp._settemplate_origin``` + +:x:``` vcs.displayplot.Dp._template_origin``` + +:x:``` vcs.displayplot.Dp.array``` + +:x:``` vcs.displayplot.Dp.backend``` + +:x:``` vcs.displayplot.Dp.continents``` + +:x:``` vcs.displayplot.Dp.continents_line``` + +:x:``` vcs.displayplot.Dp.g_name``` + +:x:``` vcs.displayplot.Dp.g_type``` + +:x:``` vcs.displayplot.Dp.list``` + +:x:``` vcs.displayplot.Dp.name``` + +:x:``` vcs.displayplot.Dp.newelements``` + +:x:``` vcs.displayplot.Dp.off``` + +:x:``` vcs.displayplot.Dp.priority``` + +:x:``` vcs.displayplot.Dp.template``` + diff --git a/docs/doctest_info/doctest_vcs.py b/docs/doctest_info/doctest_vcs.py index 553c98c1e..dc27627c0 100644 --- a/docs/doctest_info/doctest_vcs.py +++ b/docs/doctest_info/doctest_vcs.py @@ -20,7 +20,7 @@ def log_stats(module_name, verbose): line = results.readline() if verbose: err_endpoints = [trying, no_tests] - missing_endpoints = [passing_header, tests_in_items] + missing_endpoints = [passing_header, tests_in_items, err_indicator] else: err_endpoints = [err_indicator,] while line != '': @@ -31,14 +31,14 @@ def log_stats(module_name, verbose): log.write("-") log.write("\n") log.write("```python\n") - consume_entry(results, log, err_endpoints, "") + consume_entry(results, log, err_endpoints, "", "") log.write("```\n\n") if re.match(missing_header, line): header="Missing Doctests" log.write(header+"\n") map(lambda x: log.write('-'), range(len(header))) log.write("\n") - consume_entry(results, log, missing_endpoints, ":x:") + consume_entry(results, log, missing_endpoints, ":x:```", "```\n") line = results.readline() log.close() results.close() @@ -46,11 +46,16 @@ def log_stats(module_name, verbose): # note: will only consume the first full error -def consume_entry(readfile, writefile, endpoints, prepend): +def consume_entry(readfile, writefile, endpoints, prepend, append): more = True line = readfile.readline() while more and line != '': - writefile.write(prepend + line) + if append != "": + index = line.find("\n") + new_line = prepend + line[:index] + append + line[index:] + writefile.write(new_line) + else: + writefile.write(prepend + line + append) line = readfile.readline() for endpoint in endpoints: if re.match(endpoint, line): diff --git a/docs/doctest_info/dv3d.md b/docs/doctest_info/dv3d.md index 43c478156..fe60ecfbb 100644 --- a/docs/doctest_info/dv3d.md +++ b/docs/doctest_info/dv3d.md @@ -1,97 +1,192 @@ Missing Doctests ---------------- -:x: vcs.dv3d -:x: vcs.dv3d.Gf3DDualScalar -:x: vcs.dv3d.Gf3DDualScalar.Animation -:x: vcs.dv3d.Gf3DDualScalar.BasemapOpacity -:x: vcs.dv3d.Gf3DDualScalar.Camera -:x: vcs.dv3d.Gf3DDualScalar.ChooseColormap -:x: vcs.dv3d.Gf3DDualScalar.Colorbar -:x: vcs.dv3d.Gf3DDualScalar.Configure -:x: vcs.dv3d.Gf3DDualScalar.IsosurfaceValue -:x: vcs.dv3d.Gf3DDualScalar.PointSize -:x: vcs.dv3d.Gf3DDualScalar.ScaleColormap -:x: vcs.dv3d.Gf3DDualScalar.ScaleOpacity -:x: vcs.dv3d.Gf3DDualScalar.ScaleTransferFunction -:x: vcs.dv3d.Gf3DDualScalar.SliceThickness -:x: vcs.dv3d.Gf3DDualScalar.ToggleClipping -:x: vcs.dv3d.Gf3DDualScalar.ToggleSphericalProj -:x: vcs.dv3d.Gf3DDualScalar.ToggleSurfacePlot -:x: vcs.dv3d.Gf3DDualScalar.ToggleVolumePlot -:x: vcs.dv3d.Gf3DDualScalar.VerticalScaling -:x: vcs.dv3d.Gf3DDualScalar.XSlider -:x: vcs.dv3d.Gf3DDualScalar.YSlider -:x: vcs.dv3d.Gf3DDualScalar.ZSlider -:x: vcs.dv3d.Gf3DDualScalar.__init__ -:x: vcs.dv3d.Gf3Dscalar -:x: vcs.dv3d.Gf3Dscalar.Animation -:x: vcs.dv3d.Gf3Dscalar.BasemapOpacity -:x: vcs.dv3d.Gf3Dscalar.Camera -:x: vcs.dv3d.Gf3Dscalar.ChooseColormap -:x: vcs.dv3d.Gf3Dscalar.Colorbar -:x: vcs.dv3d.Gf3Dscalar.Configure -:x: vcs.dv3d.Gf3Dscalar.IsosurfaceValue -:x: vcs.dv3d.Gf3Dscalar.PointSize -:x: vcs.dv3d.Gf3Dscalar.ScaleColormap -:x: vcs.dv3d.Gf3Dscalar.ScaleOpacity -:x: vcs.dv3d.Gf3Dscalar.ScaleTransferFunction -:x: vcs.dv3d.Gf3Dscalar.SliceThickness -:x: vcs.dv3d.Gf3Dscalar.ToggleClipping -:x: vcs.dv3d.Gf3Dscalar.ToggleSphericalProj -:x: vcs.dv3d.Gf3Dscalar.ToggleSurfacePlot -:x: vcs.dv3d.Gf3Dscalar.ToggleVolumePlot -:x: vcs.dv3d.Gf3Dscalar.VerticalScaling -:x: vcs.dv3d.Gf3Dscalar.XSlider -:x: vcs.dv3d.Gf3Dscalar.YSlider -:x: vcs.dv3d.Gf3Dscalar.ZSlider -:x: vcs.dv3d.Gf3Dscalar.__init__ -:x: vcs.dv3d.Gf3Dvector -:x: vcs.dv3d.Gf3Dvector.Animation -:x: vcs.dv3d.Gf3Dvector.BasemapOpacity -:x: vcs.dv3d.Gf3Dvector.Camera -:x: vcs.dv3d.Gf3Dvector.ChooseColormap -:x: vcs.dv3d.Gf3Dvector.Colorbar -:x: vcs.dv3d.Gf3Dvector.Configure -:x: vcs.dv3d.Gf3Dvector.IsosurfaceValue -:x: vcs.dv3d.Gf3Dvector.PointSize -:x: vcs.dv3d.Gf3Dvector.ScaleColormap -:x: vcs.dv3d.Gf3Dvector.ScaleOpacity -:x: vcs.dv3d.Gf3Dvector.ScaleTransferFunction -:x: vcs.dv3d.Gf3Dvector.SliceThickness -:x: vcs.dv3d.Gf3Dvector.ToggleClipping -:x: vcs.dv3d.Gf3Dvector.ToggleSphericalProj -:x: vcs.dv3d.Gf3Dvector.ToggleSurfacePlot -:x: vcs.dv3d.Gf3Dvector.ToggleVolumePlot -:x: vcs.dv3d.Gf3Dvector.VerticalScaling -:x: vcs.dv3d.Gf3Dvector.XSlider -:x: vcs.dv3d.Gf3Dvector.YSlider -:x: vcs.dv3d.Gf3Dvector.ZSlider -:x: vcs.dv3d.Gf3Dvector.__init__ -:x: vcs.dv3d.Gfdv3d -:x: vcs.dv3d.Gfdv3d.NumCores -:x: vcs.dv3d.Gfdv3d.__init__ -:x: vcs.dv3d.Gfdv3d._getNumCores -:x: vcs.dv3d.Gfdv3d._getaxes -:x: vcs.dv3d.Gfdv3d._getname -:x: vcs.dv3d.Gfdv3d._setNumCores -:x: vcs.dv3d.Gfdv3d._setaxes -:x: vcs.dv3d.Gfdv3d._setname -:x: vcs.dv3d.Gfdv3d.addParameters -:x: vcs.dv3d.Gfdv3d.addPlotAttribute -:x: vcs.dv3d.Gfdv3d.add_property -:x: vcs.dv3d.Gfdv3d.axes -:x: vcs.dv3d.Gfdv3d.getConfigurationData -:x: vcs.dv3d.Gfdv3d.getConfigurationParms -:x: vcs.dv3d.Gfdv3d.getConfigurationState -:x: vcs.dv3d.Gfdv3d.getParameter -:x: vcs.dv3d.Gfdv3d.getParameterList -:x: vcs.dv3d.Gfdv3d.getPlotAttribute -:x: vcs.dv3d.Gfdv3d.getPlotAttributes -:x: vcs.dv3d.Gfdv3d.getStateData -:x: vcs.dv3d.Gfdv3d.initDefaultState -:x: vcs.dv3d.Gfdv3d.list -:x: vcs.dv3d.Gfdv3d.name -:x: vcs.dv3d.Gfdv3d.restoreState -:x: vcs.dv3d.Gfdv3d.script -:x: vcs.dv3d.Gfdv3d.setParameter -:x: vcs.dv3d.Gfdv3d.setProvenanceHandler +:x:``` vcs.dv3d``` + +:x:``` vcs.dv3d.Gf3DDualScalar``` + +:x:``` vcs.dv3d.Gf3DDualScalar.Animation``` + +:x:``` vcs.dv3d.Gf3DDualScalar.BasemapOpacity``` + +:x:``` vcs.dv3d.Gf3DDualScalar.Camera``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ChooseColormap``` + +:x:``` vcs.dv3d.Gf3DDualScalar.Colorbar``` + +:x:``` vcs.dv3d.Gf3DDualScalar.Configure``` + +:x:``` vcs.dv3d.Gf3DDualScalar.IsosurfaceValue``` + +:x:``` vcs.dv3d.Gf3DDualScalar.PointSize``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ScaleColormap``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ScaleOpacity``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ScaleTransferFunction``` + +:x:``` vcs.dv3d.Gf3DDualScalar.SliceThickness``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ToggleClipping``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ToggleSphericalProj``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ToggleSurfacePlot``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ToggleVolumePlot``` + +:x:``` vcs.dv3d.Gf3DDualScalar.VerticalScaling``` + +:x:``` vcs.dv3d.Gf3DDualScalar.XSlider``` + +:x:``` vcs.dv3d.Gf3DDualScalar.YSlider``` + +:x:``` vcs.dv3d.Gf3DDualScalar.ZSlider``` + +:x:``` vcs.dv3d.Gf3DDualScalar.__init__``` + +:x:``` vcs.dv3d.Gf3Dscalar``` + +:x:``` vcs.dv3d.Gf3Dscalar.Animation``` + +:x:``` vcs.dv3d.Gf3Dscalar.BasemapOpacity``` + +:x:``` vcs.dv3d.Gf3Dscalar.Camera``` + +:x:``` vcs.dv3d.Gf3Dscalar.ChooseColormap``` + +:x:``` vcs.dv3d.Gf3Dscalar.Colorbar``` + +:x:``` vcs.dv3d.Gf3Dscalar.Configure``` + +:x:``` vcs.dv3d.Gf3Dscalar.IsosurfaceValue``` + +:x:``` vcs.dv3d.Gf3Dscalar.PointSize``` + +:x:``` vcs.dv3d.Gf3Dscalar.ScaleColormap``` + +:x:``` vcs.dv3d.Gf3Dscalar.ScaleOpacity``` + +:x:``` vcs.dv3d.Gf3Dscalar.ScaleTransferFunction``` + +:x:``` vcs.dv3d.Gf3Dscalar.SliceThickness``` + +:x:``` vcs.dv3d.Gf3Dscalar.ToggleClipping``` + +:x:``` vcs.dv3d.Gf3Dscalar.ToggleSphericalProj``` + +:x:``` vcs.dv3d.Gf3Dscalar.ToggleSurfacePlot``` + +:x:``` vcs.dv3d.Gf3Dscalar.ToggleVolumePlot``` + +:x:``` vcs.dv3d.Gf3Dscalar.VerticalScaling``` + +:x:``` vcs.dv3d.Gf3Dscalar.XSlider``` + +:x:``` vcs.dv3d.Gf3Dscalar.YSlider``` + +:x:``` vcs.dv3d.Gf3Dscalar.ZSlider``` + +:x:``` vcs.dv3d.Gf3Dscalar.__init__``` + +:x:``` vcs.dv3d.Gf3Dvector``` + +:x:``` vcs.dv3d.Gf3Dvector.Animation``` + +:x:``` vcs.dv3d.Gf3Dvector.BasemapOpacity``` + +:x:``` vcs.dv3d.Gf3Dvector.Camera``` + +:x:``` vcs.dv3d.Gf3Dvector.ChooseColormap``` + +:x:``` vcs.dv3d.Gf3Dvector.Colorbar``` + +:x:``` vcs.dv3d.Gf3Dvector.Configure``` + +:x:``` vcs.dv3d.Gf3Dvector.IsosurfaceValue``` + +:x:``` vcs.dv3d.Gf3Dvector.PointSize``` + +:x:``` vcs.dv3d.Gf3Dvector.ScaleColormap``` + +:x:``` vcs.dv3d.Gf3Dvector.ScaleOpacity``` + +:x:``` vcs.dv3d.Gf3Dvector.ScaleTransferFunction``` + +:x:``` vcs.dv3d.Gf3Dvector.SliceThickness``` + +:x:``` vcs.dv3d.Gf3Dvector.ToggleClipping``` + +:x:``` vcs.dv3d.Gf3Dvector.ToggleSphericalProj``` + +:x:``` vcs.dv3d.Gf3Dvector.ToggleSurfacePlot``` + +:x:``` vcs.dv3d.Gf3Dvector.ToggleVolumePlot``` + +:x:``` vcs.dv3d.Gf3Dvector.VerticalScaling``` + +:x:``` vcs.dv3d.Gf3Dvector.XSlider``` + +:x:``` vcs.dv3d.Gf3Dvector.YSlider``` + +:x:``` vcs.dv3d.Gf3Dvector.ZSlider``` + +:x:``` vcs.dv3d.Gf3Dvector.__init__``` + +:x:``` vcs.dv3d.Gfdv3d``` + +:x:``` vcs.dv3d.Gfdv3d.NumCores``` + +:x:``` vcs.dv3d.Gfdv3d.__init__``` + +:x:``` vcs.dv3d.Gfdv3d._getNumCores``` + +:x:``` vcs.dv3d.Gfdv3d._getaxes``` + +:x:``` vcs.dv3d.Gfdv3d._getname``` + +:x:``` vcs.dv3d.Gfdv3d._setNumCores``` + +:x:``` vcs.dv3d.Gfdv3d._setaxes``` + +:x:``` vcs.dv3d.Gfdv3d._setname``` + +:x:``` vcs.dv3d.Gfdv3d.addParameters``` + +:x:``` vcs.dv3d.Gfdv3d.addPlotAttribute``` + +:x:``` vcs.dv3d.Gfdv3d.add_property``` + +:x:``` vcs.dv3d.Gfdv3d.axes``` + +:x:``` vcs.dv3d.Gfdv3d.getConfigurationData``` + +:x:``` vcs.dv3d.Gfdv3d.getConfigurationParms``` + +:x:``` vcs.dv3d.Gfdv3d.getConfigurationState``` + +:x:``` vcs.dv3d.Gfdv3d.getParameter``` + +:x:``` vcs.dv3d.Gfdv3d.getParameterList``` + +:x:``` vcs.dv3d.Gfdv3d.getPlotAttribute``` + +:x:``` vcs.dv3d.Gfdv3d.getPlotAttributes``` + +:x:``` vcs.dv3d.Gfdv3d.getStateData``` + +:x:``` vcs.dv3d.Gfdv3d.initDefaultState``` + +:x:``` vcs.dv3d.Gfdv3d.list``` + +:x:``` vcs.dv3d.Gfdv3d.name``` + +:x:``` vcs.dv3d.Gfdv3d.restoreState``` + +:x:``` vcs.dv3d.Gfdv3d.script``` + +:x:``` vcs.dv3d.Gfdv3d.setParameter``` + +:x:``` vcs.dv3d.Gfdv3d.setProvenanceHandler``` + diff --git a/docs/doctest_info/editors.md b/docs/doctest_info/editors.md index 1487316ad..6100f47b4 100644 --- a/docs/doctest_info/editors.md +++ b/docs/doctest_info/editors.md @@ -1,3 +1,4 @@ Missing Doctests ---------------- -:x: vcs.editors +:x:``` vcs.editors``` + diff --git a/docs/doctest_info/error.md b/docs/doctest_info/error.md index a89b2e637..08e1a219f 100644 --- a/docs/doctest_info/error.md +++ b/docs/doctest_info/error.md @@ -1,6 +1,10 @@ Missing Doctests ---------------- -:x: vcs.error -:x: vcs.error.vcsError -:x: vcs.error.vcsError.__init__ -:x: vcs.error.vcsError.__str__ +:x:``` vcs.error``` + +:x:``` vcs.error.vcsError``` + +:x:``` vcs.error.vcsError.__init__``` + +:x:``` vcs.error.vcsError.__str__``` + diff --git a/docs/doctest_info/fillarea.md b/docs/doctest_info/fillarea.md index 719c50938..1dc6bc8e2 100644 --- a/docs/doctest_info/fillarea.md +++ b/docs/doctest_info/fillarea.md @@ -1,36 +1,70 @@ Missing Doctests ---------------- -:x: vcs.fillarea -:x: vcs.fillarea.Tf -:x: vcs.fillarea.Tf.__init__ -:x: vcs.fillarea.Tf._getfillareacolors -:x: vcs.fillarea.Tf._getfillareaindices -:x: vcs.fillarea.Tf._getfillareaopacity -:x: vcs.fillarea.Tf._getfillareastyle -:x: vcs.fillarea.Tf._getname -:x: vcs.fillarea.Tf._getpriority -:x: vcs.fillarea.Tf._getx -:x: vcs.fillarea.Tf._gety -:x: vcs.fillarea.Tf._setfillareacolors -:x: vcs.fillarea.Tf._setfillareaindices -:x: vcs.fillarea.Tf._setfillareaopacity -:x: vcs.fillarea.Tf._setfillareastyle -:x: vcs.fillarea.Tf._setname -:x: vcs.fillarea.Tf._setpriority -:x: vcs.fillarea.Tf._setx -:x: vcs.fillarea.Tf._sety -:x: vcs.fillarea.Tf.color -:x: vcs.fillarea.Tf.colormap -:x: vcs.fillarea.Tf.index -:x: vcs.fillarea.Tf.list -:x: vcs.fillarea.Tf.name -:x: vcs.fillarea.Tf.opacity -:x: vcs.fillarea.Tf.priority -:x: vcs.fillarea.Tf.projection -:x: vcs.fillarea.Tf.style -:x: vcs.fillarea.Tf.viewport -:x: vcs.fillarea.Tf.worldcoordinate -:x: vcs.fillarea.Tf.x -:x: vcs.fillarea.Tf.y -:x: vcs.fillarea.getmember -:x: vcs.fillarea.process_src +:x:``` vcs.fillarea``` + +:x:``` vcs.fillarea.Tf``` + +:x:``` vcs.fillarea.Tf.__init__``` + +:x:``` vcs.fillarea.Tf._getfillareacolors``` + +:x:``` vcs.fillarea.Tf._getfillareaindices``` + +:x:``` vcs.fillarea.Tf._getfillareaopacity``` + +:x:``` vcs.fillarea.Tf._getfillareastyle``` + +:x:``` vcs.fillarea.Tf._getname``` + +:x:``` vcs.fillarea.Tf._getpriority``` + +:x:``` vcs.fillarea.Tf._getx``` + +:x:``` vcs.fillarea.Tf._gety``` + +:x:``` vcs.fillarea.Tf._setfillareacolors``` + +:x:``` vcs.fillarea.Tf._setfillareaindices``` + +:x:``` vcs.fillarea.Tf._setfillareaopacity``` + +:x:``` vcs.fillarea.Tf._setfillareastyle``` + +:x:``` vcs.fillarea.Tf._setname``` + +:x:``` vcs.fillarea.Tf._setpriority``` + +:x:``` vcs.fillarea.Tf._setx``` + +:x:``` vcs.fillarea.Tf._sety``` + +:x:``` vcs.fillarea.Tf.color``` + +:x:``` vcs.fillarea.Tf.colormap``` + +:x:``` vcs.fillarea.Tf.index``` + +:x:``` vcs.fillarea.Tf.list``` + +:x:``` vcs.fillarea.Tf.name``` + +:x:``` vcs.fillarea.Tf.opacity``` + +:x:``` vcs.fillarea.Tf.priority``` + +:x:``` vcs.fillarea.Tf.projection``` + +:x:``` vcs.fillarea.Tf.style``` + +:x:``` vcs.fillarea.Tf.viewport``` + +:x:``` vcs.fillarea.Tf.worldcoordinate``` + +:x:``` vcs.fillarea.Tf.x``` + +:x:``` vcs.fillarea.Tf.y``` + +:x:``` vcs.fillarea.getmember``` + +:x:``` vcs.fillarea.process_src``` + diff --git a/docs/doctest_info/isofill.md b/docs/doctest_info/isofill.md index 4acc42bba..f28fc2109 100644 --- a/docs/doctest_info/isofill.md +++ b/docs/doctest_info/isofill.md @@ -16,86 +16,169 @@ Exception raised: Missing Doctests ---------------- -:x: vcs.isofill -:x: vcs.isofill.Gfi -:x: vcs.isofill.Gfi.__init__ -:x: vcs.isofill.Gfi._getcalendar -:x: vcs.isofill.Gfi._getdatawc_x1 -:x: vcs.isofill.Gfi._getdatawc_x2 -:x: vcs.isofill.Gfi._getdatawc_y1 -:x: vcs.isofill.Gfi._getdatawc_y2 -:x: vcs.isofill.Gfi._getfillareacolors -:x: vcs.isofill.Gfi._getfillareaindices -:x: vcs.isofill.Gfi._getfillareastyle -:x: vcs.isofill.Gfi._getmissing -:x: vcs.isofill.Gfi._getname -:x: vcs.isofill.Gfi._gettimeunits -:x: vcs.isofill.Gfi._getxaxisconvert -:x: vcs.isofill.Gfi._getxmtics1 -:x: vcs.isofill.Gfi._getxmtics2 -:x: vcs.isofill.Gfi._getxticlabels1 -:x: vcs.isofill.Gfi._getxticlabels2 -:x: vcs.isofill.Gfi._getyaxisconvert -:x: vcs.isofill.Gfi._getymtics1 -:x: vcs.isofill.Gfi._getymtics2 -:x: vcs.isofill.Gfi._getyticlabels1 -:x: vcs.isofill.Gfi._getyticlabels2 -:x: vcs.isofill.Gfi._setcalendar -:x: vcs.isofill.Gfi._setdatawc_x1 -:x: vcs.isofill.Gfi._setdatawc_x2 -:x: vcs.isofill.Gfi._setdatawc_y1 -:x: vcs.isofill.Gfi._setdatawc_y2 -:x: vcs.isofill.Gfi._setfillareacolors -:x: vcs.isofill.Gfi._setfillareaindices -:x: vcs.isofill.Gfi._setfillareastyle -:x: vcs.isofill.Gfi._setmissing -:x: vcs.isofill.Gfi._setname -:x: vcs.isofill.Gfi._settimeunits -:x: vcs.isofill.Gfi._setxaxisconvert -:x: vcs.isofill.Gfi._setxmtics1 -:x: vcs.isofill.Gfi._setxmtics2 -:x: vcs.isofill.Gfi._setxticlabels1 -:x: vcs.isofill.Gfi._setxticlabels2 -:x: vcs.isofill.Gfi._setyaxisconvert -:x: vcs.isofill.Gfi._setymtics1 -:x: vcs.isofill.Gfi._setymtics2 -:x: vcs.isofill.Gfi._setyticlabels1 -:x: vcs.isofill.Gfi._setyticlabels2 -:x: vcs.isofill.Gfi.colormap -:x: vcs.isofill.Gfi.colors -:x: vcs.isofill.Gfi.datawc -:x: vcs.isofill.Gfi.datawc_calendar -:x: vcs.isofill.Gfi.datawc_timeunits -:x: vcs.isofill.Gfi.datawc_x1 -:x: vcs.isofill.Gfi.datawc_x2 -:x: vcs.isofill.Gfi.datawc_y1 -:x: vcs.isofill.Gfi.datawc_y2 -:x: vcs.isofill.Gfi.ext_1 -:x: vcs.isofill.Gfi.ext_2 -:x: vcs.isofill.Gfi.exts -:x: vcs.isofill.Gfi.fillareacolors -:x: vcs.isofill.Gfi.fillareaindices -:x: vcs.isofill.Gfi.fillareaopacity -:x: vcs.isofill.Gfi.fillareastyle -:x: vcs.isofill.Gfi.legend -:x: vcs.isofill.Gfi.levels -:x: vcs.isofill.Gfi.list -:x: vcs.isofill.Gfi.missing -:x: vcs.isofill.Gfi.name -:x: vcs.isofill.Gfi.projection -:x: vcs.isofill.Gfi.xaxisconvert -:x: vcs.isofill.Gfi.xmtics -:x: vcs.isofill.Gfi.xmtics1 -:x: vcs.isofill.Gfi.xmtics2 -:x: vcs.isofill.Gfi.xticlabels -:x: vcs.isofill.Gfi.xticlabels1 -:x: vcs.isofill.Gfi.xticlabels2 -:x: vcs.isofill.Gfi.yaxisconvert -:x: vcs.isofill.Gfi.ymtics -:x: vcs.isofill.Gfi.ymtics1 -:x: vcs.isofill.Gfi.ymtics2 -:x: vcs.isofill.Gfi.yticlabels -:x: vcs.isofill.Gfi.yticlabels1 -:x: vcs.isofill.Gfi.yticlabels2 -:x: vcs.isofill.load -:x: vcs.isofill.process_src +:x:``` vcs.isofill``` + +:x:``` vcs.isofill.Gfi``` + +:x:``` vcs.isofill.Gfi.__init__``` + +:x:``` vcs.isofill.Gfi._getcalendar``` + +:x:``` vcs.isofill.Gfi._getdatawc_x1``` + +:x:``` vcs.isofill.Gfi._getdatawc_x2``` + +:x:``` vcs.isofill.Gfi._getdatawc_y1``` + +:x:``` vcs.isofill.Gfi._getdatawc_y2``` + +:x:``` vcs.isofill.Gfi._getfillareacolors``` + +:x:``` vcs.isofill.Gfi._getfillareaindices``` + +:x:``` vcs.isofill.Gfi._getfillareastyle``` + +:x:``` vcs.isofill.Gfi._getmissing``` + +:x:``` vcs.isofill.Gfi._getname``` + +:x:``` vcs.isofill.Gfi._gettimeunits``` + +:x:``` vcs.isofill.Gfi._getxaxisconvert``` + +:x:``` vcs.isofill.Gfi._getxmtics1``` + +:x:``` vcs.isofill.Gfi._getxmtics2``` + +:x:``` vcs.isofill.Gfi._getxticlabels1``` + +:x:``` vcs.isofill.Gfi._getxticlabels2``` + +:x:``` vcs.isofill.Gfi._getyaxisconvert``` + +:x:``` vcs.isofill.Gfi._getymtics1``` + +:x:``` vcs.isofill.Gfi._getymtics2``` + +:x:``` vcs.isofill.Gfi._getyticlabels1``` + +:x:``` vcs.isofill.Gfi._getyticlabels2``` + +:x:``` vcs.isofill.Gfi._setcalendar``` + +:x:``` vcs.isofill.Gfi._setdatawc_x1``` + +:x:``` vcs.isofill.Gfi._setdatawc_x2``` + +:x:``` vcs.isofill.Gfi._setdatawc_y1``` + +:x:``` vcs.isofill.Gfi._setdatawc_y2``` + +:x:``` vcs.isofill.Gfi._setfillareacolors``` + +:x:``` vcs.isofill.Gfi._setfillareaindices``` + +:x:``` vcs.isofill.Gfi._setfillareastyle``` + +:x:``` vcs.isofill.Gfi._setmissing``` + +:x:``` vcs.isofill.Gfi._setname``` + +:x:``` vcs.isofill.Gfi._settimeunits``` + +:x:``` vcs.isofill.Gfi._setxaxisconvert``` + +:x:``` vcs.isofill.Gfi._setxmtics1``` + +:x:``` vcs.isofill.Gfi._setxmtics2``` + +:x:``` vcs.isofill.Gfi._setxticlabels1``` + +:x:``` vcs.isofill.Gfi._setxticlabels2``` + +:x:``` vcs.isofill.Gfi._setyaxisconvert``` + +:x:``` vcs.isofill.Gfi._setymtics1``` + +:x:``` vcs.isofill.Gfi._setymtics2``` + +:x:``` vcs.isofill.Gfi._setyticlabels1``` + +:x:``` vcs.isofill.Gfi._setyticlabels2``` + +:x:``` vcs.isofill.Gfi.colormap``` + +:x:``` vcs.isofill.Gfi.colors``` + +:x:``` vcs.isofill.Gfi.datawc``` + +:x:``` vcs.isofill.Gfi.datawc_calendar``` + +:x:``` vcs.isofill.Gfi.datawc_timeunits``` + +:x:``` vcs.isofill.Gfi.datawc_x1``` + +:x:``` vcs.isofill.Gfi.datawc_x2``` + +:x:``` vcs.isofill.Gfi.datawc_y1``` + +:x:``` vcs.isofill.Gfi.datawc_y2``` + +:x:``` vcs.isofill.Gfi.ext_1``` + +:x:``` vcs.isofill.Gfi.ext_2``` + +:x:``` vcs.isofill.Gfi.exts``` + +:x:``` vcs.isofill.Gfi.fillareacolors``` + +:x:``` vcs.isofill.Gfi.fillareaindices``` + +:x:``` vcs.isofill.Gfi.fillareaopacity``` + +:x:``` vcs.isofill.Gfi.fillareastyle``` + +:x:``` vcs.isofill.Gfi.legend``` + +:x:``` vcs.isofill.Gfi.levels``` + +:x:``` vcs.isofill.Gfi.list``` + +:x:``` vcs.isofill.Gfi.missing``` + +:x:``` vcs.isofill.Gfi.name``` + +:x:``` vcs.isofill.Gfi.projection``` + +:x:``` vcs.isofill.Gfi.xaxisconvert``` + +:x:``` vcs.isofill.Gfi.xmtics``` + +:x:``` vcs.isofill.Gfi.xmtics1``` + +:x:``` vcs.isofill.Gfi.xmtics2``` + +:x:``` vcs.isofill.Gfi.xticlabels``` + +:x:``` vcs.isofill.Gfi.xticlabels1``` + +:x:``` vcs.isofill.Gfi.xticlabels2``` + +:x:``` vcs.isofill.Gfi.yaxisconvert``` + +:x:``` vcs.isofill.Gfi.ymtics``` + +:x:``` vcs.isofill.Gfi.ymtics1``` + +:x:``` vcs.isofill.Gfi.ymtics2``` + +:x:``` vcs.isofill.Gfi.yticlabels``` + +:x:``` vcs.isofill.Gfi.yticlabels1``` + +:x:``` vcs.isofill.Gfi.yticlabels2``` + +:x:``` vcs.isofill.load``` + +:x:``` vcs.isofill.process_src``` + diff --git a/docs/doctest_info/isoline.md b/docs/doctest_info/isoline.md index ff1973de7..95725767d 100644 --- a/docs/doctest_info/isoline.md +++ b/docs/doctest_info/isoline.md @@ -1,116 +1,230 @@ Missing Doctests ---------------- -:x: vcs.isoline -:x: vcs.isoline.Gi -:x: vcs.isoline.Gi.__init__ -:x: vcs.isoline.Gi._getangle -:x: vcs.isoline.Gi._getcalendar -:x: vcs.isoline.Gi._getclockwise -:x: vcs.isoline.Gi._getdatawc_x1 -:x: vcs.isoline.Gi._getdatawc_x2 -:x: vcs.isoline.Gi._getdatawc_y1 -:x: vcs.isoline.Gi._getdatawc_y2 -:x: vcs.isoline.Gi._getlabel -:x: vcs.isoline.Gi._getlabelbackgroundcolors -:x: vcs.isoline.Gi._getlabelbackgroundopacities -:x: vcs.isoline.Gi._getlabelskipdistance -:x: vcs.isoline.Gi._getlevels -:x: vcs.isoline.Gi._getline -:x: vcs.isoline.Gi._getlinecolors -:x: vcs.isoline.Gi._getlinetypes -:x: vcs.isoline.Gi._getlinewidths -:x: vcs.isoline.Gi._getname -:x: vcs.isoline.Gi._getprojection -:x: vcs.isoline.Gi._getscale -:x: vcs.isoline.Gi._getspacing -:x: vcs.isoline.Gi._gettext -:x: vcs.isoline.Gi._gettextcolors -:x: vcs.isoline.Gi._gettimeunits -:x: vcs.isoline.Gi._getxaxisconvert -:x: vcs.isoline.Gi._getxmtics1 -:x: vcs.isoline.Gi._getxmtics2 -:x: vcs.isoline.Gi._getxticlabels1 -:x: vcs.isoline.Gi._getxticlabels2 -:x: vcs.isoline.Gi._getyaxisconvert -:x: vcs.isoline.Gi._getymtics1 -:x: vcs.isoline.Gi._getymtics2 -:x: vcs.isoline.Gi._getyticlabels1 -:x: vcs.isoline.Gi._getyticlabels2 -:x: vcs.isoline.Gi._setangle -:x: vcs.isoline.Gi._setcalendar -:x: vcs.isoline.Gi._setclockwise -:x: vcs.isoline.Gi._setdatawc_x1 -:x: vcs.isoline.Gi._setdatawc_x2 -:x: vcs.isoline.Gi._setdatawc_y1 -:x: vcs.isoline.Gi._setdatawc_y2 -:x: vcs.isoline.Gi._setlabel -:x: vcs.isoline.Gi._setlabelbackgroundcolors -:x: vcs.isoline.Gi._setlabelbackgroundopacities -:x: vcs.isoline.Gi._setlabelskipdistance -:x: vcs.isoline.Gi._setlevels -:x: vcs.isoline.Gi._setline -:x: vcs.isoline.Gi._setlinecolors -:x: vcs.isoline.Gi._setlinetypes -:x: vcs.isoline.Gi._setlinewidths -:x: vcs.isoline.Gi._setname -:x: vcs.isoline.Gi._setprojection -:x: vcs.isoline.Gi._setscale -:x: vcs.isoline.Gi._setspacing -:x: vcs.isoline.Gi._settext -:x: vcs.isoline.Gi._settextcolors -:x: vcs.isoline.Gi._settimeunits -:x: vcs.isoline.Gi._setxaxisconvert -:x: vcs.isoline.Gi._setxmtics1 -:x: vcs.isoline.Gi._setxmtics2 -:x: vcs.isoline.Gi._setxticlabels1 -:x: vcs.isoline.Gi._setxticlabels2 -:x: vcs.isoline.Gi._setyaxisconvert -:x: vcs.isoline.Gi._setymtics1 -:x: vcs.isoline.Gi._setymtics2 -:x: vcs.isoline.Gi._setyticlabels1 -:x: vcs.isoline.Gi._setyticlabels2 -:x: vcs.isoline.Gi.angle -:x: vcs.isoline.Gi.clockwise -:x: vcs.isoline.Gi.colormap -:x: vcs.isoline.Gi.datawc -:x: vcs.isoline.Gi.datawc_calendar -:x: vcs.isoline.Gi.datawc_timeunits -:x: vcs.isoline.Gi.datawc_x1 -:x: vcs.isoline.Gi.datawc_x2 -:x: vcs.isoline.Gi.datawc_y1 -:x: vcs.isoline.Gi.datawc_y2 -:x: vcs.isoline.Gi.label -:x: vcs.isoline.Gi.labelbackgroundcolors -:x: vcs.isoline.Gi.labelbackgroundopacities -:x: vcs.isoline.Gi.labelskipdistance -:x: vcs.isoline.Gi.level -:x: vcs.isoline.Gi.levels -:x: vcs.isoline.Gi.line -:x: vcs.isoline.Gi.linecolors -:x: vcs.isoline.Gi.linetypes -:x: vcs.isoline.Gi.linewidths -:x: vcs.isoline.Gi.list -:x: vcs.isoline.Gi.name -:x: vcs.isoline.Gi.projection -:x: vcs.isoline.Gi.scale -:x: vcs.isoline.Gi.setLineAttributes -:x: vcs.isoline.Gi.spacing -:x: vcs.isoline.Gi.text -:x: vcs.isoline.Gi.textcolors -:x: vcs.isoline.Gi.xaxisconvert -:x: vcs.isoline.Gi.xmtics -:x: vcs.isoline.Gi.xmtics1 -:x: vcs.isoline.Gi.xmtics2 -:x: vcs.isoline.Gi.xticlabels -:x: vcs.isoline.Gi.xticlabels1 -:x: vcs.isoline.Gi.xticlabels2 -:x: vcs.isoline.Gi.yaxisconvert -:x: vcs.isoline.Gi.ymtics -:x: vcs.isoline.Gi.ymtics1 -:x: vcs.isoline.Gi.ymtics2 -:x: vcs.isoline.Gi.yticlabels -:x: vcs.isoline.Gi.yticlabels1 -:x: vcs.isoline.Gi.yticlabels2 -:x: vcs.isoline.get_att_from_sub -:x: vcs.isoline.load -:x: vcs.isoline.process_src +:x:``` vcs.isoline``` + +:x:``` vcs.isoline.Gi``` + +:x:``` vcs.isoline.Gi.__init__``` + +:x:``` vcs.isoline.Gi._getangle``` + +:x:``` vcs.isoline.Gi._getcalendar``` + +:x:``` vcs.isoline.Gi._getclockwise``` + +:x:``` vcs.isoline.Gi._getdatawc_x1``` + +:x:``` vcs.isoline.Gi._getdatawc_x2``` + +:x:``` vcs.isoline.Gi._getdatawc_y1``` + +:x:``` vcs.isoline.Gi._getdatawc_y2``` + +:x:``` vcs.isoline.Gi._getlabel``` + +:x:``` vcs.isoline.Gi._getlabelbackgroundcolors``` + +:x:``` vcs.isoline.Gi._getlabelbackgroundopacities``` + +:x:``` vcs.isoline.Gi._getlabelskipdistance``` + +:x:``` vcs.isoline.Gi._getlevels``` + +:x:``` vcs.isoline.Gi._getline``` + +:x:``` vcs.isoline.Gi._getlinecolors``` + +:x:``` vcs.isoline.Gi._getlinetypes``` + +:x:``` vcs.isoline.Gi._getlinewidths``` + +:x:``` vcs.isoline.Gi._getname``` + +:x:``` vcs.isoline.Gi._getprojection``` + +:x:``` vcs.isoline.Gi._getscale``` + +:x:``` vcs.isoline.Gi._getspacing``` + +:x:``` vcs.isoline.Gi._gettext``` + +:x:``` vcs.isoline.Gi._gettextcolors``` + +:x:``` vcs.isoline.Gi._gettimeunits``` + +:x:``` vcs.isoline.Gi._getxaxisconvert``` + +:x:``` vcs.isoline.Gi._getxmtics1``` + +:x:``` vcs.isoline.Gi._getxmtics2``` + +:x:``` vcs.isoline.Gi._getxticlabels1``` + +:x:``` vcs.isoline.Gi._getxticlabels2``` + +:x:``` vcs.isoline.Gi._getyaxisconvert``` + +:x:``` vcs.isoline.Gi._getymtics1``` + +:x:``` vcs.isoline.Gi._getymtics2``` + +:x:``` vcs.isoline.Gi._getyticlabels1``` + +:x:``` vcs.isoline.Gi._getyticlabels2``` + +:x:``` vcs.isoline.Gi._setangle``` + +:x:``` vcs.isoline.Gi._setcalendar``` + +:x:``` vcs.isoline.Gi._setclockwise``` + +:x:``` vcs.isoline.Gi._setdatawc_x1``` + +:x:``` vcs.isoline.Gi._setdatawc_x2``` + +:x:``` vcs.isoline.Gi._setdatawc_y1``` + +:x:``` vcs.isoline.Gi._setdatawc_y2``` + +:x:``` vcs.isoline.Gi._setlabel``` + +:x:``` vcs.isoline.Gi._setlabelbackgroundcolors``` + +:x:``` vcs.isoline.Gi._setlabelbackgroundopacities``` + +:x:``` vcs.isoline.Gi._setlabelskipdistance``` + +:x:``` vcs.isoline.Gi._setlevels``` + +:x:``` vcs.isoline.Gi._setline``` + +:x:``` vcs.isoline.Gi._setlinecolors``` + +:x:``` vcs.isoline.Gi._setlinetypes``` + +:x:``` vcs.isoline.Gi._setlinewidths``` + +:x:``` vcs.isoline.Gi._setname``` + +:x:``` vcs.isoline.Gi._setprojection``` + +:x:``` vcs.isoline.Gi._setscale``` + +:x:``` vcs.isoline.Gi._setspacing``` + +:x:``` vcs.isoline.Gi._settext``` + +:x:``` vcs.isoline.Gi._settextcolors``` + +:x:``` vcs.isoline.Gi._settimeunits``` + +:x:``` vcs.isoline.Gi._setxaxisconvert``` + +:x:``` vcs.isoline.Gi._setxmtics1``` + +:x:``` vcs.isoline.Gi._setxmtics2``` + +:x:``` vcs.isoline.Gi._setxticlabels1``` + +:x:``` vcs.isoline.Gi._setxticlabels2``` + +:x:``` vcs.isoline.Gi._setyaxisconvert``` + +:x:``` vcs.isoline.Gi._setymtics1``` + +:x:``` vcs.isoline.Gi._setymtics2``` + +:x:``` vcs.isoline.Gi._setyticlabels1``` + +:x:``` vcs.isoline.Gi._setyticlabels2``` + +:x:``` vcs.isoline.Gi.angle``` + +:x:``` vcs.isoline.Gi.clockwise``` + +:x:``` vcs.isoline.Gi.colormap``` + +:x:``` vcs.isoline.Gi.datawc``` + +:x:``` vcs.isoline.Gi.datawc_calendar``` + +:x:``` vcs.isoline.Gi.datawc_timeunits``` + +:x:``` vcs.isoline.Gi.datawc_x1``` + +:x:``` vcs.isoline.Gi.datawc_x2``` + +:x:``` vcs.isoline.Gi.datawc_y1``` + +:x:``` vcs.isoline.Gi.datawc_y2``` + +:x:``` vcs.isoline.Gi.label``` + +:x:``` vcs.isoline.Gi.labelbackgroundcolors``` + +:x:``` vcs.isoline.Gi.labelbackgroundopacities``` + +:x:``` vcs.isoline.Gi.labelskipdistance``` + +:x:``` vcs.isoline.Gi.level``` + +:x:``` vcs.isoline.Gi.levels``` + +:x:``` vcs.isoline.Gi.line``` + +:x:``` vcs.isoline.Gi.linecolors``` + +:x:``` vcs.isoline.Gi.linetypes``` + +:x:``` vcs.isoline.Gi.linewidths``` + +:x:``` vcs.isoline.Gi.list``` + +:x:``` vcs.isoline.Gi.name``` + +:x:``` vcs.isoline.Gi.projection``` + +:x:``` vcs.isoline.Gi.scale``` + +:x:``` vcs.isoline.Gi.setLineAttributes``` + +:x:``` vcs.isoline.Gi.spacing``` + +:x:``` vcs.isoline.Gi.text``` + +:x:``` vcs.isoline.Gi.textcolors``` + +:x:``` vcs.isoline.Gi.xaxisconvert``` + +:x:``` vcs.isoline.Gi.xmtics``` + +:x:``` vcs.isoline.Gi.xmtics1``` + +:x:``` vcs.isoline.Gi.xmtics2``` + +:x:``` vcs.isoline.Gi.xticlabels``` + +:x:``` vcs.isoline.Gi.xticlabels1``` + +:x:``` vcs.isoline.Gi.xticlabels2``` + +:x:``` vcs.isoline.Gi.yaxisconvert``` + +:x:``` vcs.isoline.Gi.ymtics``` + +:x:``` vcs.isoline.Gi.ymtics1``` + +:x:``` vcs.isoline.Gi.ymtics2``` + +:x:``` vcs.isoline.Gi.yticlabels``` + +:x:``` vcs.isoline.Gi.yticlabels1``` + +:x:``` vcs.isoline.Gi.yticlabels2``` + +:x:``` vcs.isoline.get_att_from_sub``` + +:x:``` vcs.isoline.load``` + +:x:``` vcs.isoline.process_src``` + diff --git a/docs/doctest_info/line.md b/docs/doctest_info/line.md index fc8857fb8..93d965b12 100644 --- a/docs/doctest_info/line.md +++ b/docs/doctest_info/line.md @@ -1,38 +1,74 @@ Missing Doctests ---------------- -:x: vcs.line -:x: vcs.line.Tl -:x: vcs.line.Tl.__init__ -:x: vcs.line.Tl._getfillareacolors -:x: vcs.line.Tl._getname -:x: vcs.line.Tl._getpriority -:x: vcs.line.Tl._getprojection -:x: vcs.line.Tl._gettype -:x: vcs.line.Tl._getvp -:x: vcs.line.Tl._getwc -:x: vcs.line.Tl._getwidth -:x: vcs.line.Tl._getx -:x: vcs.line.Tl._gety -:x: vcs.line.Tl._setfillareacolors -:x: vcs.line.Tl._setname -:x: vcs.line.Tl._setpriority -:x: vcs.line.Tl._setprojection -:x: vcs.line.Tl._settype -:x: vcs.line.Tl._setvp -:x: vcs.line.Tl._setwc -:x: vcs.line.Tl._setwidth -:x: vcs.line.Tl._setx -:x: vcs.line.Tl._sety -:x: vcs.line.Tl.color -:x: vcs.line.Tl.colormap -:x: vcs.line.Tl.list -:x: vcs.line.Tl.name -:x: vcs.line.Tl.priority -:x: vcs.line.Tl.projection -:x: vcs.line.Tl.type -:x: vcs.line.Tl.viewport -:x: vcs.line.Tl.width -:x: vcs.line.Tl.worldcoordinate -:x: vcs.line.Tl.x -:x: vcs.line.Tl.y -:x: vcs.line.process_src +:x:``` vcs.line``` + +:x:``` vcs.line.Tl``` + +:x:``` vcs.line.Tl.__init__``` + +:x:``` vcs.line.Tl._getfillareacolors``` + +:x:``` vcs.line.Tl._getname``` + +:x:``` vcs.line.Tl._getpriority``` + +:x:``` vcs.line.Tl._getprojection``` + +:x:``` vcs.line.Tl._gettype``` + +:x:``` vcs.line.Tl._getvp``` + +:x:``` vcs.line.Tl._getwc``` + +:x:``` vcs.line.Tl._getwidth``` + +:x:``` vcs.line.Tl._getx``` + +:x:``` vcs.line.Tl._gety``` + +:x:``` vcs.line.Tl._setfillareacolors``` + +:x:``` vcs.line.Tl._setname``` + +:x:``` vcs.line.Tl._setpriority``` + +:x:``` vcs.line.Tl._setprojection``` + +:x:``` vcs.line.Tl._settype``` + +:x:``` vcs.line.Tl._setvp``` + +:x:``` vcs.line.Tl._setwc``` + +:x:``` vcs.line.Tl._setwidth``` + +:x:``` vcs.line.Tl._setx``` + +:x:``` vcs.line.Tl._sety``` + +:x:``` vcs.line.Tl.color``` + +:x:``` vcs.line.Tl.colormap``` + +:x:``` vcs.line.Tl.list``` + +:x:``` vcs.line.Tl.name``` + +:x:``` vcs.line.Tl.priority``` + +:x:``` vcs.line.Tl.projection``` + +:x:``` vcs.line.Tl.type``` + +:x:``` vcs.line.Tl.viewport``` + +:x:``` vcs.line.Tl.width``` + +:x:``` vcs.line.Tl.worldcoordinate``` + +:x:``` vcs.line.Tl.x``` + +:x:``` vcs.line.Tl.y``` + +:x:``` vcs.line.process_src``` + diff --git a/docs/doctest_info/log_all_doctests.sh b/docs/doctest_info/log_all_doctests.sh index 50545ef11..b8973f63d 100755 --- a/docs/doctest_info/log_all_doctests.sh +++ b/docs/doctest_info/log_all_doctests.sh @@ -8,4 +8,4 @@ MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" "vtk_ui") -for module in "${MODULES[@]}"; do python doctest_vcs.py -v -r --LO "$module"; done; \ No newline at end of file +for module in "${MODULES[@]}"; do python doctest_vcs.py -v -r --LO "$module"; done; diff --git a/docs/doctest_info/manageElements.md b/docs/doctest_info/manageElements.md index 8b4c28515..2645d0080 100644 --- a/docs/doctest_info/manageElements.md +++ b/docs/doctest_info/manageElements.md @@ -118,28 +118,53 @@ Exception raised: Missing Doctests ---------------- -:x: vcs.manageElements -:x: vcs.manageElements.check_name_source -:x: vcs.manageElements.create1d -:x: vcs.manageElements.get1d -:x: vcs.manageElements.removeCp -:x: vcs.manageElements.removeG -:x: vcs.manageElements.removeG1d -:x: vcs.manageElements.removeGSp -:x: vcs.manageElements.removeGXY -:x: vcs.manageElements.removeGXy -:x: vcs.manageElements.removeGYx -:x: vcs.manageElements.removeGfb -:x: vcs.manageElements.removeGfi -:x: vcs.manageElements.removeGfm -:x: vcs.manageElements.removeGi -:x: vcs.manageElements.removeGtd -:x: vcs.manageElements.removeGv -:x: vcs.manageElements.removeP -:x: vcs.manageElements.removeProj -:x: vcs.manageElements.removeTc -:x: vcs.manageElements.removeTf -:x: vcs.manageElements.removeTl -:x: vcs.manageElements.removeTm -:x: vcs.manageElements.removeTo -:x: vcs.manageElements.removeTt +:x:``` vcs.manageElements``` + +:x:``` vcs.manageElements.check_name_source``` + +:x:``` vcs.manageElements.create1d``` + +:x:``` vcs.manageElements.get1d``` + +:x:``` vcs.manageElements.removeCp``` + +:x:``` vcs.manageElements.removeG``` + +:x:``` vcs.manageElements.removeG1d``` + +:x:``` vcs.manageElements.removeGSp``` + +:x:``` vcs.manageElements.removeGXY``` + +:x:``` vcs.manageElements.removeGXy``` + +:x:``` vcs.manageElements.removeGYx``` + +:x:``` vcs.manageElements.removeGfb``` + +:x:``` vcs.manageElements.removeGfi``` + +:x:``` vcs.manageElements.removeGfm``` + +:x:``` vcs.manageElements.removeGi``` + +:x:``` vcs.manageElements.removeGtd``` + +:x:``` vcs.manageElements.removeGv``` + +:x:``` vcs.manageElements.removeP``` + +:x:``` vcs.manageElements.removeProj``` + +:x:``` vcs.manageElements.removeTc``` + +:x:``` vcs.manageElements.removeTf``` + +:x:``` vcs.manageElements.removeTl``` + +:x:``` vcs.manageElements.removeTm``` + +:x:``` vcs.manageElements.removeTo``` + +:x:``` vcs.manageElements.removeTt``` + diff --git a/docs/doctest_info/marker.md b/docs/doctest_info/marker.md index a73d8a579..55ac7209b 100644 --- a/docs/doctest_info/marker.md +++ b/docs/doctest_info/marker.md @@ -1,38 +1,74 @@ Missing Doctests ---------------- -:x: vcs.marker -:x: vcs.marker.Tm -:x: vcs.marker.Tm.__init__ -:x: vcs.marker.Tm._getfillareacolors -:x: vcs.marker.Tm._getname -:x: vcs.marker.Tm._getpriority -:x: vcs.marker.Tm._getprojection -:x: vcs.marker.Tm._getsize -:x: vcs.marker.Tm._gettype -:x: vcs.marker.Tm._getvp -:x: vcs.marker.Tm._getwc -:x: vcs.marker.Tm._getx -:x: vcs.marker.Tm._gety -:x: vcs.marker.Tm._setfillareacolors -:x: vcs.marker.Tm._setname -:x: vcs.marker.Tm._setpriority -:x: vcs.marker.Tm._setprojection -:x: vcs.marker.Tm._setsize -:x: vcs.marker.Tm._settype -:x: vcs.marker.Tm._setvp -:x: vcs.marker.Tm._setwc -:x: vcs.marker.Tm._setx -:x: vcs.marker.Tm._sety -:x: vcs.marker.Tm.color -:x: vcs.marker.Tm.colormap -:x: vcs.marker.Tm.list -:x: vcs.marker.Tm.name -:x: vcs.marker.Tm.priority -:x: vcs.marker.Tm.projection -:x: vcs.marker.Tm.size -:x: vcs.marker.Tm.type -:x: vcs.marker.Tm.viewport -:x: vcs.marker.Tm.worldcoordinate -:x: vcs.marker.Tm.x -:x: vcs.marker.Tm.y -:x: vcs.marker.process_src +:x:``` vcs.marker``` + +:x:``` vcs.marker.Tm``` + +:x:``` vcs.marker.Tm.__init__``` + +:x:``` vcs.marker.Tm._getfillareacolors``` + +:x:``` vcs.marker.Tm._getname``` + +:x:``` vcs.marker.Tm._getpriority``` + +:x:``` vcs.marker.Tm._getprojection``` + +:x:``` vcs.marker.Tm._getsize``` + +:x:``` vcs.marker.Tm._gettype``` + +:x:``` vcs.marker.Tm._getvp``` + +:x:``` vcs.marker.Tm._getwc``` + +:x:``` vcs.marker.Tm._getx``` + +:x:``` vcs.marker.Tm._gety``` + +:x:``` vcs.marker.Tm._setfillareacolors``` + +:x:``` vcs.marker.Tm._setname``` + +:x:``` vcs.marker.Tm._setpriority``` + +:x:``` vcs.marker.Tm._setprojection``` + +:x:``` vcs.marker.Tm._setsize``` + +:x:``` vcs.marker.Tm._settype``` + +:x:``` vcs.marker.Tm._setvp``` + +:x:``` vcs.marker.Tm._setwc``` + +:x:``` vcs.marker.Tm._setx``` + +:x:``` vcs.marker.Tm._sety``` + +:x:``` vcs.marker.Tm.color``` + +:x:``` vcs.marker.Tm.colormap``` + +:x:``` vcs.marker.Tm.list``` + +:x:``` vcs.marker.Tm.name``` + +:x:``` vcs.marker.Tm.priority``` + +:x:``` vcs.marker.Tm.projection``` + +:x:``` vcs.marker.Tm.size``` + +:x:``` vcs.marker.Tm.type``` + +:x:``` vcs.marker.Tm.viewport``` + +:x:``` vcs.marker.Tm.worldcoordinate``` + +:x:``` vcs.marker.Tm.x``` + +:x:``` vcs.marker.Tm.y``` + +:x:``` vcs.marker.process_src``` + diff --git a/docs/doctest_info/meshfill.md b/docs/doctest_info/meshfill.md index 300dba476..1678c76e3 100644 --- a/docs/doctest_info/meshfill.md +++ b/docs/doctest_info/meshfill.md @@ -16,92 +16,181 @@ Exception raised: Missing Doctests ---------------- -:x: vcs.meshfill -:x: vcs.meshfill.Gfm -:x: vcs.meshfill.Gfm.__init__ -:x: vcs.meshfill.Gfm._getcalendar -:x: vcs.meshfill.Gfm._getdatawc_x1 -:x: vcs.meshfill.Gfm._getdatawc_x2 -:x: vcs.meshfill.Gfm._getdatawc_y1 -:x: vcs.meshfill.Gfm._getdatawc_y2 -:x: vcs.meshfill.Gfm._getfillareaindices -:x: vcs.meshfill.Gfm._getfillareastyle -:x: vcs.meshfill.Gfm._getmesh -:x: vcs.meshfill.Gfm._getmissing -:x: vcs.meshfill.Gfm._getname -:x: vcs.meshfill.Gfm._getprojection -:x: vcs.meshfill.Gfm._gettimeunits -:x: vcs.meshfill.Gfm._getwrap -:x: vcs.meshfill.Gfm._getxaxisconvert -:x: vcs.meshfill.Gfm._getxmtics1 -:x: vcs.meshfill.Gfm._getxmtics2 -:x: vcs.meshfill.Gfm._getxticlabels1 -:x: vcs.meshfill.Gfm._getxticlabels2 -:x: vcs.meshfill.Gfm._getyaxisconvert -:x: vcs.meshfill.Gfm._getymtics1 -:x: vcs.meshfill.Gfm._getymtics2 -:x: vcs.meshfill.Gfm._getyticlabels1 -:x: vcs.meshfill.Gfm._getyticlabels2 -:x: vcs.meshfill.Gfm._setcalendar -:x: vcs.meshfill.Gfm._setdatawc_x1 -:x: vcs.meshfill.Gfm._setdatawc_x2 -:x: vcs.meshfill.Gfm._setdatawc_y1 -:x: vcs.meshfill.Gfm._setdatawc_y2 -:x: vcs.meshfill.Gfm._setfillareaindices -:x: vcs.meshfill.Gfm._setfillareastyle -:x: vcs.meshfill.Gfm._setmesh -:x: vcs.meshfill.Gfm._setmissing -:x: vcs.meshfill.Gfm._setname -:x: vcs.meshfill.Gfm._setprojection -:x: vcs.meshfill.Gfm._settimeunits -:x: vcs.meshfill.Gfm._setwrap -:x: vcs.meshfill.Gfm._setxaxisconvert -:x: vcs.meshfill.Gfm._setxmtics1 -:x: vcs.meshfill.Gfm._setxmtics2 -:x: vcs.meshfill.Gfm._setxticlabels1 -:x: vcs.meshfill.Gfm._setxticlabels2 -:x: vcs.meshfill.Gfm._setyaxisconvert -:x: vcs.meshfill.Gfm._setymtics1 -:x: vcs.meshfill.Gfm._setymtics2 -:x: vcs.meshfill.Gfm._setyticlabels1 -:x: vcs.meshfill.Gfm._setyticlabels2 -:x: vcs.meshfill.Gfm.colormap -:x: vcs.meshfill.Gfm.colors -:x: vcs.meshfill.Gfm.datawc -:x: vcs.meshfill.Gfm.datawc_calendar -:x: vcs.meshfill.Gfm.datawc_timeunits -:x: vcs.meshfill.Gfm.datawc_x1 -:x: vcs.meshfill.Gfm.datawc_x2 -:x: vcs.meshfill.Gfm.datawc_y1 -:x: vcs.meshfill.Gfm.datawc_y2 -:x: vcs.meshfill.Gfm.ext_1 -:x: vcs.meshfill.Gfm.ext_2 -:x: vcs.meshfill.Gfm.exts -:x: vcs.meshfill.Gfm.fillareacolors -:x: vcs.meshfill.Gfm.fillareaindices -:x: vcs.meshfill.Gfm.fillareaopacity -:x: vcs.meshfill.Gfm.fillareastyle -:x: vcs.meshfill.Gfm.legend -:x: vcs.meshfill.Gfm.levels -:x: vcs.meshfill.Gfm.list -:x: vcs.meshfill.Gfm.mesh -:x: vcs.meshfill.Gfm.missing -:x: vcs.meshfill.Gfm.name -:x: vcs.meshfill.Gfm.projection -:x: vcs.meshfill.Gfm.wrap -:x: vcs.meshfill.Gfm.xaxisconvert -:x: vcs.meshfill.Gfm.xmtics -:x: vcs.meshfill.Gfm.xmtics1 -:x: vcs.meshfill.Gfm.xmtics2 -:x: vcs.meshfill.Gfm.xticlabels -:x: vcs.meshfill.Gfm.xticlabels1 -:x: vcs.meshfill.Gfm.xticlabels2 -:x: vcs.meshfill.Gfm.yaxisconvert -:x: vcs.meshfill.Gfm.ymtics -:x: vcs.meshfill.Gfm.ymtics1 -:x: vcs.meshfill.Gfm.ymtics2 -:x: vcs.meshfill.Gfm.yticlabels -:x: vcs.meshfill.Gfm.yticlabels1 -:x: vcs.meshfill.Gfm.yticlabels2 -:x: vcs.meshfill.load -:x: vcs.meshfill.process_src +:x:``` vcs.meshfill``` + +:x:``` vcs.meshfill.Gfm``` + +:x:``` vcs.meshfill.Gfm.__init__``` + +:x:``` vcs.meshfill.Gfm._getcalendar``` + +:x:``` vcs.meshfill.Gfm._getdatawc_x1``` + +:x:``` vcs.meshfill.Gfm._getdatawc_x2``` + +:x:``` vcs.meshfill.Gfm._getdatawc_y1``` + +:x:``` vcs.meshfill.Gfm._getdatawc_y2``` + +:x:``` vcs.meshfill.Gfm._getfillareaindices``` + +:x:``` vcs.meshfill.Gfm._getfillareastyle``` + +:x:``` vcs.meshfill.Gfm._getmesh``` + +:x:``` vcs.meshfill.Gfm._getmissing``` + +:x:``` vcs.meshfill.Gfm._getname``` + +:x:``` vcs.meshfill.Gfm._getprojection``` + +:x:``` vcs.meshfill.Gfm._gettimeunits``` + +:x:``` vcs.meshfill.Gfm._getwrap``` + +:x:``` vcs.meshfill.Gfm._getxaxisconvert``` + +:x:``` vcs.meshfill.Gfm._getxmtics1``` + +:x:``` vcs.meshfill.Gfm._getxmtics2``` + +:x:``` vcs.meshfill.Gfm._getxticlabels1``` + +:x:``` vcs.meshfill.Gfm._getxticlabels2``` + +:x:``` vcs.meshfill.Gfm._getyaxisconvert``` + +:x:``` vcs.meshfill.Gfm._getymtics1``` + +:x:``` vcs.meshfill.Gfm._getymtics2``` + +:x:``` vcs.meshfill.Gfm._getyticlabels1``` + +:x:``` vcs.meshfill.Gfm._getyticlabels2``` + +:x:``` vcs.meshfill.Gfm._setcalendar``` + +:x:``` vcs.meshfill.Gfm._setdatawc_x1``` + +:x:``` vcs.meshfill.Gfm._setdatawc_x2``` + +:x:``` vcs.meshfill.Gfm._setdatawc_y1``` + +:x:``` vcs.meshfill.Gfm._setdatawc_y2``` + +:x:``` vcs.meshfill.Gfm._setfillareaindices``` + +:x:``` vcs.meshfill.Gfm._setfillareastyle``` + +:x:``` vcs.meshfill.Gfm._setmesh``` + +:x:``` vcs.meshfill.Gfm._setmissing``` + +:x:``` vcs.meshfill.Gfm._setname``` + +:x:``` vcs.meshfill.Gfm._setprojection``` + +:x:``` vcs.meshfill.Gfm._settimeunits``` + +:x:``` vcs.meshfill.Gfm._setwrap``` + +:x:``` vcs.meshfill.Gfm._setxaxisconvert``` + +:x:``` vcs.meshfill.Gfm._setxmtics1``` + +:x:``` vcs.meshfill.Gfm._setxmtics2``` + +:x:``` vcs.meshfill.Gfm._setxticlabels1``` + +:x:``` vcs.meshfill.Gfm._setxticlabels2``` + +:x:``` vcs.meshfill.Gfm._setyaxisconvert``` + +:x:``` vcs.meshfill.Gfm._setymtics1``` + +:x:``` vcs.meshfill.Gfm._setymtics2``` + +:x:``` vcs.meshfill.Gfm._setyticlabels1``` + +:x:``` vcs.meshfill.Gfm._setyticlabels2``` + +:x:``` vcs.meshfill.Gfm.colormap``` + +:x:``` vcs.meshfill.Gfm.colors``` + +:x:``` vcs.meshfill.Gfm.datawc``` + +:x:``` vcs.meshfill.Gfm.datawc_calendar``` + +:x:``` vcs.meshfill.Gfm.datawc_timeunits``` + +:x:``` vcs.meshfill.Gfm.datawc_x1``` + +:x:``` vcs.meshfill.Gfm.datawc_x2``` + +:x:``` vcs.meshfill.Gfm.datawc_y1``` + +:x:``` vcs.meshfill.Gfm.datawc_y2``` + +:x:``` vcs.meshfill.Gfm.ext_1``` + +:x:``` vcs.meshfill.Gfm.ext_2``` + +:x:``` vcs.meshfill.Gfm.exts``` + +:x:``` vcs.meshfill.Gfm.fillareacolors``` + +:x:``` vcs.meshfill.Gfm.fillareaindices``` + +:x:``` vcs.meshfill.Gfm.fillareaopacity``` + +:x:``` vcs.meshfill.Gfm.fillareastyle``` + +:x:``` vcs.meshfill.Gfm.legend``` + +:x:``` vcs.meshfill.Gfm.levels``` + +:x:``` vcs.meshfill.Gfm.list``` + +:x:``` vcs.meshfill.Gfm.mesh``` + +:x:``` vcs.meshfill.Gfm.missing``` + +:x:``` vcs.meshfill.Gfm.name``` + +:x:``` vcs.meshfill.Gfm.projection``` + +:x:``` vcs.meshfill.Gfm.wrap``` + +:x:``` vcs.meshfill.Gfm.xaxisconvert``` + +:x:``` vcs.meshfill.Gfm.xmtics``` + +:x:``` vcs.meshfill.Gfm.xmtics1``` + +:x:``` vcs.meshfill.Gfm.xmtics2``` + +:x:``` vcs.meshfill.Gfm.xticlabels``` + +:x:``` vcs.meshfill.Gfm.xticlabels1``` + +:x:``` vcs.meshfill.Gfm.xticlabels2``` + +:x:``` vcs.meshfill.Gfm.yaxisconvert``` + +:x:``` vcs.meshfill.Gfm.ymtics``` + +:x:``` vcs.meshfill.Gfm.ymtics1``` + +:x:``` vcs.meshfill.Gfm.ymtics2``` + +:x:``` vcs.meshfill.Gfm.yticlabels``` + +:x:``` vcs.meshfill.Gfm.yticlabels1``` + +:x:``` vcs.meshfill.Gfm.yticlabels2``` + +:x:``` vcs.meshfill.load``` + +:x:``` vcs.meshfill.process_src``` + diff --git a/docs/doctest_info/projection.md b/docs/doctest_info/projection.md index ecce4d3fb..d193638b9 100644 --- a/docs/doctest_info/projection.md +++ b/docs/doctest_info/projection.md @@ -1,114 +1,226 @@ Missing Doctests ---------------- -:x: vcs.projection -:x: vcs.projection.Proj -:x: vcs.projection.Proj.__init__ -:x: vcs.projection.Proj._getangle -:x: vcs.projection.Proj._getazimuthalangle -:x: vcs.projection.Proj._getazimuthallongitude -:x: vcs.projection.Proj._getcenterlatitude -:x: vcs.projection.Proj._getcenterlongitude -:x: vcs.projection.Proj._getcentralmeridian -:x: vcs.projection.Proj._getfactor -:x: vcs.projection.Proj._getfalseeasting -:x: vcs.projection.Proj._getfalsenorthing -:x: vcs.projection.Proj._getheight -:x: vcs.projection.Proj._getlandsatcompensationratio -:x: vcs.projection.Proj._getlatitude1 -:x: vcs.projection.Proj._getlatitude2 -:x: vcs.projection.Proj._getlongitude1 -:x: vcs.projection.Proj._getlongitude2 -:x: vcs.projection.Proj._getname -:x: vcs.projection.Proj._getorbitinclination -:x: vcs.projection.Proj._getorbitlongitude -:x: vcs.projection.Proj._getoriginlatitude -:x: vcs.projection.Proj._getparameters -:x: vcs.projection.Proj._getpath -:x: vcs.projection.Proj._getpathflag -:x: vcs.projection.Proj._getsatellite -:x: vcs.projection.Proj._getsatelliterevolutionperiod -:x: vcs.projection.Proj._getshapem -:x: vcs.projection.Proj._getshapen -:x: vcs.projection.Proj._getsmajor -:x: vcs.projection.Proj._getsminor -:x: vcs.projection.Proj._getsphere -:x: vcs.projection.Proj._getstandardparallel -:x: vcs.projection.Proj._getstandardparallel1 -:x: vcs.projection.Proj._getstandardparallel2 -:x: vcs.projection.Proj._getsubtype -:x: vcs.projection.Proj._gettruescale -:x: vcs.projection.Proj._gettype -:x: vcs.projection.Proj._setangle -:x: vcs.projection.Proj._setazimuthalangle -:x: vcs.projection.Proj._setazimuthallongitude -:x: vcs.projection.Proj._setcenterlatitude -:x: vcs.projection.Proj._setcenterlongitude -:x: vcs.projection.Proj._setcentralmeridian -:x: vcs.projection.Proj._setfactor -:x: vcs.projection.Proj._setfalseeasting -:x: vcs.projection.Proj._setfalsenorthing -:x: vcs.projection.Proj._setheight -:x: vcs.projection.Proj._setlandsatcompensationratio -:x: vcs.projection.Proj._setlatitude1 -:x: vcs.projection.Proj._setlatitude2 -:x: vcs.projection.Proj._setlongitude1 -:x: vcs.projection.Proj._setlongitude2 -:x: vcs.projection.Proj._setname -:x: vcs.projection.Proj._setorbitinclination -:x: vcs.projection.Proj._setorbitlongitude -:x: vcs.projection.Proj._setoriginlatitude -:x: vcs.projection.Proj._setparameters -:x: vcs.projection.Proj._setpath -:x: vcs.projection.Proj._setpathflag -:x: vcs.projection.Proj._setsatellite -:x: vcs.projection.Proj._setsatelliterevolutionperiod -:x: vcs.projection.Proj._setshapem -:x: vcs.projection.Proj._setshapen -:x: vcs.projection.Proj._setsmajor -:x: vcs.projection.Proj._setsminor -:x: vcs.projection.Proj._setsphere -:x: vcs.projection.Proj._setstandardparallel -:x: vcs.projection.Proj._setstandardparallel1 -:x: vcs.projection.Proj._setstandardparallel2 -:x: vcs.projection.Proj._setsubtype -:x: vcs.projection.Proj._settruescale -:x: vcs.projection.Proj._settype -:x: vcs.projection.Proj.angle -:x: vcs.projection.Proj.attributes -:x: vcs.projection.Proj.azimuthalangle -:x: vcs.projection.Proj.azimuthallongitude -:x: vcs.projection.Proj.centerlatitude -:x: vcs.projection.Proj.centerlongitude -:x: vcs.projection.Proj.centralmeridian -:x: vcs.projection.Proj.checkPP -:x: vcs.projection.Proj.factor -:x: vcs.projection.Proj.falseeasting -:x: vcs.projection.Proj.falsenorthing -:x: vcs.projection.Proj.height -:x: vcs.projection.Proj.landsatcompensationratio -:x: vcs.projection.Proj.latitude1 -:x: vcs.projection.Proj.latitude2 -:x: vcs.projection.Proj.list -:x: vcs.projection.Proj.longitude1 -:x: vcs.projection.Proj.longitude2 -:x: vcs.projection.Proj.name -:x: vcs.projection.Proj.orbitinclination -:x: vcs.projection.Proj.orbitlongitude -:x: vcs.projection.Proj.originlatitude -:x: vcs.projection.Proj.parameters -:x: vcs.projection.Proj.path -:x: vcs.projection.Proj.pathflag -:x: vcs.projection.Proj.satellite -:x: vcs.projection.Proj.satelliterevolutionperiod -:x: vcs.projection.Proj.shapem -:x: vcs.projection.Proj.shapen -:x: vcs.projection.Proj.smajor -:x: vcs.projection.Proj.sminor -:x: vcs.projection.Proj.sphere -:x: vcs.projection.Proj.standardparallel -:x: vcs.projection.Proj.standardparallel1 -:x: vcs.projection.Proj.standardparallel2 -:x: vcs.projection.Proj.subtype -:x: vcs.projection.Proj.truescale -:x: vcs.projection.Proj.type -:x: vcs.projection.process_src +:x:``` vcs.projection``` + +:x:``` vcs.projection.Proj``` + +:x:``` vcs.projection.Proj.__init__``` + +:x:``` vcs.projection.Proj._getangle``` + +:x:``` vcs.projection.Proj._getazimuthalangle``` + +:x:``` vcs.projection.Proj._getazimuthallongitude``` + +:x:``` vcs.projection.Proj._getcenterlatitude``` + +:x:``` vcs.projection.Proj._getcenterlongitude``` + +:x:``` vcs.projection.Proj._getcentralmeridian``` + +:x:``` vcs.projection.Proj._getfactor``` + +:x:``` vcs.projection.Proj._getfalseeasting``` + +:x:``` vcs.projection.Proj._getfalsenorthing``` + +:x:``` vcs.projection.Proj._getheight``` + +:x:``` vcs.projection.Proj._getlandsatcompensationratio``` + +:x:``` vcs.projection.Proj._getlatitude1``` + +:x:``` vcs.projection.Proj._getlatitude2``` + +:x:``` vcs.projection.Proj._getlongitude1``` + +:x:``` vcs.projection.Proj._getlongitude2``` + +:x:``` vcs.projection.Proj._getname``` + +:x:``` vcs.projection.Proj._getorbitinclination``` + +:x:``` vcs.projection.Proj._getorbitlongitude``` + +:x:``` vcs.projection.Proj._getoriginlatitude``` + +:x:``` vcs.projection.Proj._getparameters``` + +:x:``` vcs.projection.Proj._getpath``` + +:x:``` vcs.projection.Proj._getpathflag``` + +:x:``` vcs.projection.Proj._getsatellite``` + +:x:``` vcs.projection.Proj._getsatelliterevolutionperiod``` + +:x:``` vcs.projection.Proj._getshapem``` + +:x:``` vcs.projection.Proj._getshapen``` + +:x:``` vcs.projection.Proj._getsmajor``` + +:x:``` vcs.projection.Proj._getsminor``` + +:x:``` vcs.projection.Proj._getsphere``` + +:x:``` vcs.projection.Proj._getstandardparallel``` + +:x:``` vcs.projection.Proj._getstandardparallel1``` + +:x:``` vcs.projection.Proj._getstandardparallel2``` + +:x:``` vcs.projection.Proj._getsubtype``` + +:x:``` vcs.projection.Proj._gettruescale``` + +:x:``` vcs.projection.Proj._gettype``` + +:x:``` vcs.projection.Proj._setangle``` + +:x:``` vcs.projection.Proj._setazimuthalangle``` + +:x:``` vcs.projection.Proj._setazimuthallongitude``` + +:x:``` vcs.projection.Proj._setcenterlatitude``` + +:x:``` vcs.projection.Proj._setcenterlongitude``` + +:x:``` vcs.projection.Proj._setcentralmeridian``` + +:x:``` vcs.projection.Proj._setfactor``` + +:x:``` vcs.projection.Proj._setfalseeasting``` + +:x:``` vcs.projection.Proj._setfalsenorthing``` + +:x:``` vcs.projection.Proj._setheight``` + +:x:``` vcs.projection.Proj._setlandsatcompensationratio``` + +:x:``` vcs.projection.Proj._setlatitude1``` + +:x:``` vcs.projection.Proj._setlatitude2``` + +:x:``` vcs.projection.Proj._setlongitude1``` + +:x:``` vcs.projection.Proj._setlongitude2``` + +:x:``` vcs.projection.Proj._setname``` + +:x:``` vcs.projection.Proj._setorbitinclination``` + +:x:``` vcs.projection.Proj._setorbitlongitude``` + +:x:``` vcs.projection.Proj._setoriginlatitude``` + +:x:``` vcs.projection.Proj._setparameters``` + +:x:``` vcs.projection.Proj._setpath``` + +:x:``` vcs.projection.Proj._setpathflag``` + +:x:``` vcs.projection.Proj._setsatellite``` + +:x:``` vcs.projection.Proj._setsatelliterevolutionperiod``` + +:x:``` vcs.projection.Proj._setshapem``` + +:x:``` vcs.projection.Proj._setshapen``` + +:x:``` vcs.projection.Proj._setsmajor``` + +:x:``` vcs.projection.Proj._setsminor``` + +:x:``` vcs.projection.Proj._setsphere``` + +:x:``` vcs.projection.Proj._setstandardparallel``` + +:x:``` vcs.projection.Proj._setstandardparallel1``` + +:x:``` vcs.projection.Proj._setstandardparallel2``` + +:x:``` vcs.projection.Proj._setsubtype``` + +:x:``` vcs.projection.Proj._settruescale``` + +:x:``` vcs.projection.Proj._settype``` + +:x:``` vcs.projection.Proj.angle``` + +:x:``` vcs.projection.Proj.attributes``` + +:x:``` vcs.projection.Proj.azimuthalangle``` + +:x:``` vcs.projection.Proj.azimuthallongitude``` + +:x:``` vcs.projection.Proj.centerlatitude``` + +:x:``` vcs.projection.Proj.centerlongitude``` + +:x:``` vcs.projection.Proj.centralmeridian``` + +:x:``` vcs.projection.Proj.checkPP``` + +:x:``` vcs.projection.Proj.factor``` + +:x:``` vcs.projection.Proj.falseeasting``` + +:x:``` vcs.projection.Proj.falsenorthing``` + +:x:``` vcs.projection.Proj.height``` + +:x:``` vcs.projection.Proj.landsatcompensationratio``` + +:x:``` vcs.projection.Proj.latitude1``` + +:x:``` vcs.projection.Proj.latitude2``` + +:x:``` vcs.projection.Proj.list``` + +:x:``` vcs.projection.Proj.longitude1``` + +:x:``` vcs.projection.Proj.longitude2``` + +:x:``` vcs.projection.Proj.name``` + +:x:``` vcs.projection.Proj.orbitinclination``` + +:x:``` vcs.projection.Proj.orbitlongitude``` + +:x:``` vcs.projection.Proj.originlatitude``` + +:x:``` vcs.projection.Proj.parameters``` + +:x:``` vcs.projection.Proj.path``` + +:x:``` vcs.projection.Proj.pathflag``` + +:x:``` vcs.projection.Proj.satellite``` + +:x:``` vcs.projection.Proj.satelliterevolutionperiod``` + +:x:``` vcs.projection.Proj.shapem``` + +:x:``` vcs.projection.Proj.shapen``` + +:x:``` vcs.projection.Proj.smajor``` + +:x:``` vcs.projection.Proj.sminor``` + +:x:``` vcs.projection.Proj.sphere``` + +:x:``` vcs.projection.Proj.standardparallel``` + +:x:``` vcs.projection.Proj.standardparallel1``` + +:x:``` vcs.projection.Proj.standardparallel2``` + +:x:``` vcs.projection.Proj.subtype``` + +:x:``` vcs.projection.Proj.truescale``` + +:x:``` vcs.projection.Proj.type``` + +:x:``` vcs.projection.process_src``` + diff --git a/docs/doctest_info/queries.md b/docs/doctest_info/queries.md index 2ffcc4ec4..d644390f2 100644 --- a/docs/doctest_info/queries.md +++ b/docs/doctest_info/queries.md @@ -11,4 +11,5 @@ Got: Missing Doctests ---------------- -:x: vcs.queries +:x:``` vcs.queries``` + diff --git a/docs/doctest_info/taylor.md b/docs/doctest_info/taylor.md index acf9d2a83..652eb45bf 100644 --- a/docs/doctest_info/taylor.md +++ b/docs/doctest_info/taylor.md @@ -1,135 +1,268 @@ Missing Doctests ---------------- -:x: vcs.taylor -:x: vcs.taylor.Gtd -:x: vcs.taylor.Gtd.Marker -:x: vcs.taylor.Gtd.__init__ -:x: vcs.taylor.Gtd._getMarker -:x: vcs.taylor.Gtd._getarrowangle -:x: vcs.taylor.Gtd._getarrowbase -:x: vcs.taylor.Gtd._getarrowlength -:x: vcs.taylor.Gtd._getcmtics1 -:x: vcs.taylor.Gtd._getcticlabels1 -:x: vcs.taylor.Gtd._getdetail -:x: vcs.taylor.Gtd._getmax -:x: vcs.taylor.Gtd._getname -:x: vcs.taylor.Gtd._getquadrans -:x: vcs.taylor.Gtd._getreferencevalue -:x: vcs.taylor.Gtd._getskillDrawLabels -:x: vcs.taylor.Gtd._getskillcoefficient -:x: vcs.taylor.Gtd._getskillcolor -:x: vcs.taylor.Gtd._getskillvalues -:x: vcs.taylor.Gtd._getxmtics1 -:x: vcs.taylor.Gtd._getxticlabels1 -:x: vcs.taylor.Gtd._getymtics1 -:x: vcs.taylor.Gtd._getyticlabels1 -:x: vcs.taylor.Gtd._setMarker -:x: vcs.taylor.Gtd._setarrowangle -:x: vcs.taylor.Gtd._setarrowbase -:x: vcs.taylor.Gtd._setarrowlength -:x: vcs.taylor.Gtd._setcmtics1 -:x: vcs.taylor.Gtd._setcticlabels1 -:x: vcs.taylor.Gtd._setdetail -:x: vcs.taylor.Gtd._setmax -:x: vcs.taylor.Gtd._setname -:x: vcs.taylor.Gtd._setquadrans -:x: vcs.taylor.Gtd._setreferencevalue -:x: vcs.taylor.Gtd._setskillDrawLabels -:x: vcs.taylor.Gtd._setskillcoefficient -:x: vcs.taylor.Gtd._setskillcolor -:x: vcs.taylor.Gtd._setskillvalues -:x: vcs.taylor.Gtd._setxmtics1 -:x: vcs.taylor.Gtd._setxticlabels1 -:x: vcs.taylor.Gtd._setymtics1 -:x: vcs.taylor.Gtd._setyticlabels1 -:x: vcs.taylor.Gtd.addMarker -:x: vcs.taylor.Gtd.arrowangle -:x: vcs.taylor.Gtd.arrowbase -:x: vcs.taylor.Gtd.arrowlength -:x: vcs.taylor.Gtd.cmtics1 -:x: vcs.taylor.Gtd.convert -:x: vcs.taylor.Gtd.cticlabels1 -:x: vcs.taylor.Gtd.defaultSkillFunction -:x: vcs.taylor.Gtd.detail -:x: vcs.taylor.Gtd.draw -:x: vcs.taylor.Gtd.drawFrame -:x: vcs.taylor.Gtd.drawSkill -:x: vcs.taylor.Gtd.drawarrow -:x: vcs.taylor.Gtd.getArc -:x: vcs.taylor.Gtd.list -:x: vcs.taylor.Gtd.max -:x: vcs.taylor.Gtd.name -:x: vcs.taylor.Gtd.plot -:x: vcs.taylor.Gtd.quadrans -:x: vcs.taylor.Gtd.referencevalue -:x: vcs.taylor.Gtd.rename -:x: vcs.taylor.Gtd.setWorldCoordinate -:x: vcs.taylor.Gtd.skillCoefficient -:x: vcs.taylor.Gtd.skillColor -:x: vcs.taylor.Gtd.skillDrawLabels -:x: vcs.taylor.Gtd.skillValues -:x: vcs.taylor.Gtd.viewport -:x: vcs.taylor.Gtd.worldcoordinate -:x: vcs.taylor.Gtd.xmtics1 -:x: vcs.taylor.Gtd.xticlabels1 -:x: vcs.taylor.Gtd.ymtics1 -:x: vcs.taylor.Gtd.yticlabels1 -:x: vcs.taylor.TDMarker -:x: vcs.taylor.TDMarker.__getstate__ -:x: vcs.taylor.TDMarker.__init__ -:x: vcs.taylor.TDMarker.__len__ -:x: vcs.taylor.TDMarker.__setstate__ -:x: vcs.taylor.TDMarker._getcolor -:x: vcs.taylor.TDMarker._getid -:x: vcs.taylor.TDMarker._getid_color -:x: vcs.taylor.TDMarker._getid_font -:x: vcs.taylor.TDMarker._getid_size -:x: vcs.taylor.TDMarker._getline -:x: vcs.taylor.TDMarker._getline_color -:x: vcs.taylor.TDMarker._getline_size -:x: vcs.taylor.TDMarker._getline_type -:x: vcs.taylor.TDMarker._getnumber -:x: vcs.taylor.TDMarker._getsize -:x: vcs.taylor.TDMarker._getstatus -:x: vcs.taylor.TDMarker._getsymbol -:x: vcs.taylor.TDMarker._getxoffset -:x: vcs.taylor.TDMarker._getyoffset -:x: vcs.taylor.TDMarker._setcolor -:x: vcs.taylor.TDMarker._setid -:x: vcs.taylor.TDMarker._setid_color -:x: vcs.taylor.TDMarker._setid_font -:x: vcs.taylor.TDMarker._setid_size -:x: vcs.taylor.TDMarker._setline -:x: vcs.taylor.TDMarker._setline_color -:x: vcs.taylor.TDMarker._setline_size -:x: vcs.taylor.TDMarker._setline_type -:x: vcs.taylor.TDMarker._setnumber -:x: vcs.taylor.TDMarker._setsize -:x: vcs.taylor.TDMarker._setstatus -:x: vcs.taylor.TDMarker._setsymbol -:x: vcs.taylor.TDMarker._setxoffset -:x: vcs.taylor.TDMarker._setyoffset -:x: vcs.taylor.TDMarker.addMarker -:x: vcs.taylor.TDMarker.checklineconnectingtype -:x: vcs.taylor.TDMarker.color -:x: vcs.taylor.TDMarker.eq -:x: vcs.taylor.TDMarker.equalize -:x: vcs.taylor.TDMarker.id -:x: vcs.taylor.TDMarker.id_color -:x: vcs.taylor.TDMarker.id_font -:x: vcs.taylor.TDMarker.id_size -:x: vcs.taylor.TDMarker.insert -:x: vcs.taylor.TDMarker.line -:x: vcs.taylor.TDMarker.line_color -:x: vcs.taylor.TDMarker.line_size -:x: vcs.taylor.TDMarker.line_type -:x: vcs.taylor.TDMarker.list -:x: vcs.taylor.TDMarker.number -:x: vcs.taylor.TDMarker.pop -:x: vcs.taylor.TDMarker.size -:x: vcs.taylor.TDMarker.status -:x: vcs.taylor.TDMarker.symbol -:x: vcs.taylor.TDMarker.xoffset -:x: vcs.taylor.TDMarker.yoffset -:x: vcs.taylor.createnewvcsobj -:x: vcs.taylor.process_src +:x:``` vcs.taylor``` + +:x:``` vcs.taylor.Gtd``` + +:x:``` vcs.taylor.Gtd.Marker``` + +:x:``` vcs.taylor.Gtd.__init__``` + +:x:``` vcs.taylor.Gtd._getMarker``` + +:x:``` vcs.taylor.Gtd._getarrowangle``` + +:x:``` vcs.taylor.Gtd._getarrowbase``` + +:x:``` vcs.taylor.Gtd._getarrowlength``` + +:x:``` vcs.taylor.Gtd._getcmtics1``` + +:x:``` vcs.taylor.Gtd._getcticlabels1``` + +:x:``` vcs.taylor.Gtd._getdetail``` + +:x:``` vcs.taylor.Gtd._getmax``` + +:x:``` vcs.taylor.Gtd._getname``` + +:x:``` vcs.taylor.Gtd._getquadrans``` + +:x:``` vcs.taylor.Gtd._getreferencevalue``` + +:x:``` vcs.taylor.Gtd._getskillDrawLabels``` + +:x:``` vcs.taylor.Gtd._getskillcoefficient``` + +:x:``` vcs.taylor.Gtd._getskillcolor``` + +:x:``` vcs.taylor.Gtd._getskillvalues``` + +:x:``` vcs.taylor.Gtd._getxmtics1``` + +:x:``` vcs.taylor.Gtd._getxticlabels1``` + +:x:``` vcs.taylor.Gtd._getymtics1``` + +:x:``` vcs.taylor.Gtd._getyticlabels1``` + +:x:``` vcs.taylor.Gtd._setMarker``` + +:x:``` vcs.taylor.Gtd._setarrowangle``` + +:x:``` vcs.taylor.Gtd._setarrowbase``` + +:x:``` vcs.taylor.Gtd._setarrowlength``` + +:x:``` vcs.taylor.Gtd._setcmtics1``` + +:x:``` vcs.taylor.Gtd._setcticlabels1``` + +:x:``` vcs.taylor.Gtd._setdetail``` + +:x:``` vcs.taylor.Gtd._setmax``` + +:x:``` vcs.taylor.Gtd._setname``` + +:x:``` vcs.taylor.Gtd._setquadrans``` + +:x:``` vcs.taylor.Gtd._setreferencevalue``` + +:x:``` vcs.taylor.Gtd._setskillDrawLabels``` + +:x:``` vcs.taylor.Gtd._setskillcoefficient``` + +:x:``` vcs.taylor.Gtd._setskillcolor``` + +:x:``` vcs.taylor.Gtd._setskillvalues``` + +:x:``` vcs.taylor.Gtd._setxmtics1``` + +:x:``` vcs.taylor.Gtd._setxticlabels1``` + +:x:``` vcs.taylor.Gtd._setymtics1``` + +:x:``` vcs.taylor.Gtd._setyticlabels1``` + +:x:``` vcs.taylor.Gtd.addMarker``` + +:x:``` vcs.taylor.Gtd.arrowangle``` + +:x:``` vcs.taylor.Gtd.arrowbase``` + +:x:``` vcs.taylor.Gtd.arrowlength``` + +:x:``` vcs.taylor.Gtd.cmtics1``` + +:x:``` vcs.taylor.Gtd.convert``` + +:x:``` vcs.taylor.Gtd.cticlabels1``` + +:x:``` vcs.taylor.Gtd.defaultSkillFunction``` + +:x:``` vcs.taylor.Gtd.detail``` + +:x:``` vcs.taylor.Gtd.draw``` + +:x:``` vcs.taylor.Gtd.drawFrame``` + +:x:``` vcs.taylor.Gtd.drawSkill``` + +:x:``` vcs.taylor.Gtd.drawarrow``` + +:x:``` vcs.taylor.Gtd.getArc``` + +:x:``` vcs.taylor.Gtd.list``` + +:x:``` vcs.taylor.Gtd.max``` + +:x:``` vcs.taylor.Gtd.name``` + +:x:``` vcs.taylor.Gtd.plot``` + +:x:``` vcs.taylor.Gtd.quadrans``` + +:x:``` vcs.taylor.Gtd.referencevalue``` + +:x:``` vcs.taylor.Gtd.rename``` + +:x:``` vcs.taylor.Gtd.setWorldCoordinate``` + +:x:``` vcs.taylor.Gtd.skillCoefficient``` + +:x:``` vcs.taylor.Gtd.skillColor``` + +:x:``` vcs.taylor.Gtd.skillDrawLabels``` + +:x:``` vcs.taylor.Gtd.skillValues``` + +:x:``` vcs.taylor.Gtd.viewport``` + +:x:``` vcs.taylor.Gtd.worldcoordinate``` + +:x:``` vcs.taylor.Gtd.xmtics1``` + +:x:``` vcs.taylor.Gtd.xticlabels1``` + +:x:``` vcs.taylor.Gtd.ymtics1``` + +:x:``` vcs.taylor.Gtd.yticlabels1``` + +:x:``` vcs.taylor.TDMarker``` + +:x:``` vcs.taylor.TDMarker.__getstate__``` + +:x:``` vcs.taylor.TDMarker.__init__``` + +:x:``` vcs.taylor.TDMarker.__len__``` + +:x:``` vcs.taylor.TDMarker.__setstate__``` + +:x:``` vcs.taylor.TDMarker._getcolor``` + +:x:``` vcs.taylor.TDMarker._getid``` + +:x:``` vcs.taylor.TDMarker._getid_color``` + +:x:``` vcs.taylor.TDMarker._getid_font``` + +:x:``` vcs.taylor.TDMarker._getid_size``` + +:x:``` vcs.taylor.TDMarker._getline``` + +:x:``` vcs.taylor.TDMarker._getline_color``` + +:x:``` vcs.taylor.TDMarker._getline_size``` + +:x:``` vcs.taylor.TDMarker._getline_type``` + +:x:``` vcs.taylor.TDMarker._getnumber``` + +:x:``` vcs.taylor.TDMarker._getsize``` + +:x:``` vcs.taylor.TDMarker._getstatus``` + +:x:``` vcs.taylor.TDMarker._getsymbol``` + +:x:``` vcs.taylor.TDMarker._getxoffset``` + +:x:``` vcs.taylor.TDMarker._getyoffset``` + +:x:``` vcs.taylor.TDMarker._setcolor``` + +:x:``` vcs.taylor.TDMarker._setid``` + +:x:``` vcs.taylor.TDMarker._setid_color``` + +:x:``` vcs.taylor.TDMarker._setid_font``` + +:x:``` vcs.taylor.TDMarker._setid_size``` + +:x:``` vcs.taylor.TDMarker._setline``` + +:x:``` vcs.taylor.TDMarker._setline_color``` + +:x:``` vcs.taylor.TDMarker._setline_size``` + +:x:``` vcs.taylor.TDMarker._setline_type``` + +:x:``` vcs.taylor.TDMarker._setnumber``` + +:x:``` vcs.taylor.TDMarker._setsize``` + +:x:``` vcs.taylor.TDMarker._setstatus``` + +:x:``` vcs.taylor.TDMarker._setsymbol``` + +:x:``` vcs.taylor.TDMarker._setxoffset``` + +:x:``` vcs.taylor.TDMarker._setyoffset``` + +:x:``` vcs.taylor.TDMarker.addMarker``` + +:x:``` vcs.taylor.TDMarker.checklineconnectingtype``` + +:x:``` vcs.taylor.TDMarker.color``` + +:x:``` vcs.taylor.TDMarker.eq``` + +:x:``` vcs.taylor.TDMarker.equalize``` + +:x:``` vcs.taylor.TDMarker.id``` + +:x:``` vcs.taylor.TDMarker.id_color``` + +:x:``` vcs.taylor.TDMarker.id_font``` + +:x:``` vcs.taylor.TDMarker.id_size``` + +:x:``` vcs.taylor.TDMarker.insert``` + +:x:``` vcs.taylor.TDMarker.line``` + +:x:``` vcs.taylor.TDMarker.line_color``` + +:x:``` vcs.taylor.TDMarker.line_size``` + +:x:``` vcs.taylor.TDMarker.line_type``` + +:x:``` vcs.taylor.TDMarker.list``` + +:x:``` vcs.taylor.TDMarker.number``` + +:x:``` vcs.taylor.TDMarker.pop``` + +:x:``` vcs.taylor.TDMarker.size``` + +:x:``` vcs.taylor.TDMarker.status``` + +:x:``` vcs.taylor.TDMarker.symbol``` + +:x:``` vcs.taylor.TDMarker.xoffset``` + +:x:``` vcs.taylor.TDMarker.yoffset``` + +:x:``` vcs.taylor.createnewvcsobj``` + +:x:``` vcs.taylor.process_src``` + diff --git a/docs/doctest_info/template.md b/docs/doctest_info/template.md index 6d6020c52..1f52b7cd7 100644 --- a/docs/doctest_info/template.md +++ b/docs/doctest_info/template.md @@ -75,76 +75,149 @@ Exception raised: Missing Doctests ---------------- -:x: vcs.template -:x: vcs.template.P -:x: vcs.template.P.__init__ -:x: vcs.template.P._getName -:x: vcs.template.P._getOrientation -:x: vcs.template.P._setOrientation -:x: vcs.template.P.blank -:x: vcs.template.P.box1 -:x: vcs.template.P.box2 -:x: vcs.template.P.box3 -:x: vcs.template.P.box4 -:x: vcs.template.P.comment1 -:x: vcs.template.P.comment2 -:x: vcs.template.P.comment3 -:x: vcs.template.P.comment4 -:x: vcs.template.P.crdate -:x: vcs.template.P.crtime -:x: vcs.template.P.data -:x: vcs.template.P.dataname -:x: vcs.template.P.drawAttributes -:x: vcs.template.P.drawColorBar -:x: vcs.template.P.drawTicks -:x: vcs.template.P.file -:x: vcs.template.P.function -:x: vcs.template.P.legend -:x: vcs.template.P.line1 -:x: vcs.template.P.line2 -:x: vcs.template.P.line3 -:x: vcs.template.P.line4 -:x: vcs.template.P.list -:x: vcs.template.P.logicalmask -:x: vcs.template.P.max -:x: vcs.template.P.mean -:x: vcs.template.P.min -:x: vcs.template.P.name -:x: vcs.template.P.orientation -:x: vcs.template.P.plot -:x: vcs.template.P.ratio -:x: vcs.template.P.ratio_linear_projection -:x: vcs.template.P.scalefont -:x: vcs.template.P.source -:x: vcs.template.P.title -:x: vcs.template.P.tname -:x: vcs.template.P.transformation -:x: vcs.template.P.tunits -:x: vcs.template.P.tvalue -:x: vcs.template.P.units -:x: vcs.template.P.xlabel1 -:x: vcs.template.P.xlabel2 -:x: vcs.template.P.xmintic1 -:x: vcs.template.P.xmintic2 -:x: vcs.template.P.xname -:x: vcs.template.P.xtic1 -:x: vcs.template.P.xtic2 -:x: vcs.template.P.xunits -:x: vcs.template.P.xvalue -:x: vcs.template.P.ylabel1 -:x: vcs.template.P.ylabel2 -:x: vcs.template.P.ymintic1 -:x: vcs.template.P.ymintic2 -:x: vcs.template.P.yname -:x: vcs.template.P.ytic1 -:x: vcs.template.P.ytic2 -:x: vcs.template.P.yunits -:x: vcs.template.P.yvalue -:x: vcs.template.P.zname -:x: vcs.template.P.zunits -:x: vcs.template.P.zvalue -:x: vcs.template._getgen -:x: vcs.template._setgen -:x: vcs.template.epsilon_gte -:x: vcs.template.epsilon_lte -:x: vcs.template.process_src +:x:``` vcs.template``` + +:x:``` vcs.template.P``` + +:x:``` vcs.template.P.__init__``` + +:x:``` vcs.template.P._getName``` + +:x:``` vcs.template.P._getOrientation``` + +:x:``` vcs.template.P._setOrientation``` + +:x:``` vcs.template.P.blank``` + +:x:``` vcs.template.P.box1``` + +:x:``` vcs.template.P.box2``` + +:x:``` vcs.template.P.box3``` + +:x:``` vcs.template.P.box4``` + +:x:``` vcs.template.P.comment1``` + +:x:``` vcs.template.P.comment2``` + +:x:``` vcs.template.P.comment3``` + +:x:``` vcs.template.P.comment4``` + +:x:``` vcs.template.P.crdate``` + +:x:``` vcs.template.P.crtime``` + +:x:``` vcs.template.P.data``` + +:x:``` vcs.template.P.dataname``` + +:x:``` vcs.template.P.drawAttributes``` + +:x:``` vcs.template.P.drawColorBar``` + +:x:``` vcs.template.P.drawTicks``` + +:x:``` vcs.template.P.file``` + +:x:``` vcs.template.P.function``` + +:x:``` vcs.template.P.legend``` + +:x:``` vcs.template.P.line1``` + +:x:``` vcs.template.P.line2``` + +:x:``` vcs.template.P.line3``` + +:x:``` vcs.template.P.line4``` + +:x:``` vcs.template.P.list``` + +:x:``` vcs.template.P.logicalmask``` + +:x:``` vcs.template.P.max``` + +:x:``` vcs.template.P.mean``` + +:x:``` vcs.template.P.min``` + +:x:``` vcs.template.P.name``` + +:x:``` vcs.template.P.orientation``` + +:x:``` vcs.template.P.plot``` + +:x:``` vcs.template.P.ratio``` + +:x:``` vcs.template.P.ratio_linear_projection``` + +:x:``` vcs.template.P.scalefont``` + +:x:``` vcs.template.P.source``` + +:x:``` vcs.template.P.title``` + +:x:``` vcs.template.P.tname``` + +:x:``` vcs.template.P.transformation``` + +:x:``` vcs.template.P.tunits``` + +:x:``` vcs.template.P.tvalue``` + +:x:``` vcs.template.P.units``` + +:x:``` vcs.template.P.xlabel1``` + +:x:``` vcs.template.P.xlabel2``` + +:x:``` vcs.template.P.xmintic1``` + +:x:``` vcs.template.P.xmintic2``` + +:x:``` vcs.template.P.xname``` + +:x:``` vcs.template.P.xtic1``` + +:x:``` vcs.template.P.xtic2``` + +:x:``` vcs.template.P.xunits``` + +:x:``` vcs.template.P.xvalue``` + +:x:``` vcs.template.P.ylabel1``` + +:x:``` vcs.template.P.ylabel2``` + +:x:``` vcs.template.P.ymintic1``` + +:x:``` vcs.template.P.ymintic2``` + +:x:``` vcs.template.P.yname``` + +:x:``` vcs.template.P.ytic1``` + +:x:``` vcs.template.P.ytic2``` + +:x:``` vcs.template.P.yunits``` + +:x:``` vcs.template.P.yvalue``` + +:x:``` vcs.template.P.zname``` + +:x:``` vcs.template.P.zunits``` + +:x:``` vcs.template.P.zvalue``` + +:x:``` vcs.template._getgen``` + +:x:``` vcs.template._setgen``` + +:x:``` vcs.template.epsilon_gte``` + +:x:``` vcs.template.epsilon_lte``` + +:x:``` vcs.template.process_src``` + diff --git a/docs/doctest_info/textorientation.md b/docs/doctest_info/textorientation.md index 1b72b86cd..e5c55ff66 100644 --- a/docs/doctest_info/textorientation.md +++ b/docs/doctest_info/textorientation.md @@ -1,25 +1,48 @@ Missing Doctests ---------------- -:x: vcs.textorientation -:x: vcs.textorientation.To -:x: vcs.textorientation.To.__init__ -:x: vcs.textorientation.To._getangle -:x: vcs.textorientation.To._gethalign -:x: vcs.textorientation.To._getheight -:x: vcs.textorientation.To._getname -:x: vcs.textorientation.To._getpath -:x: vcs.textorientation.To._getvalign -:x: vcs.textorientation.To._setangle -:x: vcs.textorientation.To._sethalign -:x: vcs.textorientation.To._setheight -:x: vcs.textorientation.To._setname -:x: vcs.textorientation.To._setpath -:x: vcs.textorientation.To._setvalign -:x: vcs.textorientation.To.angle -:x: vcs.textorientation.To.halign -:x: vcs.textorientation.To.height -:x: vcs.textorientation.To.list -:x: vcs.textorientation.To.name -:x: vcs.textorientation.To.path -:x: vcs.textorientation.To.valign -:x: vcs.textorientation.process_src +:x:``` vcs.textorientation``` + +:x:``` vcs.textorientation.To``` + +:x:``` vcs.textorientation.To.__init__``` + +:x:``` vcs.textorientation.To._getangle``` + +:x:``` vcs.textorientation.To._gethalign``` + +:x:``` vcs.textorientation.To._getheight``` + +:x:``` vcs.textorientation.To._getname``` + +:x:``` vcs.textorientation.To._getpath``` + +:x:``` vcs.textorientation.To._getvalign``` + +:x:``` vcs.textorientation.To._setangle``` + +:x:``` vcs.textorientation.To._sethalign``` + +:x:``` vcs.textorientation.To._setheight``` + +:x:``` vcs.textorientation.To._setname``` + +:x:``` vcs.textorientation.To._setpath``` + +:x:``` vcs.textorientation.To._setvalign``` + +:x:``` vcs.textorientation.To.angle``` + +:x:``` vcs.textorientation.To.halign``` + +:x:``` vcs.textorientation.To.height``` + +:x:``` vcs.textorientation.To.list``` + +:x:``` vcs.textorientation.To.name``` + +:x:``` vcs.textorientation.To.path``` + +:x:``` vcs.textorientation.To.valign``` + +:x:``` vcs.textorientation.process_src``` + diff --git a/docs/doctest_info/unified1D.md b/docs/doctest_info/unified1D.md index 109f83b7e..0fd528efb 100644 --- a/docs/doctest_info/unified1D.md +++ b/docs/doctest_info/unified1D.md @@ -1,98 +1,194 @@ Missing Doctests ---------------- -:x: vcs.unified1D -:x: vcs.unified1D.G1d -:x: vcs.unified1D.G1d.__init__ -:x: vcs.unified1D.G1d._getcalendar -:x: vcs.unified1D.G1d._getdatawc_x1 -:x: vcs.unified1D.G1d._getdatawc_x2 -:x: vcs.unified1D.G1d._getdatawc_y1 -:x: vcs.unified1D.G1d._getdatawc_y2 -:x: vcs.unified1D.G1d._getflip -:x: vcs.unified1D.G1d._getline -:x: vcs.unified1D.G1d._getlinecolor -:x: vcs.unified1D.G1d._getlinetype -:x: vcs.unified1D.G1d._getlinewidth -:x: vcs.unified1D.G1d._getmarker -:x: vcs.unified1D.G1d._getmarkercolor -:x: vcs.unified1D.G1d._getmarkersize -:x: vcs.unified1D.G1d._getname -:x: vcs.unified1D.G1d._getprojection -:x: vcs.unified1D.G1d._getsmooth -:x: vcs.unified1D.G1d._gettimeunits -:x: vcs.unified1D.G1d._getxaxisconvert -:x: vcs.unified1D.G1d._getxmtics1 -:x: vcs.unified1D.G1d._getxmtics2 -:x: vcs.unified1D.G1d._getxticlabels1 -:x: vcs.unified1D.G1d._getxticlabels2 -:x: vcs.unified1D.G1d._getyaxisconvert -:x: vcs.unified1D.G1d._getymtics1 -:x: vcs.unified1D.G1d._getymtics2 -:x: vcs.unified1D.G1d._getyticlabels1 -:x: vcs.unified1D.G1d._getyticlabels2 -:x: vcs.unified1D.G1d._gtype -:x: vcs.unified1D.G1d._setcalendar -:x: vcs.unified1D.G1d._setdatawc_x1 -:x: vcs.unified1D.G1d._setdatawc_x2 -:x: vcs.unified1D.G1d._setdatawc_y1 -:x: vcs.unified1D.G1d._setdatawc_y2 -:x: vcs.unified1D.G1d._setflip -:x: vcs.unified1D.G1d._setline -:x: vcs.unified1D.G1d._setlinecolor -:x: vcs.unified1D.G1d._setlinetype -:x: vcs.unified1D.G1d._setlinewidth -:x: vcs.unified1D.G1d._setmarker -:x: vcs.unified1D.G1d._setmarkercolor -:x: vcs.unified1D.G1d._setmarkersize -:x: vcs.unified1D.G1d._setname -:x: vcs.unified1D.G1d._setprojection -:x: vcs.unified1D.G1d._setsmooth -:x: vcs.unified1D.G1d._settimeunits -:x: vcs.unified1D.G1d._setxaxisconvert -:x: vcs.unified1D.G1d._setxmtics1 -:x: vcs.unified1D.G1d._setxmtics2 -:x: vcs.unified1D.G1d._setxticlabels1 -:x: vcs.unified1D.G1d._setxticlabels2 -:x: vcs.unified1D.G1d._setyaxisconvert -:x: vcs.unified1D.G1d._setymtics1 -:x: vcs.unified1D.G1d._setymtics2 -:x: vcs.unified1D.G1d._setyticlabels1 -:x: vcs.unified1D.G1d._setyticlabels2 -:x: vcs.unified1D.G1d.colormap -:x: vcs.unified1D.G1d.datawc -:x: vcs.unified1D.G1d.datawc_calendar -:x: vcs.unified1D.G1d.datawc_timeunits -:x: vcs.unified1D.G1d.datawc_x1 -:x: vcs.unified1D.G1d.datawc_x2 -:x: vcs.unified1D.G1d.datawc_y1 -:x: vcs.unified1D.G1d.datawc_y2 -:x: vcs.unified1D.G1d.flip -:x: vcs.unified1D.G1d.g_type -:x: vcs.unified1D.G1d.line -:x: vcs.unified1D.G1d.linecolor -:x: vcs.unified1D.G1d.linetype -:x: vcs.unified1D.G1d.linewidth -:x: vcs.unified1D.G1d.list -:x: vcs.unified1D.G1d.marker -:x: vcs.unified1D.G1d.markercolor -:x: vcs.unified1D.G1d.markersize -:x: vcs.unified1D.G1d.name -:x: vcs.unified1D.G1d.projection -:x: vcs.unified1D.G1d.setLineAttributes -:x: vcs.unified1D.G1d.smooth -:x: vcs.unified1D.G1d.xaxisconvert -:x: vcs.unified1D.G1d.xmtics -:x: vcs.unified1D.G1d.xmtics1 -:x: vcs.unified1D.G1d.xmtics2 -:x: vcs.unified1D.G1d.xticlabels -:x: vcs.unified1D.G1d.xticlabels1 -:x: vcs.unified1D.G1d.xticlabels2 -:x: vcs.unified1D.G1d.yaxisconvert -:x: vcs.unified1D.G1d.ymtics -:x: vcs.unified1D.G1d.ymtics1 -:x: vcs.unified1D.G1d.ymtics2 -:x: vcs.unified1D.G1d.yticlabels -:x: vcs.unified1D.G1d.yticlabels1 -:x: vcs.unified1D.G1d.yticlabels2 -:x: vcs.unified1D.load -:x: vcs.unified1D.process_src +:x:``` vcs.unified1D``` + +:x:``` vcs.unified1D.G1d``` + +:x:``` vcs.unified1D.G1d.__init__``` + +:x:``` vcs.unified1D.G1d._getcalendar``` + +:x:``` vcs.unified1D.G1d._getdatawc_x1``` + +:x:``` vcs.unified1D.G1d._getdatawc_x2``` + +:x:``` vcs.unified1D.G1d._getdatawc_y1``` + +:x:``` vcs.unified1D.G1d._getdatawc_y2``` + +:x:``` vcs.unified1D.G1d._getflip``` + +:x:``` vcs.unified1D.G1d._getline``` + +:x:``` vcs.unified1D.G1d._getlinecolor``` + +:x:``` vcs.unified1D.G1d._getlinetype``` + +:x:``` vcs.unified1D.G1d._getlinewidth``` + +:x:``` vcs.unified1D.G1d._getmarker``` + +:x:``` vcs.unified1D.G1d._getmarkercolor``` + +:x:``` vcs.unified1D.G1d._getmarkersize``` + +:x:``` vcs.unified1D.G1d._getname``` + +:x:``` vcs.unified1D.G1d._getprojection``` + +:x:``` vcs.unified1D.G1d._getsmooth``` + +:x:``` vcs.unified1D.G1d._gettimeunits``` + +:x:``` vcs.unified1D.G1d._getxaxisconvert``` + +:x:``` vcs.unified1D.G1d._getxmtics1``` + +:x:``` vcs.unified1D.G1d._getxmtics2``` + +:x:``` vcs.unified1D.G1d._getxticlabels1``` + +:x:``` vcs.unified1D.G1d._getxticlabels2``` + +:x:``` vcs.unified1D.G1d._getyaxisconvert``` + +:x:``` vcs.unified1D.G1d._getymtics1``` + +:x:``` vcs.unified1D.G1d._getymtics2``` + +:x:``` vcs.unified1D.G1d._getyticlabels1``` + +:x:``` vcs.unified1D.G1d._getyticlabels2``` + +:x:``` vcs.unified1D.G1d._gtype``` + +:x:``` vcs.unified1D.G1d._setcalendar``` + +:x:``` vcs.unified1D.G1d._setdatawc_x1``` + +:x:``` vcs.unified1D.G1d._setdatawc_x2``` + +:x:``` vcs.unified1D.G1d._setdatawc_y1``` + +:x:``` vcs.unified1D.G1d._setdatawc_y2``` + +:x:``` vcs.unified1D.G1d._setflip``` + +:x:``` vcs.unified1D.G1d._setline``` + +:x:``` vcs.unified1D.G1d._setlinecolor``` + +:x:``` vcs.unified1D.G1d._setlinetype``` + +:x:``` vcs.unified1D.G1d._setlinewidth``` + +:x:``` vcs.unified1D.G1d._setmarker``` + +:x:``` vcs.unified1D.G1d._setmarkercolor``` + +:x:``` vcs.unified1D.G1d._setmarkersize``` + +:x:``` vcs.unified1D.G1d._setname``` + +:x:``` vcs.unified1D.G1d._setprojection``` + +:x:``` vcs.unified1D.G1d._setsmooth``` + +:x:``` vcs.unified1D.G1d._settimeunits``` + +:x:``` vcs.unified1D.G1d._setxaxisconvert``` + +:x:``` vcs.unified1D.G1d._setxmtics1``` + +:x:``` vcs.unified1D.G1d._setxmtics2``` + +:x:``` vcs.unified1D.G1d._setxticlabels1``` + +:x:``` vcs.unified1D.G1d._setxticlabels2``` + +:x:``` vcs.unified1D.G1d._setyaxisconvert``` + +:x:``` vcs.unified1D.G1d._setymtics1``` + +:x:``` vcs.unified1D.G1d._setymtics2``` + +:x:``` vcs.unified1D.G1d._setyticlabels1``` + +:x:``` vcs.unified1D.G1d._setyticlabels2``` + +:x:``` vcs.unified1D.G1d.colormap``` + +:x:``` vcs.unified1D.G1d.datawc``` + +:x:``` vcs.unified1D.G1d.datawc_calendar``` + +:x:``` vcs.unified1D.G1d.datawc_timeunits``` + +:x:``` vcs.unified1D.G1d.datawc_x1``` + +:x:``` vcs.unified1D.G1d.datawc_x2``` + +:x:``` vcs.unified1D.G1d.datawc_y1``` + +:x:``` vcs.unified1D.G1d.datawc_y2``` + +:x:``` vcs.unified1D.G1d.flip``` + +:x:``` vcs.unified1D.G1d.g_type``` + +:x:``` vcs.unified1D.G1d.line``` + +:x:``` vcs.unified1D.G1d.linecolor``` + +:x:``` vcs.unified1D.G1d.linetype``` + +:x:``` vcs.unified1D.G1d.linewidth``` + +:x:``` vcs.unified1D.G1d.list``` + +:x:``` vcs.unified1D.G1d.marker``` + +:x:``` vcs.unified1D.G1d.markercolor``` + +:x:``` vcs.unified1D.G1d.markersize``` + +:x:``` vcs.unified1D.G1d.name``` + +:x:``` vcs.unified1D.G1d.projection``` + +:x:``` vcs.unified1D.G1d.setLineAttributes``` + +:x:``` vcs.unified1D.G1d.smooth``` + +:x:``` vcs.unified1D.G1d.xaxisconvert``` + +:x:``` vcs.unified1D.G1d.xmtics``` + +:x:``` vcs.unified1D.G1d.xmtics1``` + +:x:``` vcs.unified1D.G1d.xmtics2``` + +:x:``` vcs.unified1D.G1d.xticlabels``` + +:x:``` vcs.unified1D.G1d.xticlabels1``` + +:x:``` vcs.unified1D.G1d.xticlabels2``` + +:x:``` vcs.unified1D.G1d.yaxisconvert``` + +:x:``` vcs.unified1D.G1d.ymtics``` + +:x:``` vcs.unified1D.G1d.ymtics1``` + +:x:``` vcs.unified1D.G1d.ymtics2``` + +:x:``` vcs.unified1D.G1d.yticlabels``` + +:x:``` vcs.unified1D.G1d.yticlabels1``` + +:x:``` vcs.unified1D.G1d.yticlabels2``` + +:x:``` vcs.unified1D.load``` + +:x:``` vcs.unified1D.process_src``` + diff --git a/docs/doctest_info/utils.md b/docs/doctest_info/utils.md index 1802903b2..304050497 100644 --- a/docs/doctest_info/utils.md +++ b/docs/doctest_info/utils.md @@ -11,34 +11,65 @@ Got: Missing Doctests ---------------- -:x: vcs.utils -:x: vcs.utils.Logo.__init__ -:x: vcs.utils.VCSUtilsError -:x: vcs.utils.VCSUtilsError.__init__ -:x: vcs.utils.VCSUtilsError.__str__ -:x: vcs.utils.__split2contiguous -:x: vcs.utils._scriptrun -:x: vcs.utils.creategraphicsmethod -:x: vcs.utils.download_sample_data_files -:x: vcs.utils.dumpToDict -:x: vcs.utils.dumpToJson -:x: vcs.utils.getDataWcValue -:x: vcs.utils.get_png_dims -:x: vcs.utils.getdotdirectory -:x: vcs.utils.getfontname -:x: vcs.utils.getfontnumber -:x: vcs.utils.getgraphicsmethod -:x: vcs.utils.getworldcoordinates -:x: vcs.utils.listelements -:x: vcs.utils.loadTemplate -:x: vcs.utils.loadVCSItem -:x: vcs.utils.monotonic -:x: vcs.utils.png_read_metadata -:x: vcs.utils.prettifyAxisLabels -:x: vcs.utils.process_range_from_old_scr -:x: vcs.utils.process_src_element -:x: vcs.utils.return_display_names -:x: vcs.utils.saveinitialfile -:x: vcs.utils.scriptrun -:x: vcs.utils.scriptrun_scr -:x: vcs.utils.setTicksandLabels +:x:``` vcs.utils``` + +:x:``` vcs.utils.Logo.__init__``` + +:x:``` vcs.utils.VCSUtilsError``` + +:x:``` vcs.utils.VCSUtilsError.__init__``` + +:x:``` vcs.utils.VCSUtilsError.__str__``` + +:x:``` vcs.utils.__split2contiguous``` + +:x:``` vcs.utils._scriptrun``` + +:x:``` vcs.utils.creategraphicsmethod``` + +:x:``` vcs.utils.download_sample_data_files``` + +:x:``` vcs.utils.dumpToDict``` + +:x:``` vcs.utils.dumpToJson``` + +:x:``` vcs.utils.getDataWcValue``` + +:x:``` vcs.utils.get_png_dims``` + +:x:``` vcs.utils.getdotdirectory``` + +:x:``` vcs.utils.getfontname``` + +:x:``` vcs.utils.getfontnumber``` + +:x:``` vcs.utils.getgraphicsmethod``` + +:x:``` vcs.utils.getworldcoordinates``` + +:x:``` vcs.utils.listelements``` + +:x:``` vcs.utils.loadTemplate``` + +:x:``` vcs.utils.loadVCSItem``` + +:x:``` vcs.utils.monotonic``` + +:x:``` vcs.utils.png_read_metadata``` + +:x:``` vcs.utils.prettifyAxisLabels``` + +:x:``` vcs.utils.process_range_from_old_scr``` + +:x:``` vcs.utils.process_src_element``` + +:x:``` vcs.utils.return_display_names``` + +:x:``` vcs.utils.saveinitialfile``` + +:x:``` vcs.utils.scriptrun``` + +:x:``` vcs.utils.scriptrun_scr``` + +:x:``` vcs.utils.setTicksandLabels``` + diff --git a/docs/doctest_info/vcs2vtk.md b/docs/doctest_info/vcs2vtk.md index 6018e7aea..1d596f49d 100644 --- a/docs/doctest_info/vcs2vtk.md +++ b/docs/doctest_info/vcs2vtk.md @@ -1,45 +1,88 @@ Missing Doctests ---------------- -:x: vcs.vcs2vtk -:x: vcs.vcs2vtk.__build_ld__ -:x: vcs.vcs2vtk.__build_pd__ -:x: vcs.vcs2vtk.applyAttributesFromVCStmpl -:x: vcs.vcs2vtk.apply_proj_parameters -:x: vcs.vcs2vtk.checkProjParameters -:x: vcs.vcs2vtk.checkProjType -:x: vcs.vcs2vtk.doWrapData -:x: vcs.vcs2vtk.dump2VTK -:x: vcs.vcs2vtk.genGrid -:x: vcs.vcs2vtk.genPoly -:x: vcs.vcs2vtk.genTextActor -:x: vcs.vcs2vtk.generateVectorArray -:x: vcs.vcs2vtk.getBoundsList -:x: vcs.vcs2vtk.getPlottingBounds -:x: vcs.vcs2vtk.getProjType -:x: vcs.vcs2vtk.getRendererCorners -:x: vcs.vcs2vtk.getWrappedBounds -:x: vcs.vcs2vtk.numpy_to_vtk_wrapper -:x: vcs.vcs2vtk.prepContinents -:x: vcs.vcs2vtk.prepFillarea -:x: vcs.vcs2vtk.prepGlyph -:x: vcs.vcs2vtk.prepLine -:x: vcs.vcs2vtk.prepMarker -:x: vcs.vcs2vtk.prepPrimitive -:x: vcs.vcs2vtk.prepTextProperty -:x: vcs.vcs2vtk.project -:x: vcs.vcs2vtk.projectArray -:x: vcs.vcs2vtk.putMaskOnVTKGrid -:x: vcs.vcs2vtk.removeHiddenPoints -:x: vcs.vcs2vtk.scaleMarkerGlyph -:x: vcs.vcs2vtk.setArray -:x: vcs.vcs2vtk.setClipPlanes -:x: vcs.vcs2vtk.setInfToValid -:x: vcs.vcs2vtk.setMarkerColor -:x: vcs.vcs2vtk.setProjectionParameters -:x: vcs.vcs2vtk.starPoints -:x: vcs.vcs2vtk.stippleLine -:x: vcs.vcs2vtk.switchAndTranslate -:x: vcs.vcs2vtk.vtkIterate -:x: vcs.vcs2vtk.vtkWorld2Renderer -:x: vcs.vcs2vtk.world2Renderer -:x: vcs.vcs2vtk.wrapDataSetX +:x:``` vcs.vcs2vtk``` + +:x:``` vcs.vcs2vtk.__build_ld__``` + +:x:``` vcs.vcs2vtk.__build_pd__``` + +:x:``` vcs.vcs2vtk.applyAttributesFromVCStmpl``` + +:x:``` vcs.vcs2vtk.apply_proj_parameters``` + +:x:``` vcs.vcs2vtk.checkProjParameters``` + +:x:``` vcs.vcs2vtk.checkProjType``` + +:x:``` vcs.vcs2vtk.doWrapData``` + +:x:``` vcs.vcs2vtk.dump2VTK``` + +:x:``` vcs.vcs2vtk.genGrid``` + +:x:``` vcs.vcs2vtk.genPoly``` + +:x:``` vcs.vcs2vtk.genTextActor``` + +:x:``` vcs.vcs2vtk.generateVectorArray``` + +:x:``` vcs.vcs2vtk.getBoundsList``` + +:x:``` vcs.vcs2vtk.getPlottingBounds``` + +:x:``` vcs.vcs2vtk.getProjType``` + +:x:``` vcs.vcs2vtk.getRendererCorners``` + +:x:``` vcs.vcs2vtk.getWrappedBounds``` + +:x:``` vcs.vcs2vtk.numpy_to_vtk_wrapper``` + +:x:``` vcs.vcs2vtk.prepContinents``` + +:x:``` vcs.vcs2vtk.prepFillarea``` + +:x:``` vcs.vcs2vtk.prepGlyph``` + +:x:``` vcs.vcs2vtk.prepLine``` + +:x:``` vcs.vcs2vtk.prepMarker``` + +:x:``` vcs.vcs2vtk.prepPrimitive``` + +:x:``` vcs.vcs2vtk.prepTextProperty``` + +:x:``` vcs.vcs2vtk.project``` + +:x:``` vcs.vcs2vtk.projectArray``` + +:x:``` vcs.vcs2vtk.putMaskOnVTKGrid``` + +:x:``` vcs.vcs2vtk.removeHiddenPoints``` + +:x:``` vcs.vcs2vtk.scaleMarkerGlyph``` + +:x:``` vcs.vcs2vtk.setArray``` + +:x:``` vcs.vcs2vtk.setClipPlanes``` + +:x:``` vcs.vcs2vtk.setInfToValid``` + +:x:``` vcs.vcs2vtk.setMarkerColor``` + +:x:``` vcs.vcs2vtk.setProjectionParameters``` + +:x:``` vcs.vcs2vtk.starPoints``` + +:x:``` vcs.vcs2vtk.stippleLine``` + +:x:``` vcs.vcs2vtk.switchAndTranslate``` + +:x:``` vcs.vcs2vtk.vtkIterate``` + +:x:``` vcs.vcs2vtk.vtkWorld2Renderer``` + +:x:``` vcs.vcs2vtk.world2Renderer``` + +:x:``` vcs.vcs2vtk.wrapDataSetX``` + diff --git a/docs/doctest_info/vcsvtk.md b/docs/doctest_info/vcsvtk.md index 248de7091..933e13390 100644 --- a/docs/doctest_info/vcsvtk.md +++ b/docs/doctest_info/vcsvtk.md @@ -1,3 +1,4 @@ Missing Doctests ---------------- -:x: vcs.vcsvtk +:x:``` vcs.vcsvtk``` + diff --git a/docs/doctest_info/vtk_ui.md b/docs/doctest_info/vtk_ui.md index 5bc10e552..4ea3a01b5 100644 --- a/docs/doctest_info/vtk_ui.md +++ b/docs/doctest_info/vtk_ui.md @@ -1,3 +1,4 @@ Missing Doctests ---------------- -:x: vcs.vtk_ui +:x:``` vcs.vtk_ui``` + From b145bc642b6783e414fe98e451a6cbf4d10fc656 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 7 Dec 2016 16:16:50 -0800 Subject: [PATCH 12/45] Fixed README to be markdown friendly --- docs/doctest_info/README.md | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/doctest_info/README.md b/docs/doctest_info/README.md index f1342f017..0cf20145d 100644 --- a/docs/doctest_info/README.md +++ b/docs/doctest_info/README.md @@ -1,46 +1,90 @@ Doctest Info ------------ [Canvas] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Canvas.md) + [Pboxeslines] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pboxeslines.md) + [Pdata] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pdata.md) + [Pformat] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pformat.md) + [Plegend] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Plegend.md) + [Ptext] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Ptext.md) + [Pxlabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pxlabels.md) + [Pxtickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pxtickmarks.md) + [Pylabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pylabels.md) + [Pytickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pytickmarks.md) + [validation_functions] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/validation_functions.md) + [VTKAnimate] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/VTKAnimate.md) + [VTKPlots] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/VTKPlots.md) + [animate_helper] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/animate_helper.md) + [boxfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/boxfill.md) + [colormap] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colormap.md) + [colorpicker] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colorpicker.md) + [colors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colors.md) + [configurator] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/configurator.md) + [displayplot] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/displayplot.md) + [dv3d] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/dv3d.md) + [editors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/editors.md) + [error] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/error.md) + [fillarea] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/fillarea.md) + [isofill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/isofill.md) + [isoline] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/isoline.md) + [line] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/line.md) + [manageElements] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/manageElements.md) + [marker] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/marker.md) + [meshfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/meshfill.md) + [projection] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/projection.md) + [queries] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/queries.md) + [taylor] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/taylor.md) + [template] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/template.md) + [textcombined] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/textcombined.md) + [textorientation] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/textorientation.md) + [texttable] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/texttable.md) + [unified1D] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/unified1D.md) + [utils] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/utils.md) + [vcs2vtk] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcs2vtk.md) + [vcshelp] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcshelp.md) + [vcsvtk] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcsvtk.md) + [vector] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vector.md) + [vtk_ui] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vtk_ui.md) + From f5941bbfb8bca34e83d6d9e57da0d783d9a9c303 Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 8 Dec 2016 14:59:29 -0800 Subject: [PATCH 13/45] Fixed errors in manageElements. Added doctests. General formatting improvements. --- docs/doctest_info/Canvas.md | 78 ++++----- docs/doctest_info/Canvas.report | 211 ++++++++++++++++++------ docs/doctest_info/bars.png | Bin 0 -> 36999 bytes docs/doctest_info/colormap.md | 18 +- docs/doctest_info/colormap.report | 18 +- docs/doctest_info/isofill.report | 4 + docs/doctest_info/manageElements.md | 40 +---- docs/doctest_info/manageElements.report | 140 +++++++++++----- docs/doctest_info/meshfill.report | 4 + docs/doctest_info/run_all_doctests.sh | 4 +- docs/doctest_info/template.md | 74 ++++++++- docs/doctest_info/template.report | 102 +++++++++++- docs/doctest_info/textcombined.md | 130 +++++++++++++++ docs/doctest_info/textcombined.report | 4 + docs/doctest_info/texttable.md | 104 ++++++++++++ docs/doctest_info/texttable.report | 4 + docs/doctest_info/utils.report | 10 ++ docs/doctest_info/vector.md | 198 ++++++++++++++++++++++ docs/doctest_info/vector.report | 4 + vcs/Canvas.py | 199 ++++++++++++---------- vcs/boxfill.py | 68 +++++--- vcs/isoline.py | 35 ++-- vcs/manageElements.py | 85 ++++++++-- vcs/queries.py | 35 ++-- vcs/taylor.py | 8 +- vcs/template.py | 95 ++++++----- vcs/utils.py | 70 ++++---- vcs/xmldocs.py | 86 +++++++--- 28 files changed, 1394 insertions(+), 434 deletions(-) create mode 100644 docs/doctest_info/bars.png diff --git a/docs/doctest_info/Canvas.md b/docs/doctest_info/Canvas.md index 109fea152..2c077cdf1 100644 --- a/docs/doctest_info/Canvas.md +++ b/docs/doctest_info/Canvas.md @@ -1,27 +1,3 @@ -vcs.Canvas.Canvas.createprojection ----------------------------------- -```python -Failed example: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection - return projection.Proj(name, source) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ - self.type = src.type - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype - value = VCS_validation_functions.checkProjType(self, 'type', value) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType - checkedRaise(self, value, Exception, err) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise - raise ex(err) - Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) -``` - vcs.Canvas.Canvas.drawtext -------------------------- ```python @@ -33,7 +9,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -54,16 +30,16 @@ Failed example: png_files.append('my_png__%i.png' % i) Expected nothing Got: - - - - - - - - - - + + + + + + + + + + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -75,7 +51,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -87,7 +63,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -101,7 +77,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.gettaylordiagram @@ -119,9 +95,9 @@ Exception raised: return self.__plot(arglist, parms) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw d0 = float(data[i][0]) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ raise TypeError("Only length-1 arrays can be converted " @@ -139,7 +115,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -241,6 +217,20 @@ Got: ``` +vcs.Canvas.Canvas.put_png_on_canvas +----------------------------------- +```python +Failed example: + a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas + AttributeError: 'Canvas' object has no attribute 'put_on_png_on_canvas' +``` + Missing Doctests ---------------- :x:``` vcs.Canvas``` @@ -337,8 +327,6 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.copyfontto``` -:x:``` vcs.Canvas.Canvas.create1d``` - :x:``` vcs.Canvas.Canvas.dual_scalar3d``` :x:``` vcs.Canvas.Canvas.dummy_user_action``` @@ -391,8 +379,6 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.processParameterChange``` -:x:``` vcs.Canvas.Canvas.put_png_on_canvas``` - :x:``` vcs.Canvas.Canvas.raisecanvas``` :x:``` vcs.Canvas.Canvas.removeP``` @@ -413,8 +399,6 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.setdefaultfont``` -:x:``` vcs.Canvas.Canvas.show``` - :x:``` vcs.Canvas.Canvas.start``` :x:``` vcs.Canvas.Canvas.switchfonts``` diff --git a/docs/doctest_info/Canvas.report b/docs/doctest_info/Canvas.report index fa642f0f2..55c47c182 100644 --- a/docs/doctest_info/Canvas.report +++ b/docs/doctest_info/Canvas.report @@ -99,6 +99,25 @@ Trying: a.close() #close the vcs canvas Expecting nothing ok +Trying: + vcs.show('1d') +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok +Trying: + oneD_default = vcs.create1d() # inherit default, name generated +Expecting nothing +ok +Trying: + oneD_named = vcs.create1d("one_D") # inherit default, name "one_D" +Expecting nothing +ok +Trying: + new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" +Expecting nothing +ok Trying: vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar Expecting: @@ -355,29 +374,14 @@ Expecting: [...'projection_ex1'...] ok Trying: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2' from 'orthographic' template Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1207, in vcs.Canvas.Canvas.createprojection -Failed example: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection - return projection.Proj(name, source) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ - self.type = src.type - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype - value = VCS_validation_functions.checkProjType(self, 'type', value) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType - checkedRaise(self, value, Exception, err) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise - raise ex(err) - Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +ok +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expecting: + [...'projection_ex2'...] +ok Trying: vcs.show('scatter') # show all available scatter Expecting: @@ -705,11 +709,20 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error texttable object named EXAMPLE_tt already exists +Trying: + tc=a.drawtextcombined(Tt_name = 'EXAMPLE_tt', To_name='EXAMPLE_tto', + string='Hello example!', spacing=5, + color=242, priority=1, viewport=[0, 1.0, 0, 1.0], + worldcoordinate=[0,100, 0,50], + x=[0,20,40,60,80,100], + y=[0,10,20,30,40,50]) # plot textcombined object on canvas +Expecting nothing +ok Trying: a=vcs.init() Expecting nothing @@ -782,7 +795,7 @@ Trying: png_files.append('my_png__%i.png' % i) Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4505, in vcs.Canvas.Canvas.ffmpeg +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4511, in vcs.Canvas.Canvas.ffmpeg Failed example: for i in range(10): # create a number of pngs to use for an mpeg a.clear() @@ -794,16 +807,31 @@ Failed example: png_files.append('my_png__%i.png' % i) Expected nothing Got: - - - - - - - - - - + + + + + + + + + + +Trying: + a.ffmpeg('mymovie.mpeg',png_files) # generates from list of files +Expecting: + True +ok +Trying: + a.ffmpeg('mymovie.mpeg',png_files,bitrate=512) # generates mpeg at 512kbit +Expecting: + True +ok +Trying: + a.ffmpeg('mymovie.mpeg',png_files,rate=50) # generates movie with 50 frame per second +Expecting: + True +ok Trying: a=vcs.init() Expecting nothing @@ -919,7 +947,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -957,7 +985,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1001,7 +1029,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1353,7 +1381,7 @@ Expecting: ok Trying: - ex2=vcs.getprojection('polar') # instance of 'polar' projection graphics method + ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method Expecting nothing ok Trying: @@ -1438,9 +1466,9 @@ Exception raised: return self.__plot(arglist, parms) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw d0 = float(data[i][0]) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ raise TypeError("Only length-1 arrays can be converted " @@ -1507,11 +1535,20 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error texttable object named EXAMPLE_tt already exists +Trying: + ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method +Expecting nothing +ok +Trying: + a.textcombined(ex) # plot using specified textcombined object +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -2301,6 +2338,41 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + array=[range(10) for i in range(10)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting: + +ok +Trying: + a.png("bars.png") # make a png named 'bars.png' +Expecting nothing +ok +Trying: + a.clear() # clear the bars off the screen +Expecting nothing +ok +Trying: + a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4684, in vcs.Canvas.Canvas.put_png_on_canvas +Failed example: + a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas + AttributeError: 'Canvas' object has no attribute 'put_on_png_on_canvas' +Trying: + a=vcs.init() +Expecting nothing +ok Trying: iso=a.createisoline('dean') # Create an instance of an isoline object Expecting nothing @@ -2496,6 +2568,45 @@ Trying: Expecting: ok +Trying: + a=vcs.init() # Create a VCS Canvas instance, named 'a' +Expecting nothing +ok +Trying: + a.show('boxfill') # List boxfill objects on Canvas 'a' +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + a.show('isofill') # List isofill objects on Canvas 'a' +Expecting: + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** +ok +Trying: + a.show('line') # List line objects on Canvas 'a' +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + a.show('marker') # List marker objects on Canvas 'a' +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + a.show('textcombined') # List text objects on Canvas 'a' +Expecting: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +ok Trying: a=vcs.init() Expecting nothing @@ -2839,7 +2950,7 @@ Trying: Expecting: ok -106 items had no tests: +103 items had no tests: vcs.Canvas vcs.Canvas.Canvas vcs.Canvas.Canvas._Canvas__new_elts @@ -2887,7 +2998,6 @@ ok vcs.Canvas.Canvas.clean_auto_generated_objects vcs.Canvas.Canvas.configure vcs.Canvas.Canvas.copyfontto - vcs.Canvas.Canvas.create1d vcs.Canvas.Canvas.dual_scalar3d vcs.Canvas.Canvas.dummy_user_action vcs.Canvas.Canvas.endconfigure @@ -2914,7 +3024,6 @@ ok vcs.Canvas.Canvas.plot_annotation vcs.Canvas.Canvas.plot_filledcontinents vcs.Canvas.Canvas.processParameterChange - vcs.Canvas.Canvas.put_png_on_canvas vcs.Canvas.Canvas.raisecanvas vcs.Canvas.Canvas.removeP vcs.Canvas.Canvas.remove_display_name @@ -2925,7 +3034,6 @@ ok vcs.Canvas.Canvas.setAnimationStepper vcs.Canvas.Canvas.setantialiasing vcs.Canvas.Canvas.setdefaultfont - vcs.Canvas.Canvas.show vcs.Canvas.Canvas.start vcs.Canvas.Canvas.switchfonts vcs.Canvas.Canvas.updateorientation @@ -2946,10 +3054,11 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -90 items passed all tests: +93 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill 4 tests in vcs.Canvas.Canvas.clear 4 tests in vcs.Canvas.Canvas.close + 4 tests in vcs.Canvas.Canvas.create1d 3 tests in vcs.Canvas.Canvas.create3d_dual_scalar 3 tests in vcs.Canvas.Canvas.create3d_scalar 3 tests in vcs.Canvas.Canvas.create3d_vector @@ -2961,6 +3070,7 @@ ok 5 tests in vcs.Canvas.Canvas.createline 5 tests in vcs.Canvas.Canvas.createmarker 5 tests in vcs.Canvas.Canvas.createmeshfill + 5 tests in vcs.Canvas.Canvas.createprojection 3 tests in vcs.Canvas.Canvas.createscatter 3 tests in vcs.Canvas.Canvas.createtaylordiagram 5 tests in vcs.Canvas.Canvas.createtemplate @@ -3029,6 +3139,7 @@ ok 5 tests in vcs.Canvas.Canvas.setcolormap 5 tests in vcs.Canvas.Canvas.setcontinentsline 4 tests in vcs.Canvas.Canvas.setcontinentstype + 6 tests in vcs.Canvas.Canvas.show 6 tests in vcs.Canvas.Canvas.svg 8 tests in vcs.Canvas.Canvas.taylordiagram 13 tests in vcs.Canvas.Canvas.text @@ -3039,7 +3150,6 @@ ok 8 tests in vcs.Canvas.Canvas.yxvsx ********************************************************************** 9 items had failures: - 2 of 5 in vcs.Canvas.Canvas.createprojection 1 of 4 in vcs.Canvas.Canvas.drawtext 1 of 10 in vcs.Canvas.Canvas.ffmpeg 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar @@ -3048,6 +3158,7 @@ ok 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram 1 of 5 in vcs.Canvas.Canvas.gettextcombined 1 of 3 in vcs.Canvas.Canvas.objecthelp -591 tests in 205 items. -581 passed and 10 failed. -***Test Failed*** 10 failures. + 1 of 6 in vcs.Canvas.Canvas.put_png_on_canvas +607 tests in 205 items. +598 passed and 9 failed. +***Test Failed*** 9 failures. diff --git a/docs/doctest_info/bars.png b/docs/doctest_info/bars.png new file mode 100644 index 0000000000000000000000000000000000000000..8a32de3860c497bac2c5bc4e459dc6e36e31a0bd GIT binary patch literal 36999 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", line 1, in cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5491, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5516, in createcolormap return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1687, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1732, in createcolormap Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error colormap object named example already exists ``` +vcs.colormap.Cp.setcolorcell +---------------------------- +```python +Failed example: + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values + NameError: name 'cmap' is not defined +``` + diff --git a/docs/doctest_info/colormap.report b/docs/doctest_info/colormap.report index 61ae6cfdf..577f9bcb7 100644 --- a/docs/doctest_info/colormap.report +++ b/docs/doctest_info/colormap.report @@ -44,13 +44,27 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5491, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5516, in createcolormap return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1687, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1732, in createcolormap Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error colormap object named example already exists +Trying: + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/colormap.py", line 312, in vcs.colormap.Cp.setcolorcell +Failed example: + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values + NameError: name 'cmap' is not defined 15 items had no tests: vcs.colormap vcs.colormap.Cp diff --git a/docs/doctest_info/isofill.report b/docs/doctest_info/isofill.report index 1a34d709b..9640ca9cb 100644 --- a/docs/doctest_info/isofill.report +++ b/docs/doctest_info/isofill.report @@ -22,6 +22,10 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 856, in script fp.write("%s.missing = %g\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/manageElements.md b/docs/doctest_info/manageElements.md index 2645d0080..640998dab 100644 --- a/docs/doctest_info/manageElements.md +++ b/docs/doctest_info/manageElements.md @@ -1,27 +1,3 @@ -vcs.manageElements.createprojection ------------------------------------ -```python -Failed example: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection - return projection.Proj(name, source) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ - self.type = src.type - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype - value = VCS_validation_functions.checkProjType(self, 'type', value) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType - checkedRaise(self, value, Exception, err) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise - raise ex(err) - Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) -``` - vcs.manageElements.createtext ----------------------------- ```python @@ -45,7 +21,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -57,7 +33,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -71,7 +47,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.gettaylordiagram @@ -89,9 +65,9 @@ Exception raised: return self.__plot(arglist, parms) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw d0 = float(data[i][0]) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ raise TypeError("Only length-1 arrays can be converted " @@ -109,7 +85,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -122,10 +98,6 @@ Missing Doctests :x:``` vcs.manageElements.check_name_source``` -:x:``` vcs.manageElements.create1d``` - -:x:``` vcs.manageElements.get1d``` - :x:``` vcs.manageElements.removeCp``` :x:``` vcs.manageElements.removeG``` diff --git a/docs/doctest_info/manageElements.report b/docs/doctest_info/manageElements.report index 28d6890d9..1be3c0dbb 100644 --- a/docs/doctest_info/manageElements.report +++ b/docs/doctest_info/manageElements.report @@ -1,3 +1,22 @@ +Trying: + vcs.show('1d') +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok +Trying: + oneD_default = vcs.create1d() # inherit default, name generated +Expecting nothing +ok +Trying: + oneD_named = vcs.create1d("one_D") # inherit default, name "one_D" +Expecting nothing +ok +Trying: + new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" +Expecting nothing +ok Trying: vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar Expecting: @@ -254,29 +273,14 @@ Expecting: [...'projection_ex1'...] ok Trying: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template + ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2' from 'orthographic' template Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 129, in vcs.manageElements.createprojection -Failed example: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection - return projection.Proj(name, source) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ - self.type = src.type - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype - value = VCS_validation_functions.checkProjType(self, 'type', value) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType - checkedRaise(self, value, Exception, err) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise - raise ex(err) - Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) +ok +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expecting: + [...'projection_ex2'...] +ok Trying: vcs.show('scatter') # show all available scatter Expecting: @@ -341,7 +345,7 @@ Expecting: ... *******************End Textcombined Names List********************** ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1343, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1388, in vcs.manageElements.createtext Failed example: vcs.show('textcombined') # show all available textcombined Expected: @@ -351,6 +355,16 @@ Expected: Got: *******************Textcombined Names List********************** *******************End Textcombined Names List********************** +Trying: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' +Expecting: + +ok +Trying: + vcs.listelements('textcombined') # should now contain the 'EXAMPLE_tt:::EXAMPLE_tto' textcombined +Expecting: + [...'EXAMPLE_tt:::EXAMPLE_tto'...] +ok Trying: vcs.show('textorientation') # show all available textorientation Expecting: @@ -465,6 +479,17 @@ Trying: Expecting: [...'yxvsx_ex1'...] ok +Trying: + vcs.show('1d') +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok +Trying: + blue = vcs.get1d('blue_yxvsx') +Expecting nothing +ok Trying: a=vcs.init() Expecting nothing @@ -499,14 +524,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1611, in vcs.manageElements.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1656, in vcs.manageElements.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -537,14 +562,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1570, in vcs.manageElements.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1615, in vcs.manageElements.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -579,7 +604,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1651, in vcs.manageElements.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1696, in vcs.manageElements.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -588,7 +613,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -865,7 +890,7 @@ Expecting: ok Trying: - ex2=vcs.getprojection('polar') # instance of 'polar' projection graphics method + ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method Expecting nothing ok Trying: @@ -950,9 +975,9 @@ Exception raised: return self.__plot(arglist, parms) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw d0 = float(data[i][0]) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ raise TypeError("Only length-1 arrays can be converted " @@ -1010,7 +1035,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1455, in vcs.manageElements.gettextcombined +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1500, in vcs.manageElements.gettextcombined Failed example: vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' Exception raised: @@ -1019,11 +1044,20 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1390, in createtextcombined + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error texttable object named EXAMPLE_tt already exists +Trying: + ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method +Expecting nothing +ok +Trying: + a.textcombined(ex) # plot using specified textcombined object +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -1207,18 +1241,32 @@ Expecting: *******************End Line Names List********************** ok Trying: - new_isoline=vcs.createisoline('new_iso') + new_isoline = vcs.createisoline('new_iso') Expecting nothing ok Trying: vcs.setLineAttributes(new_isoline, 'continents') Expecting nothing ok -25 items had no tests: +Trying: + new_vector = vcs.createvector('new_vec') +Expecting nothing +ok +Trying: + vcs.setLineAttributes(new_vector, 'continents') +Expecting nothing +ok +Trying: + new_1d = vcs.create1d('new_1d', 'blue_yxvsx') +Expecting nothing +ok +Trying: + vcs.setLineAttributes(new_1d, 'continents') +Expecting nothing +ok +23 items had no tests: vcs.manageElements vcs.manageElements.check_name_source - vcs.manageElements.create1d - vcs.manageElements.get1d vcs.manageElements.removeCp vcs.manageElements.removeG vcs.manageElements.removeG1d @@ -1240,7 +1288,8 @@ ok vcs.manageElements.removeTm vcs.manageElements.removeTo vcs.manageElements.removeTt -39 items passed all tests: +42 items passed all tests: + 4 tests in vcs.manageElements.create1d 3 tests in vcs.manageElements.create3d_dual_scalar 3 tests in vcs.manageElements.create3d_scalar 3 tests in vcs.manageElements.create3d_vector @@ -1252,6 +1301,7 @@ ok 5 tests in vcs.manageElements.createline 5 tests in vcs.manageElements.createmarker 5 tests in vcs.manageElements.createmeshfill + 5 tests in vcs.manageElements.createprojection 3 tests in vcs.manageElements.createscatter 3 tests in vcs.manageElements.createtaylordiagram 5 tests in vcs.manageElements.createtemplate @@ -1261,6 +1311,7 @@ ok 3 tests in vcs.manageElements.createxvsy 3 tests in vcs.manageElements.createxyvsy 3 tests in vcs.manageElements.createyxvsx + 2 tests in vcs.manageElements.get1d 9 tests in vcs.manageElements.getboxfill 4 tests in vcs.manageElements.getcolormap 4 tests in vcs.manageElements.getfillarea @@ -1279,16 +1330,15 @@ ok 7 tests in vcs.manageElements.getxyvsy 7 tests in vcs.manageElements.getyxvsx 3 tests in vcs.manageElements.removeobject - 3 tests in vcs.manageElements.setLineAttributes + 7 tests in vcs.manageElements.setLineAttributes ********************************************************************** -7 items had failures: - 2 of 5 in vcs.manageElements.createprojection +6 items had failures: 1 of 3 in vcs.manageElements.createtext 1 of 8 in vcs.manageElements.get3d_dual_scalar 1 of 7 in vcs.manageElements.get3d_scalar 1 of 8 in vcs.manageElements.get3d_vector 1 of 7 in vcs.manageElements.gettaylordiagram 1 of 5 in vcs.manageElements.gettextcombined -249 tests in 71 items. -241 passed and 8 failed. -***Test Failed*** 8 failures. +259 tests in 71 items. +253 passed and 6 failed. +***Test Failed*** 6 failures. diff --git a/docs/doctest_info/meshfill.report b/docs/doctest_info/meshfill.report index c3c62b6a1..afc4f1977 100644 --- a/docs/doctest_info/meshfill.report +++ b/docs/doctest_info/meshfill.report @@ -22,6 +22,10 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 900, in script fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/run_all_doctests.sh b/docs/doctest_info/run_all_doctests.sh index ee1fcd63c..019efdf5a 100755 --- a/docs/doctest_info/run_all_doctests.sh +++ b/docs/doctest_info/run_all_doctests.sh @@ -8,5 +8,5 @@ MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" "vtk_ui") -for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r > "$module.report"; done; -for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r --LO; done; \ No newline at end of file +for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -a -v -r > "$module.report"; done; +for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r --LO; done; diff --git a/docs/doctest_info/template.md b/docs/doctest_info/template.md index 1f52b7cd7..5c44f93f7 100644 --- a/docs/doctest_info/template.md +++ b/docs/doctest_info/template.md @@ -37,6 +37,20 @@ Exception raised: vcsError: Error template object named example1 already exists ``` +vcs.template.P.moveto +--------------------- +```python +Failed example: + t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 + NameError: name 't' is not defined +``` + vcs.template.P.reset -------------------- ```python @@ -55,6 +69,20 @@ Exception raised: vcsError: Error template object named example1 already exists ``` +vcs.template.P.reset +-------------------- +```python +Failed example: + t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 + NameError: name 't' is not defined +``` + vcs.template.P.scale -------------------- ```python @@ -73,6 +101,48 @@ Exception raised: vcsError: Error template object named example1 already exists ``` +vcs.template.P.scale +-------------------- +```python +Failed example: + t.scale(0.5) # Halves the template size +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(0.5) # Halves the template size + NameError: name 't' is not defined +``` + +vcs.template.P.scale +-------------------- +```python +Failed example: + t.scale(1.2) # Upsize everything to 20% more than the original size +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(1.2) # Upsize everything to 20% more than the original size + NameError: name 't' is not defined +``` + +vcs.template.P.scale +-------------------- +```python +Failed example: + t.scale(2,'x') # Double the x axis +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(2,'x') # Double the x axis + NameError: name 't' is not defined +``` + Missing Doctests ---------------- :x:``` vcs.template``` @@ -149,10 +219,6 @@ Missing Doctests :x:``` vcs.template.P.plot``` -:x:``` vcs.template.P.ratio``` - -:x:``` vcs.template.P.ratio_linear_projection``` - :x:``` vcs.template.P.scalefont``` :x:``` vcs.template.P.source``` diff --git a/docs/doctest_info/template.report b/docs/doctest_info/template.report index 3d7824018..680900fb7 100644 --- a/docs/doctest_info/template.report +++ b/docs/doctest_info/template.report @@ -34,6 +34,10 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2390, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' +Trying: + x.png("sample") +Expecting nothing +ok Trying: t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' Expecting nothing @@ -64,6 +68,36 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists +Trying: + t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1367, in vcs.template.P.moveto +Failed example: + t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 + NameError: name 't' is not defined +Trying: + t=vcs.gettemplate() +Expecting nothing +ok +Trying: + t.ratio(2) # y is twice x +Expecting nothing +ok +Trying: + t=vcs.gettemplate() +Expecting nothing +ok +Trying: + t.ratio_linear_projection(-135,-50,20,50) # USA +Expecting nothing +ok Trying: t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' Expecting nothing @@ -82,6 +116,20 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists +Trying: + t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1265, in vcs.template.P.reset +Failed example: + t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 + NameError: name 't' is not defined Trying: t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' Expecting nothing @@ -100,6 +148,48 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists +Trying: + t.scale(0.5) # Halves the template size +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1400, in vcs.template.P.scale +Failed example: + t.scale(0.5) # Halves the template size +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(0.5) # Halves the template size + NameError: name 't' is not defined +Trying: + t.scale(1.2) # Upsize everything to 20% more than the original size +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1401, in vcs.template.P.scale +Failed example: + t.scale(1.2) # Upsize everything to 20% more than the original size +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(1.2) # Upsize everything to 20% more than the original size + NameError: name 't' is not defined +Trying: + t.scale(2,'x') # Double the x axis +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1402, in vcs.template.P.scale +Failed example: + t.scale(2,'x') # Double the x axis +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + t.scale(2,'x') # Double the x axis + NameError: name 't' is not defined Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -116,7 +206,7 @@ Trying: ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. Expecting nothing ok -73 items had no tests: +71 items had no tests: vcs.template vcs.template.P vcs.template.P.__init__ @@ -154,8 +244,6 @@ ok vcs.template.P.name vcs.template.P.orientation vcs.template.P.plot - vcs.template.P.ratio - vcs.template.P.ratio_linear_projection vcs.template.P.scalefont vcs.template.P.source vcs.template.P.title @@ -190,8 +278,10 @@ ok vcs.template.epsilon_gte vcs.template.epsilon_lte vcs.template.process_src -2 items passed all tests: +4 items passed all tests: 3 tests in vcs.template.P.move + 2 tests in vcs.template.P.ratio + 2 tests in vcs.template.P.ratio_linear_projection 4 tests in vcs.template.P.script ********************************************************************** 4 items had failures: @@ -199,6 +289,6 @@ ok 2 of 2 in vcs.template.P.moveto 2 of 2 in vcs.template.P.reset 4 of 4 in vcs.template.P.scale -20 tests in 79 items. -11 passed and 9 failed. +24 tests in 79 items. +15 passed and 9 failed. ***Test Failed*** 9 failures. diff --git a/docs/doctest_info/textcombined.md b/docs/doctest_info/textcombined.md index 9aa908418..760aa8e3a 100644 --- a/docs/doctest_info/textcombined.md +++ b/docs/doctest_info/textcombined.md @@ -14,3 +14,133 @@ Exception raised: TypeError: float argument required, not list ``` +Missing Doctests +---------------- +:x:``` vcs.textcombined``` + +:x:``` vcs.textcombined.Tc``` + +:x:``` vcs.textcombined.Tc.To_name``` + +:x:``` vcs.textcombined.Tc.Tt_name``` + +:x:``` vcs.textcombined.Tc.__init__``` + +:x:``` vcs.textcombined.Tc._getToname``` + +:x:``` vcs.textcombined.Tc._getTtname``` + +:x:``` vcs.textcombined.Tc._getangle``` + +:x:``` vcs.textcombined.Tc._getcolor``` + +:x:``` vcs.textcombined.Tc._getcolormap``` + +:x:``` vcs.textcombined.Tc._getexpansion``` + +:x:``` vcs.textcombined.Tc._getfcolor``` + +:x:``` vcs.textcombined.Tc._getfont``` + +:x:``` vcs.textcombined.Tc._gethalign``` + +:x:``` vcs.textcombined.Tc._getheight``` + +:x:``` vcs.textcombined.Tc._getpath``` + +:x:``` vcs.textcombined.Tc._getpriority``` + +:x:``` vcs.textcombined.Tc._getprojection``` + +:x:``` vcs.textcombined.Tc._getspacing``` + +:x:``` vcs.textcombined.Tc._getstring``` + +:x:``` vcs.textcombined.Tc._getvalign``` + +:x:``` vcs.textcombined.Tc._getviewport``` + +:x:``` vcs.textcombined.Tc._getworldcoordinate``` + +:x:``` vcs.textcombined.Tc._getx``` + +:x:``` vcs.textcombined.Tc._gety``` + +:x:``` vcs.textcombined.Tc._setToname``` + +:x:``` vcs.textcombined.Tc._setTtname``` + +:x:``` vcs.textcombined.Tc._setangle``` + +:x:``` vcs.textcombined.Tc._setcolor``` + +:x:``` vcs.textcombined.Tc._setcolormap``` + +:x:``` vcs.textcombined.Tc._setexpansion``` + +:x:``` vcs.textcombined.Tc._setfcolor``` + +:x:``` vcs.textcombined.Tc._setfont``` + +:x:``` vcs.textcombined.Tc._sethalign``` + +:x:``` vcs.textcombined.Tc._setheight``` + +:x:``` vcs.textcombined.Tc._setpath``` + +:x:``` vcs.textcombined.Tc._setpriority``` + +:x:``` vcs.textcombined.Tc._setprojection``` + +:x:``` vcs.textcombined.Tc._setspacing``` + +:x:``` vcs.textcombined.Tc._setstring``` + +:x:``` vcs.textcombined.Tc._setvalign``` + +:x:``` vcs.textcombined.Tc._setviewport``` + +:x:``` vcs.textcombined.Tc._setworldcoordinate``` + +:x:``` vcs.textcombined.Tc._setx``` + +:x:``` vcs.textcombined.Tc._sety``` + +:x:``` vcs.textcombined.Tc.angle``` + +:x:``` vcs.textcombined.Tc.color``` + +:x:``` vcs.textcombined.Tc.colormap``` + +:x:``` vcs.textcombined.Tc.expansion``` + +:x:``` vcs.textcombined.Tc.fillincolor``` + +:x:``` vcs.textcombined.Tc.font``` + +:x:``` vcs.textcombined.Tc.halign``` + +:x:``` vcs.textcombined.Tc.height``` + +:x:``` vcs.textcombined.Tc.list``` + +:x:``` vcs.textcombined.Tc.path``` + +:x:``` vcs.textcombined.Tc.priority``` + +:x:``` vcs.textcombined.Tc.projection``` + +:x:``` vcs.textcombined.Tc.spacing``` + +:x:``` vcs.textcombined.Tc.string``` + +:x:``` vcs.textcombined.Tc.valign``` + +:x:``` vcs.textcombined.Tc.viewport``` + +:x:``` vcs.textcombined.Tc.worldcoordinate``` + +:x:``` vcs.textcombined.Tc.x``` + +:x:``` vcs.textcombined.Tc.y``` + diff --git a/docs/doctest_info/textcombined.report b/docs/doctest_info/textcombined.report index f539a4bb1..859cd5246 100644 --- a/docs/doctest_info/textcombined.report +++ b/docs/doctest_info/textcombined.report @@ -27,6 +27,10 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 503, in script fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not list +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok 64 items had no tests: vcs.textcombined vcs.textcombined.Tc diff --git a/docs/doctest_info/texttable.md b/docs/doctest_info/texttable.md index 3e292cbed..e82c043af 100644 --- a/docs/doctest_info/texttable.md +++ b/docs/doctest_info/texttable.md @@ -14,3 +14,107 @@ Exception raised: TypeError: float argument required, not tuple ``` +Missing Doctests +---------------- +:x:``` vcs.texttable``` + +:x:``` vcs.texttable.Tt``` + +:x:``` vcs.texttable.Tt.__init__``` + +:x:``` vcs.texttable.Tt._getbackgroundcolor``` + +:x:``` vcs.texttable.Tt._getbackgroundopacity``` + +:x:``` vcs.texttable.Tt._getcolor``` + +:x:``` vcs.texttable.Tt._getexpansion``` + +:x:``` vcs.texttable.Tt._getfillincolor``` + +:x:``` vcs.texttable.Tt._getfont``` + +:x:``` vcs.texttable.Tt._getname``` + +:x:``` vcs.texttable.Tt._getpriority``` + +:x:``` vcs.texttable.Tt._getprojection``` + +:x:``` vcs.texttable.Tt._getspacing``` + +:x:``` vcs.texttable.Tt._getstring``` + +:x:``` vcs.texttable.Tt._getvp``` + +:x:``` vcs.texttable.Tt._getwc``` + +:x:``` vcs.texttable.Tt._getx``` + +:x:``` vcs.texttable.Tt._gety``` + +:x:``` vcs.texttable.Tt._setbackgroundcolor``` + +:x:``` vcs.texttable.Tt._setbackgroundopacity``` + +:x:``` vcs.texttable.Tt._setcolor``` + +:x:``` vcs.texttable.Tt._setexpansion``` + +:x:``` vcs.texttable.Tt._setfillincolor``` + +:x:``` vcs.texttable.Tt._setfont``` + +:x:``` vcs.texttable.Tt._setname``` + +:x:``` vcs.texttable.Tt._setpriority``` + +:x:``` vcs.texttable.Tt._setprojection``` + +:x:``` vcs.texttable.Tt._setspacing``` + +:x:``` vcs.texttable.Tt._setstring``` + +:x:``` vcs.texttable.Tt._setvp``` + +:x:``` vcs.texttable.Tt._setwc``` + +:x:``` vcs.texttable.Tt._setx``` + +:x:``` vcs.texttable.Tt._sety``` + +:x:``` vcs.texttable.Tt.backgroundcolor``` + +:x:``` vcs.texttable.Tt.backgroundopacity``` + +:x:``` vcs.texttable.Tt.color``` + +:x:``` vcs.texttable.Tt.colormap``` + +:x:``` vcs.texttable.Tt.expansion``` + +:x:``` vcs.texttable.Tt.fillincolor``` + +:x:``` vcs.texttable.Tt.font``` + +:x:``` vcs.texttable.Tt.list``` + +:x:``` vcs.texttable.Tt.name``` + +:x:``` vcs.texttable.Tt.priority``` + +:x:``` vcs.texttable.Tt.projection``` + +:x:``` vcs.texttable.Tt.spacing``` + +:x:``` vcs.texttable.Tt.string``` + +:x:``` vcs.texttable.Tt.viewport``` + +:x:``` vcs.texttable.Tt.worldcoordinate``` + +:x:``` vcs.texttable.Tt.x``` + +:x:``` vcs.texttable.Tt.y``` + +:x:``` vcs.texttable.process_src``` + diff --git a/docs/doctest_info/texttable.report b/docs/doctest_info/texttable.report index 5613d876c..cb7d20f0e 100644 --- a/docs/doctest_info/texttable.report +++ b/docs/doctest_info/texttable.report @@ -22,6 +22,10 @@ Exception raised: File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 558, in script fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not tuple +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok 51 items had no tests: vcs.texttable vcs.texttable.Tt diff --git a/docs/doctest_info/utils.report b/docs/doctest_info/utils.report index a2647ab38..22345077d 100644 --- a/docs/doctest_info/utils.report +++ b/docs/doctest_info/utils.report @@ -288,6 +288,16 @@ Expected: {0.005: '0.005', 5.0: '5.000'} Got: {5.0: '5.000', 0.005: '0.005'} +Trying: + vcs.mklabels ( [.00002,.00005]) +Expecting: + {2e-05: '2E-5', 5e-05: '5E-5'} +ok +Trying: + vcs.mklabels ( [.00002,.00005],output='list') +Expecting: + ['2E-5', '5E-5'] +ok Trying: vcs.mkscale(0,100) Expecting: diff --git a/docs/doctest_info/vector.md b/docs/doctest_info/vector.md index 404e2758b..c6474e5c0 100644 --- a/docs/doctest_info/vector.md +++ b/docs/doctest_info/vector.md @@ -8,3 +8,201 @@ Got: DEPRECATED: Use linetype or setLineAttributes instead. ``` +Missing Doctests +---------------- +:x:``` vcs.vector``` + +:x:``` vcs.vector.Gv``` + +:x:``` vcs.vector.Gv.__init__``` + +:x:``` vcs.vector.Gv._getalignment``` + +:x:``` vcs.vector.Gv._getcalendar``` + +:x:``` vcs.vector.Gv._getdatawc_x1``` + +:x:``` vcs.vector.Gv._getdatawc_x2``` + +:x:``` vcs.vector.Gv._getdatawc_y1``` + +:x:``` vcs.vector.Gv._getdatawc_y2``` + +:x:``` vcs.vector.Gv._getline``` + +:x:``` vcs.vector.Gv._getlinecolor``` + +:x:``` vcs.vector.Gv._getlinetype``` + +:x:``` vcs.vector.Gv._getlinewidth``` + +:x:``` vcs.vector.Gv._getname``` + +:x:``` vcs.vector.Gv._getprojection``` + +:x:``` vcs.vector.Gv._getreference``` + +:x:``` vcs.vector.Gv._getscale``` + +:x:``` vcs.vector.Gv._getscalerange``` + +:x:``` vcs.vector.Gv._getscaletype``` + +:x:``` vcs.vector.Gv._gettimeunits``` + +:x:``` vcs.vector.Gv._gettype``` + +:x:``` vcs.vector.Gv._getxaxisconvert``` + +:x:``` vcs.vector.Gv._getxmtics1``` + +:x:``` vcs.vector.Gv._getxmtics2``` + +:x:``` vcs.vector.Gv._getxticlabels1``` + +:x:``` vcs.vector.Gv._getxticlabels2``` + +:x:``` vcs.vector.Gv._getyaxisconvert``` + +:x:``` vcs.vector.Gv._getymtics1``` + +:x:``` vcs.vector.Gv._getymtics2``` + +:x:``` vcs.vector.Gv._getyticlabels1``` + +:x:``` vcs.vector.Gv._getyticlabels2``` + +:x:``` vcs.vector.Gv._setalignment``` + +:x:``` vcs.vector.Gv._setcalendar``` + +:x:``` vcs.vector.Gv._setdatawc_x1``` + +:x:``` vcs.vector.Gv._setdatawc_x2``` + +:x:``` vcs.vector.Gv._setdatawc_y1``` + +:x:``` vcs.vector.Gv._setdatawc_y2``` + +:x:``` vcs.vector.Gv._setline``` + +:x:``` vcs.vector.Gv._setlinecolor``` + +:x:``` vcs.vector.Gv._setlinetype``` + +:x:``` vcs.vector.Gv._setlinewidth``` + +:x:``` vcs.vector.Gv._setname``` + +:x:``` vcs.vector.Gv._setprojection``` + +:x:``` vcs.vector.Gv._setreference``` + +:x:``` vcs.vector.Gv._setscale``` + +:x:``` vcs.vector.Gv._setscalerange``` + +:x:``` vcs.vector.Gv._setscaletype``` + +:x:``` vcs.vector.Gv._settimeunits``` + +:x:``` vcs.vector.Gv._settype``` + +:x:``` vcs.vector.Gv._setxaxisconvert``` + +:x:``` vcs.vector.Gv._setxmtics1``` + +:x:``` vcs.vector.Gv._setxmtics2``` + +:x:``` vcs.vector.Gv._setxticlabels1``` + +:x:``` vcs.vector.Gv._setxticlabels2``` + +:x:``` vcs.vector.Gv._setyaxisconvert``` + +:x:``` vcs.vector.Gv._setymtics1``` + +:x:``` vcs.vector.Gv._setymtics2``` + +:x:``` vcs.vector.Gv._setyticlabels1``` + +:x:``` vcs.vector.Gv._setyticlabels2``` + +:x:``` vcs.vector.Gv.alignment``` + +:x:``` vcs.vector.Gv.colormap``` + +:x:``` vcs.vector.Gv.datawc``` + +:x:``` vcs.vector.Gv.datawc_calendar``` + +:x:``` vcs.vector.Gv.datawc_timeunits``` + +:x:``` vcs.vector.Gv.datawc_x1``` + +:x:``` vcs.vector.Gv.datawc_x2``` + +:x:``` vcs.vector.Gv.datawc_y1``` + +:x:``` vcs.vector.Gv.datawc_y2``` + +:x:``` vcs.vector.Gv.line``` + +:x:``` vcs.vector.Gv.linecolor``` + +:x:``` vcs.vector.Gv.linetype``` + +:x:``` vcs.vector.Gv.linewidth``` + +:x:``` vcs.vector.Gv.list``` + +:x:``` vcs.vector.Gv.name``` + +:x:``` vcs.vector.Gv.projection``` + +:x:``` vcs.vector.Gv.reference``` + +:x:``` vcs.vector.Gv.scale``` + +:x:``` vcs.vector.Gv.scalerange``` + +:x:``` vcs.vector.Gv.scaletype``` + +:x:``` vcs.vector.Gv.setLineAttributes``` + +:x:``` vcs.vector.Gv.type``` + +:x:``` vcs.vector.Gv.xaxisconvert``` + +:x:``` vcs.vector.Gv.xmtics``` + +:x:``` vcs.vector.Gv.xmtics1``` + +:x:``` vcs.vector.Gv.xmtics2``` + +:x:``` vcs.vector.Gv.xticlabels``` + +:x:``` vcs.vector.Gv.xticlabels1``` + +:x:``` vcs.vector.Gv.xticlabels2``` + +:x:``` vcs.vector.Gv.xyscale``` + +:x:``` vcs.vector.Gv.yaxisconvert``` + +:x:``` vcs.vector.Gv.ymtics``` + +:x:``` vcs.vector.Gv.ymtics1``` + +:x:``` vcs.vector.Gv.ymtics2``` + +:x:``` vcs.vector.Gv.yticlabels``` + +:x:``` vcs.vector.Gv.yticlabels1``` + +:x:``` vcs.vector.Gv.yticlabels2``` + +:x:``` vcs.vector.load``` + +:x:``` vcs.vector.process_src``` + diff --git a/docs/doctest_info/vector.report b/docs/doctest_info/vector.report index fccfbf922..f6713517d 100644 --- a/docs/doctest_info/vector.report +++ b/docs/doctest_info/vector.report @@ -16,6 +16,10 @@ Failed example: Expected nothing Got: DEPRECATED: Use linetype or setLineAttributes instead. +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok 98 items had no tests: vcs.vector vcs.vector.Gv diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 3f2b6f5db..dc01a50eb 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -1788,28 +1788,30 @@ def drawline(self, name=None, ltype='solid', width=1, color=241, # noqa :type width: int :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int :param priority: The layer on which the line will be drawn. :type priority: int :param viewport: 4 floats between 0 and 1. - These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: list of floats + These specify the area that the X/Y values are mapped to inside of the canvas + :type viewport: :py:class:`list` :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: :py:class:`list` - :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :param x: List of lists of x coordinates. + Values must be floats between worldcoordinate[0] and worldcoordinate[1]. + :type x: :py:class:`list` - :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :param y: List of lists of y coordinates. + Values must be floats between worldcoordinate[2] and worldcoordinate[3]. + :type y: :py:class:`list` :param projection: Specify a geographic projection used to convert x/y - from spherical coordinates into 2D coordinates. - :type projection: str or projection object + from spherical coordinates into 2D coordinates. + :type projection: :py:class:`str` or :py:class:`vcs.projection.Proj` :returns: A VCS line object :rtype: vcs.line.Tl @@ -1914,24 +1916,26 @@ def drawmarker(self, name=None, mtype='solid', size=1, color=241, :type size: int :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int :param priority: The layer on which the marker will be drawn. :type priority: int :param viewport: 4 floats between 0 and 1. - These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: list of floats + These specify the area that the X/Y values are mapped to inside of the canvas + :type viewport: :py:class:`list` :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: :py:class:`list` - :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :param x: List of lists of x coordinates. + Values must be floats between worldcoordinate[0] and worldcoordinate[1]. + :type x: :py:class:`list` - :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :param y: List of lists of y coordinates. + Values must be floats between worldcoordinate[2] and worldcoordinate[3]. + :type y: :py:class:`list` :returns: A drawmarker object :rtype: vcs.marker.Tm @@ -2035,12 +2039,12 @@ def drawfillarea(self, name=None, style=1, index=1, color=241, :type style: str :param index: Specifies which `pattern `_ - to fill the fillarea with. Accepts ints from 1-20. + to fill the fillarea with. Accepts ints from 1-20. :type index: int :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int @@ -2048,20 +2052,22 @@ def drawfillarea(self, name=None, style=1, index=1, color=241, :type priority: int :param viewport: 4 floats between 0 and 1. - These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: list of floats + These specify the area that the X/Y values are mapped to inside of the canvas + :type viewport: :py:class:`list` :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: :py:class:`list` - :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :param x: List of lists of x coordinates. + Values must be floats between worldcoordinate[0] and worldcoordinate[1]. + :type x: :py:class:`list` - :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :param y: List of lists of y coordinates. + Values must be floats between worldcoordinate[2] and worldcoordinate[3]. + :type y: :py:class:`list` :param bg: Boolean value. True => object drawn in background (not shown on canvas). - False => object shown on canvas. + False => object shown on canvas. :type bg: bool :returns: A fillarea object @@ -2224,7 +2230,7 @@ def gettextextent(self, textobject): [[...]] :param textobject: A VCS text object - :type textobject: textcombined + :type textobject: vcs.textcombined.Tc :returns: list of floats containing the coordinates of the text object's bounding box. :rtype: list @@ -2287,16 +2293,18 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: list of floats + :type viewport: :py:class:`list` :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: :py:class:`list` - :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :param x: List of lists of x coordinates. + Values must be floats between worldcoordinate[0] and worldcoordinate[1]. + :type x: :py:class:`list` - :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :param y: List of lists of y coordinates. + Values must be floats between worldcoordinate[2] and worldcoordinate[3]. + :type y: :py:class:`list` :param bg: Boolean value. True => object drawn in background (not shown on canvas). False => object shown on canvas. @@ -4342,13 +4350,9 @@ def landscape(self, width=-99, height=-99, x=-99, y=-99, clear=0): def listelements(self, *args): """ - Returns a Python list of all the VCS class objects. + Returns a Python list of all VCS object names, or a list of names + of objects of the given type. - The list that will be returned: - ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', 'colormap', 'display', 'fillarea', - 'font', 'fontNumber', 'isofill', 'isoline', 'line', 'list', 'marker', 'meshfill', 'projection', - 'scatter', 'taylordiagram', 'template', 'textcombined', 'textorientation', 'texttable', - 'vector', 'xvsy', 'xyvsy', 'yxvsx'] :Example: @@ -4358,7 +4362,11 @@ def listelements(self, *args): >>> a.listelements() ['1d', '3d_dual_scalar', '3d_scalar', ...] - :returns: A list of string names of all VCS class objects + :param args: A string containing the name of a VCS object type, or None + :type args: str or None + + :returns: If args is None, returns a list of string names of all VCS class objects. + If args is a string name of a VCS object :rtype: list """ f = vcs.listelements @@ -4368,12 +4376,18 @@ def listelements(self, *args): def updateorientation(self, *args): """ + Takes a string 'portrait' or 'landscape' and updates a Canvas object's + orientation accordingly. + .. admonition:: Not Yet Implemented This function does not currently work. It will be implemented in the future. Use :func:`landscape` or :func:`portrait` instead. + + :param args: String with value 'landscape' or 'portrait' + :type args: str """ a = self.canvas.updateorientation(*args) @@ -4381,8 +4395,8 @@ def updateorientation(self, *args): def open(self, width=None, height=None, **kargs): """ - Open VCS Canvas object. This routine really just manages the VCS canvas. It will - popup the VCS Canvas for viewing. It can be used to display the VCS Canvas. + Open VCS Canvas object. This routine really just manages the VCS canvas. + It can be used to display the VCS Canvas. :Example: @@ -4392,10 +4406,10 @@ def open(self, width=None, height=None, **kargs): >>> a.open() >>> a.open(800,600) - :param width: Integer representing the desire width of the opened window in pixels + :param width: Integer representing the desired width of the opened window in pixels :type width: int - :param height: Integer representing the desire height of the opened window in pixels + :param height: Integer representing the desired height of the opened window in pixels :type height: int """ @@ -4406,8 +4420,8 @@ def open(self, width=None, height=None, **kargs): def canvasid(self, *args): """ Get the ID of this canvas. - This ID number is found at the top of the VCS Canvas, as part of its title. + """ return self._canvas_id @@ -4641,7 +4655,8 @@ def setbgoutputdimensions(self, width=None, height=None, units='inches'): :param height: Float representing the desired height of the output, using the specified unit of measurement. :type height: float - :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Defaults to 'inches'. + :param units: The units of measurement to use for output. + One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. :type units: str """ if units not in [ @@ -4666,29 +4681,35 @@ def put_png_on_canvas( :Example: - :: + .. doctest:: manageElements_put_png_on_canvas - a=vcs.init() - # Put a png on Canvas - a.put_on_png_on_canvas("path.png",zoom=1, xOffset=0, yOffset=0, units="percent", fitToHeight=True) + >>> a=vcs.init() + >>> array=[range(10) for i in range(10)] + >>> a.plot(array) + + >>> a.png("bars.png") # make a png named 'bars.png' + >>> a.clear() # clear the bars off the screen + >>> a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas -:param file: Input image filename -:type file: str + :param file: Input image filename + :type file: str -:param zoom: scale factor -:type zoom: int + :param zoom: scale factor + :type zoom: int -:param xOffset: Horizontal Offset -:type xOffset: float + :param xOffset: Horizontal Offset + :type xOffset: float -:param yOffset: Vertical Offset -:type yOffset: float + :param yOffset: Vertical Offset + :type yOffset: float -:param units: Offsets units percent or pixels -:type units" str + :param units: Specifies the units used for x and y Offsets. + One of ['percent','pixels']. + :type units: str -:param fitToHeight: fits the picture (before scaling) to the canvas full height, if False then use png original size -:type fitToHeight: bool + :param fitToHeight: If True, fits the picture (before scaling) to the canvas full height, + if False then use png original size. + :type fitToHeight: bool """ self.backend.put_png_on_canvas( filename, @@ -4718,13 +4739,16 @@ def png(self, file, width=None, height=None, :param file: Output image filename :type file: str - :param width: Float representing the desired width of the output png, using the specified unit of measurement + :param width: Float representing the desired width of the output png, + using the specified unit of measurement :type width: float - :param height: Float representing the desired height of the output png, using the specified unit of measurement + :param height: Float representing the desired height of the output png, + using the specified unit of measurement :type height: float - :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Defaults to 'inches'. + :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. + Defaults to 'inches'. :type units: str :param draw_white_background: Boolean value indicating if the background should be white. Defaults to True. @@ -5025,14 +5049,15 @@ def postscript(self, file, mode='r', orientation=None, width=None, height=None, Postscript output is another form of vector graphics. It is larger than its CGM output counter part, because it is stored out in ASCII format. - There are two modes for saving a postscript file: `Append' (a) mode appends postscript - output to an existing postscript file; and `Replace' (r) mode overwrites an existing + There are two modes for saving a postscript file: 'Append' (a) mode appends postscript + output to an existing postscript file; and 'Replace' (r) mode overwrites an existing postscript file with new postscript output. The default mode is to overwrite an existing - postscript file (i.e. mode (r)). + postscript file. .. note:: - The textAsPaths parameter preserves custom fonts, but text can no longer be edited in the file + The textAsPaths parameter preserves custom fonts, but text can no + longer be edited in the file :Example: @@ -5049,17 +5074,24 @@ def postscript(self, file, mode='r', orientation=None, width=None, height=None, >>> a.postscript('example', width=11.5, height= 8.5) # US Legal (default) >>> a.postscript('example', width=21, height=29.7, units='cm') # A4 - :param file: String name of the desired output file + :param file: String name of the desired output file. :type file: str :param mode: The mode in which to open the file. One of 'r' or 'a'. + When mode is 'r', file will be opened in replace mode. + When mode is 'a', file will be opened in append mode. :type mode: str - :param width: Desired width of the postscript output, in the specified unit of measurement + :param width: Desired width of the postscript output, + in the specified unit of measurement. :type width: int - :param height: Desired height of the postscript output, in the specified unit of measurement + :param height: Desired height of the postscript output, + in the specified unit of measurement. :type height: int + + :param units: The units of measurement to use for output. + One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. :type units: str :param textAsPaths: Specifies whether to render text objects as paths. @@ -5318,7 +5350,8 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' :param height: Height of the output image, in the unit of measurement specified :type height: float - :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Defaults to 'inches'. + :param units: The units of measurement to use for output. + One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. :type units: str """ ext = file.split(".")[-1] @@ -5342,7 +5375,7 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' def show(self, *args): return vcs.show(*args) - show.__doc__ = vcs.__doc__ + show.__doc__ = vcs.utils.show.__doc__ def isinfile(self, GM, file=None): """ @@ -5352,11 +5385,11 @@ def isinfile(self, GM, file=None): :param GM: The graphics method to search for :type GM: str - :param file: String name of the file to search + :param file: String name of the file to search. + If None, VCS will search initial.attributes. :type file: str - :returns: ??? - :rtype: ??? + :returns: 1 if the graphic method is stored in the file, nothing if it is not. """ nm = GM.name gm = GM.g_name @@ -5382,10 +5415,10 @@ def saveinitialfile(self): :Example: - .. code-block:: python + .. code-block:: python - a=vcs.init() - a.saveinitialfile() + a=vcs.init() + a.saveinitialfile() .. warning:: @@ -5679,7 +5712,7 @@ def getcolormapname(self): """ Returns the name of the colormap this canvas is set to use by default. - To set that colormap, use :ref:`setcolormap`_. + To set that colormap, use :py:func:`setcolormap`. """ if self.colormap is None: return vcs._colorMap diff --git a/vcs/boxfill.py b/vcs/boxfill.py index d0d8b2370..dd9d05179 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -304,53 +304,71 @@ class Gfb(object): * Attribute descriptions: + * Universally considered attributes: - .. py:attribute:: boxfill_type (str) + .. py:attribute:: boxfill_type (str) - Type of boxfill legend. One of 'linear', 'log10', or 'custom'. See examples above for usage. + Type of boxfill legend. One of 'linear', 'log10', or 'custom'. + See examples above for usage. + Relevant attributes per type noted in attribute descriptions. - .. py:attribute:: level_1 (float) + .. py:attribute:: missing (int) - Used in conjunction with boxfill_type linear/log10. Sets the value of the legend's first level + Color to use for missing value or values not in defined ranges. - .. py:attribute:: level_2 (float) + * boxfill_type 'linear'/'log10' relevant attributes: - Used in conjunction with boxfill_type linear/log10, sets the value of the legend's end level + .. py:attribute:: level_1 (float) - .. py:attribute:: color_1 (float) + Used in conjunction with boxfill_type linear/log10. + Sets the value of the legend's first level - Used in conjunction with boxfill_type linear/log10, sets the legend's color range first value + .. py:attribute:: level_2 (float) - .. py:attribute:: color_2 (float) + Used in conjunction with boxfill_type linear/log10, + sets the value of the legend's end level. - Used in conjunction with boxfill_type linear/log10, sets the legend's color range lasst value + .. py:attribute:: color_1 (float) - .. py:attribute:: levels (list of floats) + Used in conjunction with boxfill_type linear/log10, + sets the legend's color range first value. - Used in conjunction for boxfill_type custom, sets the levels range to use, can be - either a list of contiguous levels, or list of tuples indicating first - and last value of the range. + .. py:attribute:: color_2 (float) - .. py:attribte:: fillareacolors (list) + Used in conjunction with boxfill_type linear/log10. + Sets the legend's color range lasst value. - Used in conjunction for boxfill_type custom colors to use for each level + .. py:attribute:: legend ({float:str}) - .. py:attribute:: legend ({float:str}) + Used in conjunction with boxfill_type linear/log10. + replaces the legend values in the dictionary keys with their + associated string. - Used in conjunction with boxfill_type linear/log10, replaces the - legend values in the dictionary keys with their associated string. + .. py:attribute:: ext_1 (str) - .. py:attribute:: ext_1 (str) + Draws an extension arrow on right side of a boxfill + (values less than first range value) - Draws an extension arrow on right side (values less than first range value) + .. py:attribute:: ext_2 (str) - .. py:attribute:: ext_2 (str) + Draws an extension arrow on left side of a boxfill + (values greater than last range value) - Draws an extension arrow on left side (values greater than last range value) + * boxfill_type 'custom' relevant attributes: - .. py:attribute:: missing (int) + .. py:attribute:: levels (list of floats) - Color to use for missing value or values not in defined ranges. + Used in conjunction with boxfill_type custom. + Sets the levels range to use. + Can be either a list of contiguous levels, or list of tuples + indicating first and last value of the range. + + .. py:attribute:: fillareacolors (list) + + Used in conjunction with boxfill_type custom. + Specifies colors to use for each level. + + * More boxfill attributes: %s """ % xmldocs.graphics_method_core # noqa diff --git a/vcs/isoline.py b/vcs/isoline.py index f67dd0e4e..cded12345 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -388,33 +388,42 @@ class Gi(object): * Attribute descriptions: .. py:attribute:: label (str) - Turn on/off labels on isolines + + Turn on/off labels on isolines .. py:attribute:: labelskipdistance (float) - Minimum distance between isoline labels + + Minimum distance between isoline labels .. py:attribute:: labelbackgroundcolors ([float]) - Background color for isoline labels + + Background color for isoline labels .. py:attribute:: labelbackgroundopacities ([float]) - Background opacity for isoline labels + + Background opacity for isoline labels .. py:attribute:: level ([float,...]) - Isocountours to display + + Isocountours to display .. py:attribute:: clockwise ([int,...]) - Draw directional arrows - +-(0,1,2) Indicate none/clockwise/clokwise on y axis >0. - Clockwise on x axis positive negative value invert behaviour + + Draw directional arrows + +-(0,1,2) Indicate none/clockwise/clokwise on y axis >0. + Clockwise on x axis positive negative value invert behaviour .. py:attribute:: scale ([float,...]) - Scales the directional arrow lengths + + Scales the directional arrow lengths .. py:attribute:: angle ([float,...]) - Directional arrows head angle + + Directional arrows head angle .. py:attribute:: spacing ([float,...]) - Scales spacing between directional arrows + + Scales spacing between directional arrows %s %s @@ -740,10 +749,10 @@ def _setline(self, value): line = property(_getline, _setline) def setLineAttributes(self, mixed): - ''' + """ Add either a (linetype, 1, 1) or (linetype, linecolor, linewidth) based on if mixed[i] is a linetype or a line object name. - ''' + """ import queries types = [] colors = [] diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 4832e60fb..96c814f99 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -27,7 +27,7 @@ def check_name_source(name, source, typ): - """make sure it is a unique name for this type or generates a name for user""" + """Make sure it is a unique name for this type or generates a name for user""" elts = vcs.listelements(typ) if name is None: rnd = random.randint(0, 1000000000000000) @@ -404,11 +404,55 @@ def getisoline(Gi_name_src='default'): def create1d(name=None, source='default'): + """ + Creates a new :class:`vcs.unified1d.G1d` object called name, and inheriting from source. + + :Example: + + .. doctest:: manageElements_create1d + + >>> vcs.show('1d') + *******************1d Names List********************** + ... + *******************End 1d Names List********************** + >>> oneD_default = vcs.create1d() # inherit default, name generated + >>> oneD_named = vcs.create1d("one_D") # inherit default, name "one_D" + >>> new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" + + :param name: A string name for the 1d to be created. If None, a unique name will be created. + :type name: str + + :param source: A 1d object or string name of a 1d object from which the new 1d will inherit. + :type source: str or :class:`vcs.unified1D.G1d` + + :return: A new 1d object, inheriting from source. + :rtype: :class:`vcs.unified1d.G1d` + """ name, source = check_name_source(name, source, '1d') return unified1D.G1d(name, source) def get1d(name): + """ + Given name, returns a :class:`vcs.unified1d.G1d` from vcs with that name. + Unlike other VCS 'get' functions, name cannot be None when calling get1d(). + + :Example: + + .. doctest:: manageElements_get_1d + + >>> vcs.show('1d') + *******************1d Names List********************** + ... + *******************End 1d Names List********************** + >>> blue = vcs.get1d('blue_yxvsx') + + :param name: String name of a 1d in vcs. If there is no 1d with that name, an error will be raised. + :type name: str + + :return: A 1d from vcs with the given name. + :rtype: :class:`vcs.unified1d.G1d` + """ # Check to make sure the argument passed in is a STRING if not isinstance(name, str): raise vcsError('The argument must be a string.') @@ -774,7 +818,6 @@ def setLineAttributes(to, l): """ Set attributes linecolor, linewidth and linetype from line l on object to. - :Example: .. doctest:: manageElements_setLineAttributes @@ -783,17 +826,20 @@ def setLineAttributes(to, l): *******************Line Names List********************** ... *******************End Line Names List********************** - >>> new_isoline=vcs.createisoline('new_iso') + >>> new_isoline = vcs.createisoline('new_iso') >>> vcs.setLineAttributes(new_isoline, 'continents') + >>> new_vector = vcs.createvector('new_vec') + >>> vcs.setLineAttributes(new_vector, 'continents') + >>> new_1d = vcs.create1d('new_1d', 'blue_yxvsx') + >>> vcs.setLineAttributes(new_1d, 'continents') - :param to: - :type to: + :param to: A vector, 1d, or isoline object to set the properties of. + :type to: :class:`vcs.vector.Gv`, :class:`vcs.unified1d.G1d` :param l: l can be a line name defined in vcs.elements or a line object. - :type l: + l will be used to set the properties of to. - :type: line or str - :return: + :type l:py:class:`vcs.line.Tl` or str """ import queries line = None @@ -1035,12 +1081,11 @@ def createfillarea(name=None, source='default', style=None, :type style: str :param index: Specifies which `pattern `_ to fill with. - Accepts ints from 1-20. - + Accepts ints from 1-20. :type index: int :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int @@ -1443,13 +1488,13 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N :type To_name_src: str :param string: Text to render - :param string: list of str + :type string: list of str :param font: Which font to use (index or name) :type font: int or str :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: str or int :param priority: The layer on which the object will be drawn. @@ -1484,7 +1529,7 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N .. note:: - The spacing, path, and expansion parameters are no longer used + The spacing, path, and expansion parameters are no longer used """ # Check to make sure the arguments passed in are a STRINGS @@ -1818,11 +1863,15 @@ def removeobject(obj): objects. The function allows the user to remove these objects from the appropriate class list. - Note, To remove the object completely from Python, remember to - use the "del" function. + .. note:: + + To remove the object completely from Python, remember to + use the "del" function. + + .. admonition:: Also note - Also note, The user is not allowed to remove a "default" class - object. + The user is not allowed to remove a "default" class + object. :Example: diff --git a/vcs/queries.py b/vcs/queries.py index bcf3ecb8e..7035997f6 100644 --- a/vcs/queries.py +++ b/vcs/queries.py @@ -220,19 +220,28 @@ def issecondaryobject(sobj): .. note:: Secondary objects will be one of the following: - 1.) colormap: specification of combinations of 256 available - colors - 2.) fill area: style, style index, and color index - 3.) format: specifications for converting numbers to display - strings - 4.) line: line type, width, and color index - 5.) list: a sequence of pairs of numerical and character values - 6.) marker: marker type, size, and color index - 7.) text table: text font type, character spacing, expansion, and - color index - 8.) text orientation: character height, angle, path, and - horizontal/vertical alignment - 9.) projections + + 1.) colormap: specification of combinations of 256 available + colors + + 2.) fill area: style, style index, and color index + + 3.) format: specifications for converting numbers to display + strings + + 4.) line: line type, width, and color index + + 5.) list: a sequence of pairs of numerical and character values + + 6.) marker: marker type, size, and color index + + 7.) text table: text font type, character spacing, expansion, + and color index + + 8.) text orientation: character height, angle, path, and + horizontal/vertical alignment + + 9.) projections :Example: diff --git a/vcs/taylor.py b/vcs/taylor.py index 63bbd3b98..0c49c98d7 100644 --- a/vcs/taylor.py +++ b/vcs/taylor.py @@ -938,11 +938,13 @@ def defaultSkillFunction(self, s, R): def drawSkill(self, canvas, values, function=None): """ Draw a skill score. Default skill score provided in :py:func:`defaultSkillFunction` - from Karl taylor, see `PCMDI report series 55`_ for more information on `Taylor diagrams`_ and `skill`_s. + from Karl taylor, see `PCMDI report series 55`_ for more information on + `Taylor diagrams`_ and `skill`_ . - .. _PCMDI report series 55 : http://www-pcmdi.llnl.gov/publications/pdf/55.pdf + .. _`PCMDI report series 55` : http://www-pcmdi.llnl.gov/publications/pdf/55.pdf .. note:: + The function parameter must be provided for drawSkill to work. The :py:func:`defaultSkillFunction` provided in this module can be used to provide a default skill score. Be aware that, as stated in `PCMDI report series 55`_ section 5, it is not possible to define @@ -953,7 +955,7 @@ def drawSkill(self, canvas, values, function=None): :type canvas: vcs.Canvas.Canvas :param values: A list/tuple used to specify the :py:attr:`levels ` - of an :py:class:`isoline ` object. + of an :py:class:`isoline ` object. :type values: list/tuple :param function: A function for determining the skill score of a model. diff --git a/vcs/template.py b/vcs/template.py index 859c4cd0e..816e11a38 100644 --- a/vcs/template.py +++ b/vcs/template.py @@ -183,7 +183,7 @@ class P(object): .. code-block:: python temp=a.gettemplate('hovmuller') -""" + """ __slots__ = ["name", "_name", "_p_name", "p_name", "_orientation", "_orientation", "_file", "file", "_function", "function", @@ -2063,29 +2063,44 @@ def ratio_linear_projection(self, lon1, lon2, lat1, lat2, Rwished=None, Rout=None, box_and_ticks=0, x=None): """ - Computes ratio to shrink the data area of a template in order - that the overall area - has the least possible deformation in linear projection + Computes ratio to shrink the data area of a template such that the + overall area has the least possible deformation in linear projection + + .. note:: + + lon1/lon2 must be specified in degrees east. + lat1/lat2 must be specified in degrees north. + + :Example: + + .. doctest:: template_P_ratio_linear_projection + + >>> t=vcs.gettemplate() + >>> t.ratio_linear_projection(-135,-50,20,50) # USA + + :param lon1: Start longitude for plot. + :type lon1: float or int + + :param lon2: End longitude for plot + :type lon2: float or int + + :param lat1: Start latitude for plot. + :type lat1: float or int + + :param lat2: End latitude for plot + :type lat2: float or int + + :param Rwished: Ratio y/x wished. + If None, ratio will be determined automatically. + :type Rwished: float or int + + :param Rout: Ratio of output (default is US Letter=11./8.5) + Also you can pass a string: "A4","US LETTER", "X"/"SCREEN", + the latest uses the window information + box_and_ticks: Also redefine box and ticks to the new region. + If None, Rout will be determined automatically. + :type Rout: float or int - Version: 1.1 - Notes: Thanks to Karl Taylor for the equation of "optimal" ratio - - Necessary arguments: - lon1, lon2: in degrees_east : Longitude spanned by plot - lat1, lat2: in degrees_north : Latitude spanned by plot - - Optional arguments: - Rwished: Ratio y/x wished, None=automagic - Rout: Ratio of output (default is US Letter=11./8.5) - Also you can pass a string: "A4","US LETTER", "X"/"SCREEN", - the latest uses the window information - box_and_ticks: Also redefine box and ticks to the new region - Returned: - vcs template object - - Usage example: - #USA - t.ratio_linear_projection(-135,-50,20,50) """ # Converts lat/lon to rad @@ -2120,21 +2135,25 @@ def ratio(self, Rwished, Rout=None, box_and_ticks=0, x=None): to have an y/x ratio of Rwished has the least possible deformation in linear projection - Version: 1.1 - - Necessary arguments: - Rwished: Ratio y/x wished - Optional arguments: - Rout: Ratio of output (default is US Letter=11./8.5) - Also you can pass a string: "A4","US LETTER", - "X"/"SCREEN", the latest uses the window information - box_and_ticks: Also redefine box and ticks to the new region - Returned: - vcs template object - - Usage example: - # y is twice x - t.ratio(2) + :Example: + + .. doctest:: template_P_ratio + + >>> t=vcs.gettemplate() + >>> t.ratio(2) # y is twice x + + :param Rwished: Ratio y/x wished. + Rwished MUST be provided. + :type Rwished: float or int + + :param Rout: Ratio of output (default is US Letter=11./8.5). + Also you can pass a string: "A4","US LETTER", + "X"/"SCREEN", the latest uses the window information + box_and_ticks: Also redefine box and ticks to the new region + :type Rout: str or None + + :returns: vcs template object + :rtype: vcs.template.P """ if x is None: x = vcs.init() diff --git a/vcs/utils.py b/vcs/utils.py index eb2f55458..52452db6d 100644 --- a/vcs/utils.py +++ b/vcs/utils.py @@ -984,7 +984,7 @@ def minmax(*data): (-7.0, 8.0) :param data: A comma-separated list of lists/arrays/tuples - :type data: list + :type data: :py:class:`list` :returns: A tuple in the form (min, max) :rtype: tuple @@ -1088,14 +1088,14 @@ def mkscale(n1, n2, nc=12, zero=1, ends=False): :type nc: int :param zero: Integer flag to indicate how zero should be handled. Flags are as follows - -1: zero MUST NOT be a contour - 0: let the function decide # NOT IMPLEMENTED - 1: zero CAN be a contour (default) - 2: zero MUST be a contour + -1: zero MUST NOT be a contour + 0: let the function decide # NOT IMPLEMENTED + 1: zero CAN be a contour (default) + 2: zero MUST be a contour :type zero: int :param end: Boolean value indicating whether n1 and n2 should be part of the returned labels. - Defaults to False. + Defaults to False. :type end: bool :returns: List of floats split into nc intervals @@ -1209,7 +1209,7 @@ def mklabels(vals, output='dict'): ['2E-5', '5E-5'] :param vals: List or tuple of float values - :type vals: list, tuple + :type vals: :py:class:`list`, tuple :param output: Specifies the desired output type. One of ['dict', 'list']. :type output: str @@ -1346,10 +1346,10 @@ def getcolors(levs, colors=None, split=1, white="white"): [0, 36, 73, 109, 146, 182, 219, 255] :param levs: levels defining the color ranges - :type levs: list, tuple + :type levs: :py:class:`list`, tuple :param colors: A list/tuple of the of colors you wish to use - :type colors: list + :type colors: :py:class:`list` :param split: Integer flag to split colors between two equal domains. 0 : no split @@ -1859,7 +1859,7 @@ def getcolorcell(cell, obj=None): :type obj: Any VCS object capable of containing a colormap :return: The RGBA values of the colormap at the specified cell index. - :rtype: list + :rtype: :py:class:`list` """ if obj is None: cmap = vcs.getcolormap() @@ -2164,7 +2164,7 @@ def rgba_color(color, colormap): :type colormap: vcs.colormap.Cp :returns: List of 4 floats; the R, G, B, and A values associated with the given color. - :rtype: list + :rtype: :py:class:`list` """ try: # Is it a colormap index? @@ -2275,36 +2275,46 @@ def drawLinesAndMarkersLegend(canvas, templateLegend, :param canvas: a VCS canvas object onto which to draw the legend :type canvas: vcs.Canvas.Canvas - :param templateLegend: a template legend object used to determine the coordinates of the box and the box line type + :param templateLegend: a template legend object used to determine the + coordinates of the box and the box line type :type legendTemplate: vcs.Plegend.Pls - :param linecolors: list containing the colors of each line to draw - :type linecolors: list of either colorInt, (r,g,b,opacity), or string color names + :param linecolors: list containing the colors of each line to draw. + Colors must be specified as either integers, (r,g,b,opacity), + or string color names. + :type linecolors: :py:class:`list` - :param linetypes: list containing the type of each line to draw - :type linetypes: list on int of line stype strings + :param linetypes: list containing the type of each line to draw. + values must be int or line type strings + :type linetypes: :py:class:`list` - :param linewidths: list containing each line width - :type linewidths: list of float + :param linewidths: list containing each line width. + line widths must be of type float. + :type linewidths: :py:class:`list` - :param markercolors: list of the markers colors to draw - :type markercolors: list of either colorInt, (r,g,b,opacity), or string color names + :param markercolors: list of the markers colors to draw. + Colors must be specified as either integers, (r,g,b,opacity), + or string color names. + :type markercolors: :py:class:`list` - :param markertypes: list of the marker types to draw - :type markertypes: list of int or string of marker names + :param markertypes: list of the marker types to draw. + Marker type must be int or string of marker type names. + :type markertypes: :py:class:`list` - :param markersizes: list of the size of each marker to draw - :type markersizes: list of float + :param markersizes: list of the size of each marker to draw. + marker size must be of type float. + :type markersizes: :py:class:`list` :param strings: list of the string to draw next to each line/marker - :type strings: list of string + :type strings: :py:class:`list` - :param scratched: None (off) or list. list contains False where no scratch is needed - For scratched provide True or line type to use for scratch - color will match that of text - :type scratched: None or list of bool + :param scratched: None (off) or list. list contains False where no scratch is + needed. For scratched, provide True or line type to use for scratch. + Color will match that of text. + :type scratched: None or :py:class`list` - :param bg: do we draw in background or foreground + :param bg: Boolean value indicating to draw in background (True), + Or foreground (False). :type bg: bool :param render: do we render or not (so it less flashy) diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index de6f4f011..fc93e4021 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -248,6 +248,8 @@ def populate_docstrings(type_dict, target_dict, docstring, method): :param target_dict: An empty dictionary to be populated with docstrings :param docstring: The template docstring :param method: The method that the docstring is for + + :return: Has no return, but at the end target_dict should be full of formatted docstrings """ dict = {} for obj_type in type_dict.keys(): @@ -291,11 +293,18 @@ def populate_docstrings(type_dict, target_dict, docstring, method): dict['slabs'] = '' dict['args'] = '' if numslabs > 0: - dict['slabs'] = """ + # TODO: replace with something that can actually be plotted by taylordiagram() + if obj_name is "taylordiagram": + dict['slabs'] = """ + >>> import cdms2 # Need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + >>> slab1 = f('u') # use the data file to create a cdms2 slab""" + else: + dict['slabs'] = """ >>> import cdms2 # Need cdms2 to create a slab >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file >>> slab1 = f('u') # use the data file to create a cdms2 slab""" - dict['args'] = ", slab1" + dict['args'] = ", slab1" if numslabs == 2: slab2 = """ >>> slab2 = f('v') # need 2 slabs, so get another""" @@ -471,7 +480,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): "projection": { "callable": False, "parent": "default", - "parent2": "polar", + "parent2": "orthographic", "rtype": "vcs.projection.Proj", "slabs": 1, "title": True, @@ -544,7 +553,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): }, } } -# dictionary to store all docstring dictionaries and their associated docstrings +# docstrings is a dictionary to store all docstring dictionaries and their associated docstrings # this will be used to populate all the docstrings in the same for loop (should better utilize locality) docstrings = {} @@ -606,7 +615,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): get_methods_doc = """ VCS contains a list of %(type)ss. This function will create a %(sp_name)s class object from an existing VCS %(sp_name)s %(type)s. If - no %(sp_name)s name is given, then %(sp_name)s '%(parent)s' will be used. + no %(sp_name)s name is given, then %(parent)s %(sp_name)s will be used. .. note:: @@ -722,29 +731,68 @@ def populate_docstrings(type_dict, target_dict, docstring, method): isofill_doc = meshfill_doc fillareadoc = """ - fillareacolor :: (int) (None) color to use for outfilling - fillareastyle :: (str) ('solid') style to use for levels filling: solid/pattenr/hatch - fillareaindex :: (int) (None) pattern to use when filling a level and using pattern/hatch + .. py:attribute:: fillareacolor (int) + + color to use for outfilling + + .. py:attribute:: fillareastyle (str) + + style to use for levels filling: solid/pattenr/hatch + + .. py:attribute:: fillareaindex (int) + + pattern to use when filling a level and using pattern/hatch """ # noqa -linesdoc = """ line :: ([str,...]/[vcs.line.Tl,...]/[int,...]) (['solid',]) line type to use for each isoline, can also pass a line object or line object name - linecolors :: ([int,...]) ([241]) colors to use for each isoline - linewidths :: ([float,...]) ([1.0]) list of width for each isoline +linesdoc = """ + .. py:attribute:: line ([str,...]/[vcs.line.Tl,...]/[int,...]) + + line type to use for each isoline, can also pass a line object or line object name + + .. py:attribute:: linecolors ([int,...]) + + colors to use for each isoline + + .. py:attribute:: linewidths ([float,...]) + + list of width for each isoline """ # noqa -linedoc = """ line :: ([str,...]/[vcs.line.Tl,...]/[int,...]) (['solid',]) line type to use for each isoline, can also pass a line object or line object name - linecolor :: (int) (241) colors to use for each isoline - linewidth :: (float) (1.0) list of width for each isoline +linedoc = """ + .. py:attribute:: line ([str,...]/[vcs.line.Tl,...]/[int,...]) + + line type to use for each isoline, can also pass a line object or line object name + + .. py:attribute:: linecolor (int) + + color to use for each isoline + + .. py:attribute:: linewidth (float) + + width for each isoline """ # noqa textsdoc = """ - text :: (None/[vcs.textcombined.Tc,...]) (None) text objects or text objects names to use for each countour labels - textcolors :: (None/[int,...]) (None) colors to use for each countour labels + .. py:attribute:: text (None/[vcs.textcombined.Tc,...]) + + text objects or text objects names to use for each countour label + + .. py:attribute:: textcolors (None/[int,...]) + + colors to use for each countour label """ # noqa markerdoc = """ - marker :: (None/int/str/vcs.marker.Tm) (None) markers type to use - markercolor :: (None/int) (None) color to use for markers - markersize :: (None/int) (None) size of markers + .. py:attribute:: marker (None/int/str/vcs.marker.Tm) + + markers type to use + + .. py:attribute:: markercolor (None/int) + + color to use for markers + + .. py:attribute:: markersize (None/int) + + size of markers """ ############################################################################# From 6605397a3238860d4238ac844e8ce18f22d0d3fe Mon Sep 17 00:00:00 2001 From: embrown Date: Mon, 12 Dec 2016 16:35:09 -0800 Subject: [PATCH 14/45] Adding doctests where they are missing. Fixing doctest errors where applicable. General documentation formatting fixes. --- docs/doctest_info/.manageElements.log | 1319 +++++++++++++++++++++++ docs/doctest_info/manageElements.md | 78 +- docs/doctest_info/manageElements.report | 135 +-- vcs/Canvas.py | 417 +++++-- vcs/manageElements.py | 323 +++--- vcs/xmldocs.py | 18 +- 6 files changed, 1890 insertions(+), 400 deletions(-) create mode 100644 docs/doctest_info/.manageElements.log diff --git a/docs/doctest_info/.manageElements.log b/docs/doctest_info/.manageElements.log new file mode 100644 index 000000000..4900dd54a --- /dev/null +++ b/docs/doctest_info/.manageElements.log @@ -0,0 +1,1319 @@ +Trying: + vcs.show('1d') +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok +Trying: + oneD_default = vcs.create1d() # inherit default, name generated +Expecting nothing +ok +Trying: + oneD_named = vcs.create1d("one_D") # inherit default, name "one_D" +Expecting nothing +ok +Trying: + new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" +Expecting nothing +ok +Trying: + vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar +Expecting: + *******************3d_dual_scalar Names List********************** + ... + *******************End 3d_dual_scalar Names List********************** +ok +Trying: + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_dual_scalar') # should now contain the '3d_dual_scalar_ex1' 3d_dual_scalar +Expecting: + [...'3d_dual_scalar_ex1'...] +ok +Trying: + vcs.show('3d_scalar') # show all available 3d_scalar +Expecting: + *******************3d_scalar Names List********************** + ... + *******************End 3d_scalar Names List********************** +ok +Trying: + ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_scalar') # should now contain the '3d_scalar_ex1' 3d_scalar +Expecting: + [...'3d_scalar_ex1'...] +ok +Trying: + vcs.show('3d_vector') # show all available 3d_vector +Expecting: + *******************3d_vector Names List********************** + ... + *******************End 3d_vector Names List********************** +ok +Trying: + ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('3d_vector') # should now contain the '3d_vector_ex1' 3d_vector +Expecting: + [...'3d_vector_ex1'...] +ok +Trying: + vcs.show('boxfill') # show all available boxfill +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + ex=vcs.createboxfill('boxfill_ex1') # Create boxfill 'boxfill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # should now contain the 'boxfill_ex1' boxfill +Expecting: + [...'boxfill_ex1'...] +ok +Trying: + ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # should now contain the 'boxfill_ex2' boxfill +Expecting: + [...'boxfill_ex2'...] +ok +Trying: + vcs.show('colormap') # show all available colormap +Expecting: + *******************Colormap Names List********************** + ... + *******************End Colormap Names List********************** +ok +Trying: + ex=vcs.createcolormap('colormap_ex1') # Create colormap 'colormap_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # should now contain the 'colormap_ex1' colormap +Expecting: + [...'colormap_ex1'...] +ok +Trying: + ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2' from 'rainbow' template +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # should now contain the 'colormap_ex2' colormap +Expecting: + [...'colormap_ex2'...] +ok +Trying: + vcs.show('fillarea') # show all available fillarea +Expecting: + *******************Fillarea Names List********************** + ... + *******************End Fillarea Names List********************** +ok +Trying: + ex=vcs.createfillarea('fillarea_ex1') # Create fillarea 'fillarea_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('fillarea') # should now contain the 'fillarea_ex1' fillarea +Expecting: + [...'fillarea_ex1'...] +ok +Trying: + vcs.show('isofill') # show all available isofill +Expecting: + *******************Isofill Names List********************** + ... + *******************End Isofill Names List********************** +ok +Trying: + ex=vcs.createisofill('isofill_ex1') # Create isofill 'isofill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # should now contain the 'isofill_ex1' isofill +Expecting: + [...'isofill_ex1'...] +ok +Trying: + ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # should now contain the 'isofill_ex2' isofill +Expecting: + [...'isofill_ex2'...] +ok +Trying: + vcs.show('isoline') # show all available isoline +Expecting: + *******************Isoline Names List********************** + ... + *******************End Isoline Names List********************** +ok +Trying: + ex=vcs.createisoline('isoline_ex1') # Create isoline 'isoline_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # should now contain the 'isoline_ex1' isoline +Expecting: + [...'isoline_ex1'...] +ok +Trying: + ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # should now contain the 'isoline_ex2' isoline +Expecting: + [...'isoline_ex2'...] +ok +Trying: + vcs.show('line') # show all available line +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + ex=vcs.createline('line_ex1') # Create line 'line_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('line') # should now contain the 'line_ex1' line +Expecting: + [...'line_ex1'...] +ok +Trying: + ex2=vcs.createline('line_ex2','red') # create 'line_ex2' from 'red' template +Expecting nothing +ok +Trying: + vcs.listelements('line') # should now contain the 'line_ex2' line +Expecting: + [...'line_ex2'...] +ok +Trying: + vcs.show('marker') # show all available marker +Expecting: + *******************Marker Names List********************** + ... + *******************End Marker Names List********************** +ok +Trying: + ex=vcs.createmarker('marker_ex1') # Create marker 'marker_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('marker') # should now contain the 'marker_ex1' marker +Expecting: + [...'marker_ex1'...] +ok +Trying: + ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2' from 'red' template +Expecting nothing +ok +Trying: + vcs.listelements('marker') # should now contain the 'marker_ex2' marker +Expecting: + [...'marker_ex2'...] +ok +Trying: + vcs.show('meshfill') # show all available meshfill +Expecting: + *******************Meshfill Names List********************** + ... + *******************End Meshfill Names List********************** +ok +Trying: + ex=vcs.createmeshfill('meshfill_ex1') # Create meshfill 'meshfill_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # should now contain the 'meshfill_ex1' meshfill +Expecting: + [...'meshfill_ex1'...] +ok +Trying: + ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2' from 'a_polar_meshfill' template +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # should now contain the 'meshfill_ex2' meshfill +Expecting: + [...'meshfill_ex2'...] +ok +Trying: + vcs.show('projection') # show all available projection +Expecting: + *******************Projection Names List********************** + ... + *******************End Projection Names List********************** +ok +Trying: + ex=vcs.createprojection('projection_ex1') # Create projection 'projection_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex1' projection +Expecting: + [...'projection_ex1'...] +ok +Trying: + ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2' from 'orthographic' template +Expecting nothing +ok +Trying: + vcs.listelements('projection') # should now contain the 'projection_ex2' projection +Expecting: + [...'projection_ex2'...] +ok +Trying: + vcs.show('scatter') # show all available scatter +Expecting: + *******************Scatter Names List********************** + ... + *******************End Scatter Names List********************** +ok +Trying: + ex=vcs.createscatter('scatter_ex1') # Create scatter 'scatter_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('scatter') # should now contain the 'scatter_ex1' scatter +Expecting: + [...'scatter_ex1'...] +ok +Trying: + vcs.show('taylordiagram') # show all available taylordiagram +Expecting: + *******************Taylordiagram Names List********************** + ... + *******************End Taylordiagram Names List********************** +ok +Trying: + ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create taylordiagram 'taylordiagram_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('taylordiagram') # should now contain the 'taylordiagram_ex1' taylordiagram +Expecting: + [...'taylordiagram_ex1'...] +ok +Trying: + vcs.show('template') # show all available template +Expecting: + *******************Template Names List********************** + ... + *******************End Template Names List********************** +ok +Trying: + ex=vcs.createtemplate('template_ex1') # Create template 'template_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('template') # should now contain the 'template_ex1' template +Expecting: + [...'template_ex1'...] +ok +Trying: + ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2' from 'polar' template +Expecting nothing +ok +Trying: + vcs.listelements('template') # should now contain the 'template_ex2' template +Expecting: + [...'template_ex2'...] +ok +Trying: + vcs.show('textcombined') # show all available textcombined +Expecting: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1388, in vcs.manageElements.createtext +Failed example: + vcs.show('textcombined') # show all available textcombined +Expected: + *******************Textcombined Names List********************** + ... + *******************End Textcombined Names List********************** +Got: + *******************Textcombined Names List********************** + *******************End Textcombined Names List********************** +Trying: + vcs.show('textorientation') # show all available textorientation +Expecting: + *******************Textorientation Names List********************** + ... + *******************End Textorientation Names List********************** +ok +Trying: + ex=vcs.createtextorientation('textorientation_ex1') # Create textorientation 'textorientation_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # should now contain the 'textorientation_ex1' textorientation +Expecting: + [...'textorientation_ex1'...] +ok +Trying: + ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2' from 'bigger' template +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # should now contain the 'textorientation_ex2' textorientation +Expecting: + [...'textorientation_ex2'...] +ok +Trying: + vcs.show('texttable') # show all available texttable +Expecting: + *******************Texttable Names List********************** + ... + *******************End Texttable Names List********************** +ok +Trying: + ex=vcs.createtexttable('texttable_ex1') # Create texttable 'texttable_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # should now contain the 'texttable_ex1' texttable +Expecting: + [...'texttable_ex1'...] +ok +Trying: + ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2' from 'bigger' template +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # should now contain the 'texttable_ex2' texttable +Expecting: + [...'texttable_ex2'...] +ok +Trying: + vcs.show('vector') # show all available vector +Expecting: + *******************Vector Names List********************** + ... + *******************End Vector Names List********************** +ok +Trying: + ex=vcs.createvector('vector_ex1') # Create vector 'vector_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('vector') # should now contain the 'vector_ex1' vector +Expecting: + [...'vector_ex1'...] +ok +Trying: + vcs.show('xvsy') # show all available xvsy +Expecting: + *******************Xvsy Names List********************** + ... + *******************End Xvsy Names List********************** +ok +Trying: + ex=vcs.createxvsy('xvsy_ex1') # Create xvsy 'xvsy_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('xvsy') # should now contain the 'xvsy_ex1' xvsy +Expecting: + [...'xvsy_ex1'...] +ok +Trying: + vcs.show('xyvsy') # show all available xyvsy +Expecting: + *******************Xyvsy Names List********************** + ... + *******************End Xyvsy Names List********************** +ok +Trying: + ex=vcs.createxyvsy('xyvsy_ex1') # Create xyvsy 'xyvsy_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('xyvsy') # should now contain the 'xyvsy_ex1' xyvsy +Expecting: + [...'xyvsy_ex1'...] +ok +Trying: + vcs.show('yxvsx') # show all available yxvsx +Expecting: + *******************Yxvsx Names List********************** + ... + *******************End Yxvsx Names List********************** +ok +Trying: + ex=vcs.createyxvsx('yxvsx_ex1') # Create yxvsx 'yxvsx_ex1' that inherits from 'default' +Expecting nothing +ok +Trying: + vcs.listelements('yxvsx') # should now contain the 'yxvsx_ex1' yxvsx +Expecting: + [...'yxvsx_ex1'...] +ok +Trying: + vcs.show('1d') +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok +Trying: + blue = vcs.get1d('blue_yxvsx') +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_dual_scalar') # Show all the existing 3d_dual_scalar graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_dual_scalar() # instance of 'default' 3d_dual_scalar graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1656, in vcs.manageElements.get3d_dual_scalar +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_scalar') # Show all the existing 3d_scalar graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_scalar() # instance of 'default' 3d_scalar graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1615, in vcs.manageElements.get3d_scalar +Failed example: + a.plot(ex, slab1) # plot using specified 3d_scalar object +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('3d_vector') # Show all the existing 3d_vector graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.get3d_vector() # instance of 'default' 3d_vector graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1696, in vcs.manageElements.get3d_vector +Failed example: + a.plot(ex, slab1, slab2) # plot using specified 3d_vector object +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('boxfill') # Show all the existing boxfill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getboxfill() # instance of 'default' boxfill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.boxfill(ex, slab1) # plot using specified boxfill object +Expecting: + +ok +Trying: + ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method +Expecting nothing +ok +Trying: + a.boxfill(ex2, slab1) # plot using specified boxfill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('colormap') # Show all the existing colormap secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getcolormap() # instance of 'default' colormap secondary method +Expecting nothing +ok +Trying: + ex2=vcs.getcolormap('rainbow') # instance of 'rainbow' colormap secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('fillarea') # Show all the existing fillarea secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getfillarea() # instance of 'default' fillarea secondary method +Expecting nothing +ok +Trying: + a.fillarea(ex) # plot using specified fillarea object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('isofill') # Show all the existing isofill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getisofill() # instance of 'default' isofill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isofill(ex, slab1) # plot using specified isofill object +Expecting: + +ok +Trying: + ex2=vcs.getisofill('polar') # instance of 'polar' isofill graphics method +Expecting nothing +ok +Trying: + a.isofill(ex2, slab1) # plot using specified isofill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('isoline') # Show all the existing isoline graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getisoline() # instance of 'default' isoline graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.isoline(ex, slab1) # plot using specified isoline object +Expecting: + +ok +Trying: + ex2=vcs.getisoline('polar') # instance of 'polar' isoline graphics method +Expecting nothing +ok +Trying: + a.isoline(ex2, slab1) # plot using specified isoline object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('line') # Show all the existing line secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getline() # instance of 'default' line secondary method +Expecting nothing +ok +Trying: + a.line(ex) # plot using specified line object +Expecting: + +ok +Trying: + ex2=vcs.getline('red') # instance of 'red' line secondary method +Expecting nothing +ok +Trying: + a.line(ex2) # plot using specified line object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('marker') # Show all the existing marker secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.getmarker() # instance of 'default' marker secondary method +Expecting nothing +ok +Trying: + a.marker(ex) # plot using specified marker object +Expecting: + +ok +Trying: + ex2=vcs.getmarker('red') # instance of 'red' marker secondary method +Expecting nothing +ok +Trying: + a.marker(ex2) # plot using specified marker object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('meshfill') # Show all the existing meshfill graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getmeshfill() # instance of 'default' meshfill graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.meshfill(ex, slab1) # plot using specified meshfill object +Expecting: + +ok +Trying: + ex2=vcs.getmeshfill('a_polar_meshfill') # instance of 'a_polar_meshfill' meshfill graphics method +Expecting nothing +ok +Trying: + a.meshfill(ex2, slab1) # plot using specified meshfill object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('projection') # Show all the existing projection graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getprojection() # instance of 'default' projection graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified projection object +Expecting: + +ok +Trying: + ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method +Expecting nothing +ok +Trying: + a.plot(ex2, slab1) # plot using specified projection object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('scatter') # Show all the existing scatter graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getscatter('default_scatter_') # instance of ''default_scatter_'' scatter graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.scatter(ex, slab1, slab2) # plot using specified scatter object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('taylordiagram') # Show all the existing taylordiagram graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettaylordiagram() # instance of 'default' taylordiagram graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.taylordiagram(ex) # plot using specified taylordiagram object +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 255, in vcs.manageElements.gettaylordiagram +Failed example: + a.taylordiagram(ex) # plot using specified taylordiagram object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.taylordiagram(ex) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1274, in taylordiagram + arglist = _determine_arg_list('taylordiagram', args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list + arglist[igraphics_method]) + vcsError: Graphics method taylordiagram requires 1 slab. +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('template') # Show all the existing template graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettemplate() # instance of 'default' template graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.plot(ex, slab1) # plot using specified template object +Expecting: + +ok +Trying: + ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method +Expecting nothing +ok +Trying: + a.plot(ex2, slab1) # plot using specified template object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('textcombined') # Show all the existing textcombined secondary methods +Expecting: + [...] +ok +Trying: + try: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1500, in vcs.manageElements.gettextcombined +Failed example: + try: + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 2 + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + ^ + SyntaxError: invalid syntax +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('textorientation') # Show all the existing textorientation secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettextorientation() # instance of 'default' textorientation secondary method +Expecting nothing +ok +Trying: + ex2=vcs.gettextorientation('bigger') # instance of 'bigger' textorientation secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('texttable') # Show all the existing texttable secondary methods +Expecting: + [...] +ok +Trying: + ex=vcs.gettexttable() # instance of 'default' texttable secondary method +Expecting nothing +ok +Trying: + ex2=vcs.gettexttable('bigger') # instance of 'bigger' texttable secondary method +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('vector') # Show all the existing vector graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getvector() # instance of 'default' vector graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.vector(ex, slab1, slab2) # plot using specified vector object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('xvsy') # Show all the existing xvsy graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getxvsy() # instance of 'default_xvsy_' xvsy graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + slab2 = f('v') # need 2 slabs, so get another +Expecting nothing +ok +Trying: + a.xvsy(ex, slab1, slab2) # plot using specified xvsy object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('xyvsy') # Show all the existing xyvsy graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getxyvsy('default_xyvsy_') # instance of ''default_xyvsy_'' xyvsy graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.xyvsy(ex, slab1) # plot using specified xyvsy object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + vcs.listelements('yxvsx') # Show all the existing yxvsx graphics methods +Expecting: + [...] +ok +Trying: + ex=vcs.getyxvsx() # instance of 'default_yxvsx_' yxvsx graphics method +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file +Expecting nothing +ok +Trying: + slab1 = f('u') # use the data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.yxvsx(ex, slab1) # plot using specified yxvsx object +Expecting: + +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + iso=a.createisoline('dean') # Create an instance of an isoline object +Expecting nothing +ok +Trying: + a.removeobject(iso) # Remove isoline object from VCS list +Expecting: + 'Removed isoline object dean' +ok +Trying: + vcs.show('line') +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + new_isoline = vcs.createisoline('new_iso') +Expecting nothing +ok +Trying: + vcs.setLineAttributes(new_isoline, 'continents') +Expecting nothing +ok +Trying: + new_vector = vcs.createvector('new_vec') +Expecting nothing +ok +Trying: + vcs.setLineAttributes(new_vector, 'continents') +Expecting nothing +ok +Trying: + new_1d = vcs.create1d('new_1d', 'blue_yxvsx') +Expecting nothing +ok +Trying: + vcs.setLineAttributes(new_1d, 'continents') +Expecting nothing +ok +23 items had no tests: + vcs.manageElements + vcs.manageElements.check_name_source + vcs.manageElements.removeCp + vcs.manageElements.removeG + vcs.manageElements.removeG1d + vcs.manageElements.removeGSp + vcs.manageElements.removeGXY + vcs.manageElements.removeGXy + vcs.manageElements.removeGYx + vcs.manageElements.removeGfb + vcs.manageElements.removeGfi + vcs.manageElements.removeGfm + vcs.manageElements.removeGi + vcs.manageElements.removeGtd + vcs.manageElements.removeGv + vcs.manageElements.removeP + vcs.manageElements.removeProj + vcs.manageElements.removeTc + vcs.manageElements.removeTf + vcs.manageElements.removeTl + vcs.manageElements.removeTm + vcs.manageElements.removeTo + vcs.manageElements.removeTt +42 items passed all tests: + 4 tests in vcs.manageElements.create1d + 3 tests in vcs.manageElements.create3d_dual_scalar + 3 tests in vcs.manageElements.create3d_scalar + 3 tests in vcs.manageElements.create3d_vector + 5 tests in vcs.manageElements.createboxfill + 5 tests in vcs.manageElements.createcolormap + 3 tests in vcs.manageElements.createfillarea + 5 tests in vcs.manageElements.createisofill + 5 tests in vcs.manageElements.createisoline + 5 tests in vcs.manageElements.createline + 5 tests in vcs.manageElements.createmarker + 5 tests in vcs.manageElements.createmeshfill + 5 tests in vcs.manageElements.createprojection + 3 tests in vcs.manageElements.createscatter + 3 tests in vcs.manageElements.createtaylordiagram + 5 tests in vcs.manageElements.createtemplate + 5 tests in vcs.manageElements.createtextorientation + 5 tests in vcs.manageElements.createtexttable + 3 tests in vcs.manageElements.createvector + 3 tests in vcs.manageElements.createxvsy + 3 tests in vcs.manageElements.createxyvsy + 3 tests in vcs.manageElements.createyxvsx + 2 tests in vcs.manageElements.get1d + 9 tests in vcs.manageElements.getboxfill + 4 tests in vcs.manageElements.getcolormap + 4 tests in vcs.manageElements.getfillarea + 9 tests in vcs.manageElements.getisofill + 9 tests in vcs.manageElements.getisoline + 6 tests in vcs.manageElements.getline + 6 tests in vcs.manageElements.getmarker + 9 tests in vcs.manageElements.getmeshfill + 9 tests in vcs.manageElements.getprojection + 8 tests in vcs.manageElements.getscatter + 9 tests in vcs.manageElements.gettemplate + 4 tests in vcs.manageElements.gettextorientation + 4 tests in vcs.manageElements.gettexttable + 8 tests in vcs.manageElements.getvector + 8 tests in vcs.manageElements.getxvsy + 7 tests in vcs.manageElements.getxyvsy + 7 tests in vcs.manageElements.getyxvsx + 3 tests in vcs.manageElements.removeobject + 7 tests in vcs.manageElements.setLineAttributes +********************************************************************** +6 items had failures: + 4 of 4 in vcs.manageElements.createtext + 1 of 8 in vcs.manageElements.get3d_dual_scalar + 1 of 7 in vcs.manageElements.get3d_scalar + 1 of 8 in vcs.manageElements.get3d_vector + 1 of 7 in vcs.manageElements.gettaylordiagram + 4 of 6 in vcs.manageElements.gettextcombined +261 tests in 71 items. +249 passed and 12 failed. +***Test Failed*** 12 failures. +Done logging manageElements.md diff --git a/docs/doctest_info/manageElements.md b/docs/doctest_info/manageElements.md index 640998dab..19e9902e7 100644 --- a/docs/doctest_info/manageElements.md +++ b/docs/doctest_info/manageElements.md @@ -21,7 +21,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -33,7 +33,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -47,49 +47,25 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.gettaylordiagram ----------------------------------- ```python Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + a.taylordiagram(ex) # plot using specified taylordiagram object Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars -``` - -vcs.manageElements.gettextcombined ----------------------------------- -```python -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists + a.taylordiagram(ex) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1274, in taylordiagram + arglist = _determine_arg_list('taylordiagram', args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list + arglist[igraphics_method]) + vcsError: Graphics method taylordiagram requires 1 slab. ``` Missing Doctests @@ -108,35 +84,5 @@ Missing Doctests :x:``` vcs.manageElements.removeGXY``` -:x:``` vcs.manageElements.removeGXy``` - -:x:``` vcs.manageElements.removeGYx``` - -:x:``` vcs.manageElements.removeGfb``` - -:x:``` vcs.manageElements.removeGfi``` - -:x:``` vcs.manageElements.removeGfm``` - -:x:``` vcs.manageElements.removeGi``` - -:x:``` vcs.manageElements.removeGtd``` - -:x:``` vcs.manageElements.removeGv``` - -:x:``` vcs.manageElements.removeP``` - -:x:``` vcs.manageElements.removeProj``` - -:x:``` vcs.manageElements.removeTc``` - -:x:``` vcs.manageElements.removeTf``` - -:x:``` vcs.manageElements.removeTl``` - -:x:``` vcs.manageElements.removeTm``` - -:x:``` vcs.manageElements.removeTo``` - -:x:``` vcs.manageElements.removeTt``` - +:x:``` vcs.manage``` +E \ No newline at end of file diff --git a/docs/doctest_info/manageElements.report b/docs/doctest_info/manageElements.report index 1be3c0dbb..6840515e7 100644 --- a/docs/doctest_info/manageElements.report +++ b/docs/doctest_info/manageElements.report @@ -29,7 +29,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('3d_dual_scalar') # should now contain the '3d_dual_scalar_ex1' 3d_dual_scalar + vcs.listelements('3d_dual_scalar') # should now contain '3d_dual_scalar_ex1' Expecting: [...'3d_dual_scalar_ex1'...] ok @@ -45,7 +45,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('3d_scalar') # should now contain the '3d_scalar_ex1' 3d_scalar + vcs.listelements('3d_scalar') # should now contain '3d_scalar_ex1' Expecting: [...'3d_scalar_ex1'...] ok @@ -61,7 +61,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('3d_vector') # should now contain the '3d_vector_ex1' 3d_vector + vcs.listelements('3d_vector') # should now contain '3d_vector_ex1' Expecting: [...'3d_vector_ex1'...] ok @@ -77,7 +77,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('boxfill') # should now contain the 'boxfill_ex1' boxfill + vcs.listelements('boxfill') # should now contain 'boxfill_ex1' Expecting: [...'boxfill_ex1'...] ok @@ -86,7 +86,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('boxfill') # should now contain the 'boxfill_ex2' boxfill + vcs.listelements('boxfill') # should now contain 'boxfill_ex2' Expecting: [...'boxfill_ex2'...] ok @@ -102,7 +102,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('colormap') # should now contain the 'colormap_ex1' colormap + vcs.listelements('colormap') # should now contain 'colormap_ex1' Expecting: [...'colormap_ex1'...] ok @@ -111,7 +111,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('colormap') # should now contain the 'colormap_ex2' colormap + vcs.listelements('colormap') # should now contain 'colormap_ex2' Expecting: [...'colormap_ex2'...] ok @@ -127,7 +127,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('fillarea') # should now contain the 'fillarea_ex1' fillarea + vcs.listelements('fillarea') # should now contain 'fillarea_ex1' Expecting: [...'fillarea_ex1'...] ok @@ -143,7 +143,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('isofill') # should now contain the 'isofill_ex1' isofill + vcs.listelements('isofill') # should now contain 'isofill_ex1' Expecting: [...'isofill_ex1'...] ok @@ -152,7 +152,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('isofill') # should now contain the 'isofill_ex2' isofill + vcs.listelements('isofill') # should now contain 'isofill_ex2' Expecting: [...'isofill_ex2'...] ok @@ -168,7 +168,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('isoline') # should now contain the 'isoline_ex1' isoline + vcs.listelements('isoline') # should now contain 'isoline_ex1' Expecting: [...'isoline_ex1'...] ok @@ -177,7 +177,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('isoline') # should now contain the 'isoline_ex2' isoline + vcs.listelements('isoline') # should now contain 'isoline_ex2' Expecting: [...'isoline_ex2'...] ok @@ -193,7 +193,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('line') # should now contain the 'line_ex1' line + vcs.listelements('line') # should now contain 'line_ex1' Expecting: [...'line_ex1'...] ok @@ -202,7 +202,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('line') # should now contain the 'line_ex2' line + vcs.listelements('line') # should now contain 'line_ex2' Expecting: [...'line_ex2'...] ok @@ -218,7 +218,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('marker') # should now contain the 'marker_ex1' marker + vcs.listelements('marker') # should now contain 'marker_ex1' Expecting: [...'marker_ex1'...] ok @@ -227,7 +227,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('marker') # should now contain the 'marker_ex2' marker + vcs.listelements('marker') # should now contain 'marker_ex2' Expecting: [...'marker_ex2'...] ok @@ -243,7 +243,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('meshfill') # should now contain the 'meshfill_ex1' meshfill + vcs.listelements('meshfill') # should now contain 'meshfill_ex1' Expecting: [...'meshfill_ex1'...] ok @@ -252,7 +252,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('meshfill') # should now contain the 'meshfill_ex2' meshfill + vcs.listelements('meshfill') # should now contain 'meshfill_ex2' Expecting: [...'meshfill_ex2'...] ok @@ -268,7 +268,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('projection') # should now contain the 'projection_ex1' projection + vcs.listelements('projection') # should now contain 'projection_ex1' Expecting: [...'projection_ex1'...] ok @@ -277,7 +277,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection + vcs.listelements('projection') # should now contain 'projection_ex2' Expecting: [...'projection_ex2'...] ok @@ -293,7 +293,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('scatter') # should now contain the 'scatter_ex1' scatter + vcs.listelements('scatter') # should now contain 'scatter_ex1' Expecting: [...'scatter_ex1'...] ok @@ -309,7 +309,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('taylordiagram') # should now contain the 'taylordiagram_ex1' taylordiagram + vcs.listelements('taylordiagram') # should now contain 'taylordiagram_ex1' Expecting: [...'taylordiagram_ex1'...] ok @@ -325,7 +325,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('template') # should now contain the 'template_ex1' template + vcs.listelements('template') # should now contain 'template_ex1' Expecting: [...'template_ex1'...] ok @@ -334,7 +334,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('template') # should now contain the 'template_ex2' template + vcs.listelements('template') # should now contain 'template_ex2' Expecting: [...'template_ex2'...] ok @@ -355,16 +355,6 @@ Expected: Got: *******************Textcombined Names List********************** *******************End Textcombined Names List********************** -Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Expecting: - -ok -Trying: - vcs.listelements('textcombined') # should now contain the 'EXAMPLE_tt:::EXAMPLE_tto' textcombined -Expecting: - [...'EXAMPLE_tt:::EXAMPLE_tto'...] -ok Trying: vcs.show('textorientation') # show all available textorientation Expecting: @@ -377,7 +367,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('textorientation') # should now contain the 'textorientation_ex1' textorientation + vcs.listelements('textorientation') # should now contain 'textorientation_ex1' Expecting: [...'textorientation_ex1'...] ok @@ -386,7 +376,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('textorientation') # should now contain the 'textorientation_ex2' textorientation + vcs.listelements('textorientation') # should now contain 'textorientation_ex2' Expecting: [...'textorientation_ex2'...] ok @@ -402,7 +392,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('texttable') # should now contain the 'texttable_ex1' texttable + vcs.listelements('texttable') # should now contain 'texttable_ex1' Expecting: [...'texttable_ex1'...] ok @@ -411,7 +401,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('texttable') # should now contain the 'texttable_ex2' texttable + vcs.listelements('texttable') # should now contain 'texttable_ex2' Expecting: [...'texttable_ex2'...] ok @@ -427,7 +417,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('vector') # should now contain the 'vector_ex1' vector + vcs.listelements('vector') # should now contain 'vector_ex1' Expecting: [...'vector_ex1'...] ok @@ -443,7 +433,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('xvsy') # should now contain the 'xvsy_ex1' xvsy + vcs.listelements('xvsy') # should now contain 'xvsy_ex1' Expecting: [...'xvsy_ex1'...] ok @@ -459,7 +449,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('xyvsy') # should now contain the 'xyvsy_ex1' xyvsy + vcs.listelements('xyvsy') # should now contain 'xyvsy_ex1' Expecting: [...'xyvsy_ex1'...] ok @@ -475,7 +465,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('yxvsx') # should now contain the 'yxvsx_ex1' yxvsx + vcs.listelements('yxvsx') # should now contain 'yxvsx_ex1' Expecting: [...'yxvsx_ex1'...] ok @@ -531,7 +521,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -569,7 +559,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -613,7 +603,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -958,30 +948,24 @@ Trying: Expecting nothing ok Trying: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + a.taylordiagram(ex) # plot using specified taylordiagram object Expecting: ********************************************************************** File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 255, in vcs.manageElements.gettaylordiagram Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + a.taylordiagram(ex) # plot using specified taylordiagram object Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars + a.taylordiagram(ex) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1274, in taylordiagram + arglist = _determine_arg_list('taylordiagram', args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list + arglist[igraphics_method]) + vcsError: Graphics method taylordiagram requires 1 slab. Trying: a=vcs.init() Expecting nothing @@ -1031,24 +1015,12 @@ Expecting: [...] ok Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1500, in vcs.manageElements.gettextcombined -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expecting nothing +ok Trying: ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method Expecting nothing @@ -1288,7 +1260,7 @@ ok vcs.manageElements.removeTm vcs.manageElements.removeTo vcs.manageElements.removeTt -42 items passed all tests: +43 items passed all tests: 4 tests in vcs.manageElements.create1d 3 tests in vcs.manageElements.create3d_dual_scalar 3 tests in vcs.manageElements.create3d_scalar @@ -1323,6 +1295,7 @@ ok 9 tests in vcs.manageElements.getprojection 8 tests in vcs.manageElements.getscatter 9 tests in vcs.manageElements.gettemplate + 5 tests in vcs.manageElements.gettextcombined 4 tests in vcs.manageElements.gettextorientation 4 tests in vcs.manageElements.gettexttable 8 tests in vcs.manageElements.getvector @@ -1332,13 +1305,13 @@ ok 3 tests in vcs.manageElements.removeobject 7 tests in vcs.manageElements.setLineAttributes ********************************************************************** -6 items had failures: - 1 of 3 in vcs.manageElements.createtext +5 items had failures: + 2 of 3 in vcs.manageElements.createtext 1 of 8 in vcs.manageElements.get3d_dual_scalar 1 of 7 in vcs.manageElements.get3d_scalar 1 of 8 in vcs.manageElements.get3d_vector 1 of 7 in vcs.manageElements.gettaylordiagram - 1 of 5 in vcs.manageElements.gettextcombined 259 tests in 71 items. 253 passed and 6 failed. ***Test Failed*** 6 failures. +Done logging manageElements.md diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 92de4c16a..aeb965cea 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -984,6 +984,18 @@ def getdrawlogo(self): return self.enableLogo def initLogoDrawing(self): + """ + Initializes logo drawing for the canvas. + + :Example: + + .. doctest:: canvas_initLogoDrawing + + >>> a=vcs.init() + >>> a.initLogoDrawing() # will draw logo when plot is called + >>> array=[range(10) for _ in range(10)] + >>> a.plot(array) # should have logo in lower right corner + """ self.drawLogo = self.enableLogo def update(self, *args, **kargs): @@ -1049,10 +1061,10 @@ def scriptobject(self, obj, script_filename=None, mode=None): >>> a.scriptobject(i,'ex_isoline2') # Save isoline object as a JSON object 'isoline2.json' :param script_filename: Name of the output script file. - :type script_filename: str + :type script_filename: :py:class:`str` :param mode: Mode is either "w" for replace or "a" for append. - :type mode: str + :type mode: :py:class:`str` :param obj: Any VCS primary class or secondary class object. :type obj: VCS object @@ -1119,6 +1131,23 @@ def clean_auto_generated_objects(self, type=None): but if you're running into performance/memory issues, calling it periodically may help. + :Example: + + .. doctest:: canvas_clean_auto_generated_objects + + >>> a=vcs.init() + >>> boxes=vcs.listelements('boxfill') # initial boxfill names + >>> array=[range(10) for _ in range(10)] + >>> a.plot(array) + >>> new_boxes=a.listelements('boxfill') # has new names + >>> boxes == new_boxes # should not be the same + False + >>> a.clean_auto_generated_objects() + >>> new_boxes=a.listelements('boxfill') # back to initial state + >>> boxes == new_boxes + True + + :param type: Type of objects to remove. By default, will remove everything. :type type: None, str, list/tuple (of str) """ @@ -1469,7 +1498,7 @@ def create1d(self, name=None, source='default'): def get1d(self, name): return vcs.get1d(name) - create1d.__doc__ = vcs.manageElements.create1d.__doc__ + create1d.__doc__ = vcs.manageElements.get1d.__doc__ def createxyvsy(self, name=None, source='default'): return vcs.createxyvsy(name, source) @@ -1779,20 +1808,20 @@ def drawline(self, name=None, ltype='solid', width=1, color=241, # noqa :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param ltype: One of "dash", "dash-dot", "solid", "dot", or "long-dash". - :type ltype: str + :type ltype: :py:class:`str` :param width: Thickness of the line to be drawn - :type width: int + :type width: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or :py:class:`int` :param priority: The layer on which the line will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas @@ -1907,20 +1936,20 @@ def drawmarker(self, name=None, mtype='solid', size=1, color=241, :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param mtype: Marker type, i.e. 'dot', 'plus', 'star, etc. - :type mtype: str + :type mtype: :py:class:`str` :param size: Size of the marker to draw - :type size: int + :type size: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or :py:class:`int` :param priority: The layer on which the marker will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas @@ -2033,23 +2062,23 @@ def drawfillarea(self, name=None, style=1, index=1, color=241, :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param style: One of "hatch", "solid", or "pattern". - :type style: str + :type style: :py:class:`str` :param index: Specifies which `pattern `_ to fill the fillarea with. Accepts ints from 1-20. - :type index: int + :type index: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or :py:class:`int` :param priority: The layer on which the fillarea will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas @@ -2263,33 +2292,25 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, *******************Texttable Names List********************** ... *******************End Texttable Names List********************** - >>> vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - >>> tc=a.drawtextcombined(Tt_name = 'EXAMPLE_tt', To_name='EXAMPLE_tto', - ... string='Hello example!', spacing=5, - ... color=242, priority=1, viewport=[0, 1.0, 0, 1.0], - ... worldcoordinate=[0,100, 0,50], - ... x=[0,20,40,60,80,100], - ... y=[0,10,20,30,40,50]) # plot textcombined object on canvas + >>> vcs.createtextcombined('draw_tt', 'qa', 'draw_tto', '7left') + >>> tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') :param Tt_name: String name of a texttable object - :type Tt_name: str + :type Tt_name: :py:class:`str` :param To_name: String name of a textorientation object - :type To_name: str - - :param style: One of "hatch", "solid", or "pattern". - :type style: str + :type To_name: :py:class:`str` :param index: Specifies which `pattern `_ to fill the fillarea with. Accepts ints from 1-20. - :type index: int + :type index: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or :py:class:`int` :param priority: The layer on which the fillarea will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas @@ -3990,7 +4011,7 @@ def remove_display_name(self, *args): Removes a plotted item from the canvas. :param args: Any number of display names to remove. - :type args: str list + :type args: list of :py:class:`str` """ for a in args: if a in self.display_names: @@ -4001,6 +4022,15 @@ def cgm(self, file, mode='w'): """ Export an image in CGM format. + :Example: + + .. doctest:: canvas_cgm + + >>> a=vcs.init() + >>> array=[range(10) for _ in range(10)] + >>> a.plot(array) + >>> a.cgm('bars.cgm') + :param file: Filename to save :param mode: Ignored. """ @@ -4103,12 +4133,26 @@ def change_display_graphic_method(self, display, type, name): """ Changes the type and graphic method of a plot. + :Example: + + doctest:: canvas_change_display_graphic_method + + >>> a=vcs.init() + >>> cdgm=a.change_display_graphic_method # alias long name + >>> array=[range(10) for _ in range(10)] + >>> disp=a.plot(array) + >>> a.show('boxfill') # list boxfill names + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** + >>> cdgm(disp, 'boxfill', 'polar') # change graphics method + :param display: Display to change. :param type: New graphics method type. :param name: Name of new graphics method. - :type display: str or vcs.displayplot.Dp - :type name: str - :type type: str + :type display: :py:class:`str` or vcs.displayplot.Dp + :type name: :py:class:`str` + :type type: :py:class:`str` """ if isinstance(display, (str, unicode)): @@ -4175,7 +4219,25 @@ def canvasinfo(self, *args, **kargs): """ Obtain the current attributes of the VCS Canvas window. - :returns: Dictionary with keys: "mapstate" (whether the canvas is opened), "height", "width", "depth", "x", "y" + :Example: + + .. doctest:: canvas_canvasinfo + + >>> a=vcs.init() + >>> ci=a.canvasinfo() + >>> keys=a.canvasinfo().keys() + >>> keys.sort() + >>> for key in keys: + ... print key, str(ci[key]) + depth ... + height ... + mapstate ... + width ... + x ... + y ... + + :returns: Dictionary with keys: "mapstate" (whether the canvas is opened), + "height", "width", "depth", "x", "y" :rtype: dict """ return self.backend.canvasinfo(*args, **kargs) @@ -4193,7 +4255,7 @@ def getcontinentstype(self, *args): >>> cont_type = a.getcontinentstype() # Get the continents type :returns: An int between 1 and 0, or the path to a custom continentstype - :rtype: int or system filepath + :rtype: :py:class:`int` or system filepath """ try: return self._continents @@ -4218,10 +4280,10 @@ def pstogif(self, filename, *opt): >>> a.pstogif('filename.ps','p') # convert the postscript file to a gif file (p=portrait) :param filename: String name of the desired output file - :type filename: str + :type filename: :py:class:`str` :param opt: One of 'l' or 'p', indicating landscape or portrait mode, respectively. - :type opt: str + :type opt: :py:class:`str` :returns: ??? :rtype: ??? @@ -4303,20 +4365,20 @@ def landscape(self, width=-99, height=-99, x=-99, y=-99, clear=0): >>> a.landscape(width = 400, height = 337, x=100, y = 200, clear=1) # landscape with more settings :param width: Width of the canvas, in pixels - :type width: int + :type width: :py:class:`int` :param height: Height of the canvas, in pixels - :type height: int + :type height: :py:class:`int` :param x: Unused - :type x: int + :type x: :py:class:`int` :param y: Unused - :type y: int + :type y: :py:class:`int` :param clear: Indicates the canvas should be cleared (1), or should not be cleared (0), when orientation is changed. - :type clear: int + :type clear: :py:class:`int` """ if (self.orientation() == 'landscape'): return @@ -4363,7 +4425,7 @@ def listelements(self, *args): ['1d', '3d_dual_scalar', '3d_scalar', ...] :param args: A string containing the name of a VCS object type, or None - :type args: str or None + :type args: :py:class:`str` or None :returns: If args is None, returns a list of string names of all VCS class objects. If args is a string name of a VCS object @@ -4387,7 +4449,7 @@ def updateorientation(self, *args): Use :func:`landscape` or :func:`portrait` instead. :param args: String with value 'landscape' or 'portrait' - :type args: str + :type args: :py:class:`str` """ a = self.canvas.updateorientation(*args) @@ -4407,10 +4469,10 @@ def open(self, width=None, height=None, **kargs): >>> a.open(800,600) :param width: Integer representing the desired width of the opened window in pixels - :type width: int + :type width: :py:class:`int` :param height: Integer representing the desired height of the opened window in pixels - :type height: int + :type height: :py:class:`int` """ a = self.backend.open(width, height, **kargs) @@ -4422,6 +4484,16 @@ def canvasid(self, *args): Get the ID of this canvas. This ID number is found at the top of the VCS Canvas, as part of its title. + :Example: + + .. doctest:: canvas_canvasid + + >>> a=vcs.init() + >>> a.canvasid() + ... + + :returns: The ID of the canvas on which canvasid() is called. + :rtype: int """ return self._canvas_id @@ -4448,10 +4520,10 @@ def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): >>> a.portrait(width = 337, height = 400, x=100, y = 200, clear=1) # portrait, with more specifications :param width: Width to set the canvas to (in pixels) - :type width: int + :type width: :py:class:`int` :param height: Height to set the canvas to (in pixels) - :type height: int + :type height: :py:class:`int` :param x: Unused. :type x: None @@ -4461,7 +4533,7 @@ def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): :param clear: 0: Do not clear the canvas when orientation is changed. 1: clear the canvas when orientation is changed. - :type clear: int + :type clear: :py:class:`int` """ if (self.orientation() == 'portrait'): return @@ -4532,19 +4604,19 @@ def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): True :param movie: Output video file name - :type movie: str + :type movie: :py:class:`str` :param files: String file name - :type files: str, list, or tuple + :type files: :py:class:`str`, :py:class:`list`, or :py:class:`tuple` :param rate: Desired output framerate - :type rate: str + :type rate: :py:class:`str` :param options: Additional FFMPEG arguments - :type options: str + :type options: :py:class:`str` :returns: The output string generated by ffmpeg program - :rtype: str + :rtype: :py:class:`str` """ args = ["ffmpeg", "-y"] @@ -4626,14 +4698,39 @@ def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): return result == 0 def getantialiasing(self): + """ + Returns the current antialiasing rate for the canvas. + + :Example: + + .. doctest:: canvas_getantialiasing + + >>> a=vcs.init() + >>> a.setantialiasing(0) # turn off antialiasing + >>> a.getantialiasing() # will return current antialiasing rate + 0 + + :return: antialiasing rate for the canvas + :rtype: int + """ return self.backend.getantialiasing() def setantialiasing(self, antialiasing): """ - Set antialiasing rate. + Sets the antialiasing rate for the canvas. + + :Example: + + .. doctest:: canvas_setantialiasing - :param antialiasing: Integer from 0-64, representing the antialising rate (0 means no antialiasing). - :type antialiasing: int + >>> a=vcs.init() + >>> a.setantialiasing(20) + >>> a.getantialiasing() + 20 + + :param antialiasing: Integer from 0-64, representing the antialising + rate (0 means no antialiasing). + :type antialiasing: :py:class:`int` """ self.backend.setantialiasing(antialiasing) @@ -4657,7 +4754,7 @@ def setbgoutputdimensions(self, width=None, height=None, units='inches'): :param units: The units of measurement to use for output. One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: str + :type units: :py:class:`str` """ if units not in [ 'inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']: @@ -4688,14 +4785,14 @@ def put_png_on_canvas( >>> a.plot(array) >>> a.png("bars.png") # make a png named 'bars.png' - >>> a.clear() # clear the bars off the screen - >>> a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas + >>> a.clear() # clear the bars off the canvas + >>> a.put_png_on_canvas("bars.png") # put 'bars.png' on canvas :param file: Input image filename - :type file: str + :type file: :py:class:`str` :param zoom: scale factor - :type zoom: int + :type zoom: :py:class:`int` :param xOffset: Horizontal Offset :type xOffset: float @@ -4705,7 +4802,7 @@ def put_png_on_canvas( :param units: Specifies the units used for x and y Offsets. One of ['percent','pixels']. - :type units: str + :type units: :py:class:`str` :param fitToHeight: If True, fits the picture (before scaling) to the canvas full height, if False then use png original size. @@ -4737,7 +4834,7 @@ def png(self, file, width=None, height=None, >>> a.png('example') # Overwrite a png file :param file: Output image filename - :type file: str + :type file: :py:class:`str` :param width: Float representing the desired width of the output png, using the specified unit of measurement @@ -4749,7 +4846,7 @@ def png(self, file, width=None, height=None, :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Defaults to 'inches'. - :type units: str + :type units: :py:class:`str` :param draw_white_background: Boolean value indicating if the background should be white. Defaults to True. :type draw_white_background: bool @@ -4790,17 +4887,17 @@ def pdf(self, file, width=None, height=None, units='inches', >>> a.pdf('example', width=21, height=29.7, units='cm') # A4 :param file: Desired string name of the output file - :type file: str + :type file: :py:class:`str` :param width: Integer specifying the desired width of the output, measured in the chosen units - :type width: int + :type width: :py:class:`int` :param height: Integer specifying the desired height of the output, measured in the chosen units - :type height: int + :type height: :py:class:`int` :param units: Must be one of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Default is 'inches'. - :type units: str + :type units: :py:class:`str` :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -4848,7 +4945,7 @@ def svg(self, file, width=None, height=None, units='inches', :type height: float :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Deafults to 'inches'. - :type units: str + :type units: :py:class:`str` :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -4966,6 +5063,18 @@ def isopened(self): """ Returns a boolean value indicating whether the canvas is opened or not. + :Example: + + .. doctest:: convas_isopened + + >>> a=vcs.init() + >>> a.isopened() # canvas defaults to being closed + False + >>> array=[range(10) for _ in range(10)] + >>> a.plot(array) + >>> a.isopened() # plotting opened the canvas + True + :returns: A boolean value indicating whether the Canvas is opened (1), or closed (0) :rtype: bool """ @@ -5075,24 +5184,24 @@ def postscript(self, file, mode='r', orientation=None, width=None, height=None, >>> a.postscript('example', width=21, height=29.7, units='cm') # A4 :param file: String name of the desired output file. - :type file: str + :type file: :py:class:`str` :param mode: The mode in which to open the file. One of 'r' or 'a'. When mode is 'r', file will be opened in replace mode. When mode is 'a', file will be opened in append mode. - :type mode: str + :type mode: :py:class:`str` :param width: Desired width of the postscript output, in the specified unit of measurement. - :type width: int + :type width: :py:class:`int` :param height: Desired height of the postscript output, in the specified unit of measurement. - :type height: int + :type height: :py:class:`int` :param units: The units of measurement to use for output. One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: str + :type units: :py:class:`str` :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -5153,7 +5262,7 @@ def setcolormap(self, name): :param name: Name of the colormap to use - :type name: str + :type name: :py:class:`str` """ # Don't update the VCS segment if there is no Canvas. This condition # happens in the initalize function for VCDAT only. This will cause a @@ -5216,13 +5325,29 @@ def setcontinentsline(self, line="default"): >>> a.setcontinentsline("default") # Use default line :param line: Line to use for drawing continents. Can be a string name of a line, or a VCS line object - :type line: str or :py:class:`vcs.line.Tl` + :type line: :py:class:`str` or :py:class:`vcs.line.Tl` """ linename = VCS_validation_functions.checkLine(self, "continentsline", line) line = vcs.getline(linename) self._continents_line = line def getcontinentsline(self): + """ + Returns the continents line associated with the canvas. + + :Example: + + .. doctest:: canvas_getcontinentsline + + >>> a=vcs.init() + >>> cl=a.getcontinentsline() # should be the default + >>> cl.name + 'default' + + :return: The line object associated with the canvas's continents_line + property + :rtype: vcs.line.Tl + """ if self._continents_line is None: return vcs.getline("default") else: @@ -5236,14 +5361,20 @@ def setcontinentstype(self, value): specified by additional external files that must be read as input. The continents-type values are integers ranging from 0 to 11, where: - 0 signifies "No Continents" - 1 signifies "Fine Continents" - 2 signifies "Coarse Continents" - 3 signifies "United States" (with "Fine Continents") - 4 signifies "Political Borders" (with "Fine Continents") - 5 signifies "Rivers" (with "Fine Continents") - 6 uses a custom continent set + * 0 signifies "No Continents" + + * 1 signifies "Fine Continents" + + * 2 signifies "Coarse Continents" + + * 3 signifies "United States" (with "Fine Continents") + + * 4 signifies "Political Borders" (with "Fine Continents") + + * 5 signifies "Rivers" (with "Fine Continents") + + * 6 uses a custom continent set You can also pass a file by path. @@ -5258,7 +5389,7 @@ def setcontinentstype(self, value): :param value: Integer representing continent type, as specified in function description - :type value: int + :type value: :py:class:`int` """ continent_path = VCS_validation_functions.checkContinents(self, value) self._continents = value @@ -5339,10 +5470,10 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' >>> a.postscript('example', width=21, height=29.7, units='cm') # A4 :param file: String name of the desired output file - :type file: str + :type file: :py:class:`str` :param mode: The mode in which to open the file. One of 'r' or 'a'. - :type mode: str + :type mode: :py:class:`str` :param width: Width of the output image, in the unit of measurement specified :type width: float @@ -5352,7 +5483,7 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' :param units: The units of measurement to use for output. One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: str + :type units: :py:class:`str` """ ext = file.split(".")[-1] if ext.lower() != 'eps': @@ -5382,18 +5513,28 @@ def isinfile(self, GM, file=None): Checks if a graphic method is stored in a file if no file name is passed then looks into the initial.attributes file + :Example: + + .. doctest:: canvas_isinfile + + >>> a=vcs.init() + >>> box=a.getboxfill() + >>> a.scriptobject(box, 'deft_box.py') + >>> a.isinfile(box, 'deft_box.py') + 1 + :param GM: The graphics method to search for - :type GM: str + :type GM: :py:class:`str` :param file: String name of the file to search. If None, VCS will search initial.attributes. - :type file: str + :type file: :py:class:`str` :returns: 1 if the graphic method is stored in the file, nothing if it is not. """ nm = GM.name gm = GM.g_name - key = gm + '_' + nm + '(' + key = key = gm + '_' + nm + '(' if file is None: file = os.path.join( os.path.expanduser("~"), @@ -5422,9 +5563,9 @@ def saveinitialfile(self): .. warning:: - This removes first ALL objects generated automatically - (i.e. whose name starts with '__') in order to preserve this, rename objects first - e.g: + This removes first ALL objects generated automatically (i.e. whose + name starts with '__'). To preserve these, rename objects first + e.g.: .. doctest:: canvas_saveinitial_warning @@ -5459,7 +5600,7 @@ def islandscape(self): ... a.portrait() # Set VCS's orientation to portrait mode :returns: Integer indicating VCS is in landscape mode (1), or not (0) - :rtype: int + :rtype: :py:class:`int` """ if (self.orientation() == 'landscape'): return 1 @@ -5503,7 +5644,7 @@ def getplot(self, Dp_name_src='default', template=None): :param Dp_name_src: String name of an existing display plot object - :type Dp_name_src: str + :type Dp_name_src: :py:class:`str` :param template: The displayplot template to inherit from :type template: @@ -5533,10 +5674,10 @@ def addfont(self, path, name=""): Add a font to VCS. :param path: Path to the font file you wish to add (must be .ttf) - :type path: str + :type path: :py:class:`str` :param name: Name to use to represent the font. - :type name: str + :type name: :py:class:`str` """ if not os.path.exists(path): raise ValueError('Error - The font path does not exists') @@ -5599,11 +5740,11 @@ def getfont(self, font): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] :param font: The font name/number - :type font: int or str + :type font: :py:class:`int` or :py:class:`str` :returns: If font parameter was a string, will return the integer associated with that string. If font parameter was an integer, will return the string associated with that integer. - :rtype: int or str + :rtype: :py:class:`int` or str """ if isinstance(font, int): return self.getfontname(font) @@ -5617,10 +5758,10 @@ def switchfonts(self, font1, font2): Switch the font numbers of two fonts. :param font1: The first font - :type font1: int or str + :type font1: :py:class:`int` or str :param font2: The second font - :type font2: int or str + :type font2: :py:class:`int` or str """ if isinstance(font1, str): index1 = self.getfont(font1) @@ -5648,11 +5789,20 @@ def copyfontto(self, font1, font2): """ Copy 'font1' into 'font2'. + :Example: + + .. doctest:: canvas_copyfontto + + >>> a=vcs.init() + >>> a.listelements('font') # show all font names + [...] + >>> a.copyfontto('Russian', 'Times') + :param font1: Name/number of font to copy - :type font1: str or int + :type font1: :py:class:`str` or int :param font2: Name/number of destination - :type font2: str or int + :type font2: :py:class:`str` or :py:class:`int` """ if isinstance(font1, str): index1 = self.getfont(font1) @@ -5678,8 +5828,17 @@ def setdefaultfont(self, font): """ Sets the passed/def show font as the default font for vcs + :Example: + + .. doctest:: canvas_setdefaultfont + + >>> a=vcs.init() + >>> a.listelements('font') # show all font names + [...] + >>> a.setdefaultfont('Times') + :param font: Font name or index to use as default - :type font: str or int + :type font: :py:class:`str` or :py:class:`int` """ if isinstance(font, str): font = self.getfont(font) @@ -5700,7 +5859,7 @@ def orientation(self, *args, **kargs): 'landscape' :returns: A string indicating the orientation of the canvas, i.e. 'landscape' or 'portrait' - :rtype: str + :rtype: :py:class:`str` """ return self.backend.orientation(*args, **kargs) @@ -5712,6 +5871,19 @@ def getcolormapname(self): """ Returns the name of the colormap this canvas is set to use by default. + :Example: + + .. doctest:: canvas_getcolormapname + + >>> a=vcs.init() + >>> a.show('colormap') + *******************Colormap Names List********************** + ... + *******************End Colormap Names List********************** + >>> a.setcolormap('rainbow') # set canvas's default colormap + >>> a.getcolormapname() + 'rainbow' + To set that colormap, use :py:func:`setcolormap`. """ if self.colormap is None: @@ -5719,6 +5891,31 @@ def getcolormapname(self): return self.colormap def dummy_user_action(self, *args, **kargs): + """ + Given args and kargs, prints the arguments and keyword arguments + associated with those parameters. + + Use this function to test what args and kargs are, if you're unsure. + + :Example: + + .. doctest:: canvas_dummy_user_action + + >>> a=vcs.init() + >>> dua=a.dummy_user_action # alias long name + >>> dua("falafel", 37, the_answer=42, barbara="streisand") + Arguments: ('falafel', 37) + Keywords: {'the_answer': 42, 'barbara': 'streisand'} + + + :param args: Any number of arguments, without a keyword specifier. + :type args: any + + :param kargs: Any number of keyword arguments, associated with any + number of data (i.e. kwd1="a string", kwd2=42). + :type kargs: any + + """ print 'Arguments:', args print 'Keywords:', kargs return None diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 96c814f99..3890bf3a9 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -27,7 +27,43 @@ def check_name_source(name, source, typ): - """Make sure it is a unique name for this type or generates a name for user""" + """Make sure it is a unique name for this type or generates a name for user. + + + :Example: + + .. doctest:: manageElements_check_name_source + + >>> cns=vcs.check_name_source # alias for long function name + >>> vcs.show('boxfill') + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** + >>> cns('polar','quick','boxfill') # is 'polar' boxfill taken? + vcsError: Error boxfill object named polar already exists + >>> cns('NEW', 'quick', 'boxfill') # 'NEW' should be available... + ('NEW', 'quick') + >>> cns(None, 'default', 'boxfill') # generate unique boxfill name + ('__boxfill_...', 'default') + + :param name: Desired string name for an object of type *typ*, + inheriting from source object *source*. + If name is None, a unique name will be generated. + :type name: :py:class:`str` or None + + :param source: Source from which the new object is meant to inherit. + Can be a VCS object or a string name of a VCS object. + :type source: :py:class:`str` or VCS Object + + :param typ: String name of a VCS object type. + (e.g. 'boxfill', 'isofill', 'marker', etc.) + :type typ: str + + :returns: A tuple containing two strings: a unique name and a source name. + If *name* was provided and an object of type *typ* with that name + already exists, an error is raised. + :rtype: :py:class:`tuple` + """ elts = vcs.listelements(typ) if name is None: rnd = random.randint(0, 1000000000000000) @@ -67,10 +103,11 @@ def createtemplate(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a template or a string name of a template + :param source: The object to inherit from. + Can be a template, or a string name of a template + :type source: :py:class:`str` or vcs.template.P :returns: A template :rtype: vcs.template.P @@ -87,7 +124,7 @@ def gettemplate(Pt_name_src='default'): %s :param Pt_name_src: String name of an existing template VCS object - :type Pt_name_src: + :type Pt_name_src: :py:class:`str` :returns: A VCS template object :rtype: vcs.template.P @@ -107,10 +144,11 @@ def createprojection(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a projection or a string name of a projection + :param source: The object to inherit from. + Can be a projection, or a string name of a projection. + :type source: :py:class:`str` or vcs.projection.Proj :returns: A projection graphics method object :rtype: vcs.projection.Proj @@ -126,7 +164,7 @@ def getprojection(Proj_name_src='default'): %s :param Proj_name_src: String name of an existing VCS projection object - :type Proj_name_src: str + :type Proj_name_src: :py:class:`str` :returns: A VCS projection object :rtype: vcs.projection.Proj @@ -147,10 +185,11 @@ def createboxfill(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a boxfill or a string name of a boxfill + :param source: The object to inherit from. + can be a boxfill, or a string name of a boxfill. + :type source: :py:class:`str` or vcs.boxfill.Gfb :return: A boxfill graphics method object :rtype: vcs.boxfill.Gfb @@ -175,7 +214,7 @@ def getboxfill(Gfb_name_src='default'): %s :param Gfb_name_src: String name of an existing boxfill VCS object - :type Gfb_name_src: str + :type Gfb_name_src: :py:class:`str` :return: A pre-existing boxfill graphics method :rtype: vcs.boxfill.Gfb @@ -203,10 +242,11 @@ def createtaylordiagram(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a taylordiagram or a string name of a + :param source: The object to inherit from. + Can be a a taylordiagram, or a string name of a taylordiagram. + :type source: :py:class:`str` or vcs.taylor.Gtd :returns: A taylordiagram graphics method object :rtype: vcs.taylor.Gtd @@ -233,7 +273,7 @@ def gettaylordiagram(Gtd_name_src='default'): %s :param Gtd_name_src: String name of an existing taylordiagram VCS object - :type Gtd_name_src: str + :type Gtd_name_src: :py:class:`str` :returns: A taylordiagram VCS object :rtype: vcs.taylor.Gtd @@ -257,10 +297,11 @@ def createmeshfill(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a meshfill or a string name of a meshfill + :param source: The object to inherit from. + Can be a meshfill, or a string name of a meshfill. + :type source: :py:class:`str` or vcs.meshfill.Gfm :returns: A meshfill graphics method object :rtype: vcs.meshfill.Gfm @@ -275,7 +316,7 @@ def getmeshfill(Gfm_name_src='default'): %s :param Gfm_name_src: String name of an existing meshfill VCS object - :type Gfm_name_src: str + :type Gfm_name_src: :py:class:`str` :returns: A meshfill VCS object :rtype: vcs.meshfill.Gfm @@ -297,10 +338,11 @@ def createisofill(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: an isofill object, or string name of an isofill object + :param source: The object to inherit from. + Can be an isofill object, or string name of an isofill object. + :type source: :py:class:`str` or vcs.isofill.Gfi :returns: An isofill graphics method :rtype: vcs.isofill.Gfi @@ -324,7 +366,7 @@ def getisofill(Gfi_name_src='default'): %s :param Gfi_name_src: String name of an existing isofill VCS object - :type Gfi_name_src: str + :type Gfi_name_src: :py:class:`str` :returns: The specified isofill VCS object :rtype: vcs.isofill.Gfi @@ -353,10 +395,11 @@ def createisoline(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: an isoline object, or string name of an isoline object + :param source: The object to inherit from. + Can be an isoline object, or string name of an isoline object. + :type source: :py:class:`str` or vcs.isoline.Gi :returns: An isoline graphics method object :rtype: vcs.isoline.Gi @@ -380,7 +423,7 @@ def getisoline(Gi_name_src='default'): %s :param Gi_name_src: String name of an existing isoline VCS object - :type Gi_name_src: str + :type Gi_name_src: :py:class:`str` :returns: The requested isoline VCS object :rtype: vcs.isoline.Gi @@ -420,10 +463,10 @@ def create1d(name=None, source='default'): >>> new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" :param name: A string name for the 1d to be created. If None, a unique name will be created. - :type name: str + :type name: :py:class:`str` :param source: A 1d object or string name of a 1d object from which the new 1d will inherit. - :type source: str or :class:`vcs.unified1D.G1d` + :type source: :py:class:`str` or :class:`vcs.unified1D.G1d` :return: A new 1d object, inheriting from source. :rtype: :class:`vcs.unified1d.G1d` @@ -448,7 +491,7 @@ def get1d(name): >>> blue = vcs.get1d('blue_yxvsx') :param name: String name of a 1d in vcs. If there is no 1d with that name, an error will be raised. - :type name: str + :type name: :py:class:`str` :return: A 1d from vcs with the given name. :rtype: :class:`vcs.unified1d.G1d` @@ -467,11 +510,12 @@ def createxyvsy(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a xyvsy or a string name of a xyvsy + :param source: The object to inherit from. + Can be a xyvsy, or a string name of a xyvsy. + :type source: :py:class:`str` or vcs.unified1D.G1d :returns: A XYvsY graphics method object :rtype: vcs.unified1D.G1d @@ -504,7 +548,7 @@ def getxyvsy(GXy_name_src='default'): %s :param GXy_name_src: String name of an existing Xyvsy graphics method - :type GXy_name_src: str + :type GXy_name_src: :py:class:`str` :returns: An XYvsY graphics method object :rtype: vcs.unified1D.G1d @@ -530,10 +574,11 @@ def createyxvsx(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a yxvsy or a string name of a yxvsy + :param source: The object to inherit from. + Can be a yxvsy, or a string name of a yxvsy. + :type source: :py:class:`str` or vcs.unified1D.G1d :returns: A YXvsX graphics method object :rtype: vcs.unified1D.G1d @@ -590,10 +635,11 @@ def createxvsy(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a xvsy or a string name of a xvsy + :param source: The object to inherit from. + Can be a xvsy, or a string name of a xvsy. + :type source: :py:class:`str` or vcs.unified1D.G1d :returns: A XvsY graphics method object :rtype: vcs.unified1D.G1d @@ -625,7 +671,7 @@ def getxvsy(GXY_name_src='default'): %s :param GXY_name_src: String name of a 1d graphics method - :type GXY_name_src: str + :type GXY_name_src: :py:class:`str` :returns: A XvsY graphics method object :rtype: vcs.unified1D.G1d @@ -650,10 +696,11 @@ def createvector(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a vector or a string name of a vector + :param source: The object to inherit from. + Can be a vector, or a string name of a vector. + :type source: :py:class:`str` or vcs.vector.Gv :returns: A vector graphics method object :rtype: vcs.vector.Gv @@ -668,7 +715,7 @@ def getvector(Gv_name_src='default'): %s :param Gv_name_src: String name of an existing vector VCS object - :type Gv_name_src: str + :type Gv_name_src: :py:class:`str` :returns: A vector graphics method object :rtype: vcs.vector.Gv @@ -688,10 +735,11 @@ def createscatter(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a scatter or a string name of a scatter + :param source: The object to inherit from. + Can be a scatter or, a string name of a scatter. + :type source: :py:class:`str` or vcs.unified1D.G1d :return: A scatter graphics method :rtype: vcs.unified1D.G1d @@ -724,7 +772,7 @@ def getscatter(GSp_name_src='default'): %s :param GSp_name_src: String name of an existing scatter VCS object. - :type GSp_name_src: str + :type GSp_name_src: :py:class:`str` :returns: A scatter graphics method object :rtype: vcs.unified1D.G1d @@ -752,23 +800,23 @@ def createline(name=None, source='default', ltype=None, %s :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param source: a line, or string name of a line - :type source: str + :type source: :py:class:`str` :param ltype: One of "dash", "dash-dot", "solid", "dot", or "long-dash". - :type ltype: str + :type ltype: :py:class:`str` :param width: Thickness of the line to be created - :type width: int + :type width: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or :py:class:`int` :param priority: The layer on which the line will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -783,7 +831,7 @@ def createline(name=None, source='default', ltype=None, :type y: list of floats :param projection: Specify a geographic projection used to convert x/y from spherical coordinates to 2D coordinates. - :type projection: str or projection object + :type projection: :py:class:`str` or projection object :returns: A VCS line secondary method object :rtype: vcs.line.Tl @@ -839,7 +887,7 @@ def setLineAttributes(to, l): :param l: l can be a line name defined in vcs.elements or a line object. l will be used to set the properties of to. - :type l:py:class:`vcs.line.Tl` or str + :type l: :py:class:`vcs.line.Tl` or str """ import queries line = None @@ -869,20 +917,20 @@ def getline(name='default', ltype=None, width=None, color=None, %s :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param ltype: One of "dash", "dash-dot", "solid", "dot", or "long-dash". - :type ltype: str + :type ltype: :py:class:`str` :param width: Thickness of the line to be created - :type width: int + :type width: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the marker will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -937,23 +985,23 @@ def createmarker(name=None, source='default', mtype=None, %s :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param source: A marker, or string name of a marker - :type source: str + :type source: :py:class:`str` :param mtype: Specifies the type of marker, i.e. "dot", "circle" - :type mtype: str + :type mtype: :py:class:`str` :param size: - :type size: int + :type size: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the marker will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -1003,23 +1051,23 @@ def getmarker(name='default', mtype=None, size=None, color=None, %s :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param source: A marker, or string name of a marker - :type source: str + :type source: :py:class:`str` :param mtype: Specifies the type of marker, i.e. "dot", "circle" - :type mtype: str + :type mtype: :py:class:`str` :param size: Size of the marker - :type size: int + :type size: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the marker will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -1072,25 +1120,25 @@ def createfillarea(name=None, source='default', style=None, %s :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param source: a fillarea, or string name of a fillarea - :type source: str + :type source: :py:class:`str` :param style: One of "hatch", "solid", or "pattern". - :type style: str + :type style: :py:class:`str` :param index: Specifies which `pattern `_ to fill with. Accepts ints from 1-20. - :type index: int + :type index: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the fillarea will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -1140,21 +1188,21 @@ def getfillarea(name='default', style=None, %s :param name: String name of an existing fillarea VCS object - :type name: str + :type name: :py:class:`str` :param style: One of "hatch", "solid", or "pattern". - :type style: str + :type style: :py:class:`str` :param index: Specifies which `pattern `_ to fill with. Accepts ints from 1-20. - :type index: int + :type index: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the texttable will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -1208,20 +1256,20 @@ def createtexttable(name=None, source='default', font=None, %s :param name: Name of created object - :type name: str + :type name: :py:class:`str` :param source: a texttable, or string name of a texttable - :type source: str + :type source: :py:class:`str` :param font: Which font to use (index or name). - :type font: int or string + :type font: :py:class:`int` or :py:class:`str` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the texttable will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -1280,17 +1328,17 @@ def gettexttable(name='default', font=None, %s :param name: String name of an existing VCS texttable object - :type name: str + :type name: :py:class:`str` :param font: Which font to use (index or name). - :type font: int or str + :type font: :py:class:`int` or :py:class:`str` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the texttable will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -1327,10 +1375,11 @@ def createtextorientation(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a textorientation or a string name of a textorientation + :param source: The object to inherit from. + Can be a textorientation, or a string name of a textorientation. + :type source: :py:class:`str` or vcs.textorientation.To :returns: A textorientation secondary method :rtype: vcs.textorientation.To @@ -1347,7 +1396,7 @@ def gettextorientation(To_name_src='default'): %s :param To_name_src: String name of an existing textorientation VCS object - :type To_name_src: str + :type To_name_src: :py:class:`str` :returns: A textorientation VCS object :rtype: vcs.textorientation.To @@ -1373,27 +1422,27 @@ def createtextcombined(Tt_name=None, Tt_source='default', To_name=None, To_sourc %s :param Tt_name: Name of created object - :type Tt_name: str + :type Tt_name: :py:class:`str` :param Tt_source: Texttable object to inherit from. Can be a texttable, or a string name of a texttable. - :type Tt_source: str or vcs.texttable.Tt + :type Tt_source: :py:class:`str` or vcs.texttable.Tt :param To_name: Name of the textcombined's text orientation (to be created) - :type To_name: str + :type To_name: :py:class:`str` :param To_source: Name of the textorientation to inherit. Can be a textorientation, or a string name of a textorientation. - :type To_source: str or vcs.textorientation.To + :type To_source: :py:class:`str` or vcs.textorientation.To :param font: Which font to use (index or name). - :type font: int or str + :type font: :py:class:`int` or :py:class:`str` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the object will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -1408,19 +1457,19 @@ def createtextcombined(Tt_name=None, Tt_source='default', To_name=None, To_sourc :type y: list of floats :param height: Size of the font - :type height: int + :type height: :py:class:`int` :param angle: Angle of the text, in degrees - :type angle: int + :type angle: :py:class:`int` :param halign: Horizontal alignment of the text. One of ["left", "center", "right"]. - :type halign: str + :type halign: :py:class:`str` :param valign: Vertical alignment of the text. One of ["top", "center", "botom"]. - :type valign: str + :type valign: :py:class:`str` :param projection: Specify a geographic projection used to convert x/y from spherical coordinates to 2D coordinates. - :type projection: str or projection object + :type projection: :py:class:`str` or projection object :returns: A VCS text object :rtype: vcs.textcombined.Tc @@ -1482,23 +1531,23 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N %s :param Tt_name_src: Name of created object - :type Tt_name_src: str + :type Tt_name_src: :py:class:`str` :param To_name_src: Name of parent textorientation object - :type To_name_src: str + :type To_name_src: :py:class:`str` :param string: Text to render :type string: list of str :param font: Which font to use (index or name) - :type font: int or str + :type font: :py:class:`int` or :py:class:`str` :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: str or int + :type color: :py:class:`str` or int :param priority: The layer on which the object will be drawn. - :type priority: int + :type priority: :py:class:`int` :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. :type viewport: list of floats @@ -1513,16 +1562,16 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N :type y: list of floats :param height: Size of the font - :type height: int + :type height: :py:class:`int` :param angle: Angle of the rendered text, in degrees :type angle: list of int :param halign: Horizontal alignment of the text. One of ["left", "center", "right"] - :type halign: str + :type halign: :py:class:`str` :param valign: Vertical alignment of the text. One of ["top", "center", "bottom"] - :type valign: str + :type valign: :py:class:`str` :returns: A textcombined object :rtype: vcs.textcombined.Tc @@ -1615,10 +1664,11 @@ def create3d_scalar(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a 3d_scalar or a string name of a 3d_scalar + :param source: The object to inherit from. + Can be a 3d_scalar, or a string name of a 3d_scalar. + :type source: :py:class:`str` or vcs.dv3d.Gf3Dscalar :returns: A 3d_scalar graphics method object :rtype: vcs.dv3d.Gf3Dscalar @@ -1633,7 +1683,7 @@ def get3d_dual_scalar(Gfdv3d_name_src='default'): %s :param Gfdv3d_name_src: String name of an existing 3d_dual_scalar VCS object - :type Gfdv3d_name_src: str + :type Gfdv3d_name_src: :py:class:`str` :returns: A pre-existing 3d_dual_scalar VCS object :rtype: vcs.dv3d.Gf3DDualScalar @@ -1654,10 +1704,11 @@ def create3d_dual_scalar(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a 3d_dual_scalar or a string name of a 3d_dual_scalar + :param source: The object to inherit from. + Can be a 3d_dual_scalar, or a string name of a 3d_dual_scalar. + :type source: :py:class:`str` or vcs.dv3d.Gf3DDualScalar :returns: A 3d_dual_scalar graphics method object :rtype: vcs.dv3d.Gf3DDualScalar @@ -1673,7 +1724,7 @@ def get3d_vector(Gfdv3d_name_src='default'): %s :param Gfdv3d_name_src: String name of an existing 3d_vector VCS object - :type Gfdv3d_name_src: str + :type Gfdv3d_name_src: :py:class:`str` :returns: A pre-existing 3d_vector VCS object :rtype: vcs.dv3d.Gf3Dvector @@ -1695,10 +1746,11 @@ def create3d_vector(name=None, source='default'): %s :param name: The name of the created object - :type name: str + :type name: :py:class:`str` - :param source: The object to inherit from - :type source: a 3d_vector or a string name of a 3d_vector + :param source: The object to inherit from. + Can be a 3d_vector, or a string name of a 3d_vector. + :type source: :py:class:`str` or vcs.dv3d.Gf3Dvector :returns: A 3d_vector graphics method object :rtype: vcs.dv3d.Gf3Dvector @@ -1720,10 +1772,11 @@ def createcolormap(Cp_name=None, Cp_name_src='default'): %s :param Cp_name: The name of the created object - :type Cp_name: str + :type Cp_name: :py:class:`str` - :param Cp_name_src: The object to inherit - :type Cp_name_src: a colormap or a string name of a colormap + :param Cp_name_src: The object to inherit from. + Can be a colormap or a string name of a colormap. + :type Cp_name_src: :py:class:`str` or vcs.colormap.Cp :returns: A VCS colormap object :rtype: vcs.colormap.Cp @@ -1739,7 +1792,7 @@ def getcolormap(Cp_name_src='default'): %s :param Cp_name_src: String name of an existing colormap VCS object - :type Cp_name_src: str + :type Cp_name_src: :py:class:`str` :returns: A pre-existing VCS colormap object :rtype: vcs.colormap.Cp diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index fc93e4021..1075c9cb6 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -274,8 +274,10 @@ def populate_docstrings(type_dict, target_dict, docstring, method): elif obj_name in ['1d', 'scatter', 'textcombined', 'xyvsy']: if obj_name == 'textcombined': dict['tc'] = """ - >>> vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - """ + >>> try: # try to create a new textcombined, in case none exist + ... vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + ... except: + ... pass""" dict['sp_parent'] = "'EXAMPLE_tt', 'EXAMPLE_tto'" elif obj_name == '1d': dict['sp_parent'] = "'default'" @@ -310,7 +312,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): >>> slab2 = f('v') # need 2 slabs, so get another""" dict['slabs'] = dict['slabs'] + slab2 dict['args'] = dict['args'] + ", slab2" - # for vcs objects that have a self-named function, i.e. fillarea() + # for vcs objects that have a self-named plotting function, i.e. fillarea() if type_dict[obj_type][obj_name]['callable']: plot = """%(slabs)s >>> a.%(name)s(ex%(args)s) # plot using specified %(name)s object @@ -338,18 +340,18 @@ def populate_docstrings(type_dict, target_dict, docstring, method): elif method == 'create': if obj_name == "textcombined": example1 = dict['tc'] + """ - >>> vcs.listelements('%(name)s') # should now contain the 'EXAMPLE_tt:::EXAMPLE_tto' %(name)s + >>> vcs.listelements('%(name)s') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' [...'EXAMPLE_tt:::EXAMPLE_tto'...]""" else: example1 = """ - >>> ex=vcs.create%(name)s('%(name)s_ex1') # Create %(name)s '%(name)s_ex1' that inherits from 'default' - >>> vcs.listelements('%(name)s') # should now contain the '%(name)s_ex1' %(name)s + >>> ex=vcs.create%(name)s('%(name)s_ex1') # Create '%(name)s_ex1'; inherits 'default' + >>> vcs.listelements('%(name)s') # should now contain '%(name)s_ex1' [...'%(name)s_ex1'...]""" dict['ex1'] = example1 % dict if dict['parent2']: example2 = """ - >>> ex2=vcs.create%(name)s('%(name)s_ex2','%(parent2)s') # create '%(name)s_ex2' from '%(parent2)s' template - >>> vcs.listelements('%(name)s') # should now contain the '%(name)s_ex2' %(name)s + >>> ex2=vcs.create%(name)s('%(name)s_ex2','%(parent2)s') # create '%(name)s_ex2'; inherits '%(parent2)s' + >>> vcs.listelements('%(name)s') # should now contain '%(name)s_ex2' [...'%(name)s_ex2'...]""" dict['ex2'] = example2 % dict elif method == 'script': From 58e2bf2b318caa1214f2044ffdee6d0664cbff52 Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 13 Dec 2016 09:29:11 -0800 Subject: [PATCH 15/45] Adding doctests/documentation where necessary. Ran doctests and updated logs. --- docs/doctest_info/Canvas.md | 313 ++++---- docs/doctest_info/Canvas.report | 914 ++++++++++++++++-------- docs/doctest_info/bars.png | Bin 36999 -> 36717 bytes docs/doctest_info/colormap.md | 6 +- docs/doctest_info/colormap.report | 6 +- docs/doctest_info/manageElements.md | 73 +- docs/doctest_info/manageElements.report | 154 ++-- docs/doctest_info/queries.md | 13 + docs/doctest_info/queries.report | 29 +- docs/doctest_info/template.md | 14 +- docs/doctest_info/template.report | 14 +- docs/doctest_info/textcombined.md | 13 + docs/doctest_info/textcombined.report | 27 +- vcs/Canvas.py | 99 ++- 14 files changed, 1081 insertions(+), 594 deletions(-) diff --git a/docs/doctest_info/Canvas.md b/docs/doctest_info/Canvas.md index 2c077cdf1..3bf470aa5 100644 --- a/docs/doctest_info/Canvas.md +++ b/docs/doctest_info/Canvas.md @@ -1,45 +1,91 @@ -vcs.Canvas.Canvas.drawtext +vcs.Canvas.Canvas.canvasid -------------------------- ```python Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + a.canvasid() +Expected nothing +Got: + 2 +``` + +vcs.Canvas.Canvas.check_name_source +----------------------------------- +```python +Failed example: + cns('polar','quick','boxfill') # is 'polar' boxfill taken? Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "", line 1, in + cns('polar','quick','boxfill') # is 'polar' boxfill taken? + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists + vcsError: Error boxfill object named polar already exists ``` -vcs.Canvas.Canvas.ffmpeg ------------------------- +vcs.Canvas.Canvas.clean_auto_generated_objects +---------------------------------------------- ```python Failed example: - for i in range(10): # create a number of pngs to use for an mpeg - a.clear() - if (i%2): - a.plot(u,v) - else: - a.plot(v,u) - a.png('my_png__%i' % i) - png_files.append('my_png__%i.png' % i) + a.plot(array) Expected nothing Got: - - - - - - - - - - + +``` + +vcs.Canvas.Canvas.clean_auto_generated_objects +---------------------------------------------- +```python +Failed example: + boxes == new_boxes +Expected: + True +Got: + False +``` + +vcs.Canvas.Canvas.createtext +---------------------------- +```python +Failed example: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expected nothing +Got: + +``` + +vcs.Canvas.Canvas.drawtext +-------------------------- +```python +Failed example: + vcs.createtextcombined('draw_tt', 'qa', 'draw_tto', '7left') +Expected nothing +Got: + +``` + +vcs.Canvas.Canvas.drawtext +-------------------------- +```python +Failed example: + tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2353, in drawtextcombined + t.string = string + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 286, in _setstring + self.Tt.string = value + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 307, in _setstring + raise ValueError('Must be a string or a list of strings.') + ValueError: Must be a string or a list of strings. ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -51,7 +97,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -63,7 +109,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -77,158 +123,83 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.gettaylordiagram ---------------------------------- ```python Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + a.taylordiagram(ex) # plot using specified taylordiagram object Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars + a.taylordiagram(ex) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1306, in taylordiagram + arglist = _determine_arg_list('taylordiagram', args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list + arglist[igraphics_method]) + vcsError: Graphics method taylordiagram requires 1 slab. ``` -vcs.Canvas.Canvas.gettextcombined +vcs.Canvas.Canvas.initLogoDrawing --------------------------------- ```python Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists + a.plot(array) # should have logo in lower right corner +Expected nothing +Got: + ``` -vcs.Canvas.Canvas.objecthelp ----------------------------- +vcs.Canvas.Canvas.isinfile +-------------------------- ```python Failed example: - a.objecthelp(ln) # This will print out information on how to use ln + a.isinfile(box, 'deft_box.py') +Expected: + 1 +Got nothing +``` + +vcs.Canvas.Canvas.isopened +-------------------------- +```python +Failed example: + a.plot(array) Expected nothing Got: - - The Line object allows the manipulation of line type, width, color index, - view port, world coordinates, and (x,y) points. - - This class is used to define an line table entry used in VCS, or it - can be used to change some or all of the line attributes in an - existing line table entry. - - .. describe:: Useful Functions: - - .. code-block:: python - - # VCS Canvas Constructor - a=vcs.init() - # Show predefined line objects - a.show('line') - # Will list all the line attribute values - ln.list() - # Updates the VCS Canvas at user's request - a.update() - - .. describe:: Create a new instance of line: - - .. code-block:: python - - # Copies content of 'red' to 'new' - ln=a.createline('new','red') - # Copies content of 'default' to 'new' - ln=a.createline('new') - - .. describe:: Modify an existing line: - - * Get a line object 'ln' to manipulate: - - .. code-block:: python - - ln=a.getline('red') - - * Set line color: - - .. code-block:: python - - # Range from 1 to 256 - ln.color=100 - - * Set line width: - - .. code-block:: python - - # Range from 1 to 300 - ln.width=100 - - * Specify the line type: - - .. code-block:: python - - # Same as ln.type=0 - ln.type='solid' - # Same as ln.type=1 - ln.type='dash' - # Same as ln.type=2 - ln.type='dot' - # Same as ln.type=3 - ln.type='dash-dot' - # Same as ln.type=4 - ln.type='long-dash' - - * Set the graphics priority on the canvas: - - .. code-block:: python - - ln.priority=1 - # FloatType [0,1]x[0,1] - ln.viewport=[0, 1.0, 0,1.0] - # FloatType [#,#]x[#,#] - ln.worldcoordinate=[0,1.0,0,1.0] - - * Set line x and y values: - - .. code-block:: python - - # List of FloatTypes - ln.x=[[0,.1,.2], [.3,.4,.5]] - # List of FloatTypes - ln.y=[[.5,.4,.3], [.2,.1,0]] - + ``` -vcs.Canvas.Canvas.put_png_on_canvas ------------------------------------ +vcs.Canvas.Canvas.return_display_names +-------------------------------------- ```python Failed example: - a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas + a.plot(array) +Expected nothing +Got: + +``` + +vcs.Canvas.Canvas.setdefaultfont +-------------------------------- +```python +Failed example: + a.setdefaultfont('Times') Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs - File "", line 1, in - a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas - AttributeError: 'Canvas' object has no attribute 'put_on_png_on_canvas' + File "", line 1, in + a.setdefaultfont('Times') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5910, in setdefaultfont + return self.copyfontto(font, 1) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5890, in copyfontto + return self.canvas.copyfontto(*(index1, index2)) + AttributeError: 'module' object has no attribute 'copyfontto' ``` Missing Doctests @@ -311,38 +282,20 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.canvas``` -:x:``` vcs.Canvas.Canvas.canvasid``` - -:x:``` vcs.Canvas.Canvas.canvasinfo``` - :x:``` vcs.Canvas.Canvas.cgm``` -:x:``` vcs.Canvas.Canvas.change_display_graphic_method``` - -:x:``` vcs.Canvas.Canvas.check_name_source``` - -:x:``` vcs.Canvas.Canvas.clean_auto_generated_objects``` - :x:``` vcs.Canvas.Canvas.configure``` :x:``` vcs.Canvas.Canvas.copyfontto``` :x:``` vcs.Canvas.Canvas.dual_scalar3d``` -:x:``` vcs.Canvas.Canvas.dummy_user_action``` - :x:``` vcs.Canvas.Canvas.endconfigure``` :x:``` vcs.Canvas.Canvas.get1d``` :x:``` vcs.Canvas.Canvas.get_selected_display``` -:x:``` vcs.Canvas.Canvas.getantialiasing``` - -:x:``` vcs.Canvas.Canvas.getcolormapname``` - -:x:``` vcs.Canvas.Canvas.getcontinentsline``` - :x:``` vcs.Canvas.Canvas.getfontname``` :x:``` vcs.Canvas.Canvas.getfontnumber``` @@ -355,18 +308,10 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.gs``` -:x:``` vcs.Canvas.Canvas.initLogoDrawing``` - :x:``` vcs.Canvas.Canvas.interact``` -:x:``` vcs.Canvas.Canvas.isinfile``` - -:x:``` vcs.Canvas.Canvas.isopened``` - :x:``` vcs.Canvas.Canvas.isplottinggridded``` -:x:``` vcs.Canvas.Canvas.match_color``` - :x:``` vcs.Canvas.Canvas.mode``` :x:``` vcs.Canvas.Canvas.onClosing``` @@ -379,14 +324,8 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.processParameterChange``` -:x:``` vcs.Canvas.Canvas.raisecanvas``` - :x:``` vcs.Canvas.Canvas.removeP``` -:x:``` vcs.Canvas.Canvas.remove_display_name``` - -:x:``` vcs.Canvas.Canvas.return_display_names``` - :x:``` vcs.Canvas.Canvas.savecontinentstype``` :x:``` vcs.Canvas.Canvas.scalar3d``` @@ -395,14 +334,8 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.setAnimationStepper``` -:x:``` vcs.Canvas.Canvas.setantialiasing``` - -:x:``` vcs.Canvas.Canvas.setdefaultfont``` - :x:``` vcs.Canvas.Canvas.start``` -:x:``` vcs.Canvas.Canvas.switchfonts``` - :x:``` vcs.Canvas.Canvas.updateorientation``` :x:``` vcs.Canvas.Canvas.user_actions``` diff --git a/docs/doctest_info/Canvas.report b/docs/doctest_info/Canvas.report index 55c47c182..7d92e68d3 100644 --- a/docs/doctest_info/Canvas.report +++ b/docs/doctest_info/Canvas.report @@ -69,6 +69,163 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + a.canvasid() +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4529, in vcs.Canvas.Canvas.canvasid +Failed example: + a.canvasid() +Expected nothing +Got: + 2 +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ci=a.canvasinfo() +Expecting nothing +ok +Trying: + keys=a.canvasinfo().keys() +Expecting nothing +ok +Trying: + keys.sort() +Expecting nothing +ok +Trying: + for key in keys: + print key, str(ci[key]) +Expecting: + depth ... + height ... + mapstate ... + width ... + x ... + y ... +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + cdgm=a.change_display_graphic_method # alias long name +Expecting nothing +ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + disp=a.plot(array) +Expecting nothing +ok +Trying: + a.show('boxfill') # list boxfill names +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + cdgm(disp, 'boxfill', 'polar') # change graphics method +Expecting nothing +ok +Trying: + cns=vcs.check_name_source # alias for long function name +Expecting nothing +ok +Trying: + vcs.show('boxfill') +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + cns('polar','quick','boxfill') # is 'polar' boxfill taken? +Expecting: + vcsError: Error boxfill object named polar already exists +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1228, in vcs.Canvas.Canvas.check_name_source +Failed example: + cns('polar','quick','boxfill') # is 'polar' boxfill taken? +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + cns('polar','quick','boxfill') # is 'polar' boxfill taken? + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error boxfill object named polar already exists +Trying: + cns('NEW', 'quick', 'boxfill') # 'NEW' should be available... +Expecting: + ('NEW', 'quick') +ok +Trying: + cns(None, 'default', 'boxfill') # generate unique boxfill name +Expecting: + ('__boxfill_...', 'default') +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + boxes=vcs.listelements('boxfill') # initial boxfill names +Expecting nothing +ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1144, in vcs.Canvas.Canvas.clean_auto_generated_objects +Failed example: + a.plot(array) +Expected nothing +Got: + +Trying: + new_boxes=a.listelements('boxfill') # has new names +Expecting nothing +ok +Trying: + boxes == new_boxes # should not be the same +Expecting: + False +ok +Trying: + a.clean_auto_generated_objects() +Expecting nothing +ok +Trying: + new_boxes=a.listelements('boxfill') # back to initial state +Expecting nothing +ok +Trying: + boxes == new_boxes +Expecting: + True +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1150, in vcs.Canvas.Canvas.clean_auto_generated_objects +Failed example: + boxes == new_boxes +Expected: + True +Got: + False +Trying: + a=vcs.init() +Expecting nothing +ok Trying: array = [range(1, 11) for _ in range(1, 11)] Expecting nothing @@ -107,15 +264,7 @@ Expecting: *******************End 1d Names List********************** ok Trying: - oneD_default = vcs.create1d() # inherit default, name generated -Expecting nothing -ok -Trying: - oneD_named = vcs.create1d("one_D") # inherit default, name "one_D" -Expecting nothing -ok -Trying: - new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" + blue = vcs.get1d('blue_yxvsx') Expecting nothing ok Trying: @@ -126,11 +275,11 @@ Expecting: *******************End 3d_dual_scalar Names List********************** ok Trying: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create '3d_dual_scalar_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('3d_dual_scalar') # should now contain the '3d_dual_scalar_ex1' 3d_dual_scalar + vcs.listelements('3d_dual_scalar') # should now contain '3d_dual_scalar_ex1' Expecting: [...'3d_dual_scalar_ex1'...] ok @@ -142,11 +291,11 @@ Expecting: *******************End 3d_scalar Names List********************** ok Trying: - ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' + ex=vcs.create3d_scalar('3d_scalar_ex1') # Create '3d_scalar_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('3d_scalar') # should now contain the '3d_scalar_ex1' 3d_scalar + vcs.listelements('3d_scalar') # should now contain '3d_scalar_ex1' Expecting: [...'3d_scalar_ex1'...] ok @@ -158,11 +307,11 @@ Expecting: *******************End 3d_vector Names List********************** ok Trying: - ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' + ex=vcs.create3d_vector('3d_vector_ex1') # Create '3d_vector_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('3d_vector') # should now contain the '3d_vector_ex1' 3d_vector + vcs.listelements('3d_vector') # should now contain '3d_vector_ex1' Expecting: [...'3d_vector_ex1'...] ok @@ -174,20 +323,20 @@ Expecting: *******************End Boxfill Names List********************** ok Trying: - ex=vcs.createboxfill('boxfill_ex1') # Create boxfill 'boxfill_ex1' that inherits from 'default' + ex=vcs.createboxfill('boxfill_ex1') # Create 'boxfill_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('boxfill') # should now contain the 'boxfill_ex1' boxfill + vcs.listelements('boxfill') # should now contain 'boxfill_ex1' Expecting: [...'boxfill_ex1'...] ok Trying: - ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2' from 'polar' template + ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2'; inherits 'polar' Expecting nothing ok Trying: - vcs.listelements('boxfill') # should now contain the 'boxfill_ex2' boxfill + vcs.listelements('boxfill') # should now contain 'boxfill_ex2' Expecting: [...'boxfill_ex2'...] ok @@ -199,20 +348,20 @@ Expecting: *******************End Colormap Names List********************** ok Trying: - ex=vcs.createcolormap('colormap_ex1') # Create colormap 'colormap_ex1' that inherits from 'default' + ex=vcs.createcolormap('colormap_ex1') # Create 'colormap_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('colormap') # should now contain the 'colormap_ex1' colormap + vcs.listelements('colormap') # should now contain 'colormap_ex1' Expecting: [...'colormap_ex1'...] ok Trying: - ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2' from 'rainbow' template + ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2'; inherits 'rainbow' Expecting nothing ok Trying: - vcs.listelements('colormap') # should now contain the 'colormap_ex2' colormap + vcs.listelements('colormap') # should now contain 'colormap_ex2' Expecting: [...'colormap_ex2'...] ok @@ -224,11 +373,11 @@ Expecting: *******************End Fillarea Names List********************** ok Trying: - ex=vcs.createfillarea('fillarea_ex1') # Create fillarea 'fillarea_ex1' that inherits from 'default' + ex=vcs.createfillarea('fillarea_ex1') # Create 'fillarea_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('fillarea') # should now contain the 'fillarea_ex1' fillarea + vcs.listelements('fillarea') # should now contain 'fillarea_ex1' Expecting: [...'fillarea_ex1'...] ok @@ -240,20 +389,20 @@ Expecting: *******************End Isofill Names List********************** ok Trying: - ex=vcs.createisofill('isofill_ex1') # Create isofill 'isofill_ex1' that inherits from 'default' + ex=vcs.createisofill('isofill_ex1') # Create 'isofill_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('isofill') # should now contain the 'isofill_ex1' isofill + vcs.listelements('isofill') # should now contain 'isofill_ex1' Expecting: [...'isofill_ex1'...] ok Trying: - ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2' from 'polar' template + ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2'; inherits 'polar' Expecting nothing ok Trying: - vcs.listelements('isofill') # should now contain the 'isofill_ex2' isofill + vcs.listelements('isofill') # should now contain 'isofill_ex2' Expecting: [...'isofill_ex2'...] ok @@ -265,20 +414,20 @@ Expecting: *******************End Isoline Names List********************** ok Trying: - ex=vcs.createisoline('isoline_ex1') # Create isoline 'isoline_ex1' that inherits from 'default' + ex=vcs.createisoline('isoline_ex1') # Create 'isoline_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('isoline') # should now contain the 'isoline_ex1' isoline + vcs.listelements('isoline') # should now contain 'isoline_ex1' Expecting: [...'isoline_ex1'...] ok Trying: - ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2' from 'polar' template + ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2'; inherits 'polar' Expecting nothing ok Trying: - vcs.listelements('isoline') # should now contain the 'isoline_ex2' isoline + vcs.listelements('isoline') # should now contain 'isoline_ex2' Expecting: [...'isoline_ex2'...] ok @@ -290,20 +439,20 @@ Expecting: *******************End Line Names List********************** ok Trying: - ex=vcs.createline('line_ex1') # Create line 'line_ex1' that inherits from 'default' + ex=vcs.createline('line_ex1') # Create 'line_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('line') # should now contain the 'line_ex1' line + vcs.listelements('line') # should now contain 'line_ex1' Expecting: [...'line_ex1'...] ok Trying: - ex2=vcs.createline('line_ex2','red') # create 'line_ex2' from 'red' template + ex2=vcs.createline('line_ex2','red') # create 'line_ex2'; inherits 'red' Expecting nothing ok Trying: - vcs.listelements('line') # should now contain the 'line_ex2' line + vcs.listelements('line') # should now contain 'line_ex2' Expecting: [...'line_ex2'...] ok @@ -315,20 +464,20 @@ Expecting: *******************End Marker Names List********************** ok Trying: - ex=vcs.createmarker('marker_ex1') # Create marker 'marker_ex1' that inherits from 'default' + ex=vcs.createmarker('marker_ex1') # Create 'marker_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('marker') # should now contain the 'marker_ex1' marker + vcs.listelements('marker') # should now contain 'marker_ex1' Expecting: [...'marker_ex1'...] ok Trying: - ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2' from 'red' template + ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2'; inherits 'red' Expecting nothing ok Trying: - vcs.listelements('marker') # should now contain the 'marker_ex2' marker + vcs.listelements('marker') # should now contain 'marker_ex2' Expecting: [...'marker_ex2'...] ok @@ -340,20 +489,20 @@ Expecting: *******************End Meshfill Names List********************** ok Trying: - ex=vcs.createmeshfill('meshfill_ex1') # Create meshfill 'meshfill_ex1' that inherits from 'default' + ex=vcs.createmeshfill('meshfill_ex1') # Create 'meshfill_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('meshfill') # should now contain the 'meshfill_ex1' meshfill + vcs.listelements('meshfill') # should now contain 'meshfill_ex1' Expecting: [...'meshfill_ex1'...] ok Trying: - ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2' from 'a_polar_meshfill' template + ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2'; inherits 'a_polar_meshfill' Expecting nothing ok Trying: - vcs.listelements('meshfill') # should now contain the 'meshfill_ex2' meshfill + vcs.listelements('meshfill') # should now contain 'meshfill_ex2' Expecting: [...'meshfill_ex2'...] ok @@ -365,20 +514,20 @@ Expecting: *******************End Projection Names List********************** ok Trying: - ex=vcs.createprojection('projection_ex1') # Create projection 'projection_ex1' that inherits from 'default' + ex=vcs.createprojection('projection_ex1') # Create 'projection_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('projection') # should now contain the 'projection_ex1' projection + vcs.listelements('projection') # should now contain 'projection_ex1' Expecting: [...'projection_ex1'...] ok Trying: - ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2' from 'orthographic' template + ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2'; inherits 'orthographic' Expecting nothing ok Trying: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection + vcs.listelements('projection') # should now contain 'projection_ex2' Expecting: [...'projection_ex2'...] ok @@ -390,11 +539,11 @@ Expecting: *******************End Scatter Names List********************** ok Trying: - ex=vcs.createscatter('scatter_ex1') # Create scatter 'scatter_ex1' that inherits from 'default' + ex=vcs.createscatter('scatter_ex1') # Create 'scatter_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('scatter') # should now contain the 'scatter_ex1' scatter + vcs.listelements('scatter') # should now contain 'scatter_ex1' Expecting: [...'scatter_ex1'...] ok @@ -406,11 +555,11 @@ Expecting: *******************End Taylordiagram Names List********************** ok Trying: - ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create taylordiagram 'taylordiagram_ex1' that inherits from 'default' + ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create 'taylordiagram_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('taylordiagram') # should now contain the 'taylordiagram_ex1' taylordiagram + vcs.listelements('taylordiagram') # should now contain 'taylordiagram_ex1' Expecting: [...'taylordiagram_ex1'...] ok @@ -422,20 +571,20 @@ Expecting: *******************End Template Names List********************** ok Trying: - ex=vcs.createtemplate('template_ex1') # Create template 'template_ex1' that inherits from 'default' + ex=vcs.createtemplate('template_ex1') # Create 'template_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('template') # should now contain the 'template_ex1' template + vcs.listelements('template') # should now contain 'template_ex1' Expecting: [...'template_ex1'...] ok Trying: - ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2' from 'polar' template + ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2'; inherits 'polar' Expecting nothing ok Trying: - vcs.listelements('template') # should now contain the 'template_ex2' template + vcs.listelements('template') # should now contain 'template_ex2' Expecting: [...'template_ex2'...] ok @@ -447,12 +596,23 @@ Expecting: *******************End Textcombined Names List********************** ok Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Expecting: - -ok + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2199, in vcs.Canvas.Canvas.createtext +Failed example: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expected nothing +Got: + Trying: - vcs.listelements('textcombined') # should now contain the 'EXAMPLE_tt:::EXAMPLE_tto' textcombined + vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: [...'EXAMPLE_tt:::EXAMPLE_tto'...] ok @@ -464,20 +624,20 @@ Expecting: *******************End Textorientation Names List********************** ok Trying: - ex=vcs.createtextorientation('textorientation_ex1') # Create textorientation 'textorientation_ex1' that inherits from 'default' + ex=vcs.createtextorientation('textorientation_ex1') # Create 'textorientation_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('textorientation') # should now contain the 'textorientation_ex1' textorientation + vcs.listelements('textorientation') # should now contain 'textorientation_ex1' Expecting: [...'textorientation_ex1'...] ok Trying: - ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2' from 'bigger' template + ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2'; inherits 'bigger' Expecting nothing ok Trying: - vcs.listelements('textorientation') # should now contain the 'textorientation_ex2' textorientation + vcs.listelements('textorientation') # should now contain 'textorientation_ex2' Expecting: [...'textorientation_ex2'...] ok @@ -489,20 +649,20 @@ Expecting: *******************End Texttable Names List********************** ok Trying: - ex=vcs.createtexttable('texttable_ex1') # Create texttable 'texttable_ex1' that inherits from 'default' + ex=vcs.createtexttable('texttable_ex1') # Create 'texttable_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('texttable') # should now contain the 'texttable_ex1' texttable + vcs.listelements('texttable') # should now contain 'texttable_ex1' Expecting: [...'texttable_ex1'...] ok Trying: - ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2' from 'bigger' template + ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2'; inherits 'bigger' Expecting nothing ok Trying: - vcs.listelements('texttable') # should now contain the 'texttable_ex2' texttable + vcs.listelements('texttable') # should now contain 'texttable_ex2' Expecting: [...'texttable_ex2'...] ok @@ -514,11 +674,11 @@ Expecting: *******************End Vector Names List********************** ok Trying: - ex=vcs.createvector('vector_ex1') # Create vector 'vector_ex1' that inherits from 'default' + ex=vcs.createvector('vector_ex1') # Create 'vector_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('vector') # should now contain the 'vector_ex1' vector + vcs.listelements('vector') # should now contain 'vector_ex1' Expecting: [...'vector_ex1'...] ok @@ -530,11 +690,11 @@ Expecting: *******************End Xvsy Names List********************** ok Trying: - ex=vcs.createxvsy('xvsy_ex1') # Create xvsy 'xvsy_ex1' that inherits from 'default' + ex=vcs.createxvsy('xvsy_ex1') # Create 'xvsy_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('xvsy') # should now contain the 'xvsy_ex1' xvsy + vcs.listelements('xvsy') # should now contain 'xvsy_ex1' Expecting: [...'xvsy_ex1'...] ok @@ -546,11 +706,11 @@ Expecting: *******************End Xyvsy Names List********************** ok Trying: - ex=vcs.createxyvsy('xyvsy_ex1') # Create xyvsy 'xyvsy_ex1' that inherits from 'default' + ex=vcs.createxyvsy('xyvsy_ex1') # Create 'xyvsy_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('xyvsy') # should now contain the 'xyvsy_ex1' xyvsy + vcs.listelements('xyvsy') # should now contain 'xyvsy_ex1' Expecting: [...'xyvsy_ex1'...] ok @@ -562,11 +722,11 @@ Expecting: *******************End Yxvsx Names List********************** ok Trying: - ex=vcs.createyxvsx('yxvsx_ex1') # Create yxvsx 'yxvsx_ex1' that inherits from 'default' + ex=vcs.createyxvsx('yxvsx_ex1') # Create 'yxvsx_ex1'; inherits 'default' Expecting nothing ok Trying: - vcs.listelements('yxvsx') # should now contain the 'yxvsx_ex1' yxvsx + vcs.listelements('yxvsx') # should now contain 'yxvsx_ex1' Expecting: [...'yxvsx_ex1'...] ok @@ -697,32 +857,49 @@ Expecting: *******************End Texttable Names List********************** ok Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + vcs.createtextcombined('draw_tt', 'qa', 'draw_tto', '7left') Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2260, in vcs.Canvas.Canvas.drawtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2299, in vcs.Canvas.Canvas.drawtext Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + vcs.createtextcombined('draw_tt', 'qa', 'draw_tto', '7left') +Expected nothing +Got: + +Trying: + tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2300, in vcs.Canvas.Canvas.drawtext +Failed example: + tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists + File "", line 1, in + tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2353, in drawtextcombined + t.string = string + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 286, in _setstring + self.Tt.string = value + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 307, in _setstring + raise ValueError('Must be a string or a list of strings.') + ValueError: Must be a string or a list of strings. Trying: - tc=a.drawtextcombined(Tt_name = 'EXAMPLE_tt', To_name='EXAMPLE_tto', - string='Hello example!', spacing=5, - color=242, priority=1, viewport=[0, 1.0, 0, 1.0], - worldcoordinate=[0,100, 0,50], - x=[0,20,40,60,80,100], - y=[0,10,20,30,40,50]) # plot textcombined object on canvas + a=vcs.init() Expecting nothing ok +Trying: + dua=a.dummy_user_action # alias long name +Expecting nothing +ok +Trying: + dua("falafel", 37, the_answer=42, barbara="streisand") +Expecting: + Arguments: ('falafel', 37) + Keywords: {'the_answer': 42, 'barbara': 'streisand'} +ok Trying: a=vcs.init() Expecting nothing @@ -793,30 +970,18 @@ Trying: a.plot(v,u) a.png('my_png__%i' % i) png_files.append('my_png__%i.png' % i) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4511, in vcs.Canvas.Canvas.ffmpeg -Failed example: - for i in range(10): # create a number of pngs to use for an mpeg - a.clear() - if (i%2): - a.plot(u,v) - else: - a.plot(v,u) - a.png('my_png__%i' % i) - png_files.append('my_png__%i.png' % i) -Expected nothing -Got: - - - - - - - - - - +Expecting: + + + + + + + + + + +ok Trying: a.ffmpeg('mymovie.mpeg',png_files) # generates from list of files Expecting: @@ -940,14 +1105,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1403, in vcs.Canvas.Canvas.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1435, in vcs.Canvas.Canvas.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -978,14 +1143,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1402, in vcs.Canvas.Canvas.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1434, in vcs.Canvas.Canvas.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1020,7 +1185,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1403, in vcs.Canvas.Canvas.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1435, in vcs.Canvas.Canvas.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -1029,7 +1194,20 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.setantialiasing(0) # turn off antialiasing +Expecting nothing +ok +Trying: + a.getantialiasing() # will return current antialiasing rate +Expecting: + 0 +ok Trying: a=vcs.init() Expecting nothing @@ -1107,6 +1285,39 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + a.show('colormap') +Expecting: + *******************Colormap Names List********************** + ... + *******************End Colormap Names List********************** +ok +Trying: + a.setcolormap('rainbow') # set canvas's default colormap +Expecting nothing +ok +Trying: + a.getcolormapname() +Expecting: + 'rainbow' +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + cl=a.getcontinentsline() # should be the default +Expecting nothing +ok +Trying: + cl.name +Expecting: + 'default' +ok +Trying: + a=vcs.init() +Expecting nothing +ok Trying: cont_type = a.getcontinentstype() # Get the continents type Expecting nothing @@ -1449,30 +1660,24 @@ Trying: Expecting nothing ok Trying: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + a.taylordiagram(ex) # plot using specified taylordiagram object Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1270, in vcs.Canvas.Canvas.gettaylordiagram +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1302, in vcs.Canvas.Canvas.gettaylordiagram Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + a.taylordiagram(ex) # plot using specified taylordiagram object Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars + a.taylordiagram(ex) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1306, in taylordiagram + arglist = _determine_arg_list('taylordiagram', args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list + arglist[igraphics_method]) + vcsError: Graphics method taylordiagram requires 1 slab. Trying: a=vcs.init() Expecting nothing @@ -1522,24 +1727,12 @@ Expecting: [...] ok Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2160, in vcs.Canvas.Canvas.gettextcombined -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1435, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expecting nothing +ok Trying: ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method Expecting nothing @@ -1740,6 +1933,51 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + a.initLogoDrawing() # will draw logo when plot is called +Expecting nothing +ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.plot(array) # should have logo in lower right corner +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1000, in vcs.Canvas.Canvas.initLogoDrawing +Failed example: + a.plot(array) # should have logo in lower right corner +Expected nothing +Got: + +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + box=a.getboxfill() +Expecting nothing +ok +Trying: + a.scriptobject(box, 'deft_box.py') +Expecting nothing +ok +Trying: + a.isinfile(box, 'deft_box.py') +Expecting: + 1 +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5570, in vcs.Canvas.Canvas.isinfile +Failed example: + a.isinfile(box, 'deft_box.py') +Expected: + 1 +Got nothing +Trying: + a=vcs.init() +Expecting nothing +ok Trying: array = [range(10) for _ in range(10)] Expecting nothing @@ -1840,6 +2078,34 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + a.isopened() # canvas defaults to being closed +Expecting: + False +ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5121, in vcs.Canvas.Canvas.isopened +Failed example: + a.plot(array) +Expected nothing +Got: + +Trying: + a.isopened() # plotting opened the canvas +Expecting: + True +ok +Trying: + a=vcs.init() +Expecting nothing +ok Trying: array = [range(10) for _ in range(10)] Expecting nothing @@ -1980,6 +2246,25 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + print vcs.match_color('salmon', 'magma') +Expecting: + 192 +ok +Trying: + print vcs.match_color('red', 'rainbow') +Expecting: + 242 +ok +Trying: + print vcs.match_color([0,0,100],'default') # closest color from blue +Expecting: + 52 +ok +Trying: + a=vcs.init() +Expecting nothing +ok Trying: a.show('meshfill') # Show all the existing meshfill graphics methods Expecting: @@ -2027,99 +2312,10 @@ Expecting nothing ok Trying: a.objecthelp(ln) # This will print out information on how to use ln -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 799, in vcs.Canvas.Canvas.objecthelp -Failed example: - a.objecthelp(ln) # This will print out information on how to use ln -Expected nothing -Got: - - The Line object allows the manipulation of line type, width, color index, - view port, world coordinates, and (x,y) points. - - This class is used to define an line table entry used in VCS, or it - can be used to change some or all of the line attributes in an - existing line table entry. - - .. describe:: Useful Functions: - - .. code-block:: python - - # VCS Canvas Constructor - a=vcs.init() - # Show predefined line objects - a.show('line') - # Will list all the line attribute values - ln.list() - # Updates the VCS Canvas at user's request - a.update() - - .. describe:: Create a new instance of line: - - .. code-block:: python - - # Copies content of 'red' to 'new' - ln=a.createline('new','red') - # Copies content of 'default' to 'new' - ln=a.createline('new') - - .. describe:: Modify an existing line: - - * Get a line object 'ln' to manipulate: - - .. code-block:: python - - ln=a.getline('red') - - * Set line color: - - .. code-block:: python - - # Range from 1 to 256 - ln.color=100 - - * Set line width: - - .. code-block:: python - - # Range from 1 to 300 - ln.width=100 - - * Specify the line type: - - .. code-block:: python - - # Same as ln.type=0 - ln.type='solid' - # Same as ln.type=1 - ln.type='dash' - # Same as ln.type=2 - ln.type='dot' - # Same as ln.type=3 - ln.type='dash-dot' - # Same as ln.type=4 - ln.type='long-dash' - - * Set the graphics priority on the canvas: - - .. code-block:: python - - ln.priority=1 - # FloatType [0,1]x[0,1] - ln.viewport=[0, 1.0, 0,1.0] - # FloatType [#,#]x[#,#] - ln.worldcoordinate=[0,1.0,0,1.0] - - * Set line x and y values: - - .. code-block:: python - - # List of FloatTypes - ln.x=[[0,.1,.2], [.3,.4,.5]] - # List of FloatTypes - ln.y=[[.5,.4,.3], [.2,.1,0]] +Expecting: + ... The Line object ... +ok Trying: a=vcs.init() Expecting nothing @@ -2352,23 +2548,56 @@ Trying: Expecting nothing ok Trying: - a.clear() # clear the bars off the screen + a.clear() # clear the bars off the canvas Expecting nothing ok Trying: - a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas + a.put_png_on_canvas("bars.png") # put 'bars.png' on canvas Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4684, in vcs.Canvas.Canvas.put_png_on_canvas -Failed example: - a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.put_on_png_on_canvas("bars.png") # put 'bars.png' on Canvas - AttributeError: 'Canvas' object has no attribute 'put_on_png_on_canvas' +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.open() +Expecting nothing +ok +Trying: + a.raisecanvas() # canvas should now be at the top +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.return_display_names() # new canvas should have none +Expecting: + [] +ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + plot=a.plot(array) # store plot for reference to plot name +Expecting nothing +ok +Trying: + a.return_display_names() # has display name for new plot +Expecting: + [...] +ok +Trying: + a.remove_display_name(plot.name) +Expecting nothing +ok +Trying: + a.return_display_names() # should be empty again +Expecting: + [] +ok Trying: a=vcs.init() Expecting nothing @@ -2382,6 +2611,34 @@ Trying: Expecting: 'Removed isoline object dean' ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.return_display_names() # new canvas should have none +Expecting: + [] +ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.plot(array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4023, in vcs.Canvas.Canvas.return_display_names +Failed example: + a.plot(array) +Expected nothing +Got: + +Trying: + a.return_display_names() # has display name for new plot +Expecting: + [...] +ok Trying: b=vcs.createboxfill() Expecting nothing @@ -2455,6 +2712,19 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + a.setantialiasing(20) +Expecting nothing +ok +Trying: + a.getantialiasing() +Expecting: + 20 +ok +Trying: + a=vcs.init() +Expecting nothing +ok Trying: a.setbgoutputdimensions(width=11.5, height= 8.5) # US Legal Expecting nothing @@ -2568,6 +2838,33 @@ Trying: Expecting: ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.listelements('font') # show all font names +Expecting: + [...] +ok +Trying: + a.setdefaultfont('Times') +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5903, in vcs.Canvas.Canvas.setdefaultfont +Failed example: + a.setdefaultfont('Times') +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.setdefaultfont('Times') + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5910, in setdefaultfont + return self.copyfontto(font, 1) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5890, in copyfontto + return self.canvas.copyfontto(*(index1, index2)) + AttributeError: 'module' object has no attribute 'copyfontto' Trying: a=vcs.init() # Create a VCS Canvas instance, named 'a' Expecting nothing @@ -2636,6 +2933,35 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + maths1 = a.getfontnumber('Maths1') # store font number +Expecting nothing +ok +Trying: + maths2 = a.getfontnumber('Maths2') # store font number +Expecting nothing +ok +Trying: + a.switchfonts('Maths1','Maths2') # switch font numbers +Expecting nothing +ok +Trying: + new_maths1 = a.getfontnumber('Maths1') +Expecting nothing +ok +Trying: + new_maths2 = a.getfontnumber('Maths2') +Expecting nothing +ok +Trying: + maths1 == new_maths2 and maths2 == new_maths1 # check +Expecting: + True +ok +Trying: + a=vcs.init() +Expecting nothing +ok Trying: a.show('taylordiagram') # Show all the existing taylordiagram graphics methods Expecting: @@ -2950,7 +3276,7 @@ Trying: Expecting: ok -103 items had no tests: +84 items had no tests: vcs.Canvas vcs.Canvas.Canvas vcs.Canvas.Canvas._Canvas__new_elts @@ -2990,52 +3316,33 @@ ok vcs.Canvas.Canvas.animate vcs.Canvas.Canvas.animate_info vcs.Canvas.Canvas.canvas - vcs.Canvas.Canvas.canvasid - vcs.Canvas.Canvas.canvasinfo vcs.Canvas.Canvas.cgm - vcs.Canvas.Canvas.change_display_graphic_method - vcs.Canvas.Canvas.check_name_source - vcs.Canvas.Canvas.clean_auto_generated_objects vcs.Canvas.Canvas.configure vcs.Canvas.Canvas.copyfontto vcs.Canvas.Canvas.dual_scalar3d - vcs.Canvas.Canvas.dummy_user_action vcs.Canvas.Canvas.endconfigure vcs.Canvas.Canvas.get1d vcs.Canvas.Canvas.get_selected_display - vcs.Canvas.Canvas.getantialiasing - vcs.Canvas.Canvas.getcolormapname - vcs.Canvas.Canvas.getcontinentsline vcs.Canvas.Canvas.getfontname vcs.Canvas.Canvas.getfontnumber vcs.Canvas.Canvas.getplot vcs.Canvas.Canvas.gif vcs.Canvas.Canvas.grid vcs.Canvas.Canvas.gs - vcs.Canvas.Canvas.initLogoDrawing vcs.Canvas.Canvas.interact - vcs.Canvas.Canvas.isinfile - vcs.Canvas.Canvas.isopened vcs.Canvas.Canvas.isplottinggridded - vcs.Canvas.Canvas.match_color vcs.Canvas.Canvas.mode vcs.Canvas.Canvas.onClosing vcs.Canvas.Canvas.pause_time vcs.Canvas.Canvas.plot_annotation vcs.Canvas.Canvas.plot_filledcontinents vcs.Canvas.Canvas.processParameterChange - vcs.Canvas.Canvas.raisecanvas vcs.Canvas.Canvas.removeP - vcs.Canvas.Canvas.remove_display_name - vcs.Canvas.Canvas.return_display_names vcs.Canvas.Canvas.savecontinentstype vcs.Canvas.Canvas.scalar3d vcs.Canvas.Canvas.scriptrun vcs.Canvas.Canvas.setAnimationStepper - vcs.Canvas.Canvas.setantialiasing - vcs.Canvas.Canvas.setdefaultfont vcs.Canvas.Canvas.start - vcs.Canvas.Canvas.switchfonts vcs.Canvas.Canvas.updateorientation vcs.Canvas.Canvas.user_actions vcs.Canvas.Canvas.user_actions_names @@ -3054,11 +3361,13 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -93 items passed all tests: +107 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill + 5 tests in vcs.Canvas.Canvas.canvasinfo + 6 tests in vcs.Canvas.Canvas.change_display_graphic_method 4 tests in vcs.Canvas.Canvas.clear 4 tests in vcs.Canvas.Canvas.close - 4 tests in vcs.Canvas.Canvas.create1d + 2 tests in vcs.Canvas.Canvas.create1d 3 tests in vcs.Canvas.Canvas.create3d_dual_scalar 3 tests in vcs.Canvas.Canvas.create3d_scalar 3 tests in vcs.Canvas.Canvas.create3d_vector @@ -3074,7 +3383,6 @@ ok 3 tests in vcs.Canvas.Canvas.createscatter 3 tests in vcs.Canvas.Canvas.createtaylordiagram 5 tests in vcs.Canvas.Canvas.createtemplate - 3 tests in vcs.Canvas.Canvas.createtext 5 tests in vcs.Canvas.Canvas.createtextorientation 5 tests in vcs.Canvas.Canvas.createtexttable 3 tests in vcs.Canvas.Canvas.createvector @@ -3087,13 +3395,18 @@ ok 3 tests in vcs.Canvas.Canvas.drawlogooff 3 tests in vcs.Canvas.Canvas.drawlogoon 4 tests in vcs.Canvas.Canvas.drawmarker + 3 tests in vcs.Canvas.Canvas.dummy_user_action 9 tests in vcs.Canvas.Canvas.eps + 10 tests in vcs.Canvas.Canvas.ffmpeg 9 tests in vcs.Canvas.Canvas.fillarea 4 tests in vcs.Canvas.Canvas.flush 4 tests in vcs.Canvas.Canvas.geometry + 3 tests in vcs.Canvas.Canvas.getantialiasing 9 tests in vcs.Canvas.Canvas.getboxfill 4 tests in vcs.Canvas.Canvas.getcolorcell 4 tests in vcs.Canvas.Canvas.getcolormap + 4 tests in vcs.Canvas.Canvas.getcolormapname + 3 tests in vcs.Canvas.Canvas.getcontinentsline 2 tests in vcs.Canvas.Canvas.getcontinentstype 4 tests in vcs.Canvas.Canvas.getdrawlogo 4 tests in vcs.Canvas.Canvas.getfillarea @@ -3106,6 +3419,7 @@ ok 9 tests in vcs.Canvas.Canvas.getprojection 8 tests in vcs.Canvas.Canvas.getscatter 9 tests in vcs.Canvas.Canvas.gettemplate + 5 tests in vcs.Canvas.Canvas.gettextcombined 6 tests in vcs.Canvas.Canvas.gettextextent 4 tests in vcs.Canvas.Canvas.gettextorientation 4 tests in vcs.Canvas.Canvas.gettexttable @@ -3121,7 +3435,9 @@ ok 9 tests in vcs.Canvas.Canvas.line 2 tests in vcs.Canvas.Canvas.listelements 9 tests in vcs.Canvas.Canvas.marker + 4 tests in vcs.Canvas.Canvas.match_color 9 tests in vcs.Canvas.Canvas.meshfill + 3 tests in vcs.Canvas.Canvas.objecthelp 3 tests in vcs.Canvas.Canvas.open 2 tests in vcs.Canvas.Canvas.orientation 6 tests in vcs.Canvas.Canvas.pdf @@ -3130,10 +3446,14 @@ ok 8 tests in vcs.Canvas.Canvas.portrait 9 tests in vcs.Canvas.Canvas.postscript 6 tests in vcs.Canvas.Canvas.pstogif + 6 tests in vcs.Canvas.Canvas.put_png_on_canvas + 3 tests in vcs.Canvas.Canvas.raisecanvas + 7 tests in vcs.Canvas.Canvas.remove_display_name 3 tests in vcs.Canvas.Canvas.removeobject 2 tests in vcs.Canvas.Canvas.saveinitialfile 10 tests in vcs.Canvas.Canvas.scatter 4 tests in vcs.Canvas.Canvas.scriptobject + 3 tests in vcs.Canvas.Canvas.setantialiasing 3 tests in vcs.Canvas.Canvas.setbgoutputdimensions 11 tests in vcs.Canvas.Canvas.setcolorcell 5 tests in vcs.Canvas.Canvas.setcolormap @@ -3141,6 +3461,7 @@ ok 4 tests in vcs.Canvas.Canvas.setcontinentstype 6 tests in vcs.Canvas.Canvas.show 6 tests in vcs.Canvas.Canvas.svg + 7 tests in vcs.Canvas.Canvas.switchfonts 8 tests in vcs.Canvas.Canvas.taylordiagram 13 tests in vcs.Canvas.Canvas.text 13 tests in vcs.Canvas.Canvas.update @@ -3149,16 +3470,21 @@ ok 8 tests in vcs.Canvas.Canvas.xyvsy 8 tests in vcs.Canvas.Canvas.yxvsx ********************************************************************** -9 items had failures: - 1 of 4 in vcs.Canvas.Canvas.drawtext - 1 of 10 in vcs.Canvas.Canvas.ffmpeg +14 items had failures: + 1 of 2 in vcs.Canvas.Canvas.canvasid + 1 of 5 in vcs.Canvas.Canvas.check_name_source + 2 of 9 in vcs.Canvas.Canvas.clean_auto_generated_objects + 1 of 3 in vcs.Canvas.Canvas.createtext + 2 of 4 in vcs.Canvas.Canvas.drawtext 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram - 1 of 5 in vcs.Canvas.Canvas.gettextcombined - 1 of 3 in vcs.Canvas.Canvas.objecthelp - 1 of 6 in vcs.Canvas.Canvas.put_png_on_canvas -607 tests in 205 items. -598 passed and 9 failed. -***Test Failed*** 9 failures. + 1 of 4 in vcs.Canvas.Canvas.initLogoDrawing + 1 of 4 in vcs.Canvas.Canvas.isinfile + 1 of 5 in vcs.Canvas.Canvas.isopened + 1 of 5 in vcs.Canvas.Canvas.return_display_names + 1 of 3 in vcs.Canvas.Canvas.setdefaultfont +690 tests in 205 items. +674 passed and 16 failed. +***Test Failed*** 16 failures. diff --git a/docs/doctest_info/bars.png b/docs/doctest_info/bars.png index 8a32de3860c497bac2c5bc4e459dc6e36e31a0bd..2d0ac29d7092ad2cbdca17bce7beb5ab1d00d344 100644 GIT binary patch literal 36717 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", line 1, in cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5516, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5721, in createcolormap return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1732, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1785, in createcolormap Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error colormap object named example already exists ``` diff --git a/docs/doctest_info/colormap.report b/docs/doctest_info/colormap.report index 577f9bcb7..e00f56ab9 100644 --- a/docs/doctest_info/colormap.report +++ b/docs/doctest_info/colormap.report @@ -44,11 +44,11 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5516, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5721, in createcolormap return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1732, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1785, in createcolormap Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error colormap object named example already exists Trying: diff --git a/docs/doctest_info/manageElements.md b/docs/doctest_info/manageElements.md index 19e9902e7..58f2934ee 100644 --- a/docs/doctest_info/manageElements.md +++ b/docs/doctest_info/manageElements.md @@ -1,3 +1,19 @@ +vcs.manageElements.check_name_source +------------------------------------ +```python +Failed example: + cns('polar','quick','boxfill') # is 'polar' boxfill taken? +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + cns('polar','quick','boxfill') # is 'polar' boxfill taken? + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error boxfill object named polar already exists +``` + vcs.manageElements.createtext ----------------------------- ```python @@ -12,6 +28,19 @@ Got: *******************End Textcombined Names List********************** ``` +vcs.manageElements.createtext +----------------------------- +```python +Failed example: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expected nothing +Got: + +``` + vcs.manageElements.get3d_dual_scalar ------------------------------------ ```python @@ -21,7 +50,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -33,7 +62,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -47,7 +76,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.gettaylordiagram @@ -61,7 +90,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1274, in taylordiagram + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1306, in taylordiagram arglist = _determine_arg_list('taylordiagram', args) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list arglist[igraphics_method]) @@ -72,8 +101,6 @@ Missing Doctests ---------------- :x:``` vcs.manageElements``` -:x:``` vcs.manageElements.check_name_source``` - :x:``` vcs.manageElements.removeCp``` :x:``` vcs.manageElements.removeG``` @@ -84,5 +111,35 @@ Missing Doctests :x:``` vcs.manageElements.removeGXY``` -:x:``` vcs.manage``` -E \ No newline at end of file +:x:``` vcs.manageElements.removeGXy``` + +:x:``` vcs.manageElements.removeGYx``` + +:x:``` vcs.manageElements.removeGfb``` + +:x:``` vcs.manageElements.removeGfi``` + +:x:``` vcs.manageElements.removeGfm``` + +:x:``` vcs.manageElements.removeGi``` + +:x:``` vcs.manageElements.removeGtd``` + +:x:``` vcs.manageElements.removeGv``` + +:x:``` vcs.manageElements.removeP``` + +:x:``` vcs.manageElements.removeProj``` + +:x:``` vcs.manageElements.removeTc``` + +:x:``` vcs.manageElements.removeTf``` + +:x:``` vcs.manageElements.removeTl``` + +:x:``` vcs.manageElements.removeTm``` + +:x:``` vcs.manageElements.removeTo``` + +:x:``` vcs.manageElements.removeTt``` + diff --git a/docs/doctest_info/manageElements.report b/docs/doctest_info/manageElements.report index 6840515e7..35f9d34c8 100644 --- a/docs/doctest_info/manageElements.report +++ b/docs/doctest_info/manageElements.report @@ -1,3 +1,41 @@ +Trying: + cns=vcs.check_name_source # alias for long function name +Expecting nothing +ok +Trying: + vcs.show('boxfill') +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + cns('polar','quick','boxfill') # is 'polar' boxfill taken? +Expecting: + vcsError: Error boxfill object named polar already exists +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 42, in vcs.manageElements.check_name_source +Failed example: + cns('polar','quick','boxfill') # is 'polar' boxfill taken? +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + cns('polar','quick','boxfill') # is 'polar' boxfill taken? + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + raise vcsError("Error %s object named %s already exists" % (typ, name)) + vcsError: Error boxfill object named polar already exists +Trying: + cns('NEW', 'quick', 'boxfill') # 'NEW' should be available... +Expecting: + ('NEW', 'quick') +ok +Trying: + cns(None, 'default', 'boxfill') # generate unique boxfill name +Expecting: + ('__boxfill_...', 'default') +ok Trying: vcs.show('1d') Expecting: @@ -25,7 +63,7 @@ Expecting: *******************End 3d_dual_scalar Names List********************** ok Trying: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create '3d_dual_scalar_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -41,7 +79,7 @@ Expecting: *******************End 3d_scalar Names List********************** ok Trying: - ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' + ex=vcs.create3d_scalar('3d_scalar_ex1') # Create '3d_scalar_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -57,7 +95,7 @@ Expecting: *******************End 3d_vector Names List********************** ok Trying: - ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' + ex=vcs.create3d_vector('3d_vector_ex1') # Create '3d_vector_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -73,7 +111,7 @@ Expecting: *******************End Boxfill Names List********************** ok Trying: - ex=vcs.createboxfill('boxfill_ex1') # Create boxfill 'boxfill_ex1' that inherits from 'default' + ex=vcs.createboxfill('boxfill_ex1') # Create 'boxfill_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -82,7 +120,7 @@ Expecting: [...'boxfill_ex1'...] ok Trying: - ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2' from 'polar' template + ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2'; inherits 'polar' Expecting nothing ok Trying: @@ -98,7 +136,7 @@ Expecting: *******************End Colormap Names List********************** ok Trying: - ex=vcs.createcolormap('colormap_ex1') # Create colormap 'colormap_ex1' that inherits from 'default' + ex=vcs.createcolormap('colormap_ex1') # Create 'colormap_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -107,7 +145,7 @@ Expecting: [...'colormap_ex1'...] ok Trying: - ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2' from 'rainbow' template + ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2'; inherits 'rainbow' Expecting nothing ok Trying: @@ -123,7 +161,7 @@ Expecting: *******************End Fillarea Names List********************** ok Trying: - ex=vcs.createfillarea('fillarea_ex1') # Create fillarea 'fillarea_ex1' that inherits from 'default' + ex=vcs.createfillarea('fillarea_ex1') # Create 'fillarea_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -139,7 +177,7 @@ Expecting: *******************End Isofill Names List********************** ok Trying: - ex=vcs.createisofill('isofill_ex1') # Create isofill 'isofill_ex1' that inherits from 'default' + ex=vcs.createisofill('isofill_ex1') # Create 'isofill_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -148,7 +186,7 @@ Expecting: [...'isofill_ex1'...] ok Trying: - ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2' from 'polar' template + ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2'; inherits 'polar' Expecting nothing ok Trying: @@ -164,7 +202,7 @@ Expecting: *******************End Isoline Names List********************** ok Trying: - ex=vcs.createisoline('isoline_ex1') # Create isoline 'isoline_ex1' that inherits from 'default' + ex=vcs.createisoline('isoline_ex1') # Create 'isoline_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -173,7 +211,7 @@ Expecting: [...'isoline_ex1'...] ok Trying: - ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2' from 'polar' template + ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2'; inherits 'polar' Expecting nothing ok Trying: @@ -189,7 +227,7 @@ Expecting: *******************End Line Names List********************** ok Trying: - ex=vcs.createline('line_ex1') # Create line 'line_ex1' that inherits from 'default' + ex=vcs.createline('line_ex1') # Create 'line_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -198,7 +236,7 @@ Expecting: [...'line_ex1'...] ok Trying: - ex2=vcs.createline('line_ex2','red') # create 'line_ex2' from 'red' template + ex2=vcs.createline('line_ex2','red') # create 'line_ex2'; inherits 'red' Expecting nothing ok Trying: @@ -214,7 +252,7 @@ Expecting: *******************End Marker Names List********************** ok Trying: - ex=vcs.createmarker('marker_ex1') # Create marker 'marker_ex1' that inherits from 'default' + ex=vcs.createmarker('marker_ex1') # Create 'marker_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -223,7 +261,7 @@ Expecting: [...'marker_ex1'...] ok Trying: - ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2' from 'red' template + ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2'; inherits 'red' Expecting nothing ok Trying: @@ -239,7 +277,7 @@ Expecting: *******************End Meshfill Names List********************** ok Trying: - ex=vcs.createmeshfill('meshfill_ex1') # Create meshfill 'meshfill_ex1' that inherits from 'default' + ex=vcs.createmeshfill('meshfill_ex1') # Create 'meshfill_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -248,7 +286,7 @@ Expecting: [...'meshfill_ex1'...] ok Trying: - ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2' from 'a_polar_meshfill' template + ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2'; inherits 'a_polar_meshfill' Expecting nothing ok Trying: @@ -264,7 +302,7 @@ Expecting: *******************End Projection Names List********************** ok Trying: - ex=vcs.createprojection('projection_ex1') # Create projection 'projection_ex1' that inherits from 'default' + ex=vcs.createprojection('projection_ex1') # Create 'projection_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -273,7 +311,7 @@ Expecting: [...'projection_ex1'...] ok Trying: - ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2' from 'orthographic' template + ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2'; inherits 'orthographic' Expecting nothing ok Trying: @@ -289,7 +327,7 @@ Expecting: *******************End Scatter Names List********************** ok Trying: - ex=vcs.createscatter('scatter_ex1') # Create scatter 'scatter_ex1' that inherits from 'default' + ex=vcs.createscatter('scatter_ex1') # Create 'scatter_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -305,7 +343,7 @@ Expecting: *******************End Taylordiagram Names List********************** ok Trying: - ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create taylordiagram 'taylordiagram_ex1' that inherits from 'default' + ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create 'taylordiagram_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -321,7 +359,7 @@ Expecting: *******************End Template Names List********************** ok Trying: - ex=vcs.createtemplate('template_ex1') # Create template 'template_ex1' that inherits from 'default' + ex=vcs.createtemplate('template_ex1') # Create 'template_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -330,7 +368,7 @@ Expecting: [...'template_ex1'...] ok Trying: - ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2' from 'polar' template + ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2'; inherits 'polar' Expecting nothing ok Trying: @@ -345,7 +383,7 @@ Expecting: ... *******************End Textcombined Names List********************** ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1388, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1437, in vcs.manageElements.createtext Failed example: vcs.show('textcombined') # show all available textcombined Expected: @@ -355,6 +393,27 @@ Expected: Got: *******************Textcombined Names List********************** *******************End Textcombined Names List********************** +Trying: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1441, in vcs.manageElements.createtext +Failed example: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expected nothing +Got: + +Trying: + vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' +Expecting: + [...'EXAMPLE_tt:::EXAMPLE_tto'...] +ok Trying: vcs.show('textorientation') # show all available textorientation Expecting: @@ -363,7 +422,7 @@ Expecting: *******************End Textorientation Names List********************** ok Trying: - ex=vcs.createtextorientation('textorientation_ex1') # Create textorientation 'textorientation_ex1' that inherits from 'default' + ex=vcs.createtextorientation('textorientation_ex1') # Create 'textorientation_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -372,7 +431,7 @@ Expecting: [...'textorientation_ex1'...] ok Trying: - ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2' from 'bigger' template + ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2'; inherits 'bigger' Expecting nothing ok Trying: @@ -388,7 +447,7 @@ Expecting: *******************End Texttable Names List********************** ok Trying: - ex=vcs.createtexttable('texttable_ex1') # Create texttable 'texttable_ex1' that inherits from 'default' + ex=vcs.createtexttable('texttable_ex1') # Create 'texttable_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -397,7 +456,7 @@ Expecting: [...'texttable_ex1'...] ok Trying: - ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2' from 'bigger' template + ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2'; inherits 'bigger' Expecting nothing ok Trying: @@ -413,7 +472,7 @@ Expecting: *******************End Vector Names List********************** ok Trying: - ex=vcs.createvector('vector_ex1') # Create vector 'vector_ex1' that inherits from 'default' + ex=vcs.createvector('vector_ex1') # Create 'vector_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -429,7 +488,7 @@ Expecting: *******************End Xvsy Names List********************** ok Trying: - ex=vcs.createxvsy('xvsy_ex1') # Create xvsy 'xvsy_ex1' that inherits from 'default' + ex=vcs.createxvsy('xvsy_ex1') # Create 'xvsy_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -445,7 +504,7 @@ Expecting: *******************End Xyvsy Names List********************** ok Trying: - ex=vcs.createxyvsy('xyvsy_ex1') # Create xyvsy 'xyvsy_ex1' that inherits from 'default' + ex=vcs.createxyvsy('xyvsy_ex1') # Create 'xyvsy_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -461,7 +520,7 @@ Expecting: *******************End Yxvsx Names List********************** ok Trying: - ex=vcs.createyxvsx('yxvsx_ex1') # Create yxvsx 'yxvsx_ex1' that inherits from 'default' + ex=vcs.createyxvsx('yxvsx_ex1') # Create 'yxvsx_ex1'; inherits 'default' Expecting nothing ok Trying: @@ -514,14 +573,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1656, in vcs.manageElements.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1706, in vcs.manageElements.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -552,14 +611,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1615, in vcs.manageElements.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1664, in vcs.manageElements.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -594,7 +653,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1696, in vcs.manageElements.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1747, in vcs.manageElements.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -603,7 +662,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -952,7 +1011,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 255, in vcs.manageElements.gettaylordiagram +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 295, in vcs.manageElements.gettaylordiagram Failed example: a.taylordiagram(ex) # plot using specified taylordiagram object Exception raised: @@ -961,7 +1020,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1274, in taylordiagram + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1306, in taylordiagram arglist = _determine_arg_list('taylordiagram', args) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list arglist[igraphics_method]) @@ -1236,9 +1295,8 @@ Trying: vcs.setLineAttributes(new_1d, 'continents') Expecting nothing ok -23 items had no tests: +22 items had no tests: vcs.manageElements - vcs.manageElements.check_name_source vcs.manageElements.removeCp vcs.manageElements.removeG vcs.manageElements.removeG1d @@ -1305,13 +1363,13 @@ ok 3 tests in vcs.manageElements.removeobject 7 tests in vcs.manageElements.setLineAttributes ********************************************************************** -5 items had failures: +6 items had failures: + 1 of 5 in vcs.manageElements.check_name_source 2 of 3 in vcs.manageElements.createtext 1 of 8 in vcs.manageElements.get3d_dual_scalar 1 of 7 in vcs.manageElements.get3d_scalar 1 of 8 in vcs.manageElements.get3d_vector 1 of 7 in vcs.manageElements.gettaylordiagram -259 tests in 71 items. -253 passed and 6 failed. -***Test Failed*** 6 failures. -Done logging manageElements.md +264 tests in 71 items. +257 passed and 7 failed. +***Test Failed*** 7 failures. diff --git a/docs/doctest_info/queries.md b/docs/doctest_info/queries.md index d644390f2..0998d1c82 100644 --- a/docs/doctest_info/queries.md +++ b/docs/doctest_info/queries.md @@ -9,6 +9,19 @@ Got: 0 ``` +vcs.queries.istextcombined +-------------------------- +```python +Failed example: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expected nothing +Got: + +``` + Missing Doctests ---------------- :x:``` vcs.queries``` diff --git a/docs/doctest_info/queries.report b/docs/doctest_info/queries.report index 506d8d90c..928fef680 100644 --- a/docs/doctest_info/queries.report +++ b/docs/doctest_info/queries.report @@ -430,10 +430,21 @@ Trying: Expecting nothing ok Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Expecting: - -ok + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/queries.py", line ?, in vcs.queries.istextcombined +Failed example: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expected nothing +Got: + Trying: a.show('textcombined') # Show all available textcombined Expecting: @@ -572,7 +583,7 @@ Expecting: ok 1 items had no tests: vcs.queries -27 items passed all tests: +26 items passed all tests: 2 tests in vcs.queries.graphicsmethodlist 7 tests in vcs.queries.graphicsmethodtype 4 tests in vcs.queries.is1d @@ -593,7 +604,6 @@ ok 4 tests in vcs.queries.issecondaryobject 4 tests in vcs.queries.istaylordiagram 4 tests in vcs.queries.istemplate - 5 tests in vcs.queries.istextcombined 4 tests in vcs.queries.istextorientation 4 tests in vcs.queries.istexttable 4 tests in vcs.queries.isvector @@ -601,8 +611,9 @@ ok 4 tests in vcs.queries.isxyvsy 4 tests in vcs.queries.isyxvsx ********************************************************************** -1 items had failures: +2 items had failures: 1 of 6 in vcs.queries.isplot + 1 of 5 in vcs.queries.istextcombined 115 tests in 29 items. -114 passed and 1 failed. -***Test Failed*** 1 failures. +113 passed and 2 failed. +***Test Failed*** 2 failures. diff --git a/docs/doctest_info/template.md b/docs/doctest_info/template.md index 5c44f93f7..54f14e4b3 100644 --- a/docs/doctest_info/template.md +++ b/docs/doctest_info/template.md @@ -14,7 +14,7 @@ Exception raised: ["sample A","type B","thing C"],True) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2390, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2400, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' ``` @@ -30,9 +30,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists ``` @@ -62,9 +62,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists ``` @@ -94,9 +94,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists ``` diff --git a/docs/doctest_info/template.report b/docs/doctest_info/template.report index 680900fb7..915daf061 100644 --- a/docs/doctest_info/template.report +++ b/docs/doctest_info/template.report @@ -31,7 +31,7 @@ Exception raised: ["sample A","type B","thing C"],True) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2390, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2400, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' Trying: @@ -63,9 +63,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists Trying: @@ -111,9 +111,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists Trying: @@ -143,9 +143,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 79, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists Trying: diff --git a/docs/doctest_info/textcombined.md b/docs/doctest_info/textcombined.md index 760aa8e3a..164fa7601 100644 --- a/docs/doctest_info/textcombined.md +++ b/docs/doctest_info/textcombined.md @@ -1,3 +1,16 @@ +vcs.textcombined.Tc.script +-------------------------- +```python +Failed example: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expected nothing +Got: + +``` + vcs.textcombined.Tc.script -------------------------- ```python diff --git a/docs/doctest_info/textcombined.report b/docs/doctest_info/textcombined.report index 859cd5246..77dacb07a 100644 --- a/docs/doctest_info/textcombined.report +++ b/docs/doctest_info/textcombined.report @@ -3,10 +3,21 @@ Trying: Expecting nothing ok Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Expecting: - -ok + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 471, in vcs.textcombined.Tc.script +Failed example: + try: # try to create a new textcombined, in case none exist + vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + except: + pass +Expected nothing +Got: + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing @@ -15,7 +26,7 @@ Trying: ex.script('filename.py') # Append to a Python script named 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 474, in vcs.textcombined.Tc.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 476, in vcs.textcombined.Tc.script Failed example: ex.script('filename.py') # Append to a Python script named 'filename.py' Exception raised: @@ -98,7 +109,7 @@ ok vcs.textcombined.Tc.y ********************************************************************** 1 items had failures: - 1 of 5 in vcs.textcombined.Tc.script + 2 of 5 in vcs.textcombined.Tc.script 5 tests in 65 items. -4 passed and 1 failed. -***Test Failed*** 1 failures. +3 passed and 2 failed. +***Test Failed*** 2 failures. diff --git a/vcs/Canvas.py b/vcs/Canvas.py index aeb965cea..8189a41f8 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -797,6 +797,9 @@ def objecthelp(self, *arg): >>> a=vcs.init() >>> ln=a.getline('red') # Get a VCS line object >>> a.objecthelp(ln) # This will print out information on how to use ln + + ... The Line object ... + """ for x in arg: print getattr(x, "__doc__", "") @@ -2272,6 +2275,7 @@ def gettextextent(self, textobject): def match_color(self, color, colormap=None): # noqa return vcs.match_color(color, colormap) + match_color.__doc__ = vcs.utils.match_color.__doc__ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, font=1, spacing=2, expansion=100, color=241, @@ -4004,12 +4008,47 @@ def setAnimationStepper(self, stepper): self.backend.setAnimationStepper(stepper) def return_display_names(self, *args): + """ + Show the list of display names associated with all active plots + on the canvas. + + :Example: + + .. doctest:: canvas_return_display_name + + >>> a=vcs.init() + >>> a.return_display_names() # new canvas should have none + [] + >>> array=[range(10) for _ in range(10)] + >>> a.plot(array) + >>> a.return_display_names() # has display name for new plot + [...] + + :return: A list of the display names of images currently plotted + on the canvas. + :rtype: :py:class:`list` + """ return self.display_names def remove_display_name(self, *args): """ Removes a plotted item from the canvas. + :Example: + + .. doctest:: canvas_remove_display_name + + >>> a=vcs.init() + >>> a.return_display_names() # new canvas should have none + [] + >>> array=[range(10) for _ in range(10)] + >>> plot=a.plot(array) # store plot for reference to plot name + >>> a.return_display_names() # has display name for new plot + [...] + >>> a.remove_display_name(plot.name) + >>> a.return_display_names() # should be empty again + [] + :param args: Any number of display names to remove. :type args: list of :py:class:`str` """ @@ -4020,16 +4059,13 @@ def remove_display_name(self, *args): def cgm(self, file, mode='w'): """ - Export an image in CGM format. - - :Example: + .. deprecated:: - .. doctest:: canvas_cgm + Exporting images to CGM format is no longer supported. + To generate an image from the canvas, see + :py:func:`vcs.Canvas.Canvas.png` or :py:func:`vcs.Canvas.Canvas.svg` - >>> a=vcs.init() - >>> array=[range(10) for _ in range(10)] - >>> a.plot(array) - >>> a.cgm('bars.cgm') + Export an image in CGM format. :param file: Filename to save :param mode: Ignored. @@ -4324,7 +4360,8 @@ def grid(self, *args): .. admonition:: Not Yet Implemented - :py:func`vcs.Canvas.grid`_ does not work. + This function does not currently work. + It will be implemented in the future. """ p = self.canvas.grid(*args) @@ -4596,6 +4633,16 @@ def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): ... a.plot(v,u) ... a.png('my_png__%i' % i) ... png_files.append('my_png__%i.png' % i) + + + + + + + + + + >>> a.ffmpeg('mymovie.mpeg',png_files) # generates from list of files True >>> a.ffmpeg('mymovie.mpeg',png_files,bitrate=512) # generates mpeg at 512kbit @@ -5578,6 +5625,15 @@ def saveinitialfile(self): def raisecanvas(self, *args): """ Raise the VCS Canvas to the top of all open windows. + + :Example: + + .. doctest:: canvas_raisecanvas + + >>> a=vcs.init() + >>> a.open() + >>> a.raisecanvas() # canvas should now be at the top + """ return self.backend.raisecanvas(*args) @@ -5757,6 +5813,19 @@ def switchfonts(self, font1, font2): """ Switch the font numbers of two fonts. + :Example: + + .. doctest:: canvas_switchfonts + + >>> a=vcs.init() + >>> maths1 = a.getfontnumber('Maths1') # store font number + >>> maths2 = a.getfontnumber('Maths2') # store font number + >>> a.switchfonts('Maths1','Maths2') # switch font numbers + >>> new_maths1 = a.getfontnumber('Maths1') + >>> new_maths2 = a.getfontnumber('Maths2') + >>> maths1 == new_maths2 and maths2 == new_maths1 # check + True + :param font1: The first font :type font1: :py:class:`int` or str @@ -5787,16 +5856,12 @@ def switchfonts(self, font1, font2): def copyfontto(self, font1, font2): """ - Copy 'font1' into 'font2'. - - :Example: + .. admonition:: Not Yet Implemented - .. doctest:: canvas_copyfontto + This function does not currently work. + It will be added in the future. - >>> a=vcs.init() - >>> a.listelements('font') # show all font names - [...] - >>> a.copyfontto('Russian', 'Times') + Copy 'font1' into 'font2'. :param font1: Name/number of font to copy :type font1: :py:class:`str` or int From 56b73a6fa50f2b7a9ce4a557c2debcaa84ce0665 Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 13 Dec 2016 16:06:09 -0800 Subject: [PATCH 16/45] Fixing/adding doctests --- vcs/Canvas.py | 40 +++++++++++--------- vcs/Pboxeslines.py | 6 +-- vcs/colors.py | 4 +- vcs/manageElements.py | 5 +-- vcs/textcombined.py | 2 +- vcs/texttable.py | 2 +- vcs/utils.py | 86 ++++++++++++++++++++++++++++++++++++------- vcs/xmldocs.py | 19 ++++++++-- 8 files changed, 120 insertions(+), 44 deletions(-) diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 8189a41f8..d9d0e2a59 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -998,6 +998,8 @@ def initLogoDrawing(self): >>> a.initLogoDrawing() # will draw logo when plot is called >>> array=[range(10) for _ in range(10)] >>> a.plot(array) # should have logo in lower right corner + + """ self.drawLogo = self.enableLogo @@ -1139,15 +1141,18 @@ def clean_auto_generated_objects(self, type=None): .. doctest:: canvas_clean_auto_generated_objects >>> a=vcs.init() + >>> clean=a.clean_auto_generated_objects # alias long name + >>> clean() # clean possible old objects from vcs >>> boxes=vcs.listelements('boxfill') # initial boxfill names >>> array=[range(10) for _ in range(10)] >>> a.plot(array) + >>> new_boxes=a.listelements('boxfill') # has new names >>> boxes == new_boxes # should not be the same False - >>> a.clean_auto_generated_objects() + >>> clean() >>> new_boxes=a.listelements('boxfill') # back to initial state - >>> boxes == new_boxes + >>> boxes == new_boxes # should have the same contents True @@ -2292,12 +2297,15 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, .. doctest:: canvas_drawtextcombined >>> a=vcs.init() + >>> drawtc=a.drawtextcombined # alias long function name >>> a.show('texttable') # Show all the existing texttable objects *******************Texttable Names List********************** ... *******************End Texttable Names List********************** - >>> vcs.createtextcombined('draw_tt', 'qa', 'draw_tto', '7left') - >>> tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') + >>> vcs.createtextcombined('draw_tt','qa', 'draw_tto', '7left') + >>> msg=["Hello", "drawtextcombined!"] + >>> tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) + :param Tt_name: String name of a texttable object :type Tt_name: :py:class:`str` @@ -2331,8 +2339,9 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, Values must be floats between worldcoordinate[2] and worldcoordinate[3]. :type y: :py:class:`list` - :param bg: Boolean value. True => object drawn in background (not shown on canvas). - False => object shown on canvas. + :param bg: Boolean value indicating whether to draw in the background. + If True, object is drawn in background (not shown on canvas). + If False, object is drawn on canvas. :type bg: bool :returns: A texttable object @@ -4519,15 +4528,15 @@ def open(self, width=None, height=None, **kargs): def canvasid(self, *args): """ Get the ID of this canvas. - This ID number is found at the top of the VCS Canvas, as part of its title. + This ID number is found at the top of the VCS Canvas, + as part of its title. :Example: .. doctest:: canvas_canvasid >>> a=vcs.init() - >>> a.canvasid() - ... + >>> cid = a.canvasid() # store the canvas id :returns: The ID of the canvas on which canvasid() is called. :rtype: int @@ -5119,6 +5128,7 @@ def isopened(self): False >>> array=[range(10) for _ in range(10)] >>> a.plot(array) + >>> a.isopened() # plotting opened the canvas True @@ -5891,16 +5901,12 @@ def copyfontto(self, font1, font2): def setdefaultfont(self, font): """ - Sets the passed/def show font as the default font for vcs - - :Example: + .. admonition:: Not Yet Implemented - .. doctest:: canvas_setdefaultfont + This function does not currently work. + It will be implemented in the future. - >>> a=vcs.init() - >>> a.listelements('font') # show all font names - [...] - >>> a.setdefaultfont('Times') + Sets the passed/def show font as the default font for vcs :param font: Font name or index to use as default :type font: :py:class:`str` or :py:class:`int` diff --git a/vcs/Pboxeslines.py b/vcs/Pboxeslines.py index 7833bcf14..b948bf578 100755 --- a/vcs/Pboxeslines.py +++ b/vcs/Pboxeslines.py @@ -33,7 +33,7 @@ class Pbl(object): - ''' + """ The Template text object allows the manipulation of line type, width, and color index. This class is used to define a line table entry used in VCS, or it @@ -42,7 +42,7 @@ class Pbl(object): :Example: -:: + :: # Basic Usage Overview: @@ -84,7 +84,7 @@ class Pbl(object): ln.type='dash-dot' # Same as ln.type=4 ln.type='long-dash' -''' + """ ########################################################################## # # # Initialize the line attributes. # diff --git a/vcs/colors.py b/vcs/colors.py index 825ca03cc..afc8b5cd7 100644 --- a/vcs/colors.py +++ b/vcs/colors.py @@ -8,10 +8,10 @@ def matplotlib2vcs(cmap, vcs_name=None): Optional second argument: vcs_name, name of the resulting vcs colormap :param cmap: A matplotlib colormap or string name of a matplotlib colormap - :type cmap: str , matplotlib colormap + :type cmap: :py:class:`str` , matplotlib.cm :param vcs_name: String to set the name of the generated VCS colormap - :type vcs_name: str + :type vcs_name: :py:class:`str` :returns: A VCS colormap object :rtype: vcs.colormap.Cp diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 3890bf3a9..329fc9926 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -29,7 +29,6 @@ def check_name_source(name, source, typ): """Make sure it is a unique name for this type or generates a name for user. - :Example: .. doctest:: manageElements_check_name_source @@ -39,9 +38,7 @@ def check_name_source(name, source, typ): *******************Boxfill Names List********************** ... *******************End Boxfill Names List********************** - >>> cns('polar','quick','boxfill') # is 'polar' boxfill taken? - vcsError: Error boxfill object named polar already exists - >>> cns('NEW', 'quick', 'boxfill') # 'NEW' should be available... + >>> cns('NEW', 'quick', 'boxfill') # name 'NEW' should be available ('NEW', 'quick') >>> cns(None, 'default', 'boxfill') # generate unique boxfill name ('__boxfill_...', 'default') diff --git a/vcs/textcombined.py b/vcs/textcombined.py index 79fccb0f5..544446b34 100644 --- a/vcs/textcombined.py +++ b/vcs/textcombined.py @@ -201,7 +201,7 @@ class together. From combining the two classess, the user will be able to set tc.valign='base' # Same as tcvalign=4 tc.valign='bottom' -""" + """ __slots__ = [ 's_name', diff --git a/vcs/texttable.py b/vcs/texttable.py index 6598e3d51..e032cea04 100755 --- a/vcs/texttable.py +++ b/vcs/texttable.py @@ -174,7 +174,7 @@ class Tt(object): # List of FloatTypes tt.y=[[.5,.4,.3], [.2,.1,0]] -""" + """ __slots__ = [ 's_name', 'name', diff --git a/vcs/utils.py b/vcs/utils.py index 52452db6d..57ff8394b 100644 --- a/vcs/utils.py +++ b/vcs/utils.py @@ -1198,25 +1198,43 @@ def mklabels(vals, output='dict'): .. doctest:: utils_mklabels - >>> a=vcs.mkscale(2,20,zero=2) - >>> vcs.mklabels(a) - {0.0: '0', 2.0: '2', 4.0: '4', 6.0: '6', 8.0: '8', 10.0: '10', 12.0: '12', 14.0: '14', ...} - >>> vcs.mklabels ( [5,.005]) - {0.005: '0.005', 5.0: '5.000'} - >>> vcs.mklabels ( [.00002,.00005]) - {2e-05: '2E-5', 5e-05: '5E-5'} - >>> vcs.mklabels ( [.00002,.00005],output='list') + >>> scale=vcs.mkscale(2,20,zero=2) + >>> labels=vcs.mklabels(scale) + >>> keys=labels.keys() + >>> keys.sort() + >>> for key in keys: + ... print key, ':', labels[key] + 0.0 : 0 + 2.0 : 2 + 4.0 : 4 + 6.0 : 6 + 8.0 : 8 + 10.0 : 10 + 12.0 : 12 + 14.0 : 14 + 16.0 : 16 + 18.0 : 18 + 20.0 : 20 + >>> labels=vcs.mklabels([.00002,.00003,.00005]) + >>> keys=labels.keys() + >>> keys.sort() + >>> for key in keys: + ... print key, ':', labels[key] + 2e-05 : 2E-5 + 3e-05 : 3E-5 + 5e-05 : 5E-5 + >>> vcs.mklabels ([.00002,.00005],output='list') ['2E-5', '5E-5'] :param vals: List or tuple of float values - :type vals: :py:class:`list`, tuple + :type vals: :py:class:`list`, :py:class:`tuple` :param output: Specifies the desired output type. One of ['dict', 'list']. - :type output: str + :type output: :py:class:`str` :returns: Dictionary or list of labels for the given values. - :rtype: dict, list - """ + :rtype: :py:class:`dict` or :py:class:`list` + """ import numpy.ma if isinstance(vals[0], list) or isinstance(vals[0], tuple): vals = __split2contiguous(vals) @@ -1996,12 +2014,38 @@ def getgraphicsmethod(type, name): def creategraphicsmethod(gtype, gname='default', name=None): + """ + Creates a graphics method of the type given by gtype. + + :Example: + + .. doctest:: utils_creategraphicsmethod + + >>> cgm=vcs.creategraphicsmethod # alias long name + >>> cgm('Gfb') # boxfill inherits default; name generated + >>> cgm('boxfill','polar') # boxfill inherits polar; name generated + >>> cgm('Gfi',name='my_gfi') # isofill inherits default; user-named + + :param gtype: String name of the type of graphics method object to create. + :type gtype: :py:obj:`str` + + :param gname: String name of the specific graphics method for the new + graphics method to inherit. + :type gname: :py:obj:`str` + + :param name: String name for the new object. + If None, a unique name will be generated. + :type name: :py:obj`str` or :py:obj:`None` + + :return: A graphics method object + + """ import vcsaddons if gtype in ['isoline', 'Gi']: func = vcs.createisoline elif gtype in ['isofill', 'Gfi']: func = vcs.createisofill - elif gtype in ['boxfill', 'default']: + elif gtype in ['boxfill', 'Gfb']: func = vcs.createboxfill elif gtype in ['meshfill', 'Gfm']: func = vcs.createmeshfill @@ -2207,6 +2251,22 @@ def png_read_metadata(path): def download_sample_data_files(path=None): + """ + Downloads sample data to be used with VCS. + + :Example: + + .. doctest:: utils_download_sample_data + + >>> import os # use this to check if sample data already exists + >>> if not os.path.isdir(vcs.sample_data): + ... vcs.download_sample_data_files() + + :param path: String of a valid filepath. + If None, sample data will be downloaded into the + vcs.sample_data directory. + :type path: :py:obj:`str` or :py:obj:`None` + """ import requests import hashlib if path is None: diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 1075c9cb6..016cb60c9 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -241,7 +241,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): A function to generate docstrings from a dictionary. Structure of the function is pretty specific to type_dicts shaped like xmldoc.obj_details. - Indentation of the docstring snippets looks screwy because they need to maintain alignment + Indentation of the docstring snippets is screwy because they need to maintain alignment with the original docstring entries for Sphinx to pick them up correctly. :param type_dict: The dictionary to parse for values used to fill in the docstring @@ -285,6 +285,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): sp_parent = 'default_'+obj_name+'_' dict['sp_parent'] = "'%s'" % sp_parent dict['parent'] = dict['sp_parent'] + # section for manageElements 'get' methods if method == 'get': example1 = """%(tc)s >>> ex=vcs.get%(name)s(%(sp_parent)s) # instance of '%(parent)s' %(name)s %(type)s%(plot)s""" @@ -312,7 +313,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): >>> slab2 = f('v') # need 2 slabs, so get another""" dict['slabs'] = dict['slabs'] + slab2 dict['args'] = dict['args'] + ", slab2" - # for vcs objects that have a self-named plotting function, i.e. fillarea() + # for vcs objects that have a self-named plotting function, i.e. fillarea() if type_dict[obj_type][obj_name]['callable']: plot = """%(slabs)s >>> a.%(name)s(ex%(args)s) # plot using specified %(name)s object @@ -321,7 +322,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): plot2 = """ >>> a.%(name)s(ex2%(args)s) # plot using specified %(name)s object """ - # for objects like template, where a call to plot() needs to be made + # for objects like template, where a call to plot() needs to be made elif obj_name not in ['textorientation', 'texttable', 'colormap']: plot = """%(slabs)s >>> a.plot(ex%(args)s) # plot using specified %(name)s object @@ -337,7 +338,9 @@ def populate_docstrings(type_dict, target_dict, docstring, method): """ dict['plot2'] = plot2 % dict dict['ex2'] = example2 % dict + # section for manageElements 'create' methods elif method == 'create': + # if obj_name is tc, dict['tc'] should be populated by code that creates a tc at this point if obj_name == "textcombined": example1 = dict['tc'] + """ >>> vcs.listelements('%(name)s') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' @@ -364,6 +367,16 @@ def populate_docstrings(type_dict, target_dict, docstring, method): dict.clear() # contains VCS object details used to build Example doctests and fill in docstrings +# Keys: +# "callable"(bool): specifies whether the object has a self-named plotting function, i.e. fillarea() +# "parent"(str): specifies the name of the object to be used in inheritance for a first example. +# Usually 'default', but it can change based on situation. +# "parent2"(str): specifies a name for object inheritance in a second example. If there is no reliable second +# object, (i.e. vcs only has a 'default' object pre-made), use an empty string. +# "rtype"(VCS object type): the type of the object to be returned. This is only used for manageElements 'get' and +# 'create' docstrings. +# "slabs"(int): used to specify how many slabs are needed to plot an object of the given type. 0 for none. +# "title"(bool): specifies whether to TitleCase the object's name for the output on vcs.show() obj_details = { "graphics method": { "taylordiagram": { From 4d4a002838754561f29f44ba1adc6a7e69ba1115 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 14 Dec 2016 14:41:54 -0800 Subject: [PATCH 17/45] Added more examples/doctests to utils.py . Removed some modules from run_all_doctests.sh . Fixed xmldocs so it doesn't try to plot projections/templates. Started dv3d descriptions. --- docs/doctest_info/Canvas.md | 153 ++----- docs/doctest_info/Canvas.report | 413 +++++++----------- docs/doctest_info/README.md | 16 +- docs/doctest_info/VCS_validation_functions.md | 179 ++++++++ .../VCS_validation_functions.report | 104 +++++ docs/doctest_info/VTKAnimate.md | 50 --- docs/doctest_info/VTKAnimate.report | 28 -- docs/doctest_info/VTKPlots.md | 122 ------ docs/doctest_info/VTKPlots.report | 64 --- docs/doctest_info/animate_helper.md | 162 ------- docs/doctest_info/animate_helper.report | 84 ---- docs/doctest_info/bars.png | Bin 36717 -> 0 bytes docs/doctest_info/clean_doctest_output.py | 38 -- docs/doctest_info/colormap.md | 6 +- docs/doctest_info/colormap.report | 6 +- docs/doctest_info/colorpicker.md | 30 -- docs/doctest_info/colorpicker.report | 18 - docs/doctest_info/log_all_doctests.sh | 11 - docs/doctest_info/manageElements.md | 60 ++- docs/doctest_info/manageElements.report | 81 ++-- docs/doctest_info/queries.md | 2 +- docs/doctest_info/queries.report | 2 +- docs/doctest_info/run_all_doctests.sh | 7 +- docs/doctest_info/sample.png | Bin 7618 -> 0 bytes docs/doctest_info/template.md | 14 +- docs/doctest_info/template.report | 14 +- docs/doctest_info/textcombined.md | 2 +- docs/doctest_info/textcombined.report | 2 +- docs/doctest_info/utils.md | 33 -- docs/doctest_info/utils.report | 361 ++++++++++++--- docs/doctest_info/vcs2vtk.md | 88 ---- docs/doctest_info/vcs2vtk.report | 47 -- docs/doctest_info/vcsvtk.md | 4 - docs/doctest_info/vcsvtk.report | 5 - docs/doctest_info/vtk_ui.md | 4 - docs/doctest_info/vtk_ui.report | 5 - vcs/Canvas.py | 94 ++-- vcs/__init__.py | 1 - vcs/dv3d.py | 16 +- vcs/taylor.py | 2 +- vcs/utils.py | 400 +++++++++++++---- vcs/xmldocs.py | 205 +++++---- 42 files changed, 1399 insertions(+), 1534 deletions(-) create mode 100644 docs/doctest_info/VCS_validation_functions.md create mode 100644 docs/doctest_info/VCS_validation_functions.report delete mode 100644 docs/doctest_info/VTKAnimate.md delete mode 100644 docs/doctest_info/VTKAnimate.report delete mode 100644 docs/doctest_info/VTKPlots.md delete mode 100644 docs/doctest_info/VTKPlots.report delete mode 100644 docs/doctest_info/animate_helper.md delete mode 100644 docs/doctest_info/animate_helper.report delete mode 100644 docs/doctest_info/bars.png delete mode 100644 docs/doctest_info/clean_doctest_output.py delete mode 100644 docs/doctest_info/colorpicker.md delete mode 100644 docs/doctest_info/colorpicker.report delete mode 100755 docs/doctest_info/log_all_doctests.sh delete mode 100644 docs/doctest_info/sample.png delete mode 100644 docs/doctest_info/vcs2vtk.md delete mode 100644 docs/doctest_info/vcs2vtk.report delete mode 100644 docs/doctest_info/vcsvtk.md delete mode 100644 docs/doctest_info/vcsvtk.report delete mode 100644 docs/doctest_info/vtk_ui.md delete mode 100644 docs/doctest_info/vtk_ui.report diff --git a/docs/doctest_info/Canvas.md b/docs/doctest_info/Canvas.md index 3bf470aa5..c4ac9512d 100644 --- a/docs/doctest_info/Canvas.md +++ b/docs/doctest_info/Canvas.md @@ -1,48 +1,12 @@ -vcs.Canvas.Canvas.canvasid --------------------------- -```python -Failed example: - a.canvasid() -Expected nothing -Got: - 2 -``` - -vcs.Canvas.Canvas.check_name_source ------------------------------------ -```python -Failed example: - cns('polar','quick','boxfill') # is 'polar' boxfill taken? -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cns('polar','quick','boxfill') # is 'polar' boxfill taken? - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error boxfill object named polar already exists -``` - -vcs.Canvas.Canvas.clean_auto_generated_objects ----------------------------------------------- -```python -Failed example: - a.plot(array) -Expected nothing -Got: - -``` - vcs.Canvas.Canvas.clean_auto_generated_objects ---------------------------------------------- ```python Failed example: - boxes == new_boxes + boxes == new_boxes # should not be the same Expected: - True -Got: False +Got: + True ``` vcs.Canvas.Canvas.createtext @@ -55,37 +19,17 @@ Failed example: pass Expected nothing Got: - -``` - -vcs.Canvas.Canvas.drawtext --------------------------- -```python -Failed example: - vcs.createtextcombined('draw_tt', 'qa', 'draw_tto', '7left') -Expected nothing -Got: - + ``` vcs.Canvas.Canvas.drawtext -------------------------- ```python Failed example: - tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2353, in drawtextcombined - t.string = string - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 286, in _setstring - self.Tt.string = value - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 307, in _setstring - raise ValueError('Must be a string or a list of strings.') - ValueError: Must be a string or a list of strings. + tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) +Expected: + +Got nothing ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -97,7 +41,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -109,7 +53,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -123,35 +67,31 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.gettaylordiagram ---------------------------------- ```python Failed example: - a.taylordiagram(ex) # plot using specified taylordiagram object + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1306, in taylordiagram - arglist = _determine_arg_list('taylordiagram', args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list - arglist[igraphics_method]) - vcsError: Graphics method taylordiagram requires 1 slab. -``` - -vcs.Canvas.Canvas.initLogoDrawing ---------------------------------- -```python -Failed example: - a.plot(array) # should have logo in lower right corner -Expected nothing -Got: - + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3701, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars ``` vcs.Canvas.Canvas.isinfile @@ -164,42 +104,15 @@ Expected: Got nothing ``` -vcs.Canvas.Canvas.isopened --------------------------- -```python -Failed example: - a.plot(array) -Expected nothing -Got: - -``` - -vcs.Canvas.Canvas.return_display_names --------------------------------------- +vcs.Canvas.Canvas.show +---------------------- ```python Failed example: - a.plot(array) -Expected nothing + vcs.show() # show all vcs object types +Expected: + ['1d','3d_dual_scalar','3d_scalar','3d_vector','boxfill', ...] Got: - -``` - -vcs.Canvas.Canvas.setdefaultfont --------------------------------- -```python -Failed example: - a.setdefaultfont('Times') -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.setdefaultfont('Times') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5910, in setdefaultfont - return self.copyfontto(font, 1) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5890, in copyfontto - return self.canvas.copyfontto(*(index1, index2)) - AttributeError: 'module' object has no attribute 'copyfontto' + ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', 'colormap', 'display', 'fillarea', 'font', 'fontNumber', 'isofill', 'isoline', 'line', 'list', 'marker', 'meshfill', 'projection', 'scatter', 'taylordiagram', 'template', 'textcombined', 'textorientation', 'texttable', 'vector', 'xvsy', 'xyvsy', 'yxvsx'] ``` Missing Doctests @@ -296,10 +209,6 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.get_selected_display``` -:x:``` vcs.Canvas.Canvas.getfontname``` - -:x:``` vcs.Canvas.Canvas.getfontnumber``` - :x:``` vcs.Canvas.Canvas.getplot``` :x:``` vcs.Canvas.Canvas.gif``` @@ -334,6 +243,8 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.setAnimationStepper``` +:x:``` vcs.Canvas.Canvas.setdefaultfont``` + :x:``` vcs.Canvas.Canvas.start``` :x:``` vcs.Canvas.Canvas.updateorientation``` diff --git a/docs/doctest_info/Canvas.report b/docs/doctest_info/Canvas.report index 7d92e68d3..58dd07974 100644 --- a/docs/doctest_info/Canvas.report +++ b/docs/doctest_info/Canvas.report @@ -70,15 +70,9 @@ Trying: Expecting nothing ok Trying: - a.canvasid() + cid = a.canvasid() # store the canvas id Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4529, in vcs.Canvas.Canvas.canvasid -Failed example: - a.canvasid() -Expected nothing -Got: - 2 +ok Trying: a=vcs.init() Expecting nothing @@ -145,24 +139,7 @@ Expecting: *******************End Boxfill Names List********************** ok Trying: - cns('polar','quick','boxfill') # is 'polar' boxfill taken? -Expecting: - vcsError: Error boxfill object named polar already exists -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1228, in vcs.Canvas.Canvas.check_name_source -Failed example: - cns('polar','quick','boxfill') # is 'polar' boxfill taken? -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cns('polar','quick','boxfill') # is 'polar' boxfill taken? - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error boxfill object named polar already exists -Trying: - cns('NEW', 'quick', 'boxfill') # 'NEW' should be available... + cns('NEW', 'quick', 'boxfill') # name 'NEW' should be available Expecting: ('NEW', 'quick') ok @@ -176,52 +153,42 @@ Trying: Expecting nothing ok Trying: - boxes=vcs.listelements('boxfill') # initial boxfill names + clean=a.clean_auto_generated_objects # alias long name Expecting nothing ok Trying: - array=[range(10) for _ in range(10)] + clean() # clean possible old objects from vcs Expecting nothing ok Trying: - a.plot(array) + boxes=a.listelements('boxfill') # initial boxfill names Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1144, in vcs.Canvas.Canvas.clean_auto_generated_objects -Failed example: - a.plot(array) -Expected nothing -Got: - +ok Trying: - new_boxes=a.listelements('boxfill') # has new names + array=[range(10) for _ in range(10)] Expecting nothing ok Trying: - boxes == new_boxes # should not be the same + a.plot(array) Expecting: - False -ok -Trying: - a.clean_auto_generated_objects() -Expecting nothing + ok Trying: - new_boxes=a.listelements('boxfill') # back to initial state + new_boxes=a.listelements('boxfill') # has new names Expecting nothing ok Trying: - boxes == new_boxes + boxes == new_boxes # should not be the same Expecting: - True + False ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1150, in vcs.Canvas.Canvas.clean_auto_generated_objects +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1159, in vcs.Canvas.Canvas.clean_auto_generated_objects Failed example: - boxes == new_boxes + boxes == new_boxes # should not be the same Expected: - True -Got: False +Got: + True Trying: a=vcs.init() Expecting nothing @@ -602,7 +569,7 @@ Trying: pass Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2199, in vcs.Canvas.Canvas.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2212, in vcs.Canvas.Canvas.createtext Failed example: try: # try to create a new textcombined, in case none exist vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') @@ -610,12 +577,7 @@ Failed example: pass Expected nothing Got: - -Trying: - vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' -Expecting: - [...'EXAMPLE_tt:::EXAMPLE_tto'...] -ok + Trying: vcs.show('textorientation') # show all available textorientation Expecting: @@ -849,6 +811,10 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + drawtc=a.drawtextcombined # alias long function name +Expecting nothing +ok Trying: a.show('texttable') # Show all the existing texttable objects Expecting: @@ -857,35 +823,25 @@ Expecting: *******************End Texttable Names List********************** ok Trying: - vcs.createtextcombined('draw_tt', 'qa', 'draw_tto', '7left') -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2299, in vcs.Canvas.Canvas.drawtext -Failed example: - vcs.createtextcombined('draw_tt', 'qa', 'draw_tto', '7left') -Expected nothing -Got: - + vcs.createtextcombined('draw_tt','qa', 'draw_tto', '7left') +Expecting: + +ok Trying: - tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') + msg=["Hello", "drawtextcombined!"] Expecting nothing +ok +Trying: + tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) +Expecting: + ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2300, in vcs.Canvas.Canvas.drawtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2316, in vcs.Canvas.Canvas.drawtext Failed example: - tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - tc=a.drawtextcombined(Tt_name = 'draw_tt', To_name='draw_tto') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2353, in drawtextcombined - t.string = string - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 286, in _setstring - self.Tt.string = value - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 307, in _setstring - raise ValueError('Must be a string or a list of strings.') - ValueError: Must be a string or a list of strings. + tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) +Expected: + +Got nothing Trying: a=vcs.init() Expecting nothing @@ -895,10 +851,10 @@ Trying: Expecting nothing ok Trying: - dua("falafel", 37, the_answer=42, barbara="streisand") + dua("falafel", 37, the_answer=42) Expecting: Arguments: ('falafel', 37) - Keywords: {'the_answer': 42, 'barbara': 'streisand'} + Keywords: {'the_answer': 42} ok Trying: a=vcs.init() @@ -1105,14 +1061,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1435, in vcs.Canvas.Canvas.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1448, in vcs.Canvas.Canvas.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1143,14 +1099,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1434, in vcs.Canvas.Canvas.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1447, in vcs.Canvas.Canvas.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1185,7 +1141,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1435, in vcs.Canvas.Canvas.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1448, in vcs.Canvas.Canvas.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -1194,7 +1150,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1390,6 +1346,26 @@ Trying: Expecting: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] ok +Trying: + vcs.getfontname(1) +Expecting: + 'default' +ok +Trying: + vcs.getfontname(4) +Expecting: + 'Helvetica' +ok +Trying: + vcs.getfontnumber('default') +Expecting: + 1 +ok +Trying: + vcs.getfontnumber('Helvetica') +Expecting: + 4 +ok Trying: a=vcs.init() Expecting nothing @@ -1574,32 +1550,10 @@ Trying: ex=vcs.getprojection() # instance of 'default' projection graphics method Expecting nothing ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified projection object -Expecting: - -ok Trying: ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method Expecting nothing ok -Trying: - a.plot(ex2, slab1) # plot using specified projection object -Expecting: - -ok Trying: a=vcs.init() Expecting nothing @@ -1660,24 +1614,30 @@ Trying: Expecting nothing ok Trying: - a.taylordiagram(ex) # plot using specified taylordiagram object + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1302, in vcs.Canvas.Canvas.gettaylordiagram +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1315, in vcs.Canvas.Canvas.gettaylordiagram Failed example: - a.taylordiagram(ex) # plot using specified taylordiagram object + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1306, in taylordiagram - arglist = _determine_arg_list('taylordiagram', args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list - arglist[igraphics_method]) - vcsError: Graphics method taylordiagram requires 1 slab. + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3701, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars Trying: a=vcs.init() Expecting nothing @@ -1691,32 +1651,10 @@ Trying: ex=vcs.gettemplate() # instance of 'default' template graphics method Expecting nothing ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified template object -Expecting: - -ok Trying: ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method Expecting nothing ok -Trying: - a.plot(ex2, slab1) # plot using specified template object -Expecting: - -ok Trying: a=vcs.init() Expecting nothing @@ -1943,14 +1881,9 @@ Expecting nothing ok Trying: a.plot(array) # should have logo in lower right corner -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1000, in vcs.Canvas.Canvas.initLogoDrawing -Failed example: - a.plot(array) # should have logo in lower right corner -Expected nothing -Got: - +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -1968,7 +1901,7 @@ Trying: Expecting: 1 ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5570, in vcs.Canvas.Canvas.isinfile +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5606, in vcs.Canvas.Canvas.isinfile Failed example: a.isinfile(box, 'deft_box.py') Expected: @@ -2089,14 +2022,9 @@ Expecting nothing ok Trying: a.plot(array) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5121, in vcs.Canvas.Canvas.isopened -Failed example: - a.plot(array) -Expected nothing -Got: - +Expecting: + +ok Trying: a.isopened() # plotting opened the canvas Expecting: @@ -2362,6 +2290,42 @@ Trying: a.pdf('example', width=21, height=29.7, units='cm') # A4 Expecting nothing ok +Trying: + import numpy +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + a.show('template') # list vcs template types +Expecting: + *******************Template Names List********************** + ... + *******************End Template Names List********************** +ok +Trying: + a.show('boxfill') # one of many graphics method types +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + array1 = numpy.array([range(10) for _ in range(10)]) # data +Expecting nothing +ok +Trying: + a.plot(variable=array1) +Expecting: + +ok +Trying: + a.plot(array1,'ASD',gm='boxfill') # boxfill, ASD template +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -2383,12 +2347,12 @@ Trying: Expecting nothing ok Trying: - a.plot(slab1) # this call will use default settings for template and boxfill + a.plot(slab1) # default settings for template and boxfill Expecting: ok Trying: - a.plot(slab1, 'polar', 'isofill', 'polar') # this is specifying the template and graphics method + a.plot(slab1,'polar','isofill','polar') # specify template and graphics method Expecting: ok @@ -2401,7 +2365,7 @@ Trying: Expecting nothing ok Trying: - a.plot(slab1, slab2, t, vec) # plot the data as a vector using the 'AMIP' template + a.plot(slab1, slab2, t, vec) # plot data as vector using polar template Expecting: ok @@ -2414,7 +2378,7 @@ Trying: Expecting nothing ok Trying: - a.plot(box,t,slab2) # plot array data using box 'new' and template 't' + a.plot(box,t,slab2) # plot data with boxfill and polar Expecting: ok @@ -2626,14 +2590,9 @@ Expecting nothing ok Trying: a.plot(array) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 4023, in vcs.Canvas.Canvas.return_display_names -Failed example: - a.plot(array) -Expected nothing -Got: - +Expecting: + +ok Trying: a.return_display_names() # has display name for new plot Expecting: @@ -2839,71 +2798,17 @@ Expecting: ok Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.listelements('font') # show all font names + vcs.show() # show all vcs object types Expecting: - [...] -ok -Trying: - a.setdefaultfont('Times') -Expecting nothing + ['1d','3d_dual_scalar','3d_scalar','3d_vector','boxfill', ...] ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5903, in vcs.Canvas.Canvas.setdefaultfont +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5602, in vcs.Canvas.Canvas.show Failed example: - a.setdefaultfont('Times') -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.setdefaultfont('Times') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5910, in setdefaultfont - return self.copyfontto(font, 1) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5890, in copyfontto - return self.canvas.copyfontto(*(index1, index2)) - AttributeError: 'module' object has no attribute 'copyfontto' -Trying: - a=vcs.init() # Create a VCS Canvas instance, named 'a' -Expecting nothing -ok -Trying: - a.show('boxfill') # List boxfill objects on Canvas 'a' -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - a.show('isofill') # List isofill objects on Canvas 'a' -Expecting: - *******************Isofill Names List********************** - ... - *******************End Isofill Names List********************** -ok -Trying: - a.show('line') # List line objects on Canvas 'a' -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - a.show('marker') # List marker objects on Canvas 'a' -Expecting: - *******************Marker Names List********************** - ... - *******************End Marker Names List********************** -ok -Trying: - a.show('textcombined') # List text objects on Canvas 'a' -Expecting: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -ok + vcs.show() # show all vcs object types +Expected: + ['1d','3d_dual_scalar','3d_scalar','3d_vector','boxfill', ...] +Got: + ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', 'colormap', 'display', 'fillarea', 'font', 'fontNumber', 'isofill', 'isoline', 'line', 'list', 'marker', 'meshfill', 'projection', 'scatter', 'taylordiagram', 'template', 'textcombined', 'textorientation', 'texttable', 'vector', 'xvsy', 'xyvsy', 'yxvsx'] Trying: a=vcs.init() Expecting nothing @@ -3276,7 +3181,7 @@ Trying: Expecting: ok -84 items had no tests: +83 items had no tests: vcs.Canvas vcs.Canvas.Canvas vcs.Canvas.Canvas._Canvas__new_elts @@ -3323,8 +3228,6 @@ ok vcs.Canvas.Canvas.endconfigure vcs.Canvas.Canvas.get1d vcs.Canvas.Canvas.get_selected_display - vcs.Canvas.Canvas.getfontname - vcs.Canvas.Canvas.getfontnumber vcs.Canvas.Canvas.getplot vcs.Canvas.Canvas.gif vcs.Canvas.Canvas.grid @@ -3342,6 +3245,7 @@ ok vcs.Canvas.Canvas.scalar3d vcs.Canvas.Canvas.scriptrun vcs.Canvas.Canvas.setAnimationStepper + vcs.Canvas.Canvas.setdefaultfont vcs.Canvas.Canvas.start vcs.Canvas.Canvas.updateorientation vcs.Canvas.Canvas.user_actions @@ -3361,10 +3265,12 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -107 items passed all tests: +113 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill + 2 tests in vcs.Canvas.Canvas.canvasid 5 tests in vcs.Canvas.Canvas.canvasinfo 6 tests in vcs.Canvas.Canvas.change_display_graphic_method + 4 tests in vcs.Canvas.Canvas.check_name_source 4 tests in vcs.Canvas.Canvas.clear 4 tests in vcs.Canvas.Canvas.close 2 tests in vcs.Canvas.Canvas.create1d @@ -3411,14 +3317,16 @@ ok 4 tests in vcs.Canvas.Canvas.getdrawlogo 4 tests in vcs.Canvas.Canvas.getfillarea 7 tests in vcs.Canvas.Canvas.getfont + 2 tests in vcs.Canvas.Canvas.getfontname + 2 tests in vcs.Canvas.Canvas.getfontnumber 9 tests in vcs.Canvas.Canvas.getisofill 9 tests in vcs.Canvas.Canvas.getisoline 6 tests in vcs.Canvas.Canvas.getline 6 tests in vcs.Canvas.Canvas.getmarker 9 tests in vcs.Canvas.Canvas.getmeshfill - 9 tests in vcs.Canvas.Canvas.getprojection + 4 tests in vcs.Canvas.Canvas.getprojection 8 tests in vcs.Canvas.Canvas.getscatter - 9 tests in vcs.Canvas.Canvas.gettemplate + 4 tests in vcs.Canvas.Canvas.gettemplate 5 tests in vcs.Canvas.Canvas.gettextcombined 6 tests in vcs.Canvas.Canvas.gettextextent 4 tests in vcs.Canvas.Canvas.gettextorientation @@ -3427,9 +3335,11 @@ ok 8 tests in vcs.Canvas.Canvas.getxvsy 7 tests in vcs.Canvas.Canvas.getxyvsy 7 tests in vcs.Canvas.Canvas.getyxvsx + 4 tests in vcs.Canvas.Canvas.initLogoDrawing 4 tests in vcs.Canvas.Canvas.islandscape 10 tests in vcs.Canvas.Canvas.isofill 8 tests in vcs.Canvas.Canvas.isoline + 5 tests in vcs.Canvas.Canvas.isopened 4 tests in vcs.Canvas.Canvas.isportrait 8 tests in vcs.Canvas.Canvas.landscape 9 tests in vcs.Canvas.Canvas.line @@ -3441,7 +3351,7 @@ ok 3 tests in vcs.Canvas.Canvas.open 2 tests in vcs.Canvas.Canvas.orientation 6 tests in vcs.Canvas.Canvas.pdf - 13 tests in vcs.Canvas.Canvas.plot + 20 tests in vcs.Canvas.Canvas.plot 4 tests in vcs.Canvas.Canvas.png 8 tests in vcs.Canvas.Canvas.portrait 9 tests in vcs.Canvas.Canvas.postscript @@ -3450,6 +3360,7 @@ ok 3 tests in vcs.Canvas.Canvas.raisecanvas 7 tests in vcs.Canvas.Canvas.remove_display_name 3 tests in vcs.Canvas.Canvas.removeobject + 5 tests in vcs.Canvas.Canvas.return_display_names 2 tests in vcs.Canvas.Canvas.saveinitialfile 10 tests in vcs.Canvas.Canvas.scatter 4 tests in vcs.Canvas.Canvas.scriptobject @@ -3459,7 +3370,6 @@ ok 5 tests in vcs.Canvas.Canvas.setcolormap 5 tests in vcs.Canvas.Canvas.setcontinentsline 4 tests in vcs.Canvas.Canvas.setcontinentstype - 6 tests in vcs.Canvas.Canvas.show 6 tests in vcs.Canvas.Canvas.svg 7 tests in vcs.Canvas.Canvas.switchfonts 8 tests in vcs.Canvas.Canvas.taylordiagram @@ -3470,21 +3380,16 @@ ok 8 tests in vcs.Canvas.Canvas.xyvsy 8 tests in vcs.Canvas.Canvas.yxvsx ********************************************************************** -14 items had failures: - 1 of 2 in vcs.Canvas.Canvas.canvasid - 1 of 5 in vcs.Canvas.Canvas.check_name_source - 2 of 9 in vcs.Canvas.Canvas.clean_auto_generated_objects +9 items had failures: + 1 of 11 in vcs.Canvas.Canvas.clean_auto_generated_objects 1 of 3 in vcs.Canvas.Canvas.createtext - 2 of 4 in vcs.Canvas.Canvas.drawtext + 1 of 6 in vcs.Canvas.Canvas.drawtext 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram - 1 of 4 in vcs.Canvas.Canvas.initLogoDrawing 1 of 4 in vcs.Canvas.Canvas.isinfile - 1 of 5 in vcs.Canvas.Canvas.isopened - 1 of 5 in vcs.Canvas.Canvas.return_display_names - 1 of 3 in vcs.Canvas.Canvas.setdefaultfont -690 tests in 205 items. -674 passed and 16 failed. -***Test Failed*** 16 failures. + 1 of 6 in vcs.Canvas.Canvas.show +691 tests in 205 items. +682 passed and 9 failed. +***Test Failed*** 9 failures. diff --git a/docs/doctest_info/README.md b/docs/doctest_info/README.md index 0cf20145d..0adf5c44b 100644 --- a/docs/doctest_info/README.md +++ b/docs/doctest_info/README.md @@ -20,20 +20,12 @@ Doctest Info [Pytickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pytickmarks.md) -[validation_functions] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/validation_functions.md) - -[VTKAnimate] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/VTKAnimate.md) - -[VTKPlots] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/VTKPlots.md) - -[animate_helper] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/animate_helper.md) +[VCS_validation_functions] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/VCS_validation_functions.md) [boxfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/boxfill.md) [colormap] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colormap.md) -[colorpicker] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colorpicker.md) - [colors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colors.md) [configurator] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/configurator.md) @@ -78,13 +70,7 @@ Doctest Info [utils] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/utils.md) -[vcs2vtk] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcs2vtk.md) - [vcshelp] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcshelp.md) -[vcsvtk] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcsvtk.md) - [vector] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vector.md) -[vtk_ui] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vtk_ui.md) - diff --git a/docs/doctest_info/VCS_validation_functions.md b/docs/doctest_info/VCS_validation_functions.md new file mode 100644 index 000000000..e1fac32f0 --- /dev/null +++ b/docs/doctest_info/VCS_validation_functions.md @@ -0,0 +1,179 @@ +Missing Doctests +---------------- +:x:``` vcs.VCS_validation_functions``` + +:x:``` vcs.VCS_validation_functions.DMS2deg``` + +:x:``` vcs.VCS_validation_functions.PPE``` + +:x:``` vcs.VCS_validation_functions.PPE.__init__``` + +:x:``` vcs.VCS_validation_functions.PPE.__str__``` + +:x:``` vcs.VCS_validation_functions._getLine``` + +:x:``` vcs.VCS_validation_functions._getX``` + +:x:``` vcs.VCS_validation_functions._getX2``` + +:x:``` vcs.VCS_validation_functions._getY``` + +:x:``` vcs.VCS_validation_functions._getY1``` + +:x:``` vcs.VCS_validation_functions._getY2``` + +:x:``` vcs.VCS_validation_functions._getcolormap``` + +:x:``` vcs.VCS_validation_functions._getfillareacolors``` + +:x:``` vcs.VCS_validation_functions._getfillareaopacity``` + +:x:``` vcs.VCS_validation_functions._getlegend``` + +:x:``` vcs.VCS_validation_functions._getpriority``` + +:x:``` vcs.VCS_validation_functions._getprojection``` + +:x:``` vcs.VCS_validation_functions._gettextorientation``` + +:x:``` vcs.VCS_validation_functions._gettexttable``` + +:x:``` vcs.VCS_validation_functions._getvp``` + +:x:``` vcs.VCS_validation_functions._getwc``` + +:x:``` vcs.VCS_validation_functions._setLine``` + +:x:``` vcs.VCS_validation_functions._setX``` + +:x:``` vcs.VCS_validation_functions._setX2``` + +:x:``` vcs.VCS_validation_functions._setY``` + +:x:``` vcs.VCS_validation_functions._setY1``` + +:x:``` vcs.VCS_validation_functions._setY2``` + +:x:``` vcs.VCS_validation_functions._setcolormap``` + +:x:``` vcs.VCS_validation_functions._setfillareacolors``` + +:x:``` vcs.VCS_validation_functions._setfillareaopacity``` + +:x:``` vcs.VCS_validation_functions._setlegend``` + +:x:``` vcs.VCS_validation_functions._setpriority``` + +:x:``` vcs.VCS_validation_functions._setprojection``` + +:x:``` vcs.VCS_validation_functions._settexorientation``` + +:x:``` vcs.VCS_validation_functions._settextable``` + +:x:``` vcs.VCS_validation_functions._setvp``` + +:x:``` vcs.VCS_validation_functions._setwc``` + +:x:``` vcs.VCS_validation_functions.add_level_ext_1``` + +:x:``` vcs.VCS_validation_functions.add_level_ext_2``` + +:x:``` vcs.VCS_validation_functions.checkAxisConvert``` + +:x:``` vcs.VCS_validation_functions.checkBoolean``` + +:x:``` vcs.VCS_validation_functions.checkBoxfillType``` + +:x:``` vcs.VCS_validation_functions.checkCalendar``` + +:x:``` vcs.VCS_validation_functions.checkCallable``` + +:x:``` vcs.VCS_validation_functions.checkColor``` + +:x:``` vcs.VCS_validation_functions.checkColorList``` + +:x:``` vcs.VCS_validation_functions.checkContType``` + +:x:``` vcs.VCS_validation_functions.checkContinents``` + +:x:``` vcs.VCS_validation_functions.checkDatawc``` + +:x:``` vcs.VCS_validation_functions.checkElements``` + +:x:``` vcs.VCS_validation_functions.checkExt``` + +:x:``` vcs.VCS_validation_functions.checkFillAreaStyle``` + +:x:``` vcs.VCS_validation_functions.checkFont``` + +:x:``` vcs.VCS_validation_functions.checkFuzzyBoolean``` + +:x:``` vcs.VCS_validation_functions.checkInStringList``` + +:x:``` vcs.VCS_validation_functions.checkInStringsListInt``` + +:x:``` vcs.VCS_validation_functions.checkIndex``` + +:x:``` vcs.VCS_validation_functions.checkIndicesList``` + +:x:``` vcs.VCS_validation_functions.checkInt``` + +:x:``` vcs.VCS_validation_functions.checkIntFloat``` + +:x:``` vcs.VCS_validation_functions.checkIsolineLevels``` + +:x:``` vcs.VCS_validation_functions.checkLegend``` + +:x:``` vcs.VCS_validation_functions.checkLine``` + +:x:``` vcs.VCS_validation_functions.checkLineType``` + +:x:``` vcs.VCS_validation_functions.checkLineTypeList``` + +:x:``` vcs.VCS_validation_functions.checkListElements``` + +:x:``` vcs.VCS_validation_functions.checkListOfNumbers``` + +:x:``` vcs.VCS_validation_functions.checkListTuple``` + +:x:``` vcs.VCS_validation_functions.checkMarker``` + +:x:``` vcs.VCS_validation_functions.checkMarkersList``` + +:x:``` vcs.VCS_validation_functions.checkName``` + +:x:``` vcs.VCS_validation_functions.checkNumber``` + +:x:``` vcs.VCS_validation_functions.checkOnOff``` + +:x:``` vcs.VCS_validation_functions.checkOpacitiesList``` + +:x:``` vcs.VCS_validation_functions.checkOpacity``` + +:x:``` vcs.VCS_validation_functions.checkProjParameters``` + +:x:``` vcs.VCS_validation_functions.checkProjType``` + +:x:``` vcs.VCS_validation_functions.checkProjection``` + +:x:``` vcs.VCS_validation_functions.checkString``` + +:x:``` vcs.VCS_validation_functions.checkStringDictionary``` + +:x:``` vcs.VCS_validation_functions.checkTextOrientation``` + +:x:``` vcs.VCS_validation_functions.checkTextTable``` + +:x:``` vcs.VCS_validation_functions.checkTextsList``` + +:x:``` vcs.VCS_validation_functions.checkTicks``` + +:x:``` vcs.VCS_validation_functions.checkTimeUnits``` + +:x:``` vcs.VCS_validation_functions.checkTrueFalse``` + +:x:``` vcs.VCS_validation_functions.checkVectorAlignment``` + +:x:``` vcs.VCS_validation_functions.checkVectorType``` + + diff --git a/docs/doctest_info/VCS_validation_functions.report b/docs/doctest_info/VCS_validation_functions.report new file mode 100644 index 000000000..7c09a36d5 --- /dev/null +++ b/docs/doctest_info/VCS_validation_functions.report @@ -0,0 +1,104 @@ +99 items had no tests: + vcs.VCS_validation_functions + vcs.VCS_validation_functions.DMS2deg + vcs.VCS_validation_functions.PPE + vcs.VCS_validation_functions.PPE.__init__ + vcs.VCS_validation_functions.PPE.__str__ + vcs.VCS_validation_functions._getLine + vcs.VCS_validation_functions._getX + vcs.VCS_validation_functions._getX2 + vcs.VCS_validation_functions._getY + vcs.VCS_validation_functions._getY1 + vcs.VCS_validation_functions._getY2 + vcs.VCS_validation_functions._getcolormap + vcs.VCS_validation_functions._getfillareacolors + vcs.VCS_validation_functions._getfillareaopacity + vcs.VCS_validation_functions._getlegend + vcs.VCS_validation_functions._getpriority + vcs.VCS_validation_functions._getprojection + vcs.VCS_validation_functions._gettextorientation + vcs.VCS_validation_functions._gettexttable + vcs.VCS_validation_functions._getvp + vcs.VCS_validation_functions._getwc + vcs.VCS_validation_functions._setLine + vcs.VCS_validation_functions._setX + vcs.VCS_validation_functions._setX2 + vcs.VCS_validation_functions._setY + vcs.VCS_validation_functions._setY1 + vcs.VCS_validation_functions._setY2 + vcs.VCS_validation_functions._setcolormap + vcs.VCS_validation_functions._setfillareacolors + vcs.VCS_validation_functions._setfillareaopacity + vcs.VCS_validation_functions._setlegend + vcs.VCS_validation_functions._setpriority + vcs.VCS_validation_functions._setprojection + vcs.VCS_validation_functions._settexorientation + vcs.VCS_validation_functions._settextable + vcs.VCS_validation_functions._setvp + vcs.VCS_validation_functions._setwc + vcs.VCS_validation_functions.add_level_ext_1 + vcs.VCS_validation_functions.add_level_ext_2 + vcs.VCS_validation_functions.checkAxisConvert + vcs.VCS_validation_functions.checkBoolean + vcs.VCS_validation_functions.checkBoxfillType + vcs.VCS_validation_functions.checkCalendar + vcs.VCS_validation_functions.checkCallable + vcs.VCS_validation_functions.checkColor + vcs.VCS_validation_functions.checkColorList + vcs.VCS_validation_functions.checkContType + vcs.VCS_validation_functions.checkContinents + vcs.VCS_validation_functions.checkDatawc + vcs.VCS_validation_functions.checkElements + vcs.VCS_validation_functions.checkExt + vcs.VCS_validation_functions.checkFillAreaStyle + vcs.VCS_validation_functions.checkFont + vcs.VCS_validation_functions.checkFuzzyBoolean + vcs.VCS_validation_functions.checkInStringList + vcs.VCS_validation_functions.checkInStringsListInt + vcs.VCS_validation_functions.checkIndex + vcs.VCS_validation_functions.checkIndicesList + vcs.VCS_validation_functions.checkInt + vcs.VCS_validation_functions.checkIntFloat + vcs.VCS_validation_functions.checkIsolineLevels + vcs.VCS_validation_functions.checkLegend + vcs.VCS_validation_functions.checkLine + vcs.VCS_validation_functions.checkLineType + vcs.VCS_validation_functions.checkLineTypeList + vcs.VCS_validation_functions.checkListElements + vcs.VCS_validation_functions.checkListOfNumbers + vcs.VCS_validation_functions.checkListTuple + vcs.VCS_validation_functions.checkMarker + vcs.VCS_validation_functions.checkMarkersList + vcs.VCS_validation_functions.checkName + vcs.VCS_validation_functions.checkNumber + vcs.VCS_validation_functions.checkOnOff + vcs.VCS_validation_functions.checkOpacitiesList + vcs.VCS_validation_functions.checkOpacity + vcs.VCS_validation_functions.checkProjParameters + vcs.VCS_validation_functions.checkProjType + vcs.VCS_validation_functions.checkProjection + vcs.VCS_validation_functions.checkString + vcs.VCS_validation_functions.checkStringDictionary + vcs.VCS_validation_functions.checkTextOrientation + vcs.VCS_validation_functions.checkTextTable + vcs.VCS_validation_functions.checkTextsList + vcs.VCS_validation_functions.checkTicks + vcs.VCS_validation_functions.checkTimeUnits + vcs.VCS_validation_functions.checkTrueFalse + vcs.VCS_validation_functions.checkVectorAlignment + vcs.VCS_validation_functions.checkVectorType + vcs.VCS_validation_functions.checkWrap + vcs.VCS_validation_functions.checkYesNo + vcs.VCS_validation_functions.checkedRaise + vcs.VCS_validation_functions.checkname + vcs.VCS_validation_functions.color2vcs + vcs.VCS_validation_functions.deg2DMS + vcs.VCS_validation_functions.getProjType + vcs.VCS_validation_functions.isListorTuple + vcs.VCS_validation_functions.isNumber + vcs.VCS_validation_functions.matchVcsColor + vcs.VCS_validation_functions.setProjParameter +0 tests in 99 items. +0 passed and 0 failed. +Test passed. +Done logging VCS_validation_functions.md diff --git a/docs/doctest_info/VTKAnimate.md b/docs/doctest_info/VTKAnimate.md deleted file mode 100644 index 4a04c7e45..000000000 --- a/docs/doctest_info/VTKAnimate.md +++ /dev/null @@ -1,50 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.VTKAnimate``` - -:x:``` vcs.VTKAnimate.VTKAnimate``` - -:x:``` vcs.VTKAnimate.VTKAnimate.__init__``` - -:x:``` vcs.VTKAnimate.VTKAnimate.draw_frame``` - -:x:``` vcs.VTKAnimate.VTKAnimate.extract_renderers``` - -:x:``` vcs.VTKAnimate.VTKAnimate.frame``` - -:x:``` vcs.VTKAnimate.VTKAnimate.modified``` - -:x:``` vcs.VTKAnimate.VTKAnimate.plot_to_canvas``` - -:x:``` vcs.VTKAnimate.VTKAnimate.reclaim_renderers``` - -:x:``` vcs.VTKAnimate.VTKAnimate.reset``` - -:x:``` vcs.VTKAnimate.VTKAnimate.stop``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate.__init__``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate.close``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate.create_prefix``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate.describe``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate.draw_frame``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate.get_frame``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate.get_frame_name``` - -:x:``` vcs.VTKAnimate.VTKAnimationCreate.run``` - -:x:``` vcs.VTKAnimate.VTKAnimationPlayback``` - -:x:``` vcs.VTKAnimate.VTKAnimationPlayback.__init__``` - -:x:``` vcs.VTKAnimate.VTKAnimationPlayback.run``` - -:x:``` vcs.VTKAnimate.update_input``` - diff --git a/docs/doctest_info/VTKAnimate.report b/docs/doctest_info/VTKAnimate.report deleted file mode 100644 index 3538b97ef..000000000 --- a/docs/doctest_info/VTKAnimate.report +++ /dev/null @@ -1,28 +0,0 @@ -24 items had no tests: - vcs.VTKAnimate - vcs.VTKAnimate.VTKAnimate - vcs.VTKAnimate.VTKAnimate.__init__ - vcs.VTKAnimate.VTKAnimate.draw_frame - vcs.VTKAnimate.VTKAnimate.extract_renderers - vcs.VTKAnimate.VTKAnimate.frame - vcs.VTKAnimate.VTKAnimate.modified - vcs.VTKAnimate.VTKAnimate.plot_to_canvas - vcs.VTKAnimate.VTKAnimate.reclaim_renderers - vcs.VTKAnimate.VTKAnimate.reset - vcs.VTKAnimate.VTKAnimate.stop - vcs.VTKAnimate.VTKAnimationCreate - vcs.VTKAnimate.VTKAnimationCreate.__init__ - vcs.VTKAnimate.VTKAnimationCreate.close - vcs.VTKAnimate.VTKAnimationCreate.create_prefix - vcs.VTKAnimate.VTKAnimationCreate.describe - vcs.VTKAnimate.VTKAnimationCreate.draw_frame - vcs.VTKAnimate.VTKAnimationCreate.get_frame - vcs.VTKAnimate.VTKAnimationCreate.get_frame_name - vcs.VTKAnimate.VTKAnimationCreate.run - vcs.VTKAnimate.VTKAnimationPlayback - vcs.VTKAnimate.VTKAnimationPlayback.__init__ - vcs.VTKAnimate.VTKAnimationPlayback.run - vcs.VTKAnimate.update_input -0 tests in 24 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/VTKPlots.md b/docs/doctest_info/VTKPlots.md deleted file mode 100644 index 024ba8211..000000000 --- a/docs/doctest_info/VTKPlots.md +++ /dev/null @@ -1,122 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.VTKPlots``` - -:x:``` vcs.VTKPlots.VCSInteractorStyle``` - -:x:``` vcs.VTKPlots.VCSInteractorStyle.__init__``` - -:x:``` vcs.VTKPlots.VTKVCSBackend``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.Animate``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.__init__``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.canvasinfo``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.cgm``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.cleanupData``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.clear``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.close``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.configureEvent``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.createDefaultInteractor``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.createLogo``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.createRenWin``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.createRenderer``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.endEvent``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.fitToViewport``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.flush``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.geometry``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.get3DPlot``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.getantialiasing``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.gettextextent``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.gif``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.hideGUI``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.initialSize``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.interact``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.isopened``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.landscape``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.leftButtonPressEvent``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.leftButtonReleaseEvent``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.onClosing``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.open``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.orientation``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.pdf``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.plot``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.plot3D``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.plotContinents``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.png``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.png_dimensions``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.portrait``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.postscript``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.put_img_on_canvas``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.put_png_on_canvas``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.raisecanvas``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.renderColorBar``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.renderEvent``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.renderTemplate``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.resize_or_rotate_window``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.scaleLogo``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.setAnimationStepper``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.setLayer``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.setantialiasing``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.showGUI``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.svg``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.trimData1D``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.trimData2D``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.update``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.update_input``` - -:x:``` vcs.VTKPlots.VTKVCSBackend.vectorGraphics``` - diff --git a/docs/doctest_info/VTKPlots.report b/docs/doctest_info/VTKPlots.report deleted file mode 100644 index 4c4a0eac0..000000000 --- a/docs/doctest_info/VTKPlots.report +++ /dev/null @@ -1,64 +0,0 @@ -60 items had no tests: - vcs.VTKPlots - vcs.VTKPlots.VCSInteractorStyle - vcs.VTKPlots.VCSInteractorStyle.__init__ - vcs.VTKPlots.VTKVCSBackend - vcs.VTKPlots.VTKVCSBackend.Animate - vcs.VTKPlots.VTKVCSBackend.__init__ - vcs.VTKPlots.VTKVCSBackend.canvasinfo - vcs.VTKPlots.VTKVCSBackend.cgm - vcs.VTKPlots.VTKVCSBackend.cleanupData - vcs.VTKPlots.VTKVCSBackend.clear - vcs.VTKPlots.VTKVCSBackend.close - vcs.VTKPlots.VTKVCSBackend.configureEvent - vcs.VTKPlots.VTKVCSBackend.createDefaultInteractor - vcs.VTKPlots.VTKVCSBackend.createLogo - vcs.VTKPlots.VTKVCSBackend.createRenWin - vcs.VTKPlots.VTKVCSBackend.createRenderer - vcs.VTKPlots.VTKVCSBackend.endEvent - vcs.VTKPlots.VTKVCSBackend.fitToViewport - vcs.VTKPlots.VTKVCSBackend.flush - vcs.VTKPlots.VTKVCSBackend.geometry - vcs.VTKPlots.VTKVCSBackend.get3DPlot - vcs.VTKPlots.VTKVCSBackend.getantialiasing - vcs.VTKPlots.VTKVCSBackend.gettextextent - vcs.VTKPlots.VTKVCSBackend.gif - vcs.VTKPlots.VTKVCSBackend.hideGUI - vcs.VTKPlots.VTKVCSBackend.initialSize - vcs.VTKPlots.VTKVCSBackend.interact - vcs.VTKPlots.VTKVCSBackend.isopened - vcs.VTKPlots.VTKVCSBackend.landscape - vcs.VTKPlots.VTKVCSBackend.leftButtonPressEvent - vcs.VTKPlots.VTKVCSBackend.leftButtonReleaseEvent - vcs.VTKPlots.VTKVCSBackend.onClosing - vcs.VTKPlots.VTKVCSBackend.open - vcs.VTKPlots.VTKVCSBackend.orientation - vcs.VTKPlots.VTKVCSBackend.pdf - vcs.VTKPlots.VTKVCSBackend.plot - vcs.VTKPlots.VTKVCSBackend.plot3D - vcs.VTKPlots.VTKVCSBackend.plotContinents - vcs.VTKPlots.VTKVCSBackend.png - vcs.VTKPlots.VTKVCSBackend.png_dimensions - vcs.VTKPlots.VTKVCSBackend.portrait - vcs.VTKPlots.VTKVCSBackend.postscript - vcs.VTKPlots.VTKVCSBackend.put_img_on_canvas - vcs.VTKPlots.VTKVCSBackend.put_png_on_canvas - vcs.VTKPlots.VTKVCSBackend.raisecanvas - vcs.VTKPlots.VTKVCSBackend.renderColorBar - vcs.VTKPlots.VTKVCSBackend.renderEvent - vcs.VTKPlots.VTKVCSBackend.renderTemplate - vcs.VTKPlots.VTKVCSBackend.resize_or_rotate_window - vcs.VTKPlots.VTKVCSBackend.scaleLogo - vcs.VTKPlots.VTKVCSBackend.setAnimationStepper - vcs.VTKPlots.VTKVCSBackend.setLayer - vcs.VTKPlots.VTKVCSBackend.setantialiasing - vcs.VTKPlots.VTKVCSBackend.showGUI - vcs.VTKPlots.VTKVCSBackend.svg - vcs.VTKPlots.VTKVCSBackend.trimData1D - vcs.VTKPlots.VTKVCSBackend.trimData2D - vcs.VTKPlots.VTKVCSBackend.update - vcs.VTKPlots.VTKVCSBackend.update_input - vcs.VTKPlots.VTKVCSBackend.vectorGraphics -0 tests in 60 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/animate_helper.md b/docs/doctest_info/animate_helper.md deleted file mode 100644 index cbe82822e..000000000 --- a/docs/doctest_info/animate_helper.md +++ /dev/null @@ -1,162 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.animate_helper``` - -:x:``` vcs.animate_helper.AnimationController``` - -:x:``` vcs.animate_helper.AnimationController.__init__``` - -:x:``` vcs.animate_helper.AnimationController.close``` - -:x:``` vcs.animate_helper.AnimationController.create``` - -:x:``` vcs.animate_helper.AnimationController.create_pause``` - -:x:``` vcs.animate_helper.AnimationController.create_resume``` - -:x:``` vcs.animate_helper.AnimationController.create_stop``` - -:x:``` vcs.animate_helper.AnimationController.created``` - -:x:``` vcs.animate_helper.AnimationController.draw_frame``` - -:x:``` vcs.animate_helper.AnimationController.fps``` - -:x:``` vcs.animate_helper.AnimationController.generate_number_of_frames``` - -:x:``` vcs.animate_helper.AnimationController.get_all_frame_args``` - -:x:``` vcs.animate_helper.AnimationController.horizontal``` - -:x:``` vcs.animate_helper.AnimationController.initialize_create_canvas``` - -:x:``` vcs.animate_helper.AnimationController.is_playing``` - -:x:``` vcs.animate_helper.AnimationController.number_of_frames``` - -:x:``` vcs.animate_helper.AnimationController.pause``` - -:x:``` vcs.animate_helper.AnimationController.playback_pause``` - -:x:``` vcs.animate_helper.AnimationController.playback_resume``` - -:x:``` vcs.animate_helper.AnimationController.playback_stop``` - -:x:``` vcs.animate_helper.AnimationController.render_frame``` - -:x:``` vcs.animate_helper.AnimationController.reset_file_paths``` - -:x:``` vcs.animate_helper.AnimationController.run``` - -:x:``` vcs.animate_helper.AnimationController.save``` - -:x:``` vcs.animate_helper.AnimationController.set_anim_min_max``` - -:x:``` vcs.animate_helper.AnimationController.set_signals``` - -:x:``` vcs.animate_helper.AnimationController.stop``` - -:x:``` vcs.animate_helper.AnimationController.vertical``` - -:x:``` vcs.animate_helper.AnimationController.zoom``` - -:x:``` vcs.animate_helper.AnimationCreate``` - -:x:``` vcs.animate_helper.AnimationCreate.__init__``` - -:x:``` vcs.animate_helper.AnimationCreate.run``` - -:x:``` vcs.animate_helper.AnimationCreateParams``` - -:x:``` vcs.animate_helper.AnimationCreateParams.__init__``` - -:x:``` vcs.animate_helper.AnimationPlayback``` - -:x:``` vcs.animate_helper.AnimationPlayback.__init__``` - -:x:``` vcs.animate_helper.AnimationPlayback.run``` - -:x:``` vcs.animate_helper.AnimationPlaybackParams``` - -:x:``` vcs.animate_helper.AnimationPlaybackParams.__init__``` - -:x:``` vcs.animate_helper.AnimationPlaybackParams.fps``` - -:x:``` vcs.animate_helper.AnimationPlaybackParams.horizontal``` - -:x:``` vcs.animate_helper.AnimationPlaybackParams.vertical``` - -:x:``` vcs.animate_helper.AnimationPlaybackParams.zoom``` - -:x:``` vcs.animate_helper.RT``` - -:x:``` vcs.animate_helper.RT.__init__``` - -:x:``` vcs.animate_helper.RT.start``` - -:x:``` vcs.animate_helper.RT.stop``` - -:x:``` vcs.animate_helper.StoppableThread``` - -:x:``` vcs.animate_helper.StoppableThread.__init__``` - -:x:``` vcs.animate_helper.StoppableThread.is_stopped``` - -:x:``` vcs.animate_helper.StoppableThread.pause``` - -:x:``` vcs.animate_helper.StoppableThread.resume``` - -:x:``` vcs.animate_helper.StoppableThread.stop``` - -:x:``` vcs.animate_helper.StoppableThread.wait_if_paused``` - -:x:``` vcs.animate_helper.animate_obj_old``` - -:x:``` vcs.animate_helper.animate_obj_old.__init__``` - -:x:``` vcs.animate_helper.animate_obj_old.animate_info_from_python``` - -:x:``` vcs.animate_helper.animate_obj_old.close``` - -:x:``` vcs.animate_helper.animate_obj_old.create``` - -:x:``` vcs.animate_helper.animate_obj_old.creating_animation_flg``` - -:x:``` vcs.animate_helper.animate_obj_old.direction``` - -:x:``` vcs.animate_helper.animate_obj_old.frame``` - -:x:``` vcs.animate_helper.animate_obj_old.horizontal``` - -:x:``` vcs.animate_helper.animate_obj_old.load_from_file``` - -:x:``` vcs.animate_helper.animate_obj_old.mode``` - -:x:``` vcs.animate_helper.animate_obj_old.number_of_frames``` - -:x:``` vcs.animate_helper.animate_obj_old.pause``` - -:x:``` vcs.animate_helper.animate_obj_old.restore_min_max``` - -:x:``` vcs.animate_helper.animate_obj_old.return_animation_min_max``` - -:x:``` vcs.animate_helper.animate_obj_old.run``` - -:x:``` vcs.animate_helper.animate_obj_old.run_animation_flg``` - -:x:``` vcs.animate_helper.animate_obj_old.save_original_min_max``` - -:x:``` vcs.animate_helper.animate_obj_old.set_animation_min_max``` - -:x:``` vcs.animate_helper.animate_obj_old.stop``` - -:x:``` vcs.animate_helper.animate_obj_old.stop_create``` - -:x:``` vcs.animate_helper.animate_obj_old.update_animate_display_list``` - -:x:``` vcs.animate_helper.animate_obj_old.vertical``` - -:x:``` vcs.animate_helper.animate_obj_old.zoom``` - -:x:``` vcs.animate_helper.showerror``` - diff --git a/docs/doctest_info/animate_helper.report b/docs/doctest_info/animate_helper.report deleted file mode 100644 index e7b4be05a..000000000 --- a/docs/doctest_info/animate_helper.report +++ /dev/null @@ -1,84 +0,0 @@ -80 items had no tests: - vcs.animate_helper - vcs.animate_helper.AnimationController - vcs.animate_helper.AnimationController.__init__ - vcs.animate_helper.AnimationController.close - vcs.animate_helper.AnimationController.create - vcs.animate_helper.AnimationController.create_pause - vcs.animate_helper.AnimationController.create_resume - vcs.animate_helper.AnimationController.create_stop - vcs.animate_helper.AnimationController.created - vcs.animate_helper.AnimationController.draw_frame - vcs.animate_helper.AnimationController.fps - vcs.animate_helper.AnimationController.generate_number_of_frames - vcs.animate_helper.AnimationController.get_all_frame_args - vcs.animate_helper.AnimationController.horizontal - vcs.animate_helper.AnimationController.initialize_create_canvas - vcs.animate_helper.AnimationController.is_playing - vcs.animate_helper.AnimationController.number_of_frames - vcs.animate_helper.AnimationController.pause - vcs.animate_helper.AnimationController.playback_pause - vcs.animate_helper.AnimationController.playback_resume - vcs.animate_helper.AnimationController.playback_stop - vcs.animate_helper.AnimationController.render_frame - vcs.animate_helper.AnimationController.reset_file_paths - vcs.animate_helper.AnimationController.run - vcs.animate_helper.AnimationController.save - vcs.animate_helper.AnimationController.set_anim_min_max - vcs.animate_helper.AnimationController.set_signals - vcs.animate_helper.AnimationController.stop - vcs.animate_helper.AnimationController.vertical - vcs.animate_helper.AnimationController.zoom - vcs.animate_helper.AnimationCreate - vcs.animate_helper.AnimationCreate.__init__ - vcs.animate_helper.AnimationCreate.run - vcs.animate_helper.AnimationCreateParams - vcs.animate_helper.AnimationCreateParams.__init__ - vcs.animate_helper.AnimationPlayback - vcs.animate_helper.AnimationPlayback.__init__ - vcs.animate_helper.AnimationPlayback.run - vcs.animate_helper.AnimationPlaybackParams - vcs.animate_helper.AnimationPlaybackParams.__init__ - vcs.animate_helper.AnimationPlaybackParams.fps - vcs.animate_helper.AnimationPlaybackParams.horizontal - vcs.animate_helper.AnimationPlaybackParams.vertical - vcs.animate_helper.AnimationPlaybackParams.zoom - vcs.animate_helper.RT - vcs.animate_helper.RT.__init__ - vcs.animate_helper.RT.start - vcs.animate_helper.RT.stop - vcs.animate_helper.StoppableThread - vcs.animate_helper.StoppableThread.__init__ - vcs.animate_helper.StoppableThread.is_stopped - vcs.animate_helper.StoppableThread.pause - vcs.animate_helper.StoppableThread.resume - vcs.animate_helper.StoppableThread.stop - vcs.animate_helper.StoppableThread.wait_if_paused - vcs.animate_helper.animate_obj_old - vcs.animate_helper.animate_obj_old.__init__ - vcs.animate_helper.animate_obj_old.animate_info_from_python - vcs.animate_helper.animate_obj_old.close - vcs.animate_helper.animate_obj_old.create - vcs.animate_helper.animate_obj_old.creating_animation_flg - vcs.animate_helper.animate_obj_old.direction - vcs.animate_helper.animate_obj_old.frame - vcs.animate_helper.animate_obj_old.horizontal - vcs.animate_helper.animate_obj_old.load_from_file - vcs.animate_helper.animate_obj_old.mode - vcs.animate_helper.animate_obj_old.number_of_frames - vcs.animate_helper.animate_obj_old.pause - vcs.animate_helper.animate_obj_old.restore_min_max - vcs.animate_helper.animate_obj_old.return_animation_min_max - vcs.animate_helper.animate_obj_old.run - vcs.animate_helper.animate_obj_old.run_animation_flg - vcs.animate_helper.animate_obj_old.save_original_min_max - vcs.animate_helper.animate_obj_old.set_animation_min_max - vcs.animate_helper.animate_obj_old.stop - vcs.animate_helper.animate_obj_old.stop_create - vcs.animate_helper.animate_obj_old.update_animate_display_list - vcs.animate_helper.animate_obj_old.vertical - vcs.animate_helper.animate_obj_old.zoom - vcs.animate_helper.showerror -0 tests in 80 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/bars.png b/docs/doctest_info/bars.png deleted file mode 100644 index 2d0ac29d7092ad2cbdca17bce7beb5ab1d00d344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36717 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", line 1, in cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5721, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5753, in createcolormap return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1785, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1782, in createcolormap Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error colormap object named example already exists ``` diff --git a/docs/doctest_info/colormap.report b/docs/doctest_info/colormap.report index e00f56ab9..a39535761 100644 --- a/docs/doctest_info/colormap.report +++ b/docs/doctest_info/colormap.report @@ -44,11 +44,11 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5721, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5753, in createcolormap return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1785, in createcolormap + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1782, in createcolormap Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error colormap object named example already exists Trying: diff --git a/docs/doctest_info/colorpicker.md b/docs/doctest_info/colorpicker.md deleted file mode 100644 index 73bcf4837..000000000 --- a/docs/doctest_info/colorpicker.md +++ /dev/null @@ -1,30 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.colorpicker``` - -:x:``` vcs.colorpicker.ColorPicker``` - -:x:``` vcs.colorpicker.ColorPicker.__init__``` - -:x:``` vcs.colorpicker.ColorPicker.cancel``` - -:x:``` vcs.colorpicker.ColorPicker.change_map``` - -:x:``` vcs.colorpicker.ColorPicker.clickEvent``` - -:x:``` vcs.colorpicker.ColorPicker.close``` - -:x:``` vcs.colorpicker.ColorPicker.make_current``` - -:x:``` vcs.colorpicker.ColorPicker.save``` - -:x:``` vcs.colorpicker.ColorPicker.selectCell``` - -:x:``` vcs.colorpicker.ColorPicker.topRendererAtPoint``` - -:x:``` vcs.colorpicker.collection``` - -:x:``` vcs.colorpicker.colors_to_scalars``` - -:x:``` vcs.colorpicker.make_color_plane``` - diff --git a/docs/doctest_info/colorpicker.report b/docs/doctest_info/colorpicker.report deleted file mode 100644 index 7ac2d2cbb..000000000 --- a/docs/doctest_info/colorpicker.report +++ /dev/null @@ -1,18 +0,0 @@ -14 items had no tests: - vcs.colorpicker - vcs.colorpicker.ColorPicker - vcs.colorpicker.ColorPicker.__init__ - vcs.colorpicker.ColorPicker.cancel - vcs.colorpicker.ColorPicker.change_map - vcs.colorpicker.ColorPicker.clickEvent - vcs.colorpicker.ColorPicker.close - vcs.colorpicker.ColorPicker.make_current - vcs.colorpicker.ColorPicker.save - vcs.colorpicker.ColorPicker.selectCell - vcs.colorpicker.ColorPicker.topRendererAtPoint - vcs.colorpicker.collection - vcs.colorpicker.colors_to_scalars - vcs.colorpicker.make_color_plane -0 tests in 14 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/log_all_doctests.sh b/docs/doctest_info/log_all_doctests.sh deleted file mode 100755 index b8973f63d..000000000 --- a/docs/doctest_info/log_all_doctests.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" -"Pxtickmarks" "Pylabels" "Pytickmarks" "validation_functions" "VTKAnimate" "VTKPlots" -"animate_helper" "boxfill" "colormap" "colorpicker" "colors" "configurator" "displayplot" -"dv3d" "editors" "error" "fillarea" "isofill" "isoline" "line" "manageElements" -"marker" "meshfill" "projection" "queries" "taylor" "template" "textcombined" -"textorientation" "texttable" "unified1D" "utils" "vcs2vtk" "vcshelp" "vcsvtk" "vector" -"vtk_ui") - - -for module in "${MODULES[@]}"; do python doctest_vcs.py -v -r --LO "$module"; done; diff --git a/docs/doctest_info/manageElements.md b/docs/doctest_info/manageElements.md index 58f2934ee..b3ed13a9a 100644 --- a/docs/doctest_info/manageElements.md +++ b/docs/doctest_info/manageElements.md @@ -1,19 +1,3 @@ -vcs.manageElements.check_name_source ------------------------------------- -```python -Failed example: - cns('polar','quick','boxfill') # is 'polar' boxfill taken? -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cns('polar','quick','boxfill') # is 'polar' boxfill taken? - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error boxfill object named polar already exists -``` - vcs.manageElements.createtext ----------------------------- ```python @@ -50,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -62,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -76,7 +60,43 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + +``` + +vcs.manageElements.getprojection +-------------------------------- +```python +Failed example: + a.plot(ex, slab1) # plot using specified projection object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex, slab1) # plot using specified projection object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2636, in plot + a = self.__plot(arglist, keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2967, in __plot + setattr(copy_mthd, p, keyargs[p]) + AttributeError: 'NoneType' object has no attribute 'projection' +``` + +vcs.manageElements.getprojection +-------------------------------- +```python +Failed example: + a.plot(ex2, slab1) # plot using specified projection object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex2, slab1) # plot using specified projection object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2636, in plot + a = self.__plot(arglist, keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2967, in __plot + setattr(copy_mthd, p, keyargs[p]) + AttributeError: 'NoneType' object has no attribute 'projection' ``` vcs.manageElements.gettaylordiagram @@ -90,7 +110,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1306, in taylordiagram + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1319, in taylordiagram arglist = _determine_arg_list('taylordiagram', args) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list arglist[igraphics_method]) diff --git a/docs/doctest_info/manageElements.report b/docs/doctest_info/manageElements.report index 35f9d34c8..747b51847 100644 --- a/docs/doctest_info/manageElements.report +++ b/docs/doctest_info/manageElements.report @@ -10,24 +10,7 @@ Expecting: *******************End Boxfill Names List********************** ok Trying: - cns('polar','quick','boxfill') # is 'polar' boxfill taken? -Expecting: - vcsError: Error boxfill object named polar already exists -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 42, in vcs.manageElements.check_name_source -Failed example: - cns('polar','quick','boxfill') # is 'polar' boxfill taken? -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cns('polar','quick','boxfill') # is 'polar' boxfill taken? - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error boxfill object named polar already exists -Trying: - cns('NEW', 'quick', 'boxfill') # 'NEW' should be available... + cns('NEW', 'quick', 'boxfill') # name 'NEW' should be available Expecting: ('NEW', 'quick') ok @@ -383,7 +366,7 @@ Expecting: ... *******************End Textcombined Names List********************** ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1437, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1434, in vcs.manageElements.createtext Failed example: vcs.show('textcombined') # show all available textcombined Expected: @@ -400,7 +383,7 @@ Trying: pass Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1441, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1438, in vcs.manageElements.createtext Failed example: try: # try to create a new textcombined, in case none exist vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') @@ -573,14 +556,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1706, in vcs.manageElements.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1703, in vcs.manageElements.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -611,14 +594,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1664, in vcs.manageElements.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1661, in vcs.manageElements.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -653,7 +636,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1747, in vcs.manageElements.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1744, in vcs.manageElements.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -662,7 +645,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -937,7 +920,21 @@ Trying: a.plot(ex, slab1) # plot using specified projection object Expecting: -ok +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 183, in vcs.manageElements.getprojection +Failed example: + a.plot(ex, slab1) # plot using specified projection object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex, slab1) # plot using specified projection object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2636, in plot + a = self.__plot(arglist, keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2967, in __plot + setattr(copy_mthd, p, keyargs[p]) + AttributeError: 'NoneType' object has no attribute 'projection' Trying: ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method Expecting nothing @@ -946,7 +943,21 @@ Trying: a.plot(ex2, slab1) # plot using specified projection object Expecting: -ok +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 186, in vcs.manageElements.getprojection +Failed example: + a.plot(ex2, slab1) # plot using specified projection object +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex2, slab1) # plot using specified projection object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2636, in plot + a = self.__plot(arglist, keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2967, in __plot + setattr(copy_mthd, p, keyargs[p]) + AttributeError: 'NoneType' object has no attribute 'projection' Trying: a=vcs.init() Expecting nothing @@ -1011,7 +1022,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 295, in vcs.manageElements.gettaylordiagram +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 292, in vcs.manageElements.gettaylordiagram Failed example: a.taylordiagram(ex) # plot using specified taylordiagram object Exception raised: @@ -1020,7 +1031,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1306, in taylordiagram + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1319, in taylordiagram arglist = _determine_arg_list('taylordiagram', args) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list arglist[igraphics_method]) @@ -1319,6 +1330,7 @@ ok vcs.manageElements.removeTo vcs.manageElements.removeTt 43 items passed all tests: + 4 tests in vcs.manageElements.check_name_source 4 tests in vcs.manageElements.create1d 3 tests in vcs.manageElements.create3d_dual_scalar 3 tests in vcs.manageElements.create3d_scalar @@ -1350,7 +1362,6 @@ ok 6 tests in vcs.manageElements.getline 6 tests in vcs.manageElements.getmarker 9 tests in vcs.manageElements.getmeshfill - 9 tests in vcs.manageElements.getprojection 8 tests in vcs.manageElements.getscatter 9 tests in vcs.manageElements.gettemplate 5 tests in vcs.manageElements.gettextcombined @@ -1364,12 +1375,12 @@ ok 7 tests in vcs.manageElements.setLineAttributes ********************************************************************** 6 items had failures: - 1 of 5 in vcs.manageElements.check_name_source 2 of 3 in vcs.manageElements.createtext 1 of 8 in vcs.manageElements.get3d_dual_scalar 1 of 7 in vcs.manageElements.get3d_scalar 1 of 8 in vcs.manageElements.get3d_vector + 2 of 9 in vcs.manageElements.getprojection 1 of 7 in vcs.manageElements.gettaylordiagram -264 tests in 71 items. -257 passed and 7 failed. -***Test Failed*** 7 failures. +263 tests in 71 items. +255 passed and 8 failed. +***Test Failed*** 8 failures. diff --git a/docs/doctest_info/queries.md b/docs/doctest_info/queries.md index 0998d1c82..9fecf5153 100644 --- a/docs/doctest_info/queries.md +++ b/docs/doctest_info/queries.md @@ -19,7 +19,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/queries.report b/docs/doctest_info/queries.report index 928fef680..080434c3c 100644 --- a/docs/doctest_info/queries.report +++ b/docs/doctest_info/queries.report @@ -444,7 +444,7 @@ Failed example: pass Expected nothing Got: - + Trying: a.show('textcombined') # Show all available textcombined Expecting: diff --git a/docs/doctest_info/run_all_doctests.sh b/docs/doctest_info/run_all_doctests.sh index 019efdf5a..cb6139cfb 100755 --- a/docs/doctest_info/run_all_doctests.sh +++ b/docs/doctest_info/run_all_doctests.sh @@ -1,11 +1,10 @@ #!/usr/bin/env bash MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" -"Pxtickmarks" "Pylabels" "Pytickmarks" "validation_functions" "VTKAnimate" "VTKPlots" -"animate_helper" "boxfill" "colormap" "colorpicker" "colors" "configurator" "displayplot" +"Pxtickmarks" "Pylabels" "Pytickmarks" "VCS_validation_functions" "boxfill" +"colormap" "colors" "configurator" "displayplot" "dv3d" "editors" "error" "fillarea" "isofill" "isoline" "line" "manageElements" "marker" "meshfill" "projection" "queries" "taylor" "template" "textcombined" -"textorientation" "texttable" "unified1D" "utils" "vcs2vtk" "vcshelp" "vcsvtk" "vector" -"vtk_ui") +"textorientation" "texttable" "unified1D" "utils" "vcshelp" "vector") for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -a -v -r > "$module.report"; done; diff --git a/docs/doctest_info/sample.png b/docs/doctest_info/sample.png deleted file mode 100644 index 5f7004ae450b6632aeeea99c54c8aaab0329c928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7618 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 AeE", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists ``` @@ -62,9 +62,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists ``` @@ -94,9 +94,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists ``` diff --git a/docs/doctest_info/template.report b/docs/doctest_info/template.report index 915daf061..efb4cb983 100644 --- a/docs/doctest_info/template.report +++ b/docs/doctest_info/template.report @@ -31,7 +31,7 @@ Exception raised: ["sample A","type B","thing C"],True) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2400, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2693, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' Trying: @@ -63,9 +63,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists Trying: @@ -111,9 +111,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists Trying: @@ -143,9 +143,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 116, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 93, in check_name_source + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) vcsError: Error template object named example1 already exists Trying: diff --git a/docs/doctest_info/textcombined.md b/docs/doctest_info/textcombined.md index 164fa7601..7fc6ca92d 100644 --- a/docs/doctest_info/textcombined.md +++ b/docs/doctest_info/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script diff --git a/docs/doctest_info/textcombined.report b/docs/doctest_info/textcombined.report index 77dacb07a..563c85517 100644 --- a/docs/doctest_info/textcombined.report +++ b/docs/doctest_info/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing diff --git a/docs/doctest_info/utils.md b/docs/doctest_info/utils.md index 304050497..fc0e03acf 100644 --- a/docs/doctest_info/utils.md +++ b/docs/doctest_info/utils.md @@ -1,14 +1,3 @@ -vcs.utils.mklabels ------------------- -```python -Failed example: - vcs.mklabels ( [5,.005]) -Expected: - {0.005: '0.005', 5.0: '5.000'} -Got: - {5.0: '5.000', 0.005: '0.005'} -``` - Missing Doctests ---------------- :x:``` vcs.utils``` @@ -25,36 +14,14 @@ Missing Doctests :x:``` vcs.utils._scriptrun``` -:x:``` vcs.utils.creategraphicsmethod``` - -:x:``` vcs.utils.download_sample_data_files``` - -:x:``` vcs.utils.dumpToDict``` - -:x:``` vcs.utils.dumpToJson``` - :x:``` vcs.utils.getDataWcValue``` -:x:``` vcs.utils.get_png_dims``` - :x:``` vcs.utils.getdotdirectory``` -:x:``` vcs.utils.getfontname``` - -:x:``` vcs.utils.getfontnumber``` - -:x:``` vcs.utils.getgraphicsmethod``` - -:x:``` vcs.utils.getworldcoordinates``` - -:x:``` vcs.utils.listelements``` - :x:``` vcs.utils.loadTemplate``` :x:``` vcs.utils.loadVCSItem``` -:x:``` vcs.utils.monotonic``` - :x:``` vcs.utils.png_read_metadata``` :x:``` vcs.utils.prettifyAxisLabels``` diff --git a/docs/doctest_info/utils.report b/docs/doctest_info/utils.report index 22345077d..fcfe835ad 100644 --- a/docs/doctest_info/utils.report +++ b/docs/doctest_info/utils.report @@ -51,15 +51,7 @@ Trying: Expecting nothing ok Trying: - import vcs -Expecting nothing -ok -Trying: - import os -Expecting nothing -ok -Trying: - import sys + import os, sys Expecting nothing ok Trying: @@ -102,6 +94,34 @@ Trying: logo2.plot(x) Expecting nothing ok +Trying: + cgm=vcs.creategraphicsmethod # alias long name +Expecting nothing +ok +Trying: + cgm('Gfm') # meshfill inherits default; name generated +Expecting: + +ok +Trying: + cgm('boxfill','polar') # boxfill inherits polar; name generated +Expecting: + +ok +Trying: + cgm('Gfi',name='my_gfi') # isofill inherits default; user-named +Expecting: + +ok +Trying: + import os # use this to check if sample data already exists +Expecting nothing +ok +Trying: + if not os.path.isdir(vcs.sample_data): + vcs.download_sample_data_files() +Expecting nothing +ok Trying: import vcs Expecting nothing @@ -125,6 +145,40 @@ Trying: x.png("sample") Expecting nothing ok +Trying: + b=vcs.getboxfill() +Expecting nothing +ok +Trying: + t=vcs.gettemplate() +Expecting nothing +ok +Trying: + bd=vcs.dumpToDict(b) # serializes all properties +Expecting nothing +ok +Trying: + td=vcs.dumpToDict(t, skipped=['legend']) # skip legend property +Expecting nothing +ok +Trying: + 'legend' in td[0].keys() # 'legend' should not be in dictionary +Expecting: + False +ok +Trying: + box=vcs.getboxfill() +Expecting nothing +ok +Trying: + vcs.dumpToJson(box, 'box.json') # output properties to file +Expecting nothing +ok +Trying: + vcs.dumpToJson(box,None) # returns JSON string +Expecting: + '{...}' +ok Trying: import cdtime Expecting nothing @@ -149,6 +203,32 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + box=vcs.getboxfill('polar') +Expecting nothing +ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + a.plot(box,array) # plot something on canvas +Expecting: + +ok +Trying: + a.png('box.png') # make a png +Expecting nothing +ok +Trying: + vcs.get_png_dims('box.png') # get (width, height) of 'box.png' +Expecting: + (1536, 1186) +ok +Trying: + a=vcs.init() +Expecting nothing +ok Trying: b=vcs.createboxfill() Expecting nothing @@ -214,6 +294,87 @@ Trying: Expecting: [0, 36, 73, 109, 146, 182, 219, 255] ok +Trying: + vcs.getfontname(1) +Expecting: + 'default' +ok +Trying: + vcs.getfontname(4) +Expecting: + 'Helvetica' +ok +Trying: + vcs.getfontnumber('default') +Expecting: + 1 +ok +Trying: + vcs.getfontnumber('Helvetica') +Expecting: + 4 +ok +Trying: + vcs.show('boxfill') # list available boxfills +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + vcs.getgraphicsmethod('boxfill','polar') # get polar boxfill +Expecting: + +ok +Trying: + import cdms2, os +Expecting nothing +ok +Trying: + if not os.path.exists(vcs.sample_data): + vcs.download_sample_data_files() # get some data for cdms2 +Expecting nothing +ok +Trying: + f=cdms2.open(vcs.sample_data + '/clt.nc') +Expecting nothing +ok +Trying: + v=f('v') # read variable v from clt.nc +Expecting nothing +ok +Trying: + xax=v.getAxis(3) # X axis +Expecting nothing +ok +Trying: + yax=v.getAxis(2) # Y axis +Expecting nothing +ok +Trying: + box=vcs.getboxfill() +Expecting nothing +ok +Trying: + vcs.getworldcoordinates(box, xax, yax) +Expecting: + [-180.0, 180.0, -88.288399, 88.288399] +ok +Trying: + vcs.listelements() # list all vcs object types +Expecting: + ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', ...] +ok +Trying: + vcs.listelements('1d') +Expecting: + [...] +ok +Trying: + vcs.listelements('boxfill') +Expecting: + [...] +ok Trying: a=vcs.init() Expecting nothing @@ -268,33 +429,59 @@ Expecting: [100.0, 80.0, 60.0, 40.0, 20.0, 0.0] ok Trying: - a=vcs.mkscale(2,20,zero=2) + scale=vcs.mkscale(2,20,zero=2) Expecting nothing ok Trying: - vcs.mklabels(a) -Expecting: - {0.0: '0', 2.0: '2', 4.0: '4', 6.0: '6', 8.0: '8', 10.0: '10', 12.0: '12', 14.0: '14', ...} + labels=vcs.mklabels(scale) +Expecting nothing +ok +Trying: + keys=labels.keys() +Expecting nothing ok Trying: - vcs.mklabels ( [5,.005]) + keys.sort() +Expecting nothing +ok +Trying: + for key in keys: + print key, ':', labels[key] Expecting: - {0.005: '0.005', 5.0: '5.000'} -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 1204, in vcs.utils.mklabels -Failed example: - vcs.mklabels ( [5,.005]) -Expected: - {0.005: '0.005', 5.0: '5.000'} -Got: - {5.0: '5.000', 0.005: '0.005'} + 0.0 : 0 + 2.0 : 2 + 4.0 : 4 + 6.0 : 6 + 8.0 : 8 + 10.0 : 10 + 12.0 : 12 + 14.0 : 14 + 16.0 : 16 + 18.0 : 18 + 20.0 : 20 +ok +Trying: + labels=vcs.mklabels([.00002,.00003,.00005]) +Expecting nothing +ok +Trying: + keys=labels.keys() +Expecting nothing +ok +Trying: + keys.sort() +Expecting nothing +ok Trying: - vcs.mklabels ( [.00002,.00005]) + for key in keys: + print key, ':', labels[key] Expecting: - {2e-05: '2E-5', 5e-05: '5E-5'} + 2e-05 : 2E-5 + 3e-05 : 3E-5 + 5e-05 : 5E-5 ok Trying: - vcs.mklabels ( [.00002,.00005],output='list') + vcs.mklabels ([.00002,.00005],output='list') Expecting: ['2E-5', '5E-5'] ok @@ -328,6 +515,59 @@ Trying: Expecting: [0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] ok +Trying: + import numpy, cdms2, os +Expecting nothing +ok +Trying: + from random import randint +Expecting nothing +ok +Trying: + array=numpy.array([range(10) for _ in range(10)]) +Expecting nothing +ok +Trying: + mask=[] # we will use this to create a random mask +Expecting nothing +ok +Trying: + for _ in range(10): + mask.append([randint(0,1) for _ in range(10)]) +Expecting nothing +ok +Trying: + ma=numpy.ma.MaskedArray(array, mask) +Expecting nothing +ok +Trying: + if not os.path.exists(vcs.sample_data): + vcs.download_sample_data_files() # get some data for cdms2 +Expecting nothing +ok +Trying: + f=cdms2.open(vcs.sample_data + '/clt.nc') +Expecting nothing +ok +Trying: + v=f('v') # get variable 'v' from clt.nc +Expecting nothing +ok +Trying: + vcs.monotonic(array) # monotonicity of 2D numpy array +Expecting: + True +ok +Trying: + vcs.monotonic(ma) # monotonicity of simple masked array +Expecting: + True +ok +Trying: + vcs.monotonic(v) # monotonicity of cdms2 variable +Expecting: + False +ok Trying: cp = vcs.getcolormap() # Get a copy of the default colormap Expecting nothing @@ -362,45 +602,46 @@ Trying: Expecting nothing ok Trying: - a=vcs.init() # Create a VCS Canvas instance, named 'a' -Expecting nothing + vcs.show() # show all vcs object types +Expecting: + ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', ...] ok Trying: - a.show('boxfill') # List boxfill objects on Canvas 'a' + vcs.show('boxfill') # List boxfill objects Expecting: *******************Boxfill Names List********************** ... *******************End Boxfill Names List********************** ok Trying: - a.show('isofill') # List isofill objects on Canvas 'a' + vcs.show('3d_vector') # List 3d_vector objects Expecting: - *******************Isofill Names List********************** + *******************3d_vector Names List********************** ... - *******************End Isofill Names List********************** + *******************End 3d_vector Names List********************** ok Trying: - a.show('line') # List line objects on Canvas 'a' + vcs.show('3d_scalar') # List 3d_scalar objects Expecting: - *******************Line Names List********************** + *******************3d_scalar Names List********************** ... - *******************End Line Names List********************** + *******************End 3d_scalar Names List********************** ok Trying: - a.show('marker') # List marker objects on Canvas 'a' + vcs.show('3d_dual_scalar') # List 3d_dual_scalar objects Expecting: - *******************Marker Names List********************** + *******************3d_dual_scalar Names List********************** ... - *******************End Marker Names List********************** + *******************End 3d_dual_scalar Names List********************** ok Trying: - a.show('textcombined') # List text objects on Canvas 'a' + vcs.show('1d') # List 1d objects Expecting: - *******************Textcombined Names List********************** + *******************1d Names List********************** ... - *******************End Textcombined Names List********************** + *******************End 1d Names List********************** ok -31 items had no tests: +20 items had no tests: vcs.utils vcs.utils.Logo.__init__ vcs.utils.VCSUtilsError @@ -408,21 +649,10 @@ ok vcs.utils.VCSUtilsError.__str__ vcs.utils.__split2contiguous vcs.utils._scriptrun - vcs.utils.creategraphicsmethod - vcs.utils.download_sample_data_files - vcs.utils.dumpToDict - vcs.utils.dumpToJson vcs.utils.getDataWcValue - vcs.utils.get_png_dims vcs.utils.getdotdirectory - vcs.utils.getfontname - vcs.utils.getfontnumber - vcs.utils.getgraphicsmethod - vcs.utils.getworldcoordinates - vcs.utils.listelements vcs.utils.loadTemplate vcs.utils.loadVCSItem - vcs.utils.monotonic vcs.utils.png_read_metadata vcs.utils.prettifyAxisLabels vcs.utils.process_range_from_old_scr @@ -432,24 +662,33 @@ ok vcs.utils.scriptrun vcs.utils.scriptrun_scr vcs.utils.setTicksandLabels -14 items passed all tests: +26 items passed all tests: 13 tests in vcs.utils.Logo - 13 tests in vcs.utils.Logo.plot + 11 tests in vcs.utils.Logo.plot + 4 tests in vcs.utils.creategraphicsmethod + 2 tests in vcs.utils.download_sample_data_files 5 tests in vcs.utils.drawLinesAndMarkersLegend + 5 tests in vcs.utils.dumpToDict + 3 tests in vcs.utils.dumpToJson 4 tests in vcs.utils.generate_time_labels + 6 tests in vcs.utils.get_png_dims 4 tests in vcs.utils.getcolorcell 4 tests in vcs.utils.getcolormap 7 tests in vcs.utils.getcolors + 2 tests in vcs.utils.getfontname + 2 tests in vcs.utils.getfontnumber + 2 tests in vcs.utils.getgraphicsmethod + 8 tests in vcs.utils.getworldcoordinates + 3 tests in vcs.utils.listelements 4 tests in vcs.utils.match_color 4 tests in vcs.utils.minmax 3 tests in vcs.utils.mkevenlevels + 10 tests in vcs.utils.mklabels 6 tests in vcs.utils.mkscale + 12 tests in vcs.utils.monotonic 2 tests in vcs.utils.rgba_color 6 tests in vcs.utils.setcolorcell 6 tests in vcs.utils.show -********************************************************************** -1 items had failures: - 1 of 5 in vcs.utils.mklabels -86 tests in 46 items. -85 passed and 1 failed. -***Test Failed*** 1 failures. +138 tests in 46 items. +138 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/vcs2vtk.md b/docs/doctest_info/vcs2vtk.md deleted file mode 100644 index 1d596f49d..000000000 --- a/docs/doctest_info/vcs2vtk.md +++ /dev/null @@ -1,88 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.vcs2vtk``` - -:x:``` vcs.vcs2vtk.__build_ld__``` - -:x:``` vcs.vcs2vtk.__build_pd__``` - -:x:``` vcs.vcs2vtk.applyAttributesFromVCStmpl``` - -:x:``` vcs.vcs2vtk.apply_proj_parameters``` - -:x:``` vcs.vcs2vtk.checkProjParameters``` - -:x:``` vcs.vcs2vtk.checkProjType``` - -:x:``` vcs.vcs2vtk.doWrapData``` - -:x:``` vcs.vcs2vtk.dump2VTK``` - -:x:``` vcs.vcs2vtk.genGrid``` - -:x:``` vcs.vcs2vtk.genPoly``` - -:x:``` vcs.vcs2vtk.genTextActor``` - -:x:``` vcs.vcs2vtk.generateVectorArray``` - -:x:``` vcs.vcs2vtk.getBoundsList``` - -:x:``` vcs.vcs2vtk.getPlottingBounds``` - -:x:``` vcs.vcs2vtk.getProjType``` - -:x:``` vcs.vcs2vtk.getRendererCorners``` - -:x:``` vcs.vcs2vtk.getWrappedBounds``` - -:x:``` vcs.vcs2vtk.numpy_to_vtk_wrapper``` - -:x:``` vcs.vcs2vtk.prepContinents``` - -:x:``` vcs.vcs2vtk.prepFillarea``` - -:x:``` vcs.vcs2vtk.prepGlyph``` - -:x:``` vcs.vcs2vtk.prepLine``` - -:x:``` vcs.vcs2vtk.prepMarker``` - -:x:``` vcs.vcs2vtk.prepPrimitive``` - -:x:``` vcs.vcs2vtk.prepTextProperty``` - -:x:``` vcs.vcs2vtk.project``` - -:x:``` vcs.vcs2vtk.projectArray``` - -:x:``` vcs.vcs2vtk.putMaskOnVTKGrid``` - -:x:``` vcs.vcs2vtk.removeHiddenPoints``` - -:x:``` vcs.vcs2vtk.scaleMarkerGlyph``` - -:x:``` vcs.vcs2vtk.setArray``` - -:x:``` vcs.vcs2vtk.setClipPlanes``` - -:x:``` vcs.vcs2vtk.setInfToValid``` - -:x:``` vcs.vcs2vtk.setMarkerColor``` - -:x:``` vcs.vcs2vtk.setProjectionParameters``` - -:x:``` vcs.vcs2vtk.starPoints``` - -:x:``` vcs.vcs2vtk.stippleLine``` - -:x:``` vcs.vcs2vtk.switchAndTranslate``` - -:x:``` vcs.vcs2vtk.vtkIterate``` - -:x:``` vcs.vcs2vtk.vtkWorld2Renderer``` - -:x:``` vcs.vcs2vtk.world2Renderer``` - -:x:``` vcs.vcs2vtk.wrapDataSetX``` - diff --git a/docs/doctest_info/vcs2vtk.report b/docs/doctest_info/vcs2vtk.report deleted file mode 100644 index d17d3a24d..000000000 --- a/docs/doctest_info/vcs2vtk.report +++ /dev/null @@ -1,47 +0,0 @@ -43 items had no tests: - vcs.vcs2vtk - vcs.vcs2vtk.__build_ld__ - vcs.vcs2vtk.__build_pd__ - vcs.vcs2vtk.applyAttributesFromVCStmpl - vcs.vcs2vtk.apply_proj_parameters - vcs.vcs2vtk.checkProjParameters - vcs.vcs2vtk.checkProjType - vcs.vcs2vtk.doWrapData - vcs.vcs2vtk.dump2VTK - vcs.vcs2vtk.genGrid - vcs.vcs2vtk.genPoly - vcs.vcs2vtk.genTextActor - vcs.vcs2vtk.generateVectorArray - vcs.vcs2vtk.getBoundsList - vcs.vcs2vtk.getPlottingBounds - vcs.vcs2vtk.getProjType - vcs.vcs2vtk.getRendererCorners - vcs.vcs2vtk.getWrappedBounds - vcs.vcs2vtk.numpy_to_vtk_wrapper - vcs.vcs2vtk.prepContinents - vcs.vcs2vtk.prepFillarea - vcs.vcs2vtk.prepGlyph - vcs.vcs2vtk.prepLine - vcs.vcs2vtk.prepMarker - vcs.vcs2vtk.prepPrimitive - vcs.vcs2vtk.prepTextProperty - vcs.vcs2vtk.project - vcs.vcs2vtk.projectArray - vcs.vcs2vtk.putMaskOnVTKGrid - vcs.vcs2vtk.removeHiddenPoints - vcs.vcs2vtk.scaleMarkerGlyph - vcs.vcs2vtk.setArray - vcs.vcs2vtk.setClipPlanes - vcs.vcs2vtk.setInfToValid - vcs.vcs2vtk.setMarkerColor - vcs.vcs2vtk.setProjectionParameters - vcs.vcs2vtk.starPoints - vcs.vcs2vtk.stippleLine - vcs.vcs2vtk.switchAndTranslate - vcs.vcs2vtk.vtkIterate - vcs.vcs2vtk.vtkWorld2Renderer - vcs.vcs2vtk.world2Renderer - vcs.vcs2vtk.wrapDataSetX -0 tests in 43 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/vcsvtk.md b/docs/doctest_info/vcsvtk.md deleted file mode 100644 index 933e13390..000000000 --- a/docs/doctest_info/vcsvtk.md +++ /dev/null @@ -1,4 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.vcsvtk``` - diff --git a/docs/doctest_info/vcsvtk.report b/docs/doctest_info/vcsvtk.report deleted file mode 100644 index eaced438f..000000000 --- a/docs/doctest_info/vcsvtk.report +++ /dev/null @@ -1,5 +0,0 @@ -1 items had no tests: - vcs.vcsvtk -0 tests in 1 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/vtk_ui.md b/docs/doctest_info/vtk_ui.md deleted file mode 100644 index 4ea3a01b5..000000000 --- a/docs/doctest_info/vtk_ui.md +++ /dev/null @@ -1,4 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.vtk_ui``` - diff --git a/docs/doctest_info/vtk_ui.report b/docs/doctest_info/vtk_ui.report deleted file mode 100644 index 896a28a4a..000000000 --- a/docs/doctest_info/vtk_ui.report +++ /dev/null @@ -1,5 +0,0 @@ -1 items had no tests: - vcs.vtk_ui -0 tests in 1 items. -0 passed and 0 failed. -Test passed. diff --git a/vcs/Canvas.py b/vcs/Canvas.py index d9d0e2a59..cf0a4dbda 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -293,10 +293,11 @@ def _process_keyword(obj, target, source, keyargs, default=None): class Canvas(object): """ - The object onto which all plots are drawn. - Usually created using :py:func:`vcs.init`, this object provides easy access - to the functionality of the entire VCS module. + to the functionality of the entire VCS module: + + See :py:func:`vcs.Canvas.Canvas.plot` for more information on the type of + data that can be plotted on a Canvas object. """ __slots__ = [ '_mode', @@ -479,6 +480,13 @@ def start(self, *args, **kargs): self.interact(*args, **kargs) def interact(self, *args, **kargs): + """ + Puts the canvas into interactive mode. + + :param args: + :param kargs: + :return: + """ self.configure() self.backend.interact(*args, **kargs) @@ -1143,7 +1151,7 @@ def clean_auto_generated_objects(self, type=None): >>> a=vcs.init() >>> clean=a.clean_auto_generated_objects # alias long name >>> clean() # clean possible old objects from vcs - >>> boxes=vcs.listelements('boxfill') # initial boxfill names + >>> boxes=a.listelements('boxfill') # initial boxfill names >>> array=[range(10) for _ in range(10)] >>> a.plot(array) @@ -2303,6 +2311,7 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, ... *******************End Texttable Names List********************** >>> vcs.createtextcombined('draw_tt','qa', 'draw_tto', '7left') + >>> msg=["Hello", "drawtextcombined!"] >>> tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) @@ -2401,44 +2410,59 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, def plot(self, *actual_args, **keyargs): """ - Plot an array(s) of data given a template and graphics method. The VCS template is - used to define where the data and variable attributes will be displayed on the VCS - Canvas. The VCS graphics method is used to define how the array(s) will be shown - on the VCS Canvas. + Plot an array(s) of data given a template and graphics method. - .. describe:: Plot Usage: + The VCS template is used to define where the data and variable + attributes will be displayed on the VCS Canvas. - .. code-block:: python + The VCS graphics method is used to define how the array(s) will be + shown on the VCS Canvas. - plot(array1=None, array2=None, template_name=None, - graphics_method=None, graphics_name=None, - [key=value [, key=value [, ...]]]) + .. describe:: Plot Usage: - .. note:: + .. doctest:: canvas_plot_usage - array1 and array2 are NumPy arrays. + >>> import numpy + >>> a=vcs.init() + >>> a.show('template') # list vcs template types + *******************Template Names List********************** + ... + *******************End Template Names List********************** + >>> a.show('boxfill') # one of many graphics method types + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** + >>> array1 = numpy.array([range(10) for _ in range(10)]) # data + >>> a.plot(variable=array1) + + >>> a.plot(array1,'ASD',gm='boxfill') # boxfill, ASD template + .. describe:: Plot attribute keywords: - .. note:: + .. note:: Attribute Precedence - More specific attributes take precedence over general attributes. In particular, - specific attributes override variable object attributes, dimension attributes and - arrays override axis objects, which override grid objects, which override variable + Specific attributes take precedence over general attributes. + In particular, specific attributes override variable object + attributes, dimension attributes and arrays override axis + objects, which override grid objects, which override variable objects. - For example, if both 'file_comment' and 'variable' keywords are specified, the value of - 'file_comment' is used instead of the file comment in the parent of variable. Similarly, - if both 'xaxis' and 'grid' keywords are specified, the value of 'xaxis' takes precedence - over the x-axis of grid. + For example, if both 'file_comment' and 'variable' keywords are + specified, the value of 'file_comment' is used instead of the + file comment in the parent of variable. Similarly, if both + 'xaxis' and 'grid' keywords are specified, the value of 'xaxis' + takes precedence over the x-axis of grid. - * ratio [default is none] + * ratio [default is None] * None: let the self.ratio attribute decide - * 0,'off': overwrite self.ratio and do nothing about the ratio + * 0, 'off': overwrite self.ratio and do nothing about the ratio * 'auto': computes an automatic ratio - * '3',3: y dim will be 3 times bigger than x dim (restricted to original tempalte.data area - * Adding a 't' at the end of the ratio, makes the tickmarks and boxes move along. + * '3', 3: y dim will be 3 times bigger than x dim (restricted + to original tempalte.data area) + * Adding a 't' at the end of the ratio, makes the tickmarks and + boxes move along. * Dimension attribute keys (dimension length=n): @@ -2512,6 +2536,7 @@ def plot(self, *actual_args, **keyargs): * 5 signifies "Rivers" .. note:: + Values 6 through 11 signify the line type defined by the files data_continent_other7 through data_continent_other12. @@ -2555,7 +2580,7 @@ def plot(self, *actual_args, **keyargs): .. code-block:: python - # if ==1, create images in the background + # if 1, create images in the background (not on canvas) bg = 0|1 :Example: @@ -2567,17 +2592,17 @@ def plot(self, *actual_args, **keyargs): >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file >>> slab1 = f('u') # use the data file to create a cdms2 slab >>> slab2 = f('v') # need 2 slabs, so get another - >>> a.plot(slab1) # this call will use default settings for template and boxfill + >>> a.plot(slab1) # default settings for template and boxfill - >>> a.plot(slab1, 'polar', 'isofill', 'polar') # this is specifying the template and graphics method + >>> a.plot(slab1,'polar','isofill','polar') # specify template and graphics method >>> t=a.gettemplate('polar') # get the polar template >>> vec=a.getvector() # get default vector - >>> a.plot(slab1, slab2, t, vec) # plot the data as a vector using the 'AMIP' template + >>> a.plot(slab1, slab2, t, vec) # plot data as vector using polar template >>> a.clear() # clear the VCS Canvas of all plots >>> box=a.getboxfill() # get default boxfill graphics method - >>> a.plot(box,t,slab2) # plot array data using box 'new' and template 't' + >>> a.plot(box,t,slab2) # plot data with boxfill and polar %s @@ -4030,6 +4055,7 @@ def return_display_names(self, *args): [] >>> array=[range(10) for _ in range(10)] >>> a.plot(array) + >>> a.return_display_names() # has display name for new plot [...] @@ -5974,9 +6000,9 @@ def dummy_user_action(self, *args, **kargs): >>> a=vcs.init() >>> dua=a.dummy_user_action # alias long name - >>> dua("falafel", 37, the_answer=42, barbara="streisand") + >>> dua("falafel", 37, the_answer=42) Arguments: ('falafel', 37) - Keywords: {'the_answer': 42, 'barbara': 'streisand'} + Keywords: {'the_answer': 42} :param args: Any number of arguments, without a keyword specifier. diff --git a/vcs/__init__.py b/vcs/__init__.py index 25f7e0b90..58eb6288e 100755 --- a/vcs/__init__.py +++ b/vcs/__init__.py @@ -45,7 +45,6 @@ control of your plot that is needed for the truly perfect plot. Once you've customized them, you can also save them out for later use, and distribute them to other users. - """ _doValidation = True diff --git a/vcs/dv3d.py b/vcs/dv3d.py index 74d5219a9..e5db325dc 100644 --- a/vcs/dv3d.py +++ b/vcs/dv3d.py @@ -13,7 +13,9 @@ class Gfdv3d(object): """ - + Gfdv3d is class from which Gf3Dvector, Gf3Dscalar, and Gf3DDualScalar + inherit. It sets up properties and functions common to all of the 3d + graphics method objects. """ __slots__ = [ '__doc__', @@ -232,14 +234,18 @@ def list(self): class Gf3Dvector(Gfdv3d): - + """ + Gf3Dvector + """ def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'): self.g_name = '3d_vector' Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src=Gfdv3d_name_src) class Gf3Dscalar(Gfdv3d): - + """ + Gf3Dscalar + """ def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'): self.g_name = '3d_scalar' Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src=Gfdv3d_name_src) @@ -247,7 +253,9 @@ def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'): class Gf3DDualScalar(Gfdv3d): - + """ + Gf3DDualScalar + """ def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'): self.g_name = '3d_dual_scalar' Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src=Gfdv3d_name_src) diff --git a/vcs/taylor.py b/vcs/taylor.py index 0c49c98d7..c42331954 100644 --- a/vcs/taylor.py +++ b/vcs/taylor.py @@ -959,7 +959,7 @@ def drawSkill(self, canvas, values, function=None): :type values: list/tuple :param function: A function for determining the skill score of a model. - :type function: + :type function: function """ if function is None: return diff --git a/vcs/utils.py b/vcs/utils.py index 57ff8394b..1d8b33b81 100644 --- a/vcs/utils.py +++ b/vcs/utils.py @@ -1,3 +1,17 @@ +""" +Utils contains functions and objects that provide VCS with useful utilities. + +.. _list: https://docs.python.org/2/library/functions.html#list +.. _tuple: https://docs.python.org/2/library/functions.html#tuple +.. _dict: https://docs.python.org/2/library/stdtypes.html#mapping-types-dict +.. _None: https://docs.python.org/2/library/constants.html?highlight=none#None +.. _str: https://docs.python.org/2/library/functions.html?highlight=str#str +.. _bool: https://docs.python.org/2/library/functions.html?highlight=bool#bool +.. _float: https://docs.python.org/2/library/functions.html?highlight=float#float +.. _int: https://docs.python.org/2/library/functions.html?highlight=float#int +.. _long: https://docs.python.org/2/library/functions.html?highlight=float#long +.. _file: https://docs.python.org/2/library/functions.html?highlight=open#file +""" # Adapted for numpy/ma/cdms2 by convertcdms.py import numpy import cdtime @@ -53,7 +67,28 @@ def get_png_dims(fnm): - """given the path to a png, return width, height""" + """ + Given the path to a png, return width, height of the png. + + :Example: + + .. doctest:: utils_get_png_dims + + >>> a=vcs.init() + >>> box=vcs.getboxfill('polar') + >>> array=[range(10) for _ in range(10)] + >>> a.plot(box,array) # plot something on canvas + + >>> a.png('box.png') # make a png + >>> vcs.get_png_dims('box.png') # get (width, height) of 'box.png' + (1536, 1186) + + :param fnm: String specifying the path to a .png file + :type fnm: `str`_ + + :return: A tuple containing (width, height) of the given png. + :rtype: `tuple`_ + """ try: data = open(fnm, "rb").read() w, h = struct.unpack('>LL', data[16:24]) @@ -98,19 +133,19 @@ def __init__(self, source=None, x=.93, y=.95, width=None, height=None): Initialize a new "logo" object to be plotted later on a canvas :param source: text string or path to png file representing the logo - :type source: str + :type source: `str`_ :param x: x position of the logo's center in fraction of canvas (0>> import vcs - >>> import os - >>> import sys + >>> import os, sys >>> x=vcs.init() >>> x.open() >>> logo1 = vcs.utils.Logo(os.path.join(sys.prefix,"share/vcs/uvcdat.png")) @@ -166,7 +199,7 @@ def plot(self, canvas, bg=True): :type canvas: vcs.Canvas.Canvas :param bg: do we plot in background (offscreen) mode or not? True/False - :type bg: bool + :type bg: `bool`_ """ if isinstance(self.source, basestring): cnv_info = canvas.canvasinfo() @@ -235,6 +268,38 @@ def process_range_from_old_scr(code, g): def dumpToDict(obj, skipped=[], must=[]): + """ + Takes a VCS object and serializes its properties and their associated values + in a Python `dict`_ . + + :Example: + + .. doctest:: utils_dumpToDict + + >>> b=vcs.getboxfill() + >>> t=vcs.gettemplate() + >>> bd=vcs.dumpToDict(b) # serializes all properties + >>> td=vcs.dumpToDict(t, skipped=['legend']) # skip legend property + >>> 'legend' in td[0].keys() # 'legend' should not be in dictionary + False + + :param obj: An instance of a VCS object to serialize + :type obj: A VCS object + + :param skipped: A list of strings, associated with property names to skip. + :type skipped: `list`_ + + :param must: A list of strings, associated with property names which must + be captured in the serialization. + :type must: `list`_ + + :return: A tuple containing: + * a dictionary with mappings of the object's property names + to the values associated with those property names. + * a dictionary with mappings of more complex properties' names + to sets containing any associated property values. + :rtype: `tuple`_ + """ dic = {} associated = {"texttable": set(), "textorientation": set(), @@ -268,8 +333,51 @@ def dumpToDict(obj, skipped=[], must=[]): return dic, associated -def dumpToJson(obj, fileout, skipped=[ - "info", "member"], must=[], indent=indent, sort_keys=sort_keys): +def dumpToJson(obj, fileout, skipped=["info", "member"], must=[], indent=indent, sort_keys=sort_keys): + """ + Uses :py:func:`vcs.utils.dumpToDict` and `json.dumps`_ to construct a JSON + representation of a VCS object's property values. + + :Example: + + .. doctest:: utils_dumpToJson + + >>> box=vcs.getboxfill() + >>> vcs.dumpToJson(box, 'box.json') # output properties to file + >>> vcs.dumpToJson(box,None) # returns JSON string + '{...}' + + :param obj: An instance of a VCS object to serialize + :type obj: A VCS object + + :param fileout: A file or a string name of a file into which the JSON + will be written. + :type fileout: `str`_ or `file`_ + + :param skipped: A list of strings, associated with property names to skip. + :type skipped: `list`_ + + :param must: A list of strings, associated with property names which must + be captured in the serialization. + :type must: `list`_ + + :param indent: An integer representing whether to pretty-print the JSON. + If indent is a non-negative integer, JSON will be printed with proper + indentation levels. + If indent is None, 0, or negative, JSON will be printed in its most + compact form. + :type indent: `int`_ or `None`_ + + :param sort_keys: Boolean value indicating whether output should be sorted + by key (True), or not (False) + :type sort_keys: `bool`_ + + :return: The VCS object's properties serialized into a JSON formatted `str`_ . + OR None, if fileout was specified. + :rtype: `str`_ or `None`_ + + .. _json.dumps: https://docs.python.org/2/library/json.html?highlight=dumps#json.dumps + """ dic, associated = dumpToDict(obj, skipped, must) if fileout is not None: if isinstance(fileout, str): @@ -326,8 +434,17 @@ def getfontname(number): """ Retrieve a font name for a given font index. + :Example: + + .. doctest:: utils_getfontname + + >>> vcs.getfontname(1) + 'default' + >>> vcs.getfontname(4) + 'Helvetica' + :param number: Index of the font to get the name of. - :type number: int + :type number: `int`_ """ if number not in vcs.elements["fontNumber"]: raise Exception("Error font number not existing %i" % number) @@ -338,8 +455,17 @@ def getfontnumber(name): """ Retrieve a font index for a given font name. + :Example: + + .. doctest:: utils_getfontnumber + + >>> vcs.getfontnumber('default') + 1 + >>> vcs.getfontnumber('Helvetica') + 4 + :param name: Name of the font to get the index of. - :type name: str + :type name: `str`_ """ for i in vcs.elements["fontNumber"]: if vcs.elements["fontNumber"][i] == name: @@ -394,6 +520,30 @@ def process_src_element(code): def listelements(typ=None): + """ + List the elements of a given VCS object type. + + :Example: + + .. doctest:: utils_listelements + + >>> vcs.listelements() # list all vcs object types + ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', ...] + >>> vcs.listelements('1d') + [...] + >>> vcs.listelements('boxfill') + [...] + + :param typ: String specifying the type of VCS object to list. + If None, list will contain VCS object type names. + :type typ: `str`_ + + :return: If typ is None, returns a list of VCS object type names. + If typ is a VCS object type, returns a list of the object of that type + currently present in VCS. + :rtype: `list`_ + """ + if typ is None: return sorted(vcs.elements.keys()) if typ in ("xvsy", "yxvsx", "scatter", "xyvsy"): @@ -426,27 +576,31 @@ def show(*args): .. doctest:: utils_show - >>> a=vcs.init() # Create a VCS Canvas instance, named 'a' - >>> a.show('boxfill') # List boxfill objects on Canvas 'a' + >>> vcs.show() # show all vcs object types + ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', ...] + >>> vcs.show('boxfill') # List boxfill objects *******************Boxfill Names List********************** ... *******************End Boxfill Names List********************** - >>> a.show('isofill') # List isofill objects on Canvas 'a' - *******************Isofill Names List********************** + >>> vcs.show('3d_vector') # List 3d_vector objects + *******************3d_vector Names List********************** ... - *******************End Isofill Names List********************** - >>> a.show('line') # List line objects on Canvas 'a' - *******************Line Names List********************** + *******************End 3d_vector Names List********************** + >>> vcs.show('3d_scalar') # List 3d_scalar objects + *******************3d_scalar Names List********************** ... - *******************End Line Names List********************** - >>> a.show('marker') # List marker objects on Canvas 'a' - *******************Marker Names List********************** + *******************End 3d_scalar Names List********************** + >>> vcs.show('3d_dual_scalar') # List 3d_dual_scalar objects + *******************3d_dual_scalar Names List********************** ... - *******************End Marker Names List********************** - >>> a.show('textcombined') # List text objects on Canvas 'a' - *******************Textcombined Names List********************** + *******************End 3d_dual_scalar Names List********************** + >>> vcs.show('1d') # List 1d objects + *******************1d Names List********************** ... - *******************End Textcombined Names List********************** + *******************End 1d Names List********************** + + :param args: String name of a type of object to show, or None + :type args: `str`_ or `None`_ """ if args == (): return vcs.listelements() @@ -984,7 +1138,7 @@ def minmax(*data): (-7.0, 8.0) :param data: A comma-separated list of lists/arrays/tuples - :type data: :py:class:`list` + :type data: `list`_ :returns: A tuple in the form (min, max) :rtype: tuple @@ -1038,7 +1192,7 @@ def mkevenlevels(n1, n2, nlev=10): :type n2: int, float :param nlev: Number of levels by which to split the given range. - :type nlev: int + :type nlev: `int`_ :returns: List of floats, splitting range evenly between n1 and n2 :rtype: list @@ -1227,13 +1381,13 @@ def mklabels(vals, output='dict'): ['2E-5', '5E-5'] :param vals: List or tuple of float values - :type vals: :py:class:`list`, :py:class:`tuple` + :type vals: `list`_, :py:class:`tuple` :param output: Specifies the desired output type. One of ['dict', 'list']. :type output: :py:class:`str` :returns: Dictionary or list of labels for the given values. - :rtype: :py:class:`dict` or :py:class:`list` + :rtype: :py:class:`dict` or `list`_ """ import numpy.ma if isinstance(vals[0], list) or isinstance(vals[0], tuple): @@ -1364,23 +1518,23 @@ def getcolors(levs, colors=None, split=1, white="white"): [0, 36, 73, 109, 146, 182, 219, 255] :param levs: levels defining the color ranges - :type levs: :py:class:`list`, tuple + :type levs: `list`_ or `tuple`_ :param colors: A list/tuple of the of colors you wish to use - :type colors: :py:class:`list` + :type colors: `list`_ or `tuple`_ :param split: Integer flag to split colors between two equal domains. - 0 : no split - 1 : split if the levels go from <0 to >0 - 2 : split even if all the values are positive or negative - :type split: int + 0 : no split + 1 : split if the levels go from <0 to >0 + 2 : split even if all the values are positive or negative + :type split: `int`_ :param white: If split is on and an interval goes from <0 to >0 this color will be used within this interval. - :type white: int, string, tuple + :type white: `int`_ or `string`_ or `tuple`_ :returns: List of colors - :rtype: list + :rtype: `list`_ """ if colors is None: @@ -1519,10 +1673,10 @@ def generate_time_labels(d1, d2, units, calendar=cdtime.DefaultCalendar): :param d2: The end of the time interval to be labelled. Expects a cdtime object. Can also take int, long, or float, which will be used to create a cdtime object with the given units parameter. - :type d2: cdtime object, int, long, float + :type d2: cdtime object or `int`_ or `long`_ or `float`_ :param units: String with the format '[time_unit] since [date]'. - :type units: str + :type units: `str`_ :param calendar: A cdtime calendar, :type calendar: @@ -1661,9 +1815,6 @@ def setTicksandLabels(gm, copy_gm, datawc_x1, datawc_x2, """ Sets the labels and ticks for a graphics method made in python - :Example: - - :param gm: A VCS graphics method to alter :type gm: VCS graphics method @@ -1671,22 +1822,22 @@ def setTicksandLabels(gm, copy_gm, datawc_x1, datawc_x2, :type copy_gm: VCS graphics method :param datawc_x1: Float value to set the graphics method's datawc_x1 property to. - :type datawc_x1: float + :type datawc_x1: `float`_ :param datawc_x2: Float value to set the graphics method's datawc_x2 property to. - :type datawc_x2: float + :type datawc_x2: `float`_ :param datawc_y1: Float value to set the graphics method's datawc_y1 property to. - :type datawc_y1: float + :type datawc_y1: `float`_ :param datawc_y2: Float value to set the graphics method's datawc_y2 property to. - :type datawc_y2: float + :type datawc_y2: `float`_ :param x: If provided, must be the string 'longitude' - :type x: str + :type x: `str`_ :param y: If provided, must be the string 'latitude' - :type y: str + :type y: `str`_ :returns: A VCS graphics method object :rtype: A VCS graphics method object @@ -1843,7 +1994,7 @@ def getcolormap(Cp_name_src='default'): :param Cp_name_src: String name of an existing colormap VCS object - :type Cp_name_src: str + :type Cp_name_src: `str`_ :returns: A pre-existing VCS colormap object :rtype: vcs.colormap.Cp @@ -1871,13 +2022,13 @@ def getcolorcell(cell, obj=None): [26, 1, 34, 100] :param cell: An integer value indicating the index of the desired colorcell. - :type cell: int + :type cell: `int`_ :param obj: Optional parameter containing the object to extract a colormap from. :type obj: Any VCS object capable of containing a colormap :return: The RGBA values of the colormap at the specified cell index. - :rtype: :py:class:`list` + :rtype: `list`_ """ if obj is None: cmap = vcs.getcolormap() @@ -1911,22 +2062,22 @@ def setcolorcell(obj, num, r, g, b, a=100): >>> vcs.setcolorcell("AMIP",61,70,70,70) :param obj: String name of a colormap, or a VCS object - :type obj: str or VCS object + :type obj: `str`_ or VCS object :param num: Integer specifying which color cell to change. Must be from 0-239. - :type num: int + :type num: `int`_ :param r: Integer specifying the red value for the colorcell - :type r: int + :type r: `int`_ :param g: Integer specifying the green value for the colorcell - :type g: int + :type g: `int`_ :param b: Integer specifying the blue value for the colorcell - :type b: int + :type b: `int`_ :param a: Integer specifying the opacity value for the colorcell. Must be from 0-100. - :type a: int + :type a: `int`_ """ if isinstance(obj, str): @@ -1956,7 +2107,7 @@ def match_color(color, colormap=None): 52 :param color: Either a string name, or a rgb value between 0 and 100. - :type color: str, int + :type color: `str`_ or `int`_ :param colormap: A VCS colormap object. If not specified, the default colormap is used. :type colormap: vcs.colormap.Cp @@ -1994,11 +2145,70 @@ def match_color(color, colormap=None): def monotonic(x): + """ + Uses `numpy.diff `_ + to determine whether the data given by x is monotonic in nature. + + :Example: + + .. doctest:: utils_monotonic + + >>> import numpy, cdms2, os + >>> from random import randint + >>> array=numpy.array([range(10) for _ in range(10)]) + >>> mask=[] # we will use this to create a random mask + >>> for _ in range(10): + ... mask.append([randint(0,1) for _ in range(10)]) + >>> ma=numpy.ma.MaskedArray(array, mask) + >>> if not os.path.exists(vcs.sample_data): + ... vcs.download_sample_data_files() # get some data for cdms2 + >>> f=cdms2.open(vcs.sample_data + '/clt.nc') + >>> v=f('v') # get variable 'v' from clt.nc + >>> vcs.monotonic(array) # monotonicity of 2D numpy array + True + >>> vcs.monotonic(ma) # monotonicity of simple masked array + True + >>> vcs.monotonic(v) # monotonicity of cdms2 variable + False + + :param x: The variable to test for monotonicity. + Can be any variable with an array-like structure. + Typical examples are numpy arrays, numpy masked arrays, + and cdms2 variables (examples for each shown above). + :type x: numpy.array or numpy.ma.MaskedArray or cdms2 variable + + :return: A boolean value indicating whether the given data is monotonic. + :rtype: `bool`_ + """ dx = numpy.diff(x) return numpy.all(dx <= 0) or numpy.all(dx >= 0) def getgraphicsmethod(type, name): + """ + Retrieves an existing graphics method, given by type and name. + + :Example: + + .. doctest:: utils_getgraphicsmethod + + >>> vcs.show('boxfill') # list available boxfills + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** + >>> vcs.getgraphicsmethod('boxfill','polar') # get polar boxfill + + + :param type: String name of a VCS graphics method type + :type type: `str`_ + + :param name: String name of a VCS graphics method of the given type. + :type name: `str`_ + + :return: A graphics method of the given type and name. + If such a graphics method doesn't exist, None will be returned. + :rtype: VCS graphics method or `None`_ + """ import vcsaddons if type == "default": type = "boxfill" @@ -2022,20 +2232,23 @@ def creategraphicsmethod(gtype, gname='default', name=None): .. doctest:: utils_creategraphicsmethod >>> cgm=vcs.creategraphicsmethod # alias long name - >>> cgm('Gfb') # boxfill inherits default; name generated + >>> cgm('Gfm') # meshfill inherits default; name generated + >>> cgm('boxfill','polar') # boxfill inherits polar; name generated + >>> cgm('Gfi',name='my_gfi') # isofill inherits default; user-named + :param gtype: String name of the type of graphics method object to create. - :type gtype: :py:obj:`str` + :type gtype: `str`_ :param gname: String name of the specific graphics method for the new graphics method to inherit. - :type gname: :py:obj:`str` + :type gname: `str`_ :param name: String name for the new object. If None, a unique name will be generated. - :type name: :py:obj`str` or :py:obj:`None` + :type name: `str`_ or `None`_ :return: A graphics method object @@ -2089,20 +2302,35 @@ def getDataWcValue(v): def getworldcoordinates(gm, X, Y): """ - Given a graphics method and two axes - figures out correct world coordinates. + Given a graphics method and two axes, calculates correct world coordinates. + + :Example: + + .. doctest:: utils_getworldcoordinates + + >>> import cdms2, os + >>> if not os.path.exists(vcs.sample_data): + ... vcs.download_sample_data_files() # get some data for cdms2 + >>> f=cdms2.open(vcs.sample_data + '/clt.nc') + >>> v=f('v') # read variable v from clt.nc + >>> xax=v.getAxis(3) # X axis + >>> yax=v.getAxis(2) # Y axis + >>> box=vcs.getboxfill() + >>> vcs.getworldcoordinates(box, xax, yax) + [-180.0, 180.0, -88.288399, 88.288399] :param gm: A VCS graphics method object to get worldcoordinates for. :type gm: graphics method object :param X: A cdms2 transient axs - :type X: cdms2 transient axis + :type X: cdms2.axis.TransientAxis :param Y: A cdms2 transient axs - :type Y: cdms2 transient axis + :type Y: cdms2.axis.TransientAxis - :returns: - :rtype: + :returns: A list of the worldcoordinates associated with the given graphics + method and axes + :rtype: `list`_ """ # compute the spanning in x and y, and adjust for the viewport wc = [0, 1, 0, 1] @@ -2202,13 +2430,13 @@ def rgba_color(color, colormap): :param color: The color to get the rgba value for. Can be an integer from 0-255, or a string name of a color. - :type color: int, str + :type color: `int`_ or `str`_ :param colormap: A VCS colormap :type colormap: vcs.colormap.Cp :returns: List of 4 floats; the R, G, B, and A values associated with the given color. - :rtype: :py:class:`list` + :rtype: `list`_ """ try: # Is it a colormap index? @@ -2253,6 +2481,8 @@ def png_read_metadata(path): def download_sample_data_files(path=None): """ Downloads sample data to be used with VCS. + Default download directory is vcs.sample_data, but if __path__ is provided + then data will be downloaded to that path. :Example: @@ -2265,7 +2495,7 @@ def download_sample_data_files(path=None): :param path: String of a valid filepath. If None, sample data will be downloaded into the vcs.sample_data directory. - :type path: :py:obj:`str` or :py:obj:`None` + :type path: `str`_ or `None`_ """ import requests import hashlib @@ -2342,43 +2572,43 @@ def drawLinesAndMarkersLegend(canvas, templateLegend, :param linecolors: list containing the colors of each line to draw. Colors must be specified as either integers, (r,g,b,opacity), or string color names. - :type linecolors: :py:class:`list` + :type linecolors: `list`_ :param linetypes: list containing the type of each line to draw. values must be int or line type strings - :type linetypes: :py:class:`list` + :type linetypes: `list`_ :param linewidths: list containing each line width. line widths must be of type float. - :type linewidths: :py:class:`list` + :type linewidths: `list`_ :param markercolors: list of the markers colors to draw. Colors must be specified as either integers, (r,g,b,opacity), or string color names. - :type markercolors: :py:class:`list` + :type markercolors: `list`_ :param markertypes: list of the marker types to draw. Marker type must be int or string of marker type names. - :type markertypes: :py:class:`list` + :type markertypes: `list`_ :param markersizes: list of the size of each marker to draw. marker size must be of type float. - :type markersizes: :py:class:`list` + :type markersizes: `list`_ :param strings: list of the string to draw next to each line/marker - :type strings: :py:class:`list` + :type strings: `list`_ :param scratched: None (off) or list. list contains False where no scratch is needed. For scratched, provide True or line type to use for scratch. Color will match that of text. - :type scratched: None or :py:class`list` + :type scratched: `None`_ or `list`_ :param bg: Boolean value indicating to draw in background (True), Or foreground (False). - :type bg: bool + :type bg: `bool`_ :param render: do we render or not (so it less flashy) - :type render: bool + :type render: `bool`_ """ nlines = len(linecolors) diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 016cb60c9..000ac5b76 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -1,45 +1,86 @@ plot_keywords_doc = """ - :param xaxis: Axis object to replace the slab -1 dim axis - :param yaxis: Axis object to replace the slab -2 dim axis, only if slab has more than 1D - :param zaxis: Axis object to replace the slab -3 dim axis, only if slab has more than 2D - :param taxis: Axis object to replace the slab -4 dim axis, only if slab has more than 3D - :param waxis: Axis object to replace the slab -5 dim axis, only if slab has more than 4D - :param xrev: reverse x axis - :param yrev: reverse y axis, only if slab has more than 1D - :param xarray: Values to use instead of x axis - :param yarray: Values to use instead of y axis, only if var has more than 1D - :param zarray: Values to use instead of z axis, only if var has more than 2D - :param tarray: Values to use instead of t axis, only if var has more than 3D - :param warray: Values to use instead of w axis, only if var has more than 4D - :param continents: continents type number - :param name: replaces variable name on plot - :param time: replaces time name on plot - :param units: replaces units value on plot - :param ymd: replaces year/month/day on plot - :param hms: replaces hh/mm/ss on plot - :param file_comment: replaces file_comment on plot - :param xbounds: Values to use instead of x axis bounds values - :param ybounds: Values to use instead of y axis bounds values (if exist) - :param xname: replace xaxis name on plot - :param yname: replace yaxis name on plot (if exists) - :param zname: replace zaxis name on plot (if exists) - :param tname: replace taxis name on plot (if exists) - :param wname: replace waxis name on plot (if exists) - :param xunits: replace xaxis units on plot - :param yunits: replace yaxis units on plot (if exists) - :param zunits: replace zaxis units on plot (if exists) - :param tunits: replace taxis units on plot (if exists) - :param wunits: replace waxis units on plot (if exists) - :param xweights: replace xaxis weights used for computing mean - :param yweights: replace xaxis weights used for computing mean - :param comment1: replaces comment1 on plot - :param comment2: replaces comment2 on plot - :param comment3: replaces comment3 on plot - :param comment4: replaces comment4 on plot - :param long_name: replaces long_name on plot - :param grid: replaces array grid (if exists) - :param bg: plots in background mode - :param ratio: sets the y/x ratio ,if passed as a string with 't' at the end, will aslo moves the ticks + :param xaxis: Axis object to replace the slab -1 dim axis. + Keyword parameter. + :param yaxis: Axis object to replace the slab -2 dim axis, only if slab has more than 1D. + Keyword parameter. + :param zaxis: Axis object to replace the slab -3 dim axis, only if slab has more than 2D. + Keyword parameter. + :param taxis: Axis object to replace the slab -4 dim axis, only if slab has more than 3D. + Keyword parameter. + :param waxis: Axis object to replace the slab -5 dim axis, only if slab has more than 4D. + Keyword parameter. + :param xrev: reverse x axis. + Keyword parameter. + :param yrev: reverse y axis, only if slab has more than 1D. + Keyword parameter. + :param xarray: Values to use instead of x axis. + Keyword parameter. + :param yarray: Values to use instead of y axis, only if var has more than 1D. + Keyword parameter. + :param zarray: Values to use instead of z axis, only if var has more than 2D. + Keyword parameter. + :param tarray: Values to use instead of t axis, only if var has more than 3D. + Keyword parameter. + :param warray: Values to use instead of w axis, only if var has more than 4D. + Keyword parameter. + :param continents: continents type number. + Keyword parameter. + :param name: replaces variable name on plot. + Keyword parameter. + :param time: replaces time name on plot. + Keyword parameter. + :param units: replaces units value on plot. + Keyword parameter. + :param ymd: replaces year/month/day on plot. + Keyword parameter. + :param hms: replaces hh/mm/ss on plot. + Keyword parameter. + :param file_comment: replaces file_comment on plot. + Keyword parameter. + :param xbounds: Values to use instead of x axis bounds values. + Keyword parameter. + :param ybounds: Values to use instead of y axis bounds values (if exist). + Keyword parameter. + :param xname: replace xaxis name on plot. + Keyword parameter. + :param yname: replace yaxis name on plot (if exists). + Keyword parameter. + :param zname: replace zaxis name on plot (if exists). + Keyword parameter. + :param tname: replace taxis name on plot (if exists). + Keyword parameter. + :param wname: replace waxis name on plot (if exists). + Keyword parameter. + :param xunits: replace xaxis units on plot. + Keyword parameter. + :param yunits: replace yaxis units on plot (if exists). + Keyword parameter. + :param zunits: replace zaxis units on plot (if exists). + Keyword parameter. + :param tunits: replace taxis units on plot (if exists). + Keyword parameter. + :param wunits: replace waxis units on plot (if exists). + Keyword parameter. + :param xweights: replace xaxis weights used for computing mean. + Keyword parameter. + :param yweights: replace xaxis weights used for computing mean. + Keyword parameter. + :param comment1: replaces comment1 on plot. + Keyword parameter. + :param comment2: replaces comment2 on plot. + Keyword parameter. + :param comment3: replaces comment3 on plot. + Keyword parameter. + :param comment4: replaces comment4 on plot. + Keyword parameter. + :param long_name: replaces long_name on plot. + Keyword parameter. + :param grid: replaces array grid (if exists). + Keyword parameter. + :param bg: plots in background mode. + Keyword parameter. + :param ratio: sets the y/x ratio ,if passed as a string with 't' at the end, will aslo moves the ticks. + Keyword parameter. :type xaxis: cdms2.axis.TransientAxis :type yaxis: cdms2.axis.TransientAxis :type zaxis: cdms2.axis.TransientAxis @@ -251,68 +292,68 @@ def populate_docstrings(type_dict, target_dict, docstring, method): :return: Has no return, but at the end target_dict should be full of formatted docstrings """ - dict = {} + d = {} for obj_type in type_dict.keys(): for obj_name in type_dict[obj_type].keys(): # default values. Change as necessary. example1 = '' example2 = '' - dict['type'] = obj_type - dict['name'] = dict['sp_name'] = obj_name - dict['parent'] = type_dict[obj_type][obj_name]['parent'] - dict['parent2'] = type_dict[obj_type][obj_name]['parent2'] - dict['sp_parent'] = '' - dict['tc'] = '' - dict['ex2'] = '' - dict['rtype'] = type_dict[obj_type][obj_name]['rtype'] + d['type'] = obj_type + d['name'] = d['sp_name'] = obj_name + d['parent'] = type_dict[obj_type][obj_name]['parent'] + d['parent2'] = type_dict[obj_type][obj_name]['parent2'] + d['sp_parent'] = '' + d['tc'] = '' + d['ex2'] = '' + d['rtype'] = type_dict[obj_type][obj_name]['rtype'] if type_dict[obj_type][obj_name]['title']: - dict['cap'] = dict['name'].title() + d['cap'] = d['name'].title() else: - dict['cap'] = dict['name'] + d['cap'] = d['name'] if obj_name in ['3d_vector', '3d_scalar', '3d_dual_scalar']: - dict['sp_name'] = 'dv3d' + d['sp_name'] = 'dv3d' elif obj_name in ['1d', 'scatter', 'textcombined', 'xyvsy']: if obj_name == 'textcombined': - dict['tc'] = """ + d['tc'] = """ >>> try: # try to create a new textcombined, in case none exist ... vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') ... except: ... pass""" - dict['sp_parent'] = "'EXAMPLE_tt', 'EXAMPLE_tto'" + d['sp_parent'] = "'EXAMPLE_tt', 'EXAMPLE_tto'" elif obj_name == '1d': - dict['sp_parent'] = "'default'" + d['sp_parent'] = "'default'" else: sp_parent = 'default_'+obj_name+'_' - dict['sp_parent'] = "'%s'" % sp_parent - dict['parent'] = dict['sp_parent'] + d['sp_parent'] = "'%s'" % sp_parent + d['parent'] = d['sp_parent'] # section for manageElements 'get' methods if method == 'get': example1 = """%(tc)s >>> ex=vcs.get%(name)s(%(sp_parent)s) # instance of '%(parent)s' %(name)s %(type)s%(plot)s""" - # set up dict['plot'] and dict['plot2'] + # set up d['plot'] and d['plot2'] plot = '' plot2 = '' numslabs = type_dict[obj_type][obj_name]['slabs'] - dict['slabs'] = '' - dict['args'] = '' + d['slabs'] = '' + d['args'] = '' if numslabs > 0: # TODO: replace with something that can actually be plotted by taylordiagram() if obj_name is "taylordiagram": - dict['slabs'] = """ + d['slabs'] = """ >>> import cdms2 # Need cdms2 to create a slab >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file >>> slab1 = f('u') # use the data file to create a cdms2 slab""" else: - dict['slabs'] = """ + d['slabs'] = """ >>> import cdms2 # Need cdms2 to create a slab >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file >>> slab1 = f('u') # use the data file to create a cdms2 slab""" - dict['args'] = ", slab1" + d['args'] = ", slab1" if numslabs == 2: slab2 = """ >>> slab2 = f('v') # need 2 slabs, so get another""" - dict['slabs'] = dict['slabs'] + slab2 - dict['args'] = dict['args'] + ", slab2" + d['slabs'] = d['slabs'] + slab2 + d['args'] = d['args'] + ", slab2" # for vcs objects that have a self-named plotting function, i.e. fillarea() if type_dict[obj_type][obj_name]['callable']: plot = """%(slabs)s @@ -323,26 +364,26 @@ def populate_docstrings(type_dict, target_dict, docstring, method): >>> a.%(name)s(ex2%(args)s) # plot using specified %(name)s object """ # for objects like template, where a call to plot() needs to be made - elif obj_name not in ['textorientation', 'texttable', 'colormap']: + elif obj_name not in ['textorientation', 'texttable', 'colormap', 'projection', 'template']: plot = """%(slabs)s >>> a.plot(ex%(args)s) # plot using specified %(name)s object """ plot2 = """ >>> a.plot(ex2%(args)s) # plot using specified %(name)s object """ - dict['plot'] = plot % dict - dict['ex1'] = example1 % dict - if dict['parent2']: + d['plot'] = plot % d + d['ex1'] = example1 % d + if d['parent2']: example2 = """ >>> ex2=vcs.get%(name)s('%(parent2)s') # instance of '%(parent2)s' %(name)s %(type)s%(plot2)s """ - dict['plot2'] = plot2 % dict - dict['ex2'] = example2 % dict + d['plot2'] = plot2 % d + d['ex2'] = example2 % d # section for manageElements 'create' methods elif method == 'create': - # if obj_name is tc, dict['tc'] should be populated by code that creates a tc at this point + # if obj_name is tc, d['tc'] should be populated by code that creates a tc at this point if obj_name == "textcombined": - example1 = dict['tc'] + """ + example1 = d['tc'] + """ >>> vcs.listelements('%(name)s') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' [...'EXAMPLE_tt:::EXAMPLE_tto'...]""" else: @@ -350,21 +391,21 @@ def populate_docstrings(type_dict, target_dict, docstring, method): >>> ex=vcs.create%(name)s('%(name)s_ex1') # Create '%(name)s_ex1'; inherits 'default' >>> vcs.listelements('%(name)s') # should now contain '%(name)s_ex1' [...'%(name)s_ex1'...]""" - dict['ex1'] = example1 % dict - if dict['parent2']: + d['ex1'] = example1 % d + if d['parent2']: example2 = """ >>> ex2=vcs.create%(name)s('%(name)s_ex2','%(parent2)s') # create '%(name)s_ex2'; inherits '%(parent2)s' >>> vcs.listelements('%(name)s') # should now contain '%(name)s_ex2' [...'%(name)s_ex2'...]""" - dict['ex2'] = example2 % dict + d['ex2'] = example2 % d elif method == 'script': if obj_name == "textcombined": - dict['call'] = obj_name - dict['name'] = 'text table and text orientation' + d['call'] = obj_name + d['name'] = 'text table and text orientation' else: - dict['call'] = dict['name'] - target_dict[obj_name] = docstring % dict - dict.clear() + d['call'] = d['name'] + target_dict[obj_name] = docstring % d + d.clear() # contains VCS object details used to build Example doctests and fill in docstrings # Keys: From d384ae581fc43f7aac4c54193485eb6f7763d6ab Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 14 Dec 2016 15:22:08 -0800 Subject: [PATCH 18/45] Tweaked doctest cleanup. Fixed manageElements doctests. --- docs/doctest_info/doctest_vcs.py | 2 +- vcs/manageElements.py | 22 +++++++++++++--------- vcs/xmldocs.py | 15 +++++++++++---- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/docs/doctest_info/doctest_vcs.py b/docs/doctest_info/doctest_vcs.py index dc27627c0..196f623be 100644 --- a/docs/doctest_info/doctest_vcs.py +++ b/docs/doctest_info/doctest_vcs.py @@ -65,7 +65,7 @@ def consume_entry(readfile, writefile, endpoints, prepend, append): def cleanup(): import glob, os gb = glob.glob - patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*"] + patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*", "*.png"] files = [] for pattern in patterns: fnames = gb(pattern) diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 329fc9926..7218c0c47 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -445,7 +445,7 @@ def getisoline(Gi_name_src='default'): def create1d(name=None, source='default'): """ - Creates a new :class:`vcs.unified1d.G1d` object called name, and inheriting from source. + Creates a new :py:class:`vcs.unified1d.G1d` object called name, and inheriting from source. :Example: @@ -455,18 +455,21 @@ def create1d(name=None, source='default'): *******************1d Names List********************** ... *******************End 1d Names List********************** - >>> oneD_default = vcs.create1d() # inherit default, name generated - >>> oneD_named = vcs.create1d("one_D") # inherit default, name "one_D" - >>> new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" + >>> vcs.create1d() # inherits default, name generated + + >>> vcs.create1d("one_D") # inherits default, name "one_D" + + >>> vcs.create1d(source="one_D") # inherits from "one_D" + :param name: A string name for the 1d to be created. If None, a unique name will be created. :type name: :py:class:`str` :param source: A 1d object or string name of a 1d object from which the new 1d will inherit. - :type source: :py:class:`str` or :class:`vcs.unified1D.G1d` + :type source: :py:class:`str` or :py:class:`vcs.unified1D.G1d` :return: A new 1d object, inheriting from source. - :rtype: :class:`vcs.unified1d.G1d` + :rtype: :py:class:`vcs.unified1d.G1d` """ name, source = check_name_source(name, source, '1d') return unified1D.G1d(name, source) @@ -474,7 +477,7 @@ def create1d(name=None, source='default'): def get1d(name): """ - Given name, returns a :class:`vcs.unified1d.G1d` from vcs with that name. + Given name, returns a :py:class:`vcs.unified1d.G1d` from vcs with that name. Unlike other VCS 'get' functions, name cannot be None when calling get1d(). :Example: @@ -485,13 +488,14 @@ def get1d(name): *******************1d Names List********************** ... *******************End 1d Names List********************** - >>> blue = vcs.get1d('blue_yxvsx') + >>> vcs.get1d('blue_yxvsx') + :param name: String name of a 1d in vcs. If there is no 1d with that name, an error will be raised. :type name: :py:class:`str` :return: A 1d from vcs with the given name. - :rtype: :class:`vcs.unified1d.G1d` + :rtype: :py:class:`vcs.unified1d.G1d` """ # Check to make sure the argument passed in is a STRING if not isinstance(name, str): diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 000ac5b76..94f8194dd 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -364,6 +364,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): >>> a.%(name)s(ex2%(args)s) # plot using specified %(name)s object """ # for objects like template, where a call to plot() needs to be made + # objects in the list cannot be plotted without a graphics method elif obj_name not in ['textorientation', 'texttable', 'colormap', 'projection', 'template']: plot = """%(slabs)s >>> a.plot(ex%(args)s) # plot using specified %(name)s object @@ -858,14 +859,19 @@ def populate_docstrings(type_dict, target_dict, docstring, method): ############################################################################# create_GM_input = """ - :param new_GM_name: (Ex: 'my_awesome_gm') name of the new graphics method object. If no name is given, then one will be created for use. + :param new_GM_name: (Ex: 'my_awesome_gm') name of the new graphics method + object. If no name is given, then one will be created for use. :type new_GM_name: str - :param source_GM_name: (Ex: 'default') copy the contents of the source object to the newly created one. If no name is given, then the 'default' graphics methond contents is copied over to the new object. + + :param source_GM_name: (Ex: 'default') copy the contents of the source + object to the newly created one. If no name is given, the 'default' + graphics method contents are copied over to the new object. :type source_GM_name: str """ # noqa get_GM_input = """ - :param GM_name: (Ex: 'default') retrieve the graphics method object of the given name. If no name is given, then retrieve the 'default' graphics method. + :param GM_name: (Ex: 'default') retrieve the graphics method object of the + given name. If no name is given, retrieve the 'default' graphics method. :type GM_name: str """ # noqa @@ -880,7 +886,8 @@ def populate_docstrings(type_dict, target_dict, docstring, method): """ # noqa plot_2_1D_input = """ - :param slab_or_primary_object: Data at least 1D, last dimension(s) will be plotted, or secondary vcs object + :param slab_or_primary_object: Data at least 1D, last dimension(s) will be + plotted, or secondary vcs object :type slab_or_primary_object: array """ # noqa plot_2_1D_options = """ From 9f797d432eb269c7633e147cf9e20347d9f71555 Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 15 Dec 2016 07:43:54 -0800 Subject: [PATCH 19/45] Organized doctest_info directory. Minor fixes in Canvas, colormap, and xmldocs. --- docs/doctest_info/.manageElements.log | 1319 ----------------- docs/doctest_info/README.md | 74 +- docs/doctest_info/colormap.md | 34 - docs/doctest_info/colormap.report | 92 -- docs/doctest_info/doctest_timing | 1280 ---------------- docs/doctest_info/doctest_timing.txt | Bin 832056 -> 0 bytes docs/doctest_info/errors_only.txt | 1106 -------------- docs/doctest_info/{ => markdown}/Canvas.md | 42 +- .../{ => markdown}/Pboxeslines.md | 0 docs/doctest_info/{ => markdown}/Pdata.md | 0 docs/doctest_info/{ => markdown}/Pformat.md | 0 docs/doctest_info/{ => markdown}/Plegend.md | 0 docs/doctest_info/{ => markdown}/Ptext.md | 0 docs/doctest_info/{ => markdown}/Pxlabels.md | 0 .../{ => markdown}/Pxtickmarks.md | 0 docs/doctest_info/{ => markdown}/Pylabels.md | 0 .../{ => markdown}/Pytickmarks.md | 0 .../VCS_validation_functions.md | 23 +- docs/doctest_info/{ => markdown}/boxfill.md | 0 docs/doctest_info/markdown/colormap.md | 32 + docs/doctest_info/{ => markdown}/colors.md | 0 .../{ => markdown}/configurator.md | 0 .../{ => markdown}/displayplot.md | 0 docs/doctest_info/{ => markdown}/dv3d.md | 0 docs/doctest_info/{ => markdown}/editors.md | 0 docs/doctest_info/{ => markdown}/error.md | 0 docs/doctest_info/{ => markdown}/fillarea.md | 0 docs/doctest_info/{ => markdown}/isofill.md | 0 docs/doctest_info/{ => markdown}/isoline.md | 0 docs/doctest_info/{ => markdown}/line.md | 0 .../{ => markdown}/manageElements.md | 64 +- docs/doctest_info/{ => markdown}/marker.md | 0 docs/doctest_info/{ => markdown}/meshfill.md | 0 .../doctest_info/{ => markdown}/projection.md | 0 docs/doctest_info/{ => markdown}/queries.md | 2 +- docs/doctest_info/{ => markdown}/taylor.md | 0 docs/doctest_info/{ => markdown}/template.md | 2 +- .../{ => markdown}/textcombined.md | 2 +- .../{ => markdown}/textorientation.md | 0 docs/doctest_info/{ => markdown}/texttable.md | 0 docs/doctest_info/{ => markdown}/unified1D.md | 0 docs/doctest_info/{ => markdown}/utils.md | 0 docs/doctest_info/{ => markdown}/vcshelp.md | 0 docs/doctest_info/{ => markdown}/vector.md | 0 docs/doctest_info/{ => reports}/Canvas.report | 119 +- .../{ => reports}/Pboxeslines.report | 0 docs/doctest_info/{ => reports}/Pdata.report | 0 .../doctest_info/{ => reports}/Pformat.report | 0 .../doctest_info/{ => reports}/Plegend.report | 0 docs/doctest_info/{ => reports}/Ptext.report | 0 .../{ => reports}/Pxlabels.report | 0 .../{ => reports}/Pxtickmarks.report | 0 .../{ => reports}/Pylabels.report | 0 .../{ => reports}/Pytickmarks.report | 0 .../VCS_validation_functions.report | 1 - .../doctest_info/{ => reports}/boxfill.report | 0 docs/doctest_info/reports/colormap.report | 64 + docs/doctest_info/{ => reports}/colors.report | 0 .../{ => reports}/configurator.report | 0 .../{ => reports}/displayplot.report | 0 docs/doctest_info/{ => reports}/dv3d.report | 0 .../doctest_info/{ => reports}/editors.report | 0 docs/doctest_info/{ => reports}/error.report | 0 .../{ => reports}/fillarea.report | 0 .../doctest_info/{ => reports}/isofill.report | 0 .../doctest_info/{ => reports}/isoline.report | 0 docs/doctest_info/{ => reports}/line.report | 0 .../{ => reports}/manageElements.report | 146 +- docs/doctest_info/{ => reports}/marker.report | 0 .../{ => reports}/meshfill.report | 0 .../{ => reports}/projection.report | 0 .../doctest_info/{ => reports}/queries.report | 2 +- docs/doctest_info/{ => reports}/taylor.report | 0 .../{ => reports}/template.report | 2 +- .../{ => reports}/textcombined.report | 2 +- .../{ => reports}/textorientation.report | 0 .../{ => reports}/texttable.report | 0 .../{ => reports}/unified1D.report | 0 docs/doctest_info/{ => reports}/utils.report | 0 .../doctest_info/{ => reports}/vcshelp.report | 0 docs/doctest_info/{ => reports}/vector.report | 0 docs/doctest_info/scripts/deft_box.py | 48 + .../doctest_info/{ => scripts}/doctest_vcs.py | 6 +- .../{ => scripts}/run_all_doctests.sh | 2 +- docs/doctest_info/validation_functions.md | 0 docs/doctest_info/validation_functions.report | 0 vcs/Canvas.py | 11 +- vcs/colormap.py | 4 +- vcs/xmldocs.py | 2 +- 89 files changed, 361 insertions(+), 4120 deletions(-) delete mode 100644 docs/doctest_info/.manageElements.log delete mode 100644 docs/doctest_info/colormap.md delete mode 100644 docs/doctest_info/colormap.report delete mode 100644 docs/doctest_info/doctest_timing.txt delete mode 100644 docs/doctest_info/errors_only.txt rename docs/doctest_info/{ => markdown}/Canvas.md (84%) rename docs/doctest_info/{ => markdown}/Pboxeslines.md (100%) rename docs/doctest_info/{ => markdown}/Pdata.md (100%) rename docs/doctest_info/{ => markdown}/Pformat.md (100%) rename docs/doctest_info/{ => markdown}/Plegend.md (100%) rename docs/doctest_info/{ => markdown}/Ptext.md (100%) rename docs/doctest_info/{ => markdown}/Pxlabels.md (100%) rename docs/doctest_info/{ => markdown}/Pxtickmarks.md (100%) rename docs/doctest_info/{ => markdown}/Pylabels.md (100%) rename docs/doctest_info/{ => markdown}/Pytickmarks.md (100%) rename docs/doctest_info/{ => markdown}/VCS_validation_functions.md (89%) rename docs/doctest_info/{ => markdown}/boxfill.md (100%) create mode 100644 docs/doctest_info/markdown/colormap.md rename docs/doctest_info/{ => markdown}/colors.md (100%) rename docs/doctest_info/{ => markdown}/configurator.md (100%) rename docs/doctest_info/{ => markdown}/displayplot.md (100%) rename docs/doctest_info/{ => markdown}/dv3d.md (100%) rename docs/doctest_info/{ => markdown}/editors.md (100%) rename docs/doctest_info/{ => markdown}/error.md (100%) rename docs/doctest_info/{ => markdown}/fillarea.md (100%) rename docs/doctest_info/{ => markdown}/isofill.md (100%) rename docs/doctest_info/{ => markdown}/isoline.md (100%) rename docs/doctest_info/{ => markdown}/line.md (100%) rename docs/doctest_info/{ => markdown}/manageElements.md (60%) rename docs/doctest_info/{ => markdown}/marker.md (100%) rename docs/doctest_info/{ => markdown}/meshfill.md (100%) rename docs/doctest_info/{ => markdown}/projection.md (100%) rename docs/doctest_info/{ => markdown}/queries.md (90%) rename docs/doctest_info/{ => markdown}/taylor.md (100%) rename docs/doctest_info/{ => markdown}/template.md (99%) rename docs/doctest_info/{ => markdown}/textcombined.md (98%) rename docs/doctest_info/{ => markdown}/textorientation.md (100%) rename docs/doctest_info/{ => markdown}/texttable.md (100%) rename docs/doctest_info/{ => markdown}/unified1D.md (100%) rename docs/doctest_info/{ => markdown}/utils.md (100%) rename docs/doctest_info/{ => markdown}/vcshelp.md (100%) rename docs/doctest_info/{ => markdown}/vector.md (100%) rename docs/doctest_info/{ => reports}/Canvas.report (97%) rename docs/doctest_info/{ => reports}/Pboxeslines.report (100%) rename docs/doctest_info/{ => reports}/Pdata.report (100%) rename docs/doctest_info/{ => reports}/Pformat.report (100%) rename docs/doctest_info/{ => reports}/Plegend.report (100%) rename docs/doctest_info/{ => reports}/Ptext.report (100%) rename docs/doctest_info/{ => reports}/Pxlabels.report (100%) rename docs/doctest_info/{ => reports}/Pxtickmarks.report (100%) rename docs/doctest_info/{ => reports}/Pylabels.report (100%) rename docs/doctest_info/{ => reports}/Pytickmarks.report (100%) rename docs/doctest_info/{ => reports}/VCS_validation_functions.report (99%) rename docs/doctest_info/{ => reports}/boxfill.report (100%) create mode 100644 docs/doctest_info/reports/colormap.report rename docs/doctest_info/{ => reports}/colors.report (100%) rename docs/doctest_info/{ => reports}/configurator.report (100%) rename docs/doctest_info/{ => reports}/displayplot.report (100%) rename docs/doctest_info/{ => reports}/dv3d.report (100%) rename docs/doctest_info/{ => reports}/editors.report (100%) rename docs/doctest_info/{ => reports}/error.report (100%) rename docs/doctest_info/{ => reports}/fillarea.report (100%) rename docs/doctest_info/{ => reports}/isofill.report (100%) rename docs/doctest_info/{ => reports}/isoline.report (100%) rename docs/doctest_info/{ => reports}/line.report (100%) rename docs/doctest_info/{ => reports}/manageElements.report (89%) rename docs/doctest_info/{ => reports}/marker.report (100%) rename docs/doctest_info/{ => reports}/meshfill.report (100%) rename docs/doctest_info/{ => reports}/projection.report (100%) rename docs/doctest_info/{ => reports}/queries.report (99%) rename docs/doctest_info/{ => reports}/taylor.report (100%) rename docs/doctest_info/{ => reports}/template.report (99%) rename docs/doctest_info/{ => reports}/textcombined.report (98%) rename docs/doctest_info/{ => reports}/textorientation.report (100%) rename docs/doctest_info/{ => reports}/texttable.report (100%) rename docs/doctest_info/{ => reports}/unified1D.report (100%) rename docs/doctest_info/{ => reports}/utils.report (100%) rename docs/doctest_info/{ => reports}/vcshelp.report (100%) rename docs/doctest_info/{ => reports}/vector.report (100%) create mode 100644 docs/doctest_info/scripts/deft_box.py rename docs/doctest_info/{ => scripts}/doctest_vcs.py (95%) rename docs/doctest_info/{ => scripts}/run_all_doctests.sh (92%) delete mode 100644 docs/doctest_info/validation_functions.md delete mode 100644 docs/doctest_info/validation_functions.report diff --git a/docs/doctest_info/.manageElements.log b/docs/doctest_info/.manageElements.log deleted file mode 100644 index 4900dd54a..000000000 --- a/docs/doctest_info/.manageElements.log +++ /dev/null @@ -1,1319 +0,0 @@ -Trying: - vcs.show('1d') -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - oneD_default = vcs.create1d() # inherit default, name generated -Expecting nothing -ok -Trying: - oneD_named = vcs.create1d("one_D") # inherit default, name "one_D" -Expecting nothing -ok -Trying: - new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" -Expecting nothing -ok -Trying: - vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar -Expecting: - *******************3d_dual_scalar Names List********************** - ... - *******************End 3d_dual_scalar Names List********************** -ok -Trying: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('3d_dual_scalar') # should now contain the '3d_dual_scalar_ex1' 3d_dual_scalar -Expecting: - [...'3d_dual_scalar_ex1'...] -ok -Trying: - vcs.show('3d_scalar') # show all available 3d_scalar -Expecting: - *******************3d_scalar Names List********************** - ... - *******************End 3d_scalar Names List********************** -ok -Trying: - ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('3d_scalar') # should now contain the '3d_scalar_ex1' 3d_scalar -Expecting: - [...'3d_scalar_ex1'...] -ok -Trying: - vcs.show('3d_vector') # show all available 3d_vector -Expecting: - *******************3d_vector Names List********************** - ... - *******************End 3d_vector Names List********************** -ok -Trying: - ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('3d_vector') # should now contain the '3d_vector_ex1' 3d_vector -Expecting: - [...'3d_vector_ex1'...] -ok -Trying: - vcs.show('boxfill') # show all available boxfill -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - ex=vcs.createboxfill('boxfill_ex1') # Create boxfill 'boxfill_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # should now contain the 'boxfill_ex1' boxfill -Expecting: - [...'boxfill_ex1'...] -ok -Trying: - ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2' from 'polar' template -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # should now contain the 'boxfill_ex2' boxfill -Expecting: - [...'boxfill_ex2'...] -ok -Trying: - vcs.show('colormap') # show all available colormap -Expecting: - *******************Colormap Names List********************** - ... - *******************End Colormap Names List********************** -ok -Trying: - ex=vcs.createcolormap('colormap_ex1') # Create colormap 'colormap_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # should now contain the 'colormap_ex1' colormap -Expecting: - [...'colormap_ex1'...] -ok -Trying: - ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2' from 'rainbow' template -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # should now contain the 'colormap_ex2' colormap -Expecting: - [...'colormap_ex2'...] -ok -Trying: - vcs.show('fillarea') # show all available fillarea -Expecting: - *******************Fillarea Names List********************** - ... - *******************End Fillarea Names List********************** -ok -Trying: - ex=vcs.createfillarea('fillarea_ex1') # Create fillarea 'fillarea_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('fillarea') # should now contain the 'fillarea_ex1' fillarea -Expecting: - [...'fillarea_ex1'...] -ok -Trying: - vcs.show('isofill') # show all available isofill -Expecting: - *******************Isofill Names List********************** - ... - *******************End Isofill Names List********************** -ok -Trying: - ex=vcs.createisofill('isofill_ex1') # Create isofill 'isofill_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # should now contain the 'isofill_ex1' isofill -Expecting: - [...'isofill_ex1'...] -ok -Trying: - ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2' from 'polar' template -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # should now contain the 'isofill_ex2' isofill -Expecting: - [...'isofill_ex2'...] -ok -Trying: - vcs.show('isoline') # show all available isoline -Expecting: - *******************Isoline Names List********************** - ... - *******************End Isoline Names List********************** -ok -Trying: - ex=vcs.createisoline('isoline_ex1') # Create isoline 'isoline_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # should now contain the 'isoline_ex1' isoline -Expecting: - [...'isoline_ex1'...] -ok -Trying: - ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2' from 'polar' template -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # should now contain the 'isoline_ex2' isoline -Expecting: - [...'isoline_ex2'...] -ok -Trying: - vcs.show('line') # show all available line -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - ex=vcs.createline('line_ex1') # Create line 'line_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('line') # should now contain the 'line_ex1' line -Expecting: - [...'line_ex1'...] -ok -Trying: - ex2=vcs.createline('line_ex2','red') # create 'line_ex2' from 'red' template -Expecting nothing -ok -Trying: - vcs.listelements('line') # should now contain the 'line_ex2' line -Expecting: - [...'line_ex2'...] -ok -Trying: - vcs.show('marker') # show all available marker -Expecting: - *******************Marker Names List********************** - ... - *******************End Marker Names List********************** -ok -Trying: - ex=vcs.createmarker('marker_ex1') # Create marker 'marker_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('marker') # should now contain the 'marker_ex1' marker -Expecting: - [...'marker_ex1'...] -ok -Trying: - ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2' from 'red' template -Expecting nothing -ok -Trying: - vcs.listelements('marker') # should now contain the 'marker_ex2' marker -Expecting: - [...'marker_ex2'...] -ok -Trying: - vcs.show('meshfill') # show all available meshfill -Expecting: - *******************Meshfill Names List********************** - ... - *******************End Meshfill Names List********************** -ok -Trying: - ex=vcs.createmeshfill('meshfill_ex1') # Create meshfill 'meshfill_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # should now contain the 'meshfill_ex1' meshfill -Expecting: - [...'meshfill_ex1'...] -ok -Trying: - ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2' from 'a_polar_meshfill' template -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # should now contain the 'meshfill_ex2' meshfill -Expecting: - [...'meshfill_ex2'...] -ok -Trying: - vcs.show('projection') # show all available projection -Expecting: - *******************Projection Names List********************** - ... - *******************End Projection Names List********************** -ok -Trying: - ex=vcs.createprojection('projection_ex1') # Create projection 'projection_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('projection') # should now contain the 'projection_ex1' projection -Expecting: - [...'projection_ex1'...] -ok -Trying: - ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2' from 'orthographic' template -Expecting nothing -ok -Trying: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection -Expecting: - [...'projection_ex2'...] -ok -Trying: - vcs.show('scatter') # show all available scatter -Expecting: - *******************Scatter Names List********************** - ... - *******************End Scatter Names List********************** -ok -Trying: - ex=vcs.createscatter('scatter_ex1') # Create scatter 'scatter_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('scatter') # should now contain the 'scatter_ex1' scatter -Expecting: - [...'scatter_ex1'...] -ok -Trying: - vcs.show('taylordiagram') # show all available taylordiagram -Expecting: - *******************Taylordiagram Names List********************** - ... - *******************End Taylordiagram Names List********************** -ok -Trying: - ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create taylordiagram 'taylordiagram_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('taylordiagram') # should now contain the 'taylordiagram_ex1' taylordiagram -Expecting: - [...'taylordiagram_ex1'...] -ok -Trying: - vcs.show('template') # show all available template -Expecting: - *******************Template Names List********************** - ... - *******************End Template Names List********************** -ok -Trying: - ex=vcs.createtemplate('template_ex1') # Create template 'template_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('template') # should now contain the 'template_ex1' template -Expecting: - [...'template_ex1'...] -ok -Trying: - ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2' from 'polar' template -Expecting nothing -ok -Trying: - vcs.listelements('template') # should now contain the 'template_ex2' template -Expecting: - [...'template_ex2'...] -ok -Trying: - vcs.show('textcombined') # show all available textcombined -Expecting: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1388, in vcs.manageElements.createtext -Failed example: - vcs.show('textcombined') # show all available textcombined -Expected: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -Got: - *******************Textcombined Names List********************** - *******************End Textcombined Names List********************** -Trying: - vcs.show('textorientation') # show all available textorientation -Expecting: - *******************Textorientation Names List********************** - ... - *******************End Textorientation Names List********************** -ok -Trying: - ex=vcs.createtextorientation('textorientation_ex1') # Create textorientation 'textorientation_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # should now contain the 'textorientation_ex1' textorientation -Expecting: - [...'textorientation_ex1'...] -ok -Trying: - ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2' from 'bigger' template -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # should now contain the 'textorientation_ex2' textorientation -Expecting: - [...'textorientation_ex2'...] -ok -Trying: - vcs.show('texttable') # show all available texttable -Expecting: - *******************Texttable Names List********************** - ... - *******************End Texttable Names List********************** -ok -Trying: - ex=vcs.createtexttable('texttable_ex1') # Create texttable 'texttable_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # should now contain the 'texttable_ex1' texttable -Expecting: - [...'texttable_ex1'...] -ok -Trying: - ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2' from 'bigger' template -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # should now contain the 'texttable_ex2' texttable -Expecting: - [...'texttable_ex2'...] -ok -Trying: - vcs.show('vector') # show all available vector -Expecting: - *******************Vector Names List********************** - ... - *******************End Vector Names List********************** -ok -Trying: - ex=vcs.createvector('vector_ex1') # Create vector 'vector_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('vector') # should now contain the 'vector_ex1' vector -Expecting: - [...'vector_ex1'...] -ok -Trying: - vcs.show('xvsy') # show all available xvsy -Expecting: - *******************Xvsy Names List********************** - ... - *******************End Xvsy Names List********************** -ok -Trying: - ex=vcs.createxvsy('xvsy_ex1') # Create xvsy 'xvsy_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('xvsy') # should now contain the 'xvsy_ex1' xvsy -Expecting: - [...'xvsy_ex1'...] -ok -Trying: - vcs.show('xyvsy') # show all available xyvsy -Expecting: - *******************Xyvsy Names List********************** - ... - *******************End Xyvsy Names List********************** -ok -Trying: - ex=vcs.createxyvsy('xyvsy_ex1') # Create xyvsy 'xyvsy_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('xyvsy') # should now contain the 'xyvsy_ex1' xyvsy -Expecting: - [...'xyvsy_ex1'...] -ok -Trying: - vcs.show('yxvsx') # show all available yxvsx -Expecting: - *******************Yxvsx Names List********************** - ... - *******************End Yxvsx Names List********************** -ok -Trying: - ex=vcs.createyxvsx('yxvsx_ex1') # Create yxvsx 'yxvsx_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('yxvsx') # should now contain the 'yxvsx_ex1' yxvsx -Expecting: - [...'yxvsx_ex1'...] -ok -Trying: - vcs.show('1d') -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - blue = vcs.get1d('blue_yxvsx') -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_dual_scalar') # Show all the existing 3d_dual_scalar graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_dual_scalar() # instance of 'default' 3d_dual_scalar graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1656, in vcs.manageElements.get3d_dual_scalar -Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_scalar') # Show all the existing 3d_scalar graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_scalar() # instance of 'default' 3d_scalar graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified 3d_scalar object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1615, in vcs.manageElements.get3d_scalar -Failed example: - a.plot(ex, slab1) # plot using specified 3d_scalar object -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_vector') # Show all the existing 3d_vector graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_vector() # instance of 'default' 3d_vector graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1696, in vcs.manageElements.get3d_vector -Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # Show all the existing boxfill graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getboxfill() # instance of 'default' boxfill graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.boxfill(ex, slab1) # plot using specified boxfill object -Expecting: - -ok -Trying: - ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method -Expecting nothing -ok -Trying: - a.boxfill(ex2, slab1) # plot using specified boxfill object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # Show all the existing colormap secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.getcolormap() # instance of 'default' colormap secondary method -Expecting nothing -ok -Trying: - ex2=vcs.getcolormap('rainbow') # instance of 'rainbow' colormap secondary method -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('fillarea') # Show all the existing fillarea secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.getfillarea() # instance of 'default' fillarea secondary method -Expecting nothing -ok -Trying: - a.fillarea(ex) # plot using specified fillarea object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # Show all the existing isofill graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getisofill() # instance of 'default' isofill graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.isofill(ex, slab1) # plot using specified isofill object -Expecting: - -ok -Trying: - ex2=vcs.getisofill('polar') # instance of 'polar' isofill graphics method -Expecting nothing -ok -Trying: - a.isofill(ex2, slab1) # plot using specified isofill object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # Show all the existing isoline graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getisoline() # instance of 'default' isoline graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.isoline(ex, slab1) # plot using specified isoline object -Expecting: - -ok -Trying: - ex2=vcs.getisoline('polar') # instance of 'polar' isoline graphics method -Expecting nothing -ok -Trying: - a.isoline(ex2, slab1) # plot using specified isoline object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('line') # Show all the existing line secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.getline() # instance of 'default' line secondary method -Expecting nothing -ok -Trying: - a.line(ex) # plot using specified line object -Expecting: - -ok -Trying: - ex2=vcs.getline('red') # instance of 'red' line secondary method -Expecting nothing -ok -Trying: - a.line(ex2) # plot using specified line object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('marker') # Show all the existing marker secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.getmarker() # instance of 'default' marker secondary method -Expecting nothing -ok -Trying: - a.marker(ex) # plot using specified marker object -Expecting: - -ok -Trying: - ex2=vcs.getmarker('red') # instance of 'red' marker secondary method -Expecting nothing -ok -Trying: - a.marker(ex2) # plot using specified marker object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # Show all the existing meshfill graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getmeshfill() # instance of 'default' meshfill graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.meshfill(ex, slab1) # plot using specified meshfill object -Expecting: - -ok -Trying: - ex2=vcs.getmeshfill('a_polar_meshfill') # instance of 'a_polar_meshfill' meshfill graphics method -Expecting nothing -ok -Trying: - a.meshfill(ex2, slab1) # plot using specified meshfill object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('projection') # Show all the existing projection graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getprojection() # instance of 'default' projection graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified projection object -Expecting: - -ok -Trying: - ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method -Expecting nothing -ok -Trying: - a.plot(ex2, slab1) # plot using specified projection object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('scatter') # Show all the existing scatter graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getscatter('default_scatter_') # instance of ''default_scatter_'' scatter graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.scatter(ex, slab1, slab2) # plot using specified scatter object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('taylordiagram') # Show all the existing taylordiagram graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.gettaylordiagram() # instance of 'default' taylordiagram graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.taylordiagram(ex) # plot using specified taylordiagram object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 255, in vcs.manageElements.gettaylordiagram -Failed example: - a.taylordiagram(ex) # plot using specified taylordiagram object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1274, in taylordiagram - arglist = _determine_arg_list('taylordiagram', args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list - arglist[igraphics_method]) - vcsError: Graphics method taylordiagram requires 1 slab. -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('template') # Show all the existing template graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.gettemplate() # instance of 'default' template graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified template object -Expecting: - -ok -Trying: - ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method -Expecting nothing -ok -Trying: - a.plot(ex2, slab1) # plot using specified template object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('textcombined') # Show all the existing textcombined secondary methods -Expecting: - [...] -ok -Trying: - try: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1500, in vcs.manageElements.gettextcombined -Failed example: - try: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 2 - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - ^ - SyntaxError: invalid syntax -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # Show all the existing textorientation secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.gettextorientation() # instance of 'default' textorientation secondary method -Expecting nothing -ok -Trying: - ex2=vcs.gettextorientation('bigger') # instance of 'bigger' textorientation secondary method -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # Show all the existing texttable secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.gettexttable() # instance of 'default' texttable secondary method -Expecting nothing -ok -Trying: - ex2=vcs.gettexttable('bigger') # instance of 'bigger' texttable secondary method -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('vector') # Show all the existing vector graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getvector() # instance of 'default' vector graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.vector(ex, slab1, slab2) # plot using specified vector object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('xvsy') # Show all the existing xvsy graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getxvsy() # instance of 'default_xvsy_' xvsy graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.xvsy(ex, slab1, slab2) # plot using specified xvsy object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('xyvsy') # Show all the existing xyvsy graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getxyvsy('default_xyvsy_') # instance of ''default_xyvsy_'' xyvsy graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.xyvsy(ex, slab1) # plot using specified xyvsy object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('yxvsx') # Show all the existing yxvsx graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getyxvsx() # instance of 'default_yxvsx_' yxvsx graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.yxvsx(ex, slab1) # plot using specified yxvsx object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - iso=a.createisoline('dean') # Create an instance of an isoline object -Expecting nothing -ok -Trying: - a.removeobject(iso) # Remove isoline object from VCS list -Expecting: - 'Removed isoline object dean' -ok -Trying: - vcs.show('line') -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - new_isoline = vcs.createisoline('new_iso') -Expecting nothing -ok -Trying: - vcs.setLineAttributes(new_isoline, 'continents') -Expecting nothing -ok -Trying: - new_vector = vcs.createvector('new_vec') -Expecting nothing -ok -Trying: - vcs.setLineAttributes(new_vector, 'continents') -Expecting nothing -ok -Trying: - new_1d = vcs.create1d('new_1d', 'blue_yxvsx') -Expecting nothing -ok -Trying: - vcs.setLineAttributes(new_1d, 'continents') -Expecting nothing -ok -23 items had no tests: - vcs.manageElements - vcs.manageElements.check_name_source - vcs.manageElements.removeCp - vcs.manageElements.removeG - vcs.manageElements.removeG1d - vcs.manageElements.removeGSp - vcs.manageElements.removeGXY - vcs.manageElements.removeGXy - vcs.manageElements.removeGYx - vcs.manageElements.removeGfb - vcs.manageElements.removeGfi - vcs.manageElements.removeGfm - vcs.manageElements.removeGi - vcs.manageElements.removeGtd - vcs.manageElements.removeGv - vcs.manageElements.removeP - vcs.manageElements.removeProj - vcs.manageElements.removeTc - vcs.manageElements.removeTf - vcs.manageElements.removeTl - vcs.manageElements.removeTm - vcs.manageElements.removeTo - vcs.manageElements.removeTt -42 items passed all tests: - 4 tests in vcs.manageElements.create1d - 3 tests in vcs.manageElements.create3d_dual_scalar - 3 tests in vcs.manageElements.create3d_scalar - 3 tests in vcs.manageElements.create3d_vector - 5 tests in vcs.manageElements.createboxfill - 5 tests in vcs.manageElements.createcolormap - 3 tests in vcs.manageElements.createfillarea - 5 tests in vcs.manageElements.createisofill - 5 tests in vcs.manageElements.createisoline - 5 tests in vcs.manageElements.createline - 5 tests in vcs.manageElements.createmarker - 5 tests in vcs.manageElements.createmeshfill - 5 tests in vcs.manageElements.createprojection - 3 tests in vcs.manageElements.createscatter - 3 tests in vcs.manageElements.createtaylordiagram - 5 tests in vcs.manageElements.createtemplate - 5 tests in vcs.manageElements.createtextorientation - 5 tests in vcs.manageElements.createtexttable - 3 tests in vcs.manageElements.createvector - 3 tests in vcs.manageElements.createxvsy - 3 tests in vcs.manageElements.createxyvsy - 3 tests in vcs.manageElements.createyxvsx - 2 tests in vcs.manageElements.get1d - 9 tests in vcs.manageElements.getboxfill - 4 tests in vcs.manageElements.getcolormap - 4 tests in vcs.manageElements.getfillarea - 9 tests in vcs.manageElements.getisofill - 9 tests in vcs.manageElements.getisoline - 6 tests in vcs.manageElements.getline - 6 tests in vcs.manageElements.getmarker - 9 tests in vcs.manageElements.getmeshfill - 9 tests in vcs.manageElements.getprojection - 8 tests in vcs.manageElements.getscatter - 9 tests in vcs.manageElements.gettemplate - 4 tests in vcs.manageElements.gettextorientation - 4 tests in vcs.manageElements.gettexttable - 8 tests in vcs.manageElements.getvector - 8 tests in vcs.manageElements.getxvsy - 7 tests in vcs.manageElements.getxyvsy - 7 tests in vcs.manageElements.getyxvsx - 3 tests in vcs.manageElements.removeobject - 7 tests in vcs.manageElements.setLineAttributes -********************************************************************** -6 items had failures: - 4 of 4 in vcs.manageElements.createtext - 1 of 8 in vcs.manageElements.get3d_dual_scalar - 1 of 7 in vcs.manageElements.get3d_scalar - 1 of 8 in vcs.manageElements.get3d_vector - 1 of 7 in vcs.manageElements.gettaylordiagram - 4 of 6 in vcs.manageElements.gettextcombined -261 tests in 71 items. -249 passed and 12 failed. -***Test Failed*** 12 failures. -Done logging manageElements.md diff --git a/docs/doctest_info/README.md b/docs/doctest_info/README.md index 0adf5c44b..707e84c24 100644 --- a/docs/doctest_info/README.md +++ b/docs/doctest_info/README.md @@ -1,76 +1,76 @@ Doctest Info ------------ -[Canvas] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Canvas.md) +[Canvas] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Canvas.md) -[Pboxeslines] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pboxeslines.md) +[Pboxeslines] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pboxeslines.md) -[Pdata] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pdata.md) +[Pdata] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pdata.md) -[Pformat] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pformat.md) +[Pformat] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pformat.md) -[Plegend] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Plegend.md) +[Plegend] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Plegend.md) -[Ptext] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Ptext.md) +[Ptext] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Ptext.md) -[Pxlabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pxlabels.md) +[Pxlabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pxlabels.md) -[Pxtickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pxtickmarks.md) +[Pxtickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pxtickmarks.md) -[Pylabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pylabels.md) +[Pylabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pylabels.md) -[Pytickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/Pytickmarks.md) +[Pytickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pytickmarks.md) -[VCS_validation_functions] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/VCS_validation_functions.md) +[VCS_validation_functions] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/VCS_validation_functions.md) -[boxfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/boxfill.md) +[boxfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/boxfill.md) -[colormap] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colormap.md) +[colormap] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/colormap.md) -[colors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/colors.md) +[colors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/colors.md) -[configurator] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/configurator.md) +[configurator] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/configurator.md) -[displayplot] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/displayplot.md) +[displayplot] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/displayplot.md) -[dv3d] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/dv3d.md) +[dv3d] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/dv3d.md) -[editors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/editors.md) +[editors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/editors.md) -[error] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/error.md) +[error] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/error.md) -[fillarea] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/fillarea.md) +[fillarea] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/fillarea.md) -[isofill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/isofill.md) +[isofill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/isofill.md) -[isoline] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/isoline.md) +[isoline] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/isoline.md) -[line] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/line.md) +[line] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/line.md) -[manageElements] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/manageElements.md) +[manageElements] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/manageElements.md) -[marker] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/marker.md) +[marker] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/marker.md) -[meshfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/meshfill.md) +[meshfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/meshfill.md) -[projection] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/projection.md) +[projection] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/projection.md) -[queries] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/queries.md) +[queries] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/queries.md) -[taylor] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/taylor.md) +[taylor] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/taylor.md) -[template] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/template.md) +[template] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/template.md) -[textcombined] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/textcombined.md) +[textcombined] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/textcombined.md) -[textorientation] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/textorientation.md) +[textorientation] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/textorientation.md) -[texttable] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/texttable.md) +[texttable] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/texttable.md) -[unified1D] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/unified1D.md) +[unified1D] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/unified1D.md) -[utils] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/utils.md) +[utils] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/utils.md) -[vcshelp] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vcshelp.md) +[vcshelp] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/vcshelp.md) -[vector] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/vector.md) +[vector] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/vector.md) diff --git a/docs/doctest_info/colormap.md b/docs/doctest_info/colormap.md deleted file mode 100644 index 0ebe7f43f..000000000 --- a/docs/doctest_info/colormap.md +++ /dev/null @@ -1,34 +0,0 @@ -vcs.colormap.Cp.setcolorcell ----------------------------- -```python -Failed example: - cmap = a.createcolormap('example', 'default') # Create a colormap -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5753, in createcolormap - return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1782, in createcolormap - Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error colormap object named example already exists -``` - -vcs.colormap.Cp.setcolorcell ----------------------------- -```python -Failed example: - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values - NameError: name 'cmap' is not defined -``` - diff --git a/docs/doctest_info/colormap.report b/docs/doctest_info/colormap.report deleted file mode 100644 index a39535761..000000000 --- a/docs/doctest_info/colormap.report +++ /dev/null @@ -1,92 +0,0 @@ -Trying: - a=vcs.init() # Create a vcs Canvas -Expecting nothing -ok -Trying: - cmap = a.createcolormap('example', 'default') # Create a colormap -Expecting nothing -ok -Trying: - cmap.getcolorcell(1) # Get RGBA values -Expecting: - [26, 0, 33, 100] -ok -Trying: - a=vcs.init() # Make a Canvas object to work with -Expecting nothing -ok -Trying: - ex=a.getcolormap() # Get default colormap -Expecting nothing -ok -Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. -Expecting nothing -ok -Trying: - a = vcs.init() # Create a vcs Canvas -Expecting nothing -ok -Trying: - cmap = a.createcolormap('example', 'default') # Create a colormap -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/colormap.py", line 311, in vcs.colormap.Cp.setcolorcell -Failed example: - cmap = a.createcolormap('example', 'default') # Create a colormap -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cmap = a.createcolormap('example', 'default') # Create a colormap - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5753, in createcolormap - return vcs.createcolormap(Cp_name, Cp_name_src) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1782, in createcolormap - Cp_name, Cp_name_src = check_name_source(Cp_name, Cp_name_src, 'colormap') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error colormap object named example already exists -Trying: - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/colormap.py", line 312, in vcs.colormap.Cp.setcolorcell -Failed example: - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values - NameError: name 'cmap' is not defined -15 items had no tests: - vcs.colormap - vcs.colormap.Cp - vcs.colormap.Cp.__init__ - vcs.colormap.Cp.getindex - vcs.colormap.Cp.getname - vcs.colormap.Cp.index - vcs.colormap.Cp.list - vcs.colormap.Cp.name - vcs.colormap.Cp.setindex - vcs.colormap.Cp.setname - vcs.colormap.RGB_Table - vcs.colormap.RGB_Table.__getitem__ - vcs.colormap.RGB_Table.__init__ - vcs.colormap.RGB_Table.__setitem__ - vcs.colormap.process_src -2 items passed all tests: - 3 tests in vcs.colormap.Cp.getcolorcell - 4 tests in vcs.colormap.Cp.script -********************************************************************** -1 items had failures: - 2 of 3 in vcs.colormap.Cp.setcolorcell -10 tests in 18 items. -8 passed and 2 failed. -***Test Failed*** 2 failures. diff --git a/docs/doctest_info/doctest_timing b/docs/doctest_info/doctest_timing index 74588699f..7592e220e 100644 --- a/docs/doctest_info/doctest_timing +++ b/docs/doctest_info/doctest_timing @@ -1,1283 +1,3 @@ -Trying: - vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar -Expecting: - *******************3d_dual_scalar Names List********************** - ... - *******************End 3d_dual_scalar Names List********************** -ok -Trying: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('3d_dual_scalar') # should now contain the '3d_dual_scalar_ex1' 3d_dual_scalar -Expecting: - [...'3d_dual_scalar_ex1'...] -ok -Trying: - vcs.show('3d_scalar') # show all available 3d_scalar -Expecting: - *******************3d_scalar Names List********************** - ... - *******************End 3d_scalar Names List********************** -ok -Trying: - ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('3d_scalar') # should now contain the '3d_scalar_ex1' 3d_scalar -Expecting: - [...'3d_scalar_ex1'...] -ok -Trying: - vcs.show('3d_vector') # show all available 3d_vector -Expecting: - *******************3d_vector Names List********************** - ... - *******************End 3d_vector Names List********************** -ok -Trying: - ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('3d_vector') # should now contain the '3d_vector_ex1' 3d_vector -Expecting: - [...'3d_vector_ex1'...] -ok -Trying: - vcs.show('boxfill') # show all available boxfill -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - ex=vcs.createboxfill('boxfill_ex1') # Create boxfill 'boxfill_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # should now contain the 'boxfill_ex1' boxfill -Expecting: - [...'boxfill_ex1'...] -ok -Trying: - ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2' from 'polar' template -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # should now contain the 'boxfill_ex2' boxfill -Expecting: - [...'boxfill_ex2'...] -ok -Trying: - vcs.show('colormap') # show all available colormap -Expecting: - *******************Colormap Names List********************** - ... - *******************End Colormap Names List********************** -ok -Trying: - ex=vcs.createcolormap('colormap_ex1') # Create colormap 'colormap_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # should now contain the 'colormap_ex1' colormap -Expecting: - [...'colormap_ex1'...] -ok -Trying: - ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2' from 'rainbow' template -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # should now contain the 'colormap_ex2' colormap -Expecting: - [...'colormap_ex2'...] -ok -Trying: - vcs.show('fillarea') # show all available fillarea -Expecting: - *******************Fillarea Names List********************** - ... - *******************End Fillarea Names List********************** -ok -Trying: - ex=vcs.createfillarea('fillarea_ex1') # Create fillarea 'fillarea_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('fillarea') # should now contain the 'fillarea_ex1' fillarea -Expecting: - [...'fillarea_ex1'...] -ok -Trying: - vcs.show('isofill') # show all available isofill -Expecting: - *******************Isofill Names List********************** - ... - *******************End Isofill Names List********************** -ok -Trying: - ex=vcs.createisofill('isofill_ex1') # Create isofill 'isofill_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # should now contain the 'isofill_ex1' isofill -Expecting: - [...'isofill_ex1'...] -ok -Trying: - ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2' from 'polar' template -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # should now contain the 'isofill_ex2' isofill -Expecting: - [...'isofill_ex2'...] -ok -Trying: - vcs.show('isoline') # show all available isoline -Expecting: - *******************Isoline Names List********************** - ... - *******************End Isoline Names List********************** -ok -Trying: - ex=vcs.createisoline('isoline_ex1') # Create isoline 'isoline_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # should now contain the 'isoline_ex1' isoline -Expecting: - [...'isoline_ex1'...] -ok -Trying: - ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2' from 'polar' template -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # should now contain the 'isoline_ex2' isoline -Expecting: - [...'isoline_ex2'...] -ok -Trying: - vcs.show('line') # show all available line -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - ex=vcs.createline('line_ex1') # Create line 'line_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('line') # should now contain the 'line_ex1' line -Expecting: - [...'line_ex1'...] -ok -Trying: - ex2=vcs.createline('line_ex2','red') # create 'line_ex2' from 'red' template -Expecting nothing -ok -Trying: - vcs.listelements('line') # should now contain the 'line_ex2' line -Expecting: - [...'line_ex2'...] -ok -Trying: - vcs.show('marker') # show all available marker -Expecting: - *******************Marker Names List********************** - ... - *******************End Marker Names List********************** -ok -Trying: - ex=vcs.createmarker('marker_ex1') # Create marker 'marker_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('marker') # should now contain the 'marker_ex1' marker -Expecting: - [...'marker_ex1'...] -ok -Trying: - ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2' from 'red' template -Expecting nothing -ok -Trying: - vcs.listelements('marker') # should now contain the 'marker_ex2' marker -Expecting: - [...'marker_ex2'...] -ok -Trying: - vcs.show('meshfill') # show all available meshfill -Expecting: - *******************Meshfill Names List********************** - ... - *******************End Meshfill Names List********************** -ok -Trying: - ex=vcs.createmeshfill('meshfill_ex1') # Create meshfill 'meshfill_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # should now contain the 'meshfill_ex1' meshfill -Expecting: - [...'meshfill_ex1'...] -ok -Trying: - ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2' from 'a_polar_meshfill' template -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # should now contain the 'meshfill_ex2' meshfill -Expecting: - [...'meshfill_ex2'...] -ok -Trying: - vcs.show('projection') # show all available projection -Expecting: - *******************Projection Names List********************** - ... - *******************End Projection Names List********************** -ok -Trying: - ex=vcs.createprojection('projection_ex1') # Create projection 'projection_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('projection') # should now contain the 'projection_ex1' projection -Expecting: - [...'projection_ex1'...] -ok -Trying: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 129, in vcs.manageElements.createprojection -Failed example: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 120, in createprojection - return projection.Proj(name, source) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 434, in __init__ - self.type = src.type - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/projection.py", line 987, in _settype - value = VCS_validation_functions.checkProjType(self, 'type', value) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 1440, in checkProjType - checkedRaise(self, value, Exception, err) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/VCS_validation_functions.py", line 59, in checkedRaise - raise ex(err) - Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) -Trying: - vcs.show('scatter') # show all available scatter -Expecting: - *******************Scatter Names List********************** - ... - *******************End Scatter Names List********************** -ok -Trying: - ex=vcs.createscatter('scatter_ex1') # Create scatter 'scatter_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('scatter') # should now contain the 'scatter_ex1' scatter -Expecting: - [...'scatter_ex1'...] -ok -Trying: - vcs.show('taylordiagram') # show all available taylordiagram -Expecting: - *******************Taylordiagram Names List********************** - ... - *******************End Taylordiagram Names List********************** -ok -Trying: - ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create taylordiagram 'taylordiagram_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('taylordiagram') # should now contain the 'taylordiagram_ex1' taylordiagram -Expecting: - [...'taylordiagram_ex1'...] -ok -Trying: - vcs.show('template') # show all available template -Expecting: - *******************Template Names List********************** - ... - *******************End Template Names List********************** -ok -Trying: - ex=vcs.createtemplate('template_ex1') # Create template 'template_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('template') # should now contain the 'template_ex1' template -Expecting: - [...'template_ex1'...] -ok -Trying: - ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2' from 'polar' template -Expecting nothing -ok -Trying: - vcs.listelements('template') # should now contain the 'template_ex2' template -Expecting: - [...'template_ex2'...] -ok -Trying: - vcs.show('textcombined') # show all available textcombined -Expecting: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1318, in vcs.manageElements.createtext -Failed example: - vcs.show('textcombined') # show all available textcombined -Expected: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -Got: - *******************Textcombined Names List********************** - *******************End Textcombined Names List********************** -Trying: - vcs.show('textorientation') # show all available textorientation -Expecting: - *******************Textorientation Names List********************** - ... - *******************End Textorientation Names List********************** -ok -Trying: - ex=vcs.createtextorientation('textorientation_ex1') # Create textorientation 'textorientation_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # should now contain the 'textorientation_ex1' textorientation -Expecting: - [...'textorientation_ex1'...] -ok -Trying: - ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2' from 'bigger' template -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # should now contain the 'textorientation_ex2' textorientation -Expecting: - [...'textorientation_ex2'...] -ok -Trying: - vcs.show('texttable') # show all available texttable -Expecting: - *******************Texttable Names List********************** - ... - *******************End Texttable Names List********************** -ok -Trying: - ex=vcs.createtexttable('texttable_ex1') # Create texttable 'texttable_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # should now contain the 'texttable_ex1' texttable -Expecting: - [...'texttable_ex1'...] -ok -Trying: - ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2' from 'bigger' template -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # should now contain the 'texttable_ex2' texttable -Expecting: - [...'texttable_ex2'...] -ok -Trying: - vcs.show('vector') # show all available vector -Expecting: - *******************Vector Names List********************** - ... - *******************End Vector Names List********************** -ok -Trying: - ex=vcs.createvector('vector_ex1') # Create vector 'vector_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('vector') # should now contain the 'vector_ex1' vector -Expecting: - [...'vector_ex1'...] -ok -Trying: - vcs.show('xvsy') # show all available xvsy -Expecting: - *******************Xvsy Names List********************** - ... - *******************End Xvsy Names List********************** -ok -Trying: - ex=vcs.createxvsy('xvsy_ex1') # Create xvsy 'xvsy_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('xvsy') # should now contain the 'xvsy_ex1' xvsy -Expecting: - [...'xvsy_ex1'...] -ok -Trying: - vcs.show('xyvsy') # show all available xyvsy -Expecting: - *******************Xyvsy Names List********************** - ... - *******************End Xyvsy Names List********************** -ok -Trying: - ex=vcs.createxyvsy('xyvsy_ex1') # Create xyvsy 'xyvsy_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('xyvsy') # should now contain the 'xyvsy_ex1' xyvsy -Expecting: - [...'xyvsy_ex1'...] -ok -Trying: - vcs.show('yxvsx') # show all available yxvsx -Expecting: - *******************Yxvsx Names List********************** - ... - *******************End Yxvsx Names List********************** -ok -Trying: - ex=vcs.createyxvsx('yxvsx_ex1') # Create yxvsx 'yxvsx_ex1' that inherits from 'default' -Expecting nothing -ok -Trying: - vcs.listelements('yxvsx') # should now contain the 'yxvsx_ex1' yxvsx -Expecting: - [...'yxvsx_ex1'...] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_dual_scalar') # Show all the existing 3d_dual_scalar graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_dual_scalar() # instance of 'default' 3d_dual_scalar graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1586, in vcs.manageElements.get3d_dual_scalar -Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_scalar') # Show all the existing 3d_scalar graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_scalar() # instance of 'default' 3d_scalar graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified 3d_scalar object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1545, in vcs.manageElements.get3d_scalar -Failed example: - a.plot(ex, slab1) # plot using specified 3d_scalar object -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_vector') # Show all the existing 3d_vector graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_vector() # instance of 'default' 3d_vector graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1626, in vcs.manageElements.get3d_vector -Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # Show all the existing boxfill graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getboxfill() # instance of 'default' boxfill graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.boxfill(ex, slab1) # plot using specified boxfill object -Expecting: - -ok -Trying: - ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method -Expecting nothing -ok -Trying: - a.boxfill(ex2, slab1) # plot using specified boxfill object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # Show all the existing colormap secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.getcolormap() # instance of 'default' colormap secondary method -Expecting nothing -ok -Trying: - ex2=vcs.getcolormap('rainbow') # instance of 'rainbow' colormap secondary method -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('fillarea') # Show all the existing fillarea secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.getfillarea() # instance of 'default' fillarea secondary method -Expecting nothing -ok -Trying: - a.fillarea(ex) # plot using specified fillarea object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # Show all the existing isofill graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getisofill() # instance of 'default' isofill graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.isofill(ex, slab1) # plot using specified isofill object -Expecting: - -ok -Trying: - ex2=vcs.getisofill('polar') # instance of 'polar' isofill graphics method -Expecting nothing -ok -Trying: - a.isofill(ex2, slab1) # plot using specified isofill object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # Show all the existing isoline graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getisoline() # instance of 'default' isoline graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.isoline(ex, slab1) # plot using specified isoline object -Expecting: - -ok -Trying: - ex2=vcs.getisoline('polar') # instance of 'polar' isoline graphics method -Expecting nothing -ok -Trying: - a.isoline(ex2, slab1) # plot using specified isoline object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('line') # Show all the existing line secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.getline() # instance of 'default' line secondary method -Expecting nothing -ok -Trying: - a.line(ex) # plot using specified line object -Expecting: - -ok -Trying: - ex2=vcs.getline('red') # instance of 'red' line secondary method -Expecting nothing -ok -Trying: - a.line(ex2) # plot using specified line object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('marker') # Show all the existing marker secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.getmarker() # instance of 'default' marker secondary method -Expecting nothing -ok -Trying: - a.marker(ex) # plot using specified marker object -Expecting: - -ok -Trying: - ex2=vcs.getmarker('red') # instance of 'red' marker secondary method -Expecting nothing -ok -Trying: - a.marker(ex2) # plot using specified marker object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # Show all the existing meshfill graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getmeshfill() # instance of 'default' meshfill graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.meshfill(ex, slab1) # plot using specified meshfill object -Expecting: - -ok -Trying: - ex2=vcs.getmeshfill('a_polar_meshfill') # instance of 'a_polar_meshfill' meshfill graphics method -Expecting nothing -ok -Trying: - a.meshfill(ex2, slab1) # plot using specified meshfill object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('projection') # Show all the existing projection graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getprojection() # instance of 'default' projection graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified projection object -Expecting: - -ok -Trying: - ex2=vcs.getprojection('polar') # instance of 'polar' projection graphics method -Expecting nothing -ok -Trying: - a.plot(ex2, slab1) # plot using specified projection object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('scatter') # Show all the existing scatter graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getscatter('default_scatter_') # instance of ''default_scatter_'' scatter graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.scatter(ex, slab1, slab2) # plot using specified scatter object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('taylordiagram') # Show all the existing taylordiagram graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.gettaylordiagram() # instance of 'default' taylordiagram graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 255, in vcs.manageElements.gettaylordiagram -Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1275, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3634, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1965, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1205, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('template') # Show all the existing template graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.gettemplate() # instance of 'default' template graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified template object -Expecting: - -ok -Trying: - ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method -Expecting nothing -ok -Trying: - a.plot(ex2, slab1) # plot using specified template object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('textcombined') # Show all the existing textcombined secondary methods -Expecting: - [...] -ok -Trying: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1430, in vcs.manageElements.gettextcombined -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1365, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # Show all the existing textorientation secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.gettextorientation() # instance of 'default' textorientation secondary method -Expecting nothing -ok -Trying: - ex2=vcs.gettextorientation('bigger') # instance of 'bigger' textorientation secondary method -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # Show all the existing texttable secondary methods -Expecting: - [...] -ok -Trying: - ex=vcs.gettexttable() # instance of 'default' texttable secondary method -Expecting nothing -ok -Trying: - ex2=vcs.gettexttable('bigger') # instance of 'bigger' texttable secondary method -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('vector') # Show all the existing vector graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getvector() # instance of 'default' vector graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.vector(ex, slab1, slab2) # plot using specified vector object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('xvsy') # Show all the existing xvsy graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getxvsy() # instance of 'default_xvsy_' xvsy graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.xvsy(ex, slab1, slab2) # plot using specified xvsy object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('xyvsy') # Show all the existing xyvsy graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getxyvsy('default_xyvsy_') # instance of ''default_xyvsy_'' xyvsy graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.xyvsy(ex, slab1) # plot using specified xyvsy object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('yxvsx') # Show all the existing yxvsx graphics methods -Expecting: - [...] -ok -Trying: - ex=vcs.getyxvsx() # instance of 'default_yxvsx_' yxvsx graphics method -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.yxvsx(ex, slab1) # plot using specified yxvsx object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - iso=a.createisoline('dean') # Create an instance of an isoline object -Expecting nothing -ok -Trying: - a.removeobject(iso) # Remove isoline object from VCS list -Expecting: - 'Removed isoline object dean' -ok -26 items had no tests: - vcs.manageElements - vcs.manageElements.check_name_source - vcs.manageElements.create1d - vcs.manageElements.get1d - vcs.manageElements.removeCp - vcs.manageElements.removeG - vcs.manageElements.removeG1d - vcs.manageElements.removeGSp - vcs.manageElements.removeGXY - vcs.manageElements.removeGXy - vcs.manageElements.removeGYx - vcs.manageElements.removeGfb - vcs.manageElements.removeGfi - vcs.manageElements.removeGfm - vcs.manageElements.removeGi - vcs.manageElements.removeGtd - vcs.manageElements.removeGv - vcs.manageElements.removeP - vcs.manageElements.removeProj - vcs.manageElements.removeTc - vcs.manageElements.removeTf - vcs.manageElements.removeTl - vcs.manageElements.removeTm - vcs.manageElements.removeTo - vcs.manageElements.removeTt - vcs.manageElements.setLineAttributes -38 items passed all tests: - 3 tests in vcs.manageElements.create3d_dual_scalar - 3 tests in vcs.manageElements.create3d_scalar - 3 tests in vcs.manageElements.create3d_vector - 5 tests in vcs.manageElements.createboxfill - 5 tests in vcs.manageElements.createcolormap - 3 tests in vcs.manageElements.createfillarea - 5 tests in vcs.manageElements.createisofill - 5 tests in vcs.manageElements.createisoline - 5 tests in vcs.manageElements.createline - 5 tests in vcs.manageElements.createmarker - 5 tests in vcs.manageElements.createmeshfill - 3 tests in vcs.manageElements.createscatter - 3 tests in vcs.manageElements.createtaylordiagram - 5 tests in vcs.manageElements.createtemplate - 5 tests in vcs.manageElements.createtextorientation - 5 tests in vcs.manageElements.createtexttable - 3 tests in vcs.manageElements.createvector - 3 tests in vcs.manageElements.createxvsy - 3 tests in vcs.manageElements.createxyvsy - 3 tests in vcs.manageElements.createyxvsx - 9 tests in vcs.manageElements.getboxfill - 4 tests in vcs.manageElements.getcolormap - 4 tests in vcs.manageElements.getfillarea - 9 tests in vcs.manageElements.getisofill - 9 tests in vcs.manageElements.getisoline - 6 tests in vcs.manageElements.getline - 6 tests in vcs.manageElements.getmarker - 9 tests in vcs.manageElements.getmeshfill - 9 tests in vcs.manageElements.getprojection - 8 tests in vcs.manageElements.getscatter - 9 tests in vcs.manageElements.gettemplate - 4 tests in vcs.manageElements.gettextorientation - 4 tests in vcs.manageElements.gettexttable - 8 tests in vcs.manageElements.getvector - 8 tests in vcs.manageElements.getxvsy - 7 tests in vcs.manageElements.getxyvsy - 7 tests in vcs.manageElements.getyxvsx - 3 tests in vcs.manageElements.removeobject -********************************************************************** -7 items had failures: - 2 of 5 in vcs.manageElements.createprojection - 1 of 3 in vcs.manageElements.createtext - 1 of 8 in vcs.manageElements.get3d_dual_scalar - 1 of 7 in vcs.manageElements.get3d_scalar - 1 of 8 in vcs.manageElements.get3d_vector - 1 of 7 in vcs.manageElements.gettaylordiagram - 1 of 5 in vcs.manageElements.gettextcombined -246 tests in 71 items. -238 passed and 8 failed. -***Test Failed*** 8 failures. -Done logging manageElements.md 6818260 function calls (6728944 primitive calls) in 19.114 seconds Ordered by: standard name diff --git a/docs/doctest_info/doctest_timing.txt b/docs/doctest_info/doctest_timing.txt deleted file mode 100644 index 5112bd18ed1f3e704b0dd9622703a66fb1e380d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 832056 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

fFCvmf0_3UbyHS8{oxQ;q?aKEdYpzv*jB- zPh5B$9p}_9vWv-xvNi7b7HCBjCJ^PKt!JfMFe67i!49M%c#r*>sWCCxFg@TnftH z_xpq!>JAK+4Rdwlk?n%F?bVs|N3yu{*WVElfGUfQpMtQC*3v7c`#}93MfNYdg0SJ` zPo*~(56O_x9QS26eQxyoSGn2|Obd~X2odE>P-VHlL`{KAnI;IOCBWlgi#xG5%BAyU zF2InjiEQBGiES;M34MnT)e(l7$5&z_F{o#9`+iuYjRT`Xh$0LP%p7^n5^!P~V;~P%3vXZyNL&8Ui020C*vkB`~ zbzMmOdk_5?xe=&P8R^qu-A@~3ks^hgw+ASX)%l+xS8wc9GRQ-6rrG+^9z+BIswF*R*3~3 z(v0_Nr?chn{`HXuzPzzM#SV9|Rb~ukpUo(-Im8v};34@q19TS2n>m1u;#(oK?G^qo zMmYU+gu2=p!66OP>R&#W@MAJH!A)c~Zh7Ka+5|8`bk9>Xb1AQam_|}>_c={@xV&nyk*ZM8K z#fSg1bn!8>$}V00)4UjQ`3n!du0P31xF!m{Q-kF^*3P=Snr|5+0b` zLl5d-s`?KMdwWZNLVcM6$5}$##M3T=JZ>+CW5lixMf3?pP<&X)qlC?jSKevuvWt<;A6*8 zTN!+OAxr=tp$`;zJo+@wOOsph=Fy*3B|UZ1(9(rtm8+D{0qa->+mnC@Iji-=CJVC- zUA#qy%c^;$>MtZU!v+)jMyXfUv5W0fN0K4Kpvzt|8vU4x@uLFYy3VMCVp`0K7=B4?MD0XR!AYLw$_ZCsS9cj5ZWij z0U(75?L4dFVs=( zG3}^{B{Zm}+wE7EbL;`x{4qTkUnokBXxMaZrmJ7$f}thYcqVmf%T?Y@J{m)%*}alC zg34PER6TQNPPIDrl4v`WvZ1eG$hic4>XZxF%3# zsqt-u@!hD`LFEZnlLMK3%&Z*lq`K(Y+*EHy`pE94fWukjxG82^n6E7_7PwPgv3V18 zge2%?XmukRqaf7|96hKO{Q;I1I1L2C!`b+M{_j}_jPK1jx9U zS{GbAoPV5g$WcqrnV)g~(0$PV+&FH9G*hIG&@4y~aN*?bUO)&Bxe|nGxre`b-m_or za&^Khfpewa*e<1&V6j|0oVzbNd%gYUuE;pAo_)r(N1yaDy)EsSCVPY@rchXV$y30; z`sRhx*V(xz<9z+QrQ>@~SS(bZLBHQBW71GG>M~b8!;X#MyqeM1UfBDdsqgn?oS)x# z{tnOo-iZOO;0{ptoH{kLb0av~P)U+;(sf40d2Ygw$Dj9NM!+3OztHOHOcNHIWEdGh zu}JCxz3|f>&uWPeM#FLz=7$%m*$t{m zS0!7K`Bj5-yr20)5msd{1e)H{!wgapN~8cPLL_)-ty;|CO3fV|rim<+2kbl6>oExcw|t>BJs1F*WKkV-B6xbuu==*cV4*t7Y<>2AD3SH5w_ z$ro=VmNb4)+?a+R)3qf!FgFuZp-$FGEceaDHqlfkfgtK47qu6jxR}hVzO9#$nA^sF zcn3ggt7>F`en^wJpy(I=|EJ!aIOb)dRRKW3YNh} zzlfen9Gl3guo|$x-7A3;_uF_&62J;Ax3aayh&VR4EuB&_@4TJMl6_eo+t4;neI2PN1W690o z0c6YFVF*~h+%L_)9_yN(lRvIA?WwyKZ7xbJ8LTWh%0rHjZ&O&Q`N}d|*~5j8p;0c1 zd!p7)3m43<^5G&=j6GbmUU76^kZ@4^s*Y}6CC?UfkD%tDyV=(IM2W@v>A=l0$I%B` zwY7~&A&rHduJh3FDf$2!LX5<@bPvQtgD%=1DLX!B| zLk<r~x~GdTeVv-IAufRm{|QvM5(D@k$`KJj|LAniz2=NR9XW4;=%?5Kj|9LA z4M2KnI8Q)jeeG!pQ4_GF+)rm(*`BARD&Jc=?7~^>Ax-R!weNil;Tlg7p{VP1wCzQ_ zZe>*bq_7YWQXJX_0$dolgg&X7=W2AfX}^?OLjdZsz6e!2)tFqRHkzxA3}ap^^!;`O zroI!w~h+(4z88!6{kFywYp8`em$3RKB$2AsE0 z?oy%q$n*^QU5qCm_=RWzebYot{}%RU&`T1?m{hG)B`-(P9C@URWMs%Gw|>ZrZh(K?Jy%b zZguLLgPQv;sjuvl^xzf3y|iaxkTPd_>z1wfy-H)d9n_CVfYkE|(|A$=?W1oV@QwcW z*e*i%#Sbxv!{9%5j1*9kQW_AJ#B$s`Bmz0lMD);21Ry(sVDi>`aaF{cXSYG|kdAQQ zD)CQWn`Wbgx6{c{svr#n{>FLx>`Z$2`8$H9>1Q9FB-4^zVKBn-Ts$OANEZw9&Es-! zbgdoNwIOFaA0#-%0Q9Q3+G{ddTk+T8$0W+&;GyrLhrFmtN^gEek^NUXju-C1TB4p< zkQ6{DGIh?(XW<}3LGd=GzL6{)hPm;IOQnNq`7s0_=KqBv%Ab5F#Mx zZIvr<^&DAW$=qK+e}SiS(Yb#rbBt9c;zRbB4wP3q*jB_r5lEii%b=QIS9sNkD!D23 z(Fac4bl$sLWyJITcg#*UTduDpRYune=Fk`BJ22yQ7jVw@pPlC7aABBsjHu~ZDOGTh z7Gz}~g01?HQJF?HDtLpG_S=jDC#oYM4A#Is4|$HGtUMX+L9ao+TFiq8n6hhi#Q`Im zfrBa8WKal%j__5(0|X0&M5$owER6RHl_8GasK5)6z z>dw9R&bPkeRQ?ZULb_fZRP0)`U{Thug#+HA2vaJktVgI=ae&9y0W5^6+KB~&USz+M1@DVG zy^SUm)R(E9jKTJ->C?4jagV%kE^6nJQNFh3+YGx0bLRIR_=NnH|4z-fd*@AmzT-%m zDc9D`3r6#4-$S@R{pj=o5{B&YL|CTj_ldeL9?sM#k=+}jR&D>(1cEZy~ zX&Bp#dt}+hjsr?~m_q?_OkgufPo|I27D!d2HI6az8VHQZWqY^BTEl4e#)Q$M1|zf< z_^w&x8u<=u4Wmmzqtnfsn}BK?;Gx_7Gy&qosMeuYpR# zwT1aQ33Oo2I;$D0f|Xbd5rS1DZ30*bZIW@%?Bf6*BTmVdh%hWlGYBOY59jEc4!`=H zM|a7X7a>IY3inE&bUIK{`UV)fcsS-jynYFFxCisKe7#QB@v2Y%l>Uy3hgh=pGv-BT z+Rkw=`y}!&>5sGME7j~(Xv{nV{UQ{M3-CV-K()dq0A+>gZ`nh%J?bI{9z{p#pIMat zQJHh*E6>-_Nd{-PHy=CTz*~3I3MiROwbdwj8F6v;S)vs)f=4Ffx3jnPA@OaJm#zN` zM)ojJ?16`A9gvsz#g|Ej1k}N*&-&cmh=4}|6Zq)6bA(gkcR8~az?tEWJnoSiuDWGa z!@ifcL%C6Oi%zlb4i)ECsx*R(*@N(G$O>9%Z4sIjF~gRGS}4}S7A``iWO{mr^3~;> zC&pZu?2qZe#PDJ#Gt%&(hcb8l;xjWuR{ZJh##2~LJ}&sjFC7LBhrhHrE#Z3*HpS(; zVn27Ihoi5DG9k9?X9_r+Ox=vx=YWIKi{z0tbV*ogUS&6G@lnu+(S~Z3zSH4mKo44O zAhEnZdeLD_QYZv=Vn6HzI)9l8e#x>t8%7}scWbCNwWGd5JS))Q5CY4?%c*Um+Zy5O zN5>Mb6w!H^$dNt3(8SvoZlYM-X`0hh+m_p@`!x&EfG1nAGuC7W72pQ$t#86_3hV_pHycdmJCSpXAR{Gv7%-u9kCw zKT^<#hs`Ns@hoG21Ef%a4#0}BbGenp{PJpXfV_6F@V0;n#lY+H0%f*DH1eOFly`J4 zvmI{n!9+cnuSLt@c9~p`x3URrS#RgO z^XpZbag#@3E=edGVkNJh9n)zhliO#9BzX)DkHUa0=}!9oab2oP9)pvkFwkeh98MWb zOf*?yyF*(>VZi-_+h&~iu6^}43;WW;;It?VPTApwIWM2HUB;Pv#RE6re*K42qd_(b z1C9-L)x&^vIWBoV*dPi6eNs<)Ez;YC{h}~1yD;ZBMPcA^qH-(K;{%lt znhmAs(@1>X$@b~X0xp*d)rnjWrt!G?^nF@7aarM-`}B5U_8KwRbF1zN?lZfl zrVo%t3EhPi%dg!0m#^=bkz#Xtb^)VgLNU-c-KMS+(dH70!G`MG8_j{>_M5#@+l5V| zFfg3R7x(U#8U~Z2FfjTcZ4CB`!octWCpOd5$`hh6FqY}D?WW!R#3$0jU|tjkeAbW7 z1f}gC%!tB(Cp?l}NZU4^8ifJps>ny;)KPj``QRuFHog4|i!K==op|xn=N_>7=G{}1 z#=a;FjIW&bE?_K9s7{=5*=g5Zc?1ingS94&`$u8GMKkhHIQf?zC+-r3 z0Y~n%3u*Jgu~8TpK1f?9PFy1fY45`LC=5*Wo_6Hg9fg76gS7p`=}{OMSxDP5ofw6I ziJ8)l7dDT=;M+$II1hi6EYtT{98rQe zQ0hL?4pA5w>zuZ)j4t?4>%7)zFf$4R6S1VNm5+?V!03atrBR(43d^Aw59Ryk)o*sc zm0rA1h@yeP;L#7gzu+h3^gPw2Q5dYXT-t}CFnHle8{kxD{)B&}40u3C6=rN{J;DUI5)K!yd zb|F}54qJYBn5OG;?wD|Ds6JEwm!2FWHNAG4BE~fJSrOcWzxjRlQJP}Ej59zxbipY}eGRvcQy4Im%{XlHf{MiTYssoNRcwmTrAe&sJwn`R>4lG|Z4>nQMi z95(UBL3tz&z>^gw(^zcvR$~Zlb{Rc*#a<(s=~(5EXA9Y6f9FtR$7++0Ct7#z8RaRy z*fR)bXd?|L^VZd=_4PEHCSPlVe1tM;00p5!{B}IFFZEy?>~eG;E3EeQz1x$Ld$o0qC;an9!*WJ6yU0@MN{vi&opD8vEmztMY|H zu3TJ6_CisC`i{dD-3zm3O*-+m!!pk47o79$Q~&E;t?1&n#4#SWO+MWq;oJHE5<-l2 znz;Ih3efD3=}^tiq2~q}Y4-k*UT{0Gq(3dPVJrYk)^%*`O@<1`WU4w&F=D-{Jb4NI zU1scY^u{Oejo##_-;9YH=%NX^G@b?n>VLYEr%{-kw zQm=E#K^N1 z<_BpGqu*#%9Q!N7tHA6#gV~>_KfufOP62HBM$Z!$9(QoYS?|>!pL19F=UUyx0d^Ty z_7Z@py>9|c_CCI6qZCa~g-+vll`12JrEZZj<5>8Y2@N&dwyUQLlc4?Eu8#nUutG=iNXW-+B?Jsm5 z{YTdt;WDhTTrc;Z=l^W8J+ifoqhCbhr5Q;0RGo%wP!Mt~i@%>fa#V(j^{NtdPwy%> z!_z9ieC6?9_f4Yvvh~Z_r-z1YP!M{gVBEg~eK*b+cN{}gXVGL3?dzR#>gfoP_vRel z(`2bZ( zT|Au0*UjmkvWk)zedq7=(@&24Oj9KNX-PMuem7`HvI%*nE*?(j{jWd$w;RsRIL{um zEHnMSA4scO{HPXw@sPSKc}}S~R4nsVCYaKa#oZgcHNS=mz{7d(;;&En!gr6#I4|6~ z)9No>afaZLK4q=~WoibajX)VZoQ1C}e8k!KV;SfDw~x8_pL>00tzq;z(C8w1FpVxE z0dw(iZhYeFZ=Li}I-k1mzrQl@QO?bzBN5+RLRPhkhr9jf0gcEW)44` ze&pieU1Wd%Z}%GQ+UZcu;i;pD(H82iUkYaFI`%x-Uh2Y7w!aB>BL4_=IB~{&v!h+kE-YhE}O!gDg>~pBum?G2O`aYvIzV zpa$UAp#{jC;oiLJs$6B5?ma=KB)5`MB02Py_(>IrPsLA)ueckKi!`eN_(GiY)zg85 zQx?q4B-tO_gNI`}xw!4&AT4R>qqHuCCaQu>C83;L1niyT*W=xs#t!uK(b}5O%1(xN zsifY+h-b!blrb2|=EYB#HeUWdt7kqqd@48`$te6Zx3E|XTu(_qQ(umL5pGTiA>a}! z@*2FsLkQDOt*c8FvPkoii2xP8MSon4XPl2~jfN{FCE;_b)k>h}A%KREBMCI1OIumH z6>=cHm`UZb$rM-@N~EO91EsuE>tsPBK5Lk>7R=(sk3QI_*hPWU8<*1r3E9d#eITA? z;~TQ*2J))gH&QPaIGm}8h_;k&OzRW;Yo;(UKf(oEA z%Xt$NWdGwQq!8NsS~@+?SrGzT!*vtBvyysSwO^PTAtKd#00kjLJN^E{)W^y_P;+RB z%H}O8t8daVfKd6z*5J!81M#5mNPn>vzb1jnv)J{9E-*Mab+{ml0|gx2y(-5KOdD%5 zN#zDCJkIl3^#BgC?d=#kjJ_L&ZwsM68taDIg-_^IDKM+`Om#G&i>Q? zGV=4?574n$Y|s~zU}di-5G?FXASNm7ll1c1yzh6)M1~J^_i`fH zM8U##hdo4mdmliA$zgf-5TKbk8r(mKwj=B$^`PWxgZZgb4-psNQ)2YH>dP;~ZFM>c zNMfV{{n6}d0>iu61fJ~XZ2CZ}4ot{R%Qw=WQKxqLbEV4IZx&4mdgP`>IV|x5DNgd> zT5UbW^LfIez75e~Rv$$+bn7lVFmuXOvGYeQ^jqr7zx!$66-k@`62cPc=T#m>s|M8k z=oF^RXGqvwJe>U|-L%fPH(!u(&fDhDIE`;#f?&y2oull?0JX-orzWi2Ouw-_V zT&SspA9xx973#nRFc3kHzaerP(28P}PGjX&!=;CX&ysU);04`o_kyNFVp!N_+`|F_ zrQ!w-9s*bhEs~F-wjvhb0Sbx`&^CPGv_4ema6#+eIvHJG`WSkkf$CnNlhKVU#A)ye zx@fqBmKaY*NA-~+!=+ju7tvi{{z?xk>}#mN1yB(tgLaz9=es)< zJF4-;3*8!BA=4ko>9g3S)}V~vH%43yNAW`e(g(Ke@tskAJp^!quDeyqOy-dn1e zA=?_d(SnSZ4G=mlrXR$UMl|Cg7m1F%rMUZo??Cz?{o(p9^zgpjOR4<+`Z5{`zNkv~ z!yi)&c)S4{B+Q%|mehk0POktaX$i)!Nha!B5E?mRaY&1*->)SpiF?fTd7_`{rp_&; zModz-vs7)yFA4!oC)*kqJWfT2a(e)v>|XqQ07rB~D|(0NLd7DAtk7=QKXnI?_wBLL zAT5-jB3q%2rEm|Rj~bUZ-+#u4TP?DW%SEQirAq&DzbotIe_vTWr{+v(x2X>F(m^ZvEd+{T&^ zKwpUoH6QL+U39|2$F@0z+ST-naCSHSMyq<0F44(SCeqxhZOogU!~{7|Pedd0*& zzkc^D9djoJd1pX|LiT5+Seh-!iP%@>`Rksta+SUY|Xw}r_- zwK7EiL@yUMB+^7_984E;VkSzT40T*}K8yHXHpWMefSMI@;G9~k%-EQQ(HM*=S_`0& z7$H!4u$))~&)H)_oLIx5`h^K$=~R^piE?7~rzEBGkYpih@sFLrIivsNq(pCJq}tCJ zk;pw==U-pk|G2jXGLC+cJxw6=C0xd|pBl13LH4t&4Yu-hoL5HQiT+Mw8U3hYy)s;H zsf?BsGGL5Qtw-NiUnYJKDzsxp8_GyOp+C!6O(o7}&_DV9Bt1L9d9(1r!-u*03eH+= zh<8J7ZX-CX*_%L=HO6;}8W|rcIq1?zu7CU32hN=GMLHj(U)Da?YsdzL#AspJ7R#=T zBM&iKC5o`2p9(g>!!g4{`EtHpw4sl`DdC8mPa>e4XLRAZb4O4&b+4vXdWfl-#4UsX)2In5LZkSZ zQ{Fbr2{1R}jSvFaXMly$A@EU@qaqgUl}_QJjWt2yXFWVD21d#%%*^ScnkUx2Jg$l2 z*}}demro}}5-xGd_=ssB2?!DHzS5PvoK=2DkcgktV2T8eID-bEh%kIgwP}AtI3$^5 zpLL@2cGCCiszT&6R-vz+#?2u8&)ni=@67(_7g4*3WArSs2-`fxAx$t4nw(5TjOW6t zEH!s0kMJ>rxx%+9#yEvAQaMCwFYwNdC}}#4V7quY_y6dT-(7UtOgbbr{-_UMbYN9W zQ|j0ujJ4?11S6qWQZ;GhSB|B@6|mMdB7w?%cgZ*XAt`fBF!!AXGE|HXm#P2~OcBfX z&(lXuK80LOSP~M3RiL zDS-0us@(8$M<&jJeXk@Ks${GxS2Sg?w;1RtHExrB5r$bC_(giQ8W(XY@6#!xxFwa} zkr;D1ic)Yme6tEZ9LvynB9@DX$vDbnkhgUeJudVI$T3r)Ab`?v!qP~QjR{$mhEq>8 z+MC(tPVuJWLcWRwL!C6v4OfP9Y>RXKB^ss52zVYN!zFiK8-7mt$3@`pM0nhZD%R73 z$8+nS(Gk^idZ*{n@3tx)qeG<*nhjDccF5WI#qgYI=tk`==k+# zKwL!}62%A93{{)~=weplr%IK-u7;$MJ;R^;HJW-Ctkujr)GFpZ3mA zXk%v@)87i0EZWOZ5zbeSqCt(ASA?ws5}~9Cpd+M7&*K{=(qw@T^T;mr=HlV#3l5x% z-EW`u)!#arGU=gmGNGbQMUXehK^HsBEWJ%I6Cx!QjU!7k;Fj~{ewtT+?TR$LoMwB@ zlWUQqq|$7_#J0bYrX+xfkffbsu(?WYG*=rL9!Kb5}Ms&);LVQP69=~wZab}%qflus&8 zAP_1`!ebms+*=$*w-#`WR5lTM*ou00rRB}c$v6tiqQdKvozD$XgdaHUz<<)R>>?1e z+t`Yb!v~T4AArj&U@ZmdC_8}frv7joGw!86?wszq-kPR<)W(xZj7C;i!|` z!Ij4^E29jenzNKEY)j_Ov?j}pkZ43XSRxVekx^F7lL%0e_yS7uKM1<=zPh>>_R9B3 z9xBx_Pv1=wyHJ_;%7Z34~f7>aeX7=VLe@nE0xbKJnf@Urzm>@^rYbdN3pS~O!+UD_e zf*R`Oy}#`*&s%o?P{!HuutOjE*n{_Lsvb=rh-V>?FEAAq2%sg8o`nj)7a}B3kSF;4 zl~ScTlph9*y$uw8O%G-){3Y^Ynybf1ry z!JCCww-OKF}(kH?-|-U?{3q2)D<@Ly`w{OVkYj#L4Xxztak z;zKtwkey;a+mSYnV%a#7OY->)6XR4CLaBg7(D{G zK&OSWi3aWH7oo>7^nq5*NMk?^Hd#UOQ$@`J@JcH_^{Nl6IfEzQ2Iz@ejjSzyEdXB# zkc@h_U6n`@YH)%w_yK>{s4P@O@PT>#t$Re zn&(GG`zw^Iz>2pb_$rfOQa>Z3v#0@TO1EEGv*8H#C!~Q@q_z$q!KAUIWDi=9aRf_L z5Ojw*TaYJm z==R8YH+*Mlj%NSsm*g@aV?AS}AsZBgOX3=+jmf*=&{f$inlX;9&U}f*Or;s{Fl{^L zMMw}A{)41#vjrkGtCl7JWx;VgE|sl)ftJIoL!y=w#xo{v^6rZ9=VhGd5B$N0ez7!- zd!&@c0z@YOOjd?;PP~Yds|2=DGsE=(p2f_^+gwej1G-TH@8DGpSY;x2E zN*BIyhXL$ssKf_Q5yB+pVHT{pW|6Y4u8ufvcE-tn@}$noFF#h(BPk^88jcqbE57#> zP5=p^L^A5vwyP5esAX4`NGLAllp>W6{(bX&0w@R-KGKGuczxKvB>|}KNPmJ1GL76RnkAV6bo zit}U5hm}K7gsO}}=HhS7`zeXYyt{hu{nD9pH9eLlgI3r@cpff3NeSR0B#Pf3)lcez z^wvP7!@MD2-VIdwBkhr&OW0qbQ~!FrU2;wWB@%75F~w|*j~D?Igc$MT0_3ss+`yh2 zESBgv2xtLL4dswU&%e3vtG7+dIOoH0I>p@B5?_e|5z{rVT0tX~XaI>s)W;x2&g!7$ zT)&2o>U=5oH`2uFpdyT4jG}AVX1i1o~N>wGOrM z=ojIHR4|I9iw1765V|B&$LY$KSL9WV`c?!ixe)ztyad+&PwF!UFc>onm42Liok;3y zvKleBxHP%ePr1qZNmEYYsd=Hh9r&ZNs`#e1ao~WQ+H0!RkGXf_Bd%If$vFBYIRiJ= zC|E-_C@?v!RLeo2Hjl=cxUZTyUgPv{j?~)Z-t3&*LQEy}XM$nLSaH*f`f~J(tTJw( z`wygDAErO*ck(nG15ma&d0&4YT4i%zpIdkK)Osy>6e4qI#@E*<1a@{SBGk;`O3fXe zOy`r!h00LihM^Uoe(}chZk(EN^o#7>(e%+)BkQ4&Qr)HafacHC=*of)d4+_ii|Vj# z{;kxWpK$^Cs7*UIpH~QI1p-uu+N%}y05OkSdA8M*j10M&q7$%5YrS*9I-kRmeI}9B zF0}&dV?RRjq!HMQ+&uO}Knlyz3Lp?*oK5HhUdyJ!|2S&kb-zFl=YKwW?8BFx{I!hp z=&vrwz4+Xtn)Ty574TH8Sxld6T);X+P!|v9gRlJV+c*DYdd7L^q0C*s_{`~&%b!nJ zx5~4PF&+>oteB?CeBY}Zw$8)1FE2G3@yET{umF}V-4f97FdS-L7+PG#emxw5ols9xoJndv zs;0>Bl2@uI31tWA!5Daj&#t~(h@9{qe;j+^} zhJ^xgO^L4<=J6Npu=?^T))VQQt?HFVsp1-qH*ui9zcMsTvA#<0spuc3vs$D&e1B0! zjcO5f*u5}Ela@u^>!_2LraB<#OuW$0i2Q#Lv{mVoK_*wj#2aqqyFeTo@mPzTO~ zKlZ!Cfha&+;#Bd2TWfhe9_s|K5o#roARnqt?HF1?>Db<*mR0G#L&Y^zP!3ND^LCMy z+E7l42wmcvDb8HkDROX2C^-U12svoyU*C*^Bc^_IFqlN(>-O?7j%r49xA=?a*%MK)A_w6 zmkvPNr}LX&CPd26M_c74o&umoStvPrfc}OG+3>BXOA`Z*hsabC2tZ$j%1{8PtU572 zTV+T|U~U9QTuv;?Di)f>#X~Gj-~h6f2UJ0SW6M>Ok0-qV?XG>6aLsJ{smAm!0H+E77+NjEFiJ8Fy@L7&-K=eG#Em~Jf5QPDX-67bI(uS*@8yV>K9?b z1f1WoriC?RgMyG_I`K-YVwmq!Q_Mlh>^OSx&TT_)E*{Q5&pG|}`WFt*IIn)?ykEWj zj}x>qYRBDKLU+I~pdx&uaquZ(o@)D^cCRLiubGtZN0(KuDp!VR`bS5p=oHHZo;=)( z^}~v?w};*5{J1{dDHrx`Bj}t&ztAeF!(34d9f~mfR@DZJD?pxQQTXshXn*hY;gbe= z^3Dh~1uIjI-EK}EeYGh&!-uv(9=C#p@6iZJF$W%U8udduTPH`=Ybk65jhHIYXga>s z6-p>{Vk5-vrWy}Y zMz>^B@ip=?vVVy_cl_lvCRJNgtn<)E-$W<>Scj0qVm@)H=*Bk@o*MAamV+6^UZq3 zyd-CWDX4)nldl%l4Wr1pS(#7zS5(=Q^bScsjv7YN}YCAcm0 z(S$8z>tWa8*(ronL-}&vDauSb#e#@Mvdf4bY%eJnDT5&RUVBQ2>K7(VGQKj+$D_^y zg#hCDPz6BWS6{x|Q8EZnflK?kzN9#cJ}w?XXPqe!KYANugE4W4j0#e80808L$-RiK z^?9V=?89n3T79()gN)CV7AfdeA7>hZwEosGr6;W%!CCPW6C!?wDu{>aK;IR}92<#D zAbB1?K?O<0IsJ-vy(UcM>$Llp$~c?;>Ea=Ism(Ixg{hKoUR%Y4R~kAD>_Xu2a9+Q3 z(r)KpcSgp%tc6Wctqf<;;#qBZN!ADsIfZ^TzWSu|M;MmsQokFyPdR-*g3@Ehl5?Bw zG2|J>?%?4(w%xS5pZEkF^wKX$3a@n;fN%6Z5()OWsGReKLjN0D`ShmA3!{$H$57Sj^UKoJ{at@?3?3o4X$j}`G zk_80R;3GpPZuWzR9(4D~IQoS#NMAtCC0AdKV4>tt57lNVJ(#D4H)=svv0*;0-_| z#uKr0eaf7f;|)mF%HBY$&wj-q9UD< z-`gRR*`U^ma z{u7dT8xld1RFx#=)@NU*2TO`SUlefhlG&doeLR~HVfaSifUHU>Bfiz<&}=AA?hWU# zKeq!ZuJHt!jz5mNLnA|U_!}ei$tCBahbOt%ID8r7Aql1wu-cBmglZ3kfQ^GtCVn0v zsvwOja27p4Ob%EIE=Y5#`-qIQWZe3vyu04_bqy#!ITR{*=oxCagB(~ovnp+w^v)jG zwaZ_hnZ7^WTK)TPZSkpZ{byo%U4=r#EdPNQP~!#;30YL-80TVA0GbIA3pX4-4fqJKa8j1Mu(g#wLx{r|B*}h zFVY>VIlsGi&SJmRn2Lyg5vfT96J)tU!9}nm0 zt+%`Gs*A75IOiO4_0+?j`k|JLIKVCgu$KT#8PX=eL?irv+M+@zefyH#nPp}+*##991b(30awv)@9;j$QKu!hyDFTYf zA)taNK@>p{5JawjeY>jr^}K#FWahmW{{R1eKIyzY-c)sUbzNOu6+d#svJxE$1`wR+ z^_Q!-J`@GhSgDLaJ~EA;)OUZ)-LLqvDZm7Qw4Aar!Fc3zG+J&86(LG1M=Ww{4e)LN zyx&1(s;Tcz-})F#iDhs5550QKFHby3uXs#&A15%`FBuix0G`aRl}k329%K|_db`k6 zlvBN^zkp5{vndBMvc0mSpJh+S15cBUUQGv_%oZvko-i|gxA2gg-Z2kk_%O&Yf(G@& z*?ytdDeTG^StgPYASH}oC`O7k2M?i4>Xz(QBxzM{m`T`@@Cz2vx|n2gbT+6>cT63@ zy3FKYBqZCP5O0>5*o1tL-chpWJ7n6y61KFfJ-4& zv-i-z3ZVf!nP7ZpqIS2?%2%rSA{VX3c8OF9x!rfVed9|eXS^rY-}=(bpAOKoKZagt zmfW?zRxLL3OZhJP$!w4&Kt}1xKtnmm2x*dWZR{grpQcxZHL}<#q{3?QMXe@Z)K{dF zM*_2t6dMi-LI-3lG`lENQ$`id0^#Rj)^Ovpg$msqUEmM;ju*uu%Sx0N(HR%^4)rGM z08Dhz?V#U0;xy}OF_Zy^$)B6N@r{RELs?3E{QW^(EoM*Yztg;$3>+)x0y<`DZLa7z zOaOx%b-Xdn+kUt9H$SuG=GvWz@9S{_52f7c;_C3ERP!lai**hvi};;U_0>6SVx1%l zFQtH1-M!@CAnesj+U3%&rPxMy6CWu9WCkUiELYuQS*Zk)3`Md>O`%KP`axzM11df| zQd(#b2A0flI=#@ev?%&j)PQKK3`myL+gNWLXXTWsIk(hHiRR(yI(CjsHyIS_&fEbj zGmr0ESyvM5h-H9D$d2Od|HCuhde_}`!K2p|wHl4@MFSJvsF)6b!G8f3A^quKA@o2x zI#3mh2%pN?vmAA`Zam9sIv*3sj?UYRgeA&AyQvh;lhO!J z126`UOPr6(mw$DuPF-#DH$BD;u*H=FXN5nTa8zj;Ej95wespzVe%cD(OPG#7H#l{B8>3A#1 zG?evD6+19OB;z{RL^E!_w^tZ<2FQ%T(=~OaY3UTb{io3{n_XBs*zZM?QZnDM*(VS& zvv<puR$j7x3Jb2JT{l9#gu-K zZQBaBLyXCFUU2(?SkWCpPPL*Z111L3_{2Q0q;4gEm!sP=w8sE$H-NjrfP+@#G^#oW zeyu15+@EQu%xJ(v0IsSS1+)%xZ5^QTZ3s5vD+S0Ey6_21b|*}-OU%{@@zCb1RnXkD&Y z2NAbnW>1)z1?*L4MU!%fvC*j?E;#(BL{4Sq=X&Y#9$nBBaT8Fv4lb=E{4}UTwrf4g z@4xc3pPYE^mKje!Fy%A!_syD2%POT}8(jjW2FU7G^3gQO>^}|pvDvxzDNort7f5Ec zNupVbMskDWJ-^sh7|fB|*tuM35uCNLW2KZ@ z1aIlBEG9yl$N+kSJx*d&Ba@mnI2!br0Zvf#0BJbF$oFG6`5+^VJoz`Ld1pU7@8;XC z+?=x?EVmriPu&P3`;YGh_Y{SOZcN}%q5)4oUNsXt`_rl`o zz{AmZ#Z0cMENb#j*7H~n`X`*x00p7KeEQpFl}N43L)gu_Z!wzqvbrgKDw=1a0`khv z+~7oJ^B|n$XjGv{;^>5~e>A`#HMSUAk1b5ApjQXBdH3N>KZssO4hlkr_+}Qh;G;gW z6Wdf-WJrp$i6>NRx*0wauJh%r`ir_Ta?6+(=12i42+_uxP;;sfCWd7_o%lf2+Upo7 zQ{h`Dm`tdsuW(jo43Kq=c?VXE>E*fN#k=&GDv{zyGA(W4$6Z}^$#|p7PrY}~@R`~coJYTGb~Rk%Ltk%vm_9B08Vzg} z2YE!CF|cjM(9AL#qIm#Xl3=ekVKScL}MeB>`Z6#uA zAKm?mKxDs2C@}SdNQ!ZH^?9SH)3^ZZp529<`3L1%d|Y^!V}d_2>q~rAb1#r0Q+lRC z(N+Q^CJT^a(Xd*+L{QY49$8wbdg(=`kR7K|vUyl?ZsyVeEBy zG|0rG>Vaq=MZbxb_QZkA`VVTw9uM$V_2#Le7;rMr`2HlHe=JqetA_6VCimV;RdcCs zntn*kfnyYUbQTq)XXIjQzy<>$LMwJ;Kc_2gPOy|xr>wtfzFZA2GyPh9g|~SOkaZmp z2UcQh42M1XPP_`?1Tlk~M=xA4>FeibyzBmZV&Bi-y-3t{I1pA_)v&?qGJ`}eh|*r9 zV}En`t*%t!lrJ(pbdP1>)A$iFBBLPDL(;KCcZvE`q&GlCDgHoBIjAH?58g5u;d^1< z4iH%7jkI$QD*Qam%^@{?mlj&_*T==@eGGN$oI!|^%2Dn;w5e1GVv!v1&ZP3#rDCDz z>~yA$>!hZFR$YDOU?Ie5#gej%Q(~W2VUg+|hFOCxMeAB|43kmA09)4G8xBC3X^xPL zY0HqbYh1@!QDYD-?EU`9FtV_2#9Ab&+BWPkKab-@S+V1xiitu73frV&8 zyP&UBgrrzNVxqTWsMh%1wMb5U(V@kWr4C*nlcdW?08tUFl4{Xjs?1=dVgIz$brq% zwpai;$GQKCIHe(F zsC`k%9$76uVk<}LZbZN|7I~jiGM3umg|4RGzyJ6o(qcQ5QI#)hL+A#~|?ttC5dvtkf`im7rS3e+@7Z+O!g& zP&p)B1(QQkrnON1aXG&-$3JI61kAT`)Bis7hpWDn@$`cbA_?#wfzN)OCLZQ^4a)$P zIiEm(+pIpQl`$Or4|GJ15;Ke4zL(3v$f>I(SXn=nV&5v{a-6 z?Vuy{X(cAl(UOUn{)IIEDvlqhn%UscjC{rKoIX(PnM*w$sS!=s(sT?M;f$C_Ahz3J z(v}q`laBB7kmiHlX`|#(DuxJ3z(`QB!w$*o`xNi zK9nG4uO_Ix?huxIpTt}w)H!W3>$m`4B0B^1fJ7QJ04Otz@6kon5t%^Ynnq((qWw0-lE6A6qSOmDi)6_7jOA`kZ zp-C&k$S+o?_Jqo1-v%>>RtV4hnrqIw`q6vmWxUJpSf~5Pr=PE#r}%MP#Q5yX7a)1$ z#&=MNF=a~${Fb(%x(hjX@#2m}|Ch`Dr1USYgQB-EY#=JUCHDt5Go%mk{Sz18_1EpE z&dhjo-n;*%o^{UAtA7l=kc54r(Xo$CHZ;hD{4oa^;R9Hc@sOc7LYq>IHXead5+X`H zdmw==v8Ja;4hl>P%b^}cMA5ygixmDY6jwOStJ%S|u1AQJ-@gTdmQ-N*Wg;49n2?p- zi#tfUT-fGypvp4F*DcgZ5!rlg16}mQr84R+;@Rz27oN<_&Uja#r_MHWG-n^x!rW^u zZ;ge`OE|TOlx+?gLW~sBZMKKeJC+d1wU_$xesLz+sm?3X@hRDYVX^Npn6O3)c)<>j zq>Y1v!{k1_Y6lMImMHycCQs@*ij1iN?M6H!7;Gq3Jpa`(4N5J6l__1Xu@g)WZc zWefe~LWRQZsw&~c_WEH(&b+2$8~q?8I+~D*Cywfc6+Z_`T|}kb=xs4+082p7dS zPgqGi1?|5JOnPZxzWE*5us#Owp4)Eu{D)qq*5dj>h?0J059-@zmjNZEHdd3+_Ay9l zeQI^Mfx4i)Pjsq$PrhRHJ$r?S>|-z#H4j4Cj}fGJs~omLNp1|*38#h>(3kiA)1=L> zo{;e-E&K7|(^ed)Wmi&0f*mzj11H@8E6-2;>;`YFw>NOZ5rmwnw<6C4&PvK%ag6bZ+SgJ#rBbqfl`pW8^;=@vm9l!4AQhz3;rK`m$4{v;BquW%YuT1eHUj)RC$ zC;oow>{2dgl@7a=?=+ma!D0)DJHE}$8g1*K??+-=I*dXn>eK)Qp#r30v-_deTf&yM z@{>E@q-;;0ifS{x`K5*4rTNa~Ub!?->?-x=JN>F(s4%kxaZ^5CzE>yL-YbU|jW>IP z*JW~XM1mAS=tCE4Fm+Q1Htgd{IS5N89JN$X<(KAd060UCn^?^WGDFFrXsDO8n1 zu6CPwf?*dD!2vl;*lf}2Q72dSep44!k53PXU_Km1yUS8z`|`|RjG2DrS(7r}TLTd<>>P zw0V%3BE-<& z$!Uv!p3_2sXf4-`&S9#gCR+CdQ68p&*$#@wKHVjIOxsC}$UORk_##bT{kt4Y|H}yI z^dt3UTpfmfApNiv=-6P#0#=1SAUsosL_0!1i137QRa;XOn=&_j(UB7tE?q`v#9{wT zQ_7G`c9io$kzDA!EojUjpv}&?Q{7;!xqS5xn!d6^XU?Wp8dZ|!iz$T2Q@|N_o$^64 zg@llJ9!QKJXdTDRKKjU+i;wG=#jDW(10h55z9o(dvX9WfMA!sGz+f6Rnv$YIgyc~O z+*=iYXn=xHA=&M>HMRs8gDHRmIUj>Cu;on%1(F3{clR6nQa`BOZ)tHAr>b>@Xci*5 z=s|s%{hWs63iV_~_=;OFX_SSAtF%cPKkyHebjji)rWbu`!JuvnjVGw8b(r}vZR?q2 z#kduZ87+53(?AQGxq*nYkPxmuh+b$`#6?v)REA){2;KAV-qw4VY9Fsye#IvDygE*s z<*k6@z&rE^62&8D=YW&hB}3xc#)^L|x-7CL)1kWkVKo04mbG9~^sO$2D0T-;9shmC;)~+hrN1g7^ zO%aDL6As+LkK%KkbWC0-_tHsub%5^fDaz3AMZX${RY$p4Hl;zC^+B0K%<2R7%3H?R0%DwhD#0rwC zQv3as&ZH7_M`3l~l+Erf<*T!)Y*oIFQ|88{Q$(w7prM{^*vfU9aKV#1hz!-OY2ZWg z5_WW{xM+xywg&(2uYJ;rNk*m0x=MX8$>w72>Z-c>5!*z89mr&VS%)%S){)70K=&e` zk#?X1PVB%%^g_Ii01qI~=6|lI&`arjnEh@*g#L*w7|eSE>3Aox%75s2r-jIC5Kjsb zrR^IaA{1$*{)Uvheu+N4x-9|29ll&owc207WiH(I%XL#yW2rn8W&;yi(@IU8+89`< z5CTLXtEgbc4lJ2*E2m+LR9l;Q3$fOF5G+>RXerQ38LK(JTZMe3Lu3#_Fea9Mkm<%n z;dY>akXE%!fh4$^YPHQ^9AERmmP}l@>k@Ud>k^AGJYc|AlAM!np>_O&2VD!ZP%gjE z2@o3r>twu#-ulI3Upa1F?RLdKh|)ON$Ad(KXwl=K!KAPvCkVb#XCk`gO^G*7@;lc+ zen~rSFKLO9sH6n;e46QiOKj!XWU$IScEh?HLy#rWdya~dlxLkh;O2SLU#Tw>K$4vk zpP?MI>gIVnI0$Lx(=XyF5h?OgDwVq+QIy(LA}ka=x&5-YR_}FKd&XNf_M%@szr!~* zOUI`IV}M%;Wa$G3$c{)=>fj($h_AtTB~&qLt2!jY2PzHg$br88p@t)C2Im4`ay`3 z5>C*#k({H!n=U6poA}3z%sHI0L4HV~T;yBBe;`y;9o<}?U#XDWn&VTLFoo#P)K^%# zq=#9s#Y1+PgNhKT6;+K}i#TuwrlT_*UPTe6K);UB?P4k z-BlS_8n!~sq5icCuKeRm9lJ?brgdO<5ge;=*H`FUAA{5}JT~JE{q@;ZZ=H8-Y)Iz= z(uu~>g^c4fd53Y?vTl7&=KxYW0buG40TKpp;eFSfdBCvkGTx&@i{Jj!=vg|L6JPm5 zwZKcO>U$%z2z+%U0Y%&|IOSmO3C`6_nC*$b{^GSWcHdERPYM`aMHoR}Ii3b9+^45` zhp(D)<(rRg!YgfA*Xmr7reWQh3j7q)M}eHc&|_UF;_`1rZWMLq>5hk%`AQc_0Bh zsGCipg48m_uDu{X{S!MRki#43p1fPUbM+N_J~mm?BYt`h>o&yYI6vcggMu==8=w$l zi+7g#hd}ii0QM+tQs)0j1kK0b{ciu`N50l^YR0?r^-HcCbLxF-ZNB>e1q|M*L!KP^ z%Rz*~_QNMX{>adMDV~v?P85h#-a0K=4$IclCQbUcuvHhx>kTL3kjBU0UGU?14}Z01 z$BZ}k?nS@+!YK#nm5CqZ0Vi5Fh{lm@Fz3&`g%yQf>6O?37h%a1&&j?AtRTeamx>V=Q?TLc)3+5yi(KyVOEKs1QHihh6HP=b^*`U+h*#eMsq} zgRL@}raQ3{<5TDdAx~Pk)wKaNeAE9>h=dcecs5{d5C{cDXqQ~~p_nttE-3efJJPphvBzfd$&IvUM4d&2aG`pX}y_0dp z8^Cu3aCP*g<{E5Yhc7tJb$ko3YyC;4e^7jYBK4i7O8EP*sik&>^zlPajE{9pc>qO_ zET<(*5(@`ej}&kK&ox*U3kRXYyx8jkMX2uttw)p2zDysTqQ8Kv1` zEjJFo1vzr;d{S?OYbJfNG_gFffR`Nvgpc;8Uoqwb2&|*M&3p@FuNA8brFM$dm3=xcE_8*kQsI~Yt&p%c`%r zCHY>|KqUI;t8bxrW{6O%``q&H@xxRaBl#c81(h4gK@Jv)X`LW!S6aFZI6wzSvdo6R z{{E@^Y)%~}zINiaKY97^vSyiuvDb!iu#=hsBti`0AR&Z+Y-v_p)bcIVj+5r_EfQ2J z&0!I7O`#l}=D-%pgF2%INC& z3DdzssC9G;3{xv!>y>PM5iA5Rqf;eevV@(HFLM=IrV^bRNO~{d_MyJJpZM_VJKj6r zG$D?^sn~2;GO4|zx1_w`^=L0C#Hc}_;%=^v%Lq!uya8fDxZ`3I&I%KB%Vqr>?z=+x z1Y94oS~%tW#c5JG;zgai8~>QkLdO4R0*08V5<8V`!1jNn=wt{m?-`$kEDihE*7KA$IYWG)>jWrrq~QgZ)3y$)**x z7(}wv6$Q2UNZwS_heM{eh!SO_zni)SmJ~XHu@u@2gr@p3VF+3M_;MX)eN9Ew&qFgK z5`+}9J{1&EjdXcOjHO?2fmCy`^ud2#u=G>yTGcd;Fg18xW|X`!eiH5CNMroN(^ft6 zlf#B(q*C3kTHqy*Lfzvs2L+)*eAmcCOKmMQj#e*H_MiU8S(kt9L`paP$gM|pU3Ya= zlOn$F%6QmFEHg-inA|}kF(x;}Kqfkbett(H1mWT2yO=-%XDx282@!vzIXJ+mv;5S+ zR&sCfKB#W>(1M=@X2){+v0V+=AOOX-GL4;5dVuv5m<52ELimL zL+7G&T|u2g{R`@0V?qOWNeBC?erIK3*bCu6i*@!PbV(eU)e!B3OP%Cn3xmW&iK8#i z0S-rFNz~5Sgs|btSaqlnR**zSD+9X0>oSG-7AK|<)XDrD@IMbU4DEdOb*Z_JP6kWN zT9?Ah2ZSq8y!RORzgvBMo1MPXJRKHqdcWe)t?xS3U;s zhDT2M$#2g)BI7MO?Dy{tTW*p>52rWc2U$(t^-B6Ui@O8DFlU*V&4W^dF@7inbg7#e zs`n-E)y6L8)RPLO{UKu~ETHHQ)R&~=-=%{% zt(2GTFID_O-OxKvAFC91#uw9G{ulzF>YwzFgrn zdDy4ws6O~{m>rDStRF;QrGpSDEt@U@Z)oVIG4@*1T7SeQ|25&ol)0Opd<@=KzukN6 zqT}dx`VLdad~vr+jdvH{se!_9q6gWLL>x9y1AqU~UmZVU?pvE>yo&~h4nF3R8InD?EjEoxB^k^peaV?W5X9R#->aInYw2^4iZ9<4&uNhOshJr z2-T9%`ilEa_u&3;=23@HO`9i<&+T^OHMYWnM0( zW?GcX)ahn|est@<&wBBb8)Q8FAm(NA$k0BEHZ3(|gM!c_zJ&`rjw-@+`(Dt&1uU;} zyXYE;`9*lYY*43cUOFg&H7sW&;1mZ9p-lXU4D;%OB@=OM0RD_TKVd^=SKT~xFTGci z+Oca^pTxmJs1V=CW-3r$C_&u~P~s`VB0Gjyk+;T3Vi6xha24)_BUgT9@PRFpqlAk@-HW`YY8>y7 zjm1<+-*`HWv|IKjV?06Eag}6~@S>~#$=V>$5Kp;*EHL`1O0#aijRpE4eXz;$?Fo`VJ-xvSYCuLb_a|Vem;zHeuOoyzj{{n>Qsg!M{Qgla-yh zAvvT90up=)^Ob2HClqcg+tZ>nvN7s5cy(Tv`6T1LTh8+|nBD6e`4U+E<`$_=`dbsT zyTR)+f%x_e7R2`KP*>lYL4@W1)UZi^x_jZ<62NV|1Pxx78N{zu!bj8nrQV@psn5^% zw&Bra(CvrK3*8eohIks=XQbqjNgjxQJ0lVy#tkA4)ovo~A_t>H7a0ZQboq|i*!VLH zQIKiEH^SMOp)8wiw;Fjy*E%0WmW_jgP$9lu#Oq=e#RPXo@`mHni9C*Pk}wXoT~s&2 z#z7)sLRgnGZvj7eMr>ibaMvu8Le0n+U7OTmSUB7Y9#fWm)C z52?#`q>6F~b>Yl;K*~UqT&%f4OjV8;v!`_OAlA)z8!7kcj zO-3cy(&BjnXW2guP!JAnsh$@lRzN!L1z@WTE7F5RI1C%;Oas}IFvprTMMI~T;{mfo z3tX4=G)$RbdO1UHU?&nfqOJl9z*N-Pez*2FKeOcwz1-=c@*=1*oMb^bis_&tREeML z!k(*6_C}_&MT@X4LDv||NA0)EIrna?X^}Jnp_pF-1egMrEd;zxH`Yaks=jnlDsu-@ zx}2A#oC&JmfC53~LdQ_GhiDUcb-hnm;3n)l}uqzPuE+2}};o z>U&P7_dTbxXOgO6#vNyB+Nxq}Ta;;li%=&1)gyInEsG2PIEK%c=al^}eS>Xx%^)}k zYNt3s*q<}@fqoDMNf#~X1dB?6w9r_Hk@%n(iI$3Jr&nziF`EjBA4x@fjDncAa9$tP zO0!f0zRglA??QQEeWkz=25LX8A5vEeD);dwnhskEfl|;I7*vE+60wx&DkGK5YEuOx zU^#9L4nduvMg93sG*?slI#>~H!`yN=YsQvT+S#rE)duS| zG+`Y@mL!Rtw1PaS1yB|09nUQ-_NzBD2b|0d*S4CSS-$M`Bb^NEdL`*$zLz~+l>(`t zXdLwia!>u7Jtr$17X!E$k&Ed7lqt7D;eJYCeJ# zoOzjQJjmNLo~Q**CK})3R`Ex5aSdxdk@ig%1M_m={y3E8`C8(1IN?6EHb1|?>w^Cb zdZ}67jA}tnAEQ#xJ9C|MJwCh<>9^|3TnLoKN(g#gS>wQ!Stla#+DI?iS=WOE&GOcW zhli;nSP{3B74^)vSKa&WkSPX`y3yJI1tCQ8C>#g|#=0^OfFM2wNkbZy@pRV);eq5) zsB5~L`->0!`S=&}ZDaX(vGEoP41e?X8Mi)p|0l|0b?#E~XH=c&07u4~!6K|Jh` zdT5RCEniY{5D|j35~Qg1P>qi+vNJLDULv}3UvtI6%AoRQz^%G7hS*}8X%fVSd=^1w zv8%*g1Bf!$v=7{1EUDz(4myU5bmi#})K^#?rj1!$%hf?hNEP3@sSRib@x;&u;ku7Y zGT!H2`PKdTH$JMlBmQ|4BVcb19PU`sBG?=b5<-P}^g=vo0UJ*j!3=~|hz8G1-uT8t zuA%$6`tpG&$iou>Z_a}u9V4gjz?bRA7nYcQq06UK7fMG$Swlz+%w8G!s-)m7_3N`)TB+sAX?2bt2$1vx#D!F+r{L*yD-s+mgfL0jEvW6lec$uy_AF!q z%O*T2lf}MVO*M8odbC>Gx=A8p>xjCNK*KkP2u0#cBr7W3SLo}@_k&piJVFF9$79$Q0 zLW%fm0tFh8D|#~_!MUQ8uVLqkejK|8gVed-D&w78`sB~rPj45xgneFm-zw_>3zkz& z*_ESfW*gi!_@PbTnIs9hsmDY{U5DA-!oenCRZwF`9ihpDVhE@Jp6^AYsZue*bY{d%2A!$toD?_JAQten z3P?bOvk~K9A>>Kczq|vh(@O*MN)OqaJ_fI}bncOR6!*`V2jP`u!Cy}E&HfVL)$Gk+ z%3hcUCFU#vPB@0oF9O=p@6?wGnXr&d|7OS)n9nkT&GVT-Aq*db^wHfXV;&;s)03}Q ziuJ?fefStmSupb;ypVh}d<#rq1}30HEVL^Jqf$MGBY=Po^FBD10vM zUOtRpL>_%XY3}B9b6gBy6h}_Ep88Ejrr6Hl1cO4zY~%j#Lm6+cf89Ffh4qAwH8B-%H6F;rt+2EqrihYJuqoVa2KR7tLCA zHHRR3Ks;4UqqKBS9kt5{wd^kl1vbKgOdX7bky_EQ z)zb1pk!(2xYc3%O>LL^=`ToWHi-?R$XG;sm#03w#swov8Kg=1~F(W&ItR0q{fkDY3 za7t(T->LifKR-~16e}sW)^JznRYbqtYdj$!K9zmMX$Kb7;JK?ae z4PTrw55mx`oH3UAJEe{h6mJ7|w&F7E)h9zOTN4EatCF^x5JFt`Set-yoA61wTbZ7p zRyS4rlE-hl^T~_oI<|gbS|p)-aQ5F;>8>svDtoGtU|r?o2sB3Gc%oN46NOKeC?sF@ z2XX4xRp{n#YEQXBy3o0U!sw(Q^%+Slo4uW8%?jr>@Cyb>x}){=iDbxvCqlL(zU8J?b$B9v#M?Uflw%vySQ>&hQh?P#=I}(Q@%|}0yj>mnnbf5y zq@m`kZ8^VK>8H>RmgPK9;-@q)U+h6oK8D~nwyv1Ne9=mHhm<`II|1$tfP0p>kHJyg zRqFCE;pqyxeqeB|=qa?{I$$!O(e{d7<~npvUk+_eQ&-tCojrxl<2sL+cK{>?k2?|Wk}(eqGJSdkMS~R) z0;@-hRVT%?AxSq#m%L!h^VYMP=`s;A^jfowx2#eswiSvn7**1HNcs~^8mpi97Gt=^ z;&5011Xg%|3^2eD6nNFs=UE>?ziW2Zp(qY1z@X8^&ENx=t!t=&)8BjFz-IWJ!RW8_ zWxyxSV{T`Q%OqHhEPVT%YhTl?%PRBe&*F2OPD>7*+Y&Oe;~elZ{qz}b z9ND0%q$e^}R6$`%g<$I7u9c5LY9CNpa$TQXJl6Qp2%U6gO0{2w6(X3zA>oJ!^`7Af z#3O6cR^uf493O+n*NN88mM?_?tLioc7pvKu zUs~u56%&_mV*|4C(pr&>;q-B#ns*IemzkyRtNop@Vm?tjIiU64ix1rDv_DMBc<2A` z{SV*zwJseUN@l6MR!mY!wD$n~DYV`!$dsXk!P|AS_AULtPyv0N*2Ih!f2TOHLl}vX zJ7wX0*PMC4FiM)ZVDsB={?Q4#7J0G+P$3q=z##x{PugjG5p!F8gD<}C*dU#2J6Z{K zV64))vIUQ7IxL`c%~Drb&;wMQ;QFi*#)@5(b;KwSB%%kkwt{Mf2ty zIemVZN=}GMsFeD)#%7MBl!K8_Dt_n=Du|r#Y95u?xW`VgULiAq%~7{LOnlQASTqQx z5`T-S;GiIch%aGu_>jte^XX;<)*)Dw*&_%Hm_qD=pW(w04;=sMGj01l-)!6tn4>_>OXZ>@Jy{98@d5t1!ruzey);$R}XDgK@|1`{2ml=F%n zlZgz<5m_*O&_@laPD)`e<|&JHO-<}n&b zY+ELN`80e}tS-A4yHF#NnD901qV4O`w);TwuLC8dL7S^2LWlU( zBB(C1N|qpzD&==}#@>x01Uoxqs!hLT-4XwOZGx5}X&_OTBOD}{5|*a{uVgCa=NHAx z!0z!ecyE1wqj!IF(ML1pL00l``en0*Uah$WhtV8f2XXDt{^n-B>tsCrz~QKb!6RoP zo1-a(&r$doZNrQltZgWn90_Iq%tX`11^NC3`6899RA*YyLXlcPpJSMl4JJfKnqOS-?bETJrs1Of5HLaFCT-K zzx$m}ZTO*%jCtU>#y0~x$xCVM;H>FvIciwg0M)&M{DrFDohs3NNsW!Ai z61;)MH-W{ELG+LnXo6L&O`g^fhxkSgV^LGLU^0;*+e0)D)55_*Xc6DYq0J@*Vxvvb z5IMNx(NT1WyZW|q&)&3DtFxrfwaLhemVyofLWx#(ex=fjwVy{+SM?DVEt*gEE|QAE zT;P}zq6A|=MYujv&O5MVhDkYN5$ReN0GAnt`w{K%F&N9qJS6NGM&NQDaQP{4QHDSR zT!b$16(F0GaGvR=W??W#0gle)${G3tSOdIBKUY2g`9jgW;RY7c#EZ~s#5@)0t!exW+C&nY%eXsRzyKYRdgfCg=F5R$}~;4olS!U1X$v-Ji$S}}~W z>^juXqZ!7Hwxoj4`*4bdg^(q_Wm{Ho%A)k%HGjLnxArRcqxqJVYpDe@z2(Mv#kOF!<*Q*NwUCncYRZ zT7KGaLcVS)gY&vfAWcbh5+o$JKHF6N?KDw(AC`B7qeb4$LEfc)F<Ssk^2c4U^$5#EEY$LAui|gWQ1MMm>V*#$Rq}X;9Nf-GI!h zAI~UB8xr7X-+r)UYhq?oU8L#~sGd0)Hxcqa;#9Tq8IVQaG2vqj>1b`(X>~J50cq1gpS>x&Jc&&h|pT@sC zz+sSpK3!$yy);ZGgtd~w&KIjY(6mE^`|ctDTp)!U&oZ@S%~$DQv%Sz??P;pwXA-!) zk4x$(&IAhV*2W&Ecg%x;RiU^W44+}Av0T;5Ew$|bp$$dE?cyn)NIYO{HLw()oM!Nd zvA>oVhE~#9B<39iJwhVI%v(Rm{%Ym&4mm6+GfPaS#8?0`WOZmzW{=4n6Ssy(kzc?y z;pIkG*ed2-_n_W>x-6SzwkfL^*H5a|@-!9}fl=+e9%He(smxxrvj>X>KPh_;4U8^K zVD1HP(nn`s`m5{j`0kF{I&4KcS@2Xo%uax(7ODX}nO~A7wyM5M@(IVln0&A^LY&Io z9oEf=%v@hjKE4(Xf;6@>2iXw0MIA(hD)Z=tc%lL(n2we|4e&=BNrmO{F_`Jg4gUky z$dlU)uVXNdu=nrJEUdh;%dT?jlq~Xfll@I?5nWYNXg8ZsYnFC_Jzvv{V=MY7Wkb(I z!Va34@HPs|`WLm1e^JZ&1d#}woJiSc!4?7}V8Rje*!gu?ny?jl9S07;;F zc7qJ|^|nz;U7^r6tG9rH{vG+MQZO&lhpB=@Ib8z2;o*d3oe60Y#Rh&`q@ZQ>YC%tQ zuk;lvJ>8UL0i`pE79e{P;lZLpF$jjh9pJvNZ;Pl18wj=4s~fy7GdO}iyV=#O4L?Fv z1a~!+>pHDb<`C1;ByuN>KwVo;!!^e|LV@%z?_Iqit?4*gSYA`)^7t5nK44c(-S?3% z{?)X4Ngt(k$aKt}0+f_iXn>MXsTISHteK^hhzYiaB^McLGsVoeJ-aaJtZQa#6#zFa z9$&I8Wha!qe+>%<8<~ClK%0dPcX^;@->R&`k7yB8p+wjSy@kQqr81e{VMDO+Dg*(VA%&vQ)Oo#S*k856-(7p(eG?3P?!c*feH(4 z07o_pX%Y`2?TE$so?(YkU$OeU^*HYX0KgHHwO$6qx9YpeUKD)W1&O~Tz=Qnsgv9*kh z9v??DP?Zc8_9NPw?>%y$uYYKIxtt%G-CN365172BmP~wRi$riZA=s1^)5`faYW47y zWZb-NaH*40aH5#M4I}#)36+%jnzimj2K|8yOaUkkbHLF%5>u^ z2^fo1@qby6{_|y|*#C{>G_yUjfmBLR;J$OXaT`7P^j*CvWHn|tB}AAF2seo~h4j{_ z=#CS$0fm5x=wsBEDWEP?jh`~kt`bF`^SvH|(DWay0@xzaeAU0+w9MxycYTY`9sd0K zlT9h+qc2(=x0HVwh z`mR|KSsN~6?$-COizV7$bSpeatc+xFbKJK7%GZ8!;<+Ev1W0PLX>^R|3vxuNO$QSp zOnhOg{eYk;EQQS^&$RvM?0j6@a!*iLh*=piqF2+vr>=%^kPxCA)&jSfIsu(jixYeQ zbS%YtG=wcFKK*-Tnq=s`s`q{(Q0vasfhu!_2|AUU3Xokg&B|m8g)Gb+k5k8ff6kvz zF$L2T4%~bSYPgf;5N-NUWf%=#us?vXZ+c(z&5C^qOm;P7NNBDOR|spyfb~AfE7mrU zc_rXFg%0y(V7fC5I|e6d`s$+TVj|N`9);%#x}}*KpdeIeB_Ho-%3W&rxzg{h0QhY) z=L6}<$6#_}y|?=oUhw!oM{2p8Oz0^%RoM;vOaL8z4%u+4q-J{u{b|$e>{ko>_2)a6 z(hn zcSYZh+?^o%7{q6@j>;KSD^s)C>I6)!Km(JK*0{!5uy%9n*AUSWa*!%ltJBuE0I=Ht zR11h9@J=*8F~Iodg}L-ud;JsXBiW}S9q^wAZG0{92PZgoyewISR}w$w+zI$3ns1NE1{L z2x zYCFQqOwI7 zE%*BulY1DZ0sUTmnN27(IE;Q88#*Q#xz-9K4F+mrJg-h&i+;CX=$gSwRyyzP(|cBsZC>Xpg*kk^(UB*im{h!&Ji~ubhBRr7f0?Tlh1M96$kHY&ZC@ia@i;vY&%Ei{Ckie)m57vPy>>Qa}mBh?GLgH2bE3;NVSf2@Zryr`BfcH+Wq(K`T*W>u%4hSVaWQ+Dn~LTEo%RBC2A79p8AR zEH@^`G_4z2lK}5HvnsdIx7?75D{612^YVAo-gwOU-3ICT1VLeW4OfJV=5Pu*)!U!> z^C_o|88KQC*joW-P4986BG?C-uhca_%{i4|KuF)mU}__I&rRO=#zU^zCEH`b`py+Mjg3AFtd(a$+>Ot)-(r1T4sS|nTM83C&(vH` zzS0BN3x_>axhPlZ$xoUx*(pvyf2+QXClW)GX^>~t$hWM$aXAJJ$$<9sW<@#E4s zQ*AYN-g8;WFYdW>se9)=>1>W3mLgfDBKJode5yCg$Nx;pcrScpk9Y1IJ54X}(TU<=hZzG@LVMmpMMx6U5P5(ATD+}* zVvrE?)6Y>BSRwWf3N$@)_?mwwTnIB)T_QTW4#OY z(vBqD1Yh0QqwbnGpCLHM-~ViA)D$Yjc2I%^;FTBm(1n&Y4yL4tB-X2`ph_#kj&_UgS^I4WyC-SjodYwK(;;6t za^+VBAE3JP+ugF>zu>>DWKeHX%AXgRyuHHo=JH_R`?JCDN>!YXG;+o?zgssUgo3(WR1K= zYCt4&J6I$sAknCsDrmL!`~3x7F(Fu!5HDz(&D(LpDaEVz(HAu;iHK^Ai7g>X`A5^l z!9-{>zXh&z4L++5;1bv$Lq-IQqR;0`E8M2|jcMK`kKc6XlNW6-ykQx#$_}p0KW^~4 zOyKy~6X0V&s!}vmEcN;M-nL%k(RXpPt@RKkyWUI(D;+A^!>*dCp`0>4P_2Jl)^|LYDVYGLpW>^0|dM z-Q(gcCgQB)CbD)oha{Mf!TaUVdpqqp|JaO|IdF2}TRT-Hwi;h(!Ve$#*Ir^GDpy#V?j*yc36Q`;8;sE3Y+-o&z&M#-owzv5eNH6gTiO zcqiWX=F*pb?q$4Jzx|(|?7H_EYYna65=PkzXkd))0e55Y-Wc}eWt09uOZTgjJ~wyl z@hj5f?x_&_==aGe1pLgo{8UD-CemC%RYVR z9@%9X?|0vr{WtIV&#pB>-3LPb+YoARdh#)tM%UixXZHWW^WWP;FiOUpf)i7sHgH8M zxh8$sZYH4FeT_`~I1s_$nG4xmkYM^+Bh62=1fr@ErIoy50ew#W>;`YFx8p_`*=)P% zgPHVq+s?3)&LPsU=0A&sq>sV--90n^^yGcnjCbXPUk(5L>aS|eAKxW_hV2-tQaN&H zQvcrPpVdEUldZ_r?gq?Pl^-9M2?O=lufzC5(5eUr1P(c6XL=(3=25YD= zREvZ%FffQ|Na<6$jE1r;8e8CHtRx0+;=wx)e`^J;WXIN*_>*t_s?ac@g`_&fg$f)h zwUE8FQwT5Q>S^8$pRQi-e`9CO;i-v$X9*M4NCPT=1vRepip=7lq+j?L6WE6N-{DrASMlkro9R;d-4*BLk z?;Af?uVpeA5R>b3T&$wCl!2shFc3#B{*j0k%QVqS2rb&&(Zpb(_3|`N7f+OUcb;Bo zHk4HxG*GCt`?x>0bf8-33dK;>8U<)62^LVuK}#sKe+y{&B~V}?M}5PBqn34kpvX$KVay|EAvS z+Gb?TgYauB7k5_X%SF^&0PRk~Oy<*k!eW;>(aLyB>S{vssp$?9aVI?!lg2{uq!p<# z1Xcvk{y{Ni(zh{BgIjQui3d!?x?}JT|LDZ?E_{L7xakMkG3lc;mcUmxC#t|YAP2(o zA6SA6r*i@ygZKQ7Pn@{_Z}M~mvdO@)f4=lb$!eB0w?Pe~hz)9OyNCen>JfxL2Jf4{ z8F|b1FDLxxzxCI5pFjCWVk9JE&soIfWov1`;uu^e!`Y-Ucd%a62Kv;q(Xb6tZ%r^f6w@joKREF?i-OI9o?k zw0#B(u37lGm4*EBa-o|x4yL>^C5bFnA+=zxw5Qdy)>)4>5Gm8r_REETJEmCtDH!HoONQY`cuki`WCa z9rcC8R?LM;xsdBe*9b7cWmt?p8d%?428v>k9=Rml`Np}9wP5j@-joa?bRFD3ew$8s{sDx1S&|>VyOp@0R#v3fF5qZiKVBniB);b_6!k01FAyyQaw$ zlaXWAVIZg)>1J_O+ZGw`(T(1je`nDgj3y(OXs^n-|qn83%^o2&+7G7=nVwjaG}?Co5RLZF3mF2^P}-}4&ZTk2dMw!D!8 z!4-R$qef-KI2@&gbSqM!=3?0nB!RMr5*(Ha4Is)2w&EpKXl|^9K!`|&{q?}M{gcvI z(TahLw<9;ARwBYUtF$PJF96X9I$I}U_*hj;9xzwP9)lX&fl1(~tzq9x2VPdpx&d;f{2GzIWfr zpZ`tQ`I-xkOB^3NdL5t>l6DR{LZ0}Uk;v4de{{{2G#WL!Q#V~L$`XM=PAzW;7KnPeep#cg)j#fl4y7=}g;XfU=2|WCxi~K{!E-^>-`az~1 z5AHVgrm3NrPJ1%V*fs-PAKr#)ZTF>beGHy%rC}aqg0Ug4Pm5=5{4D_ygURhT5A2-9 z1{jo1R9h)9i?q{XyqAOkA`QoyVE~YgOFEF#53-7J{m;wk%rE;Rq9Ge7YML0NI1^ny z)Jfm6h;aeF1BbT?fCiRoNZ+x@>!ggQA7qyC z6Vuo(qVBKN>HU7KC{z;<^AVgK>yvx^70!Gz`TF?d|Wlahk< zgG>e1XtVUIRen5`{2(_krS*%Jr*-y3`qAMhiJ;jPL{Mfa$Wb4ITN z85Gxlm^Q9TJDg8v>-lnfzM4lAf-wr#+C=vBgD`n~eq#%T?)#xN3;69X&{Qth3#dAuP8h zeakZpvKN@Re+d#WoEbtv*X@Pwye<=%MK3kGlY$mqwmbquL|TlFpY{RBBL@dZ9_8p_We!5iL#T*iKZg}P5b%yyEyfGht__Zh2IV)oxWOC_Ch<+k?_HZL1f^>JDs}&Ap z2{EsQm9CYU2=sTYn54?U+>26+^JpkBar!_gEZNu4Gxc z(3>ksIV4DJ?lDRa>dS0T2AcjNY)U&ddp*HsG6csRbrzu&U)j1jq+(2{h{)gwxSTGj z+0zgrKr7&^KzHauD4_cojKO9enBJ|Nt00gM{ZG||u+ppPJ*21v!W(Ie_PVIle;ULG;?M&6Z=A*h0~fmBuHg=mG6n?<&GSkrqN0it2wV+ z(#78hm3qBD8H0Et7XGfa0D<9AX8{t}>xTj4wKT9a`vD!I`WU*Gw##4ylh(%|!u>Vv zpT8y&E?Gn30fMB?y@>Cra8I60FbcOZM<74g#~?!ADXW}R5R}>|mi<8zMQvS$ZvF-` z5Q}5&iI;#51_{Z~g+zTbac!;DNZO{^+X)3G(8VJNBMcseV&9v(DOJPJ4~$VhfINL`}?A(>+m^)X0HtWyW*IwcdU75$y3yenVLYA^~3QtktQ7=#}l)V!~gJdrowEGcU(b-k)&s741K6mteM=e_4R!mZ4_ zCf(>z%=|kv9iI8E^sSG<+*33U$q3=q5W=%*UJNg6nmH3ZJT|4(4dklN$=C-#$mPs* zH>D>ZL%oHLP2Vrjhg&An08QV=AX!`!bUN1r**Hhj-^b%DD$m-6EfL@jEcL4Vl+Mm@3A-jyz__eo0BmQykH3!0>c3EewsC}!&L;_#~|BsXPr=` zFD$mAUV;c5f==0=8Io@dl4CI1-#qXHV+#QYvFsT}=$!?C7(@uHqlLgaA_UTkgV2<1 z9{}I-X@4Dmv6YF}q^$*=oRvBw<6b&BJGppF=@aP>64+n$BVdn%0uR!_jE3WIJ`;CN z;Ta(~Z1E7{!?{YKSG8JE_h^)Pv&8TpX@gxBJ7+>l@2O_JznqSJH$-N1B_8@~o zSPeS{PkL%;CCxs26AfW)#5_sbNI&q3#MDMXX)eW)n}hZk1d8M3#4(!xf~oz(Ol{aT z1Pg<=_}sIXzVe~LjCtUxEucS*$81<<+njutKC!AMTJ)<-;P>7135atP3d+J2VUTx| zUo`h<_LxA}hk_@2R;IN*L(dYB* z0&r=0LFa;DziR+q2>Szrcb&JFZ0^APkp`)1CgjYbJf_>gF*FAh+!BINF>M7XWAJXj?5)*%9X2^*9%RMRvm^RRzhr?0%Z%-T z3I=b?%gc8g{!>aa(ho_=FugfX;ncO>Si{P)1M#41^Gw76`%KM$o9?`}7%A_?Yu>e~1bys)P6iex*Ve=@(LR zV5vBZsunqU$MlB!^7Mo3nIv#h_5#*}IU*p0hGl>XAzCq!>{I;r_msqE+kkOE)EPLh>RXWH+tB$L_NBxvYvazC~}U1Qz3HX<`mCIn(fD?<)c zKm-Q`S^N0Wc|L}(>B5A#6CV+FmrH%c!EVW*4a)*YI}2S>K?)})O^N=6^g^>@pw@^I z8=)(>L$e6c3Ro-0(j}VZ>iSH`PN3hZukbEO1Dm?{oE#*CTjC=Dz1&|ep_i0Y#(jwd zRQ3fLm^(lmyJZ(;F!de1`4bx+r(-s2q2TirT9Yht8d$9c7Yp>wL~o~mKeo@lx3qEa zJ*<=|5M?Q4NCms*6UqG*%dgnvo>#ZgHIG_}!C9f+{}O=gx`u#(5nzH|T<&JHjuEut zm@cA>$f7rIA>`cc0Qd?3Dyzc`l9u_TK5u_TvZi9r@9zX4y9bG~FgTWJ)Ou34Qxz_4 z1s+MUrIcuj>Ft8){fCCIxZ>5P1XvAN#8pgqb$6iyFEN=dXCb!cpyiBqT&`_9;*k9> zJAn?^AK&XA2ac&|E=opu+41|jhMI!{6T;eeBMJMdogI8d9W8F0#*a@7uKIcLs^4Th z{UD2%kli^GR{Vl||AKrm?{QzJy3^4Z7*u3kKSq;?r*Nc5L6(jID1cY=D2joI;zGK< zHfKI~JFpEyYG;S3W4^fCrPYk5ACfass%u!RKtnbt2wCFWX{?6}h!{2`!d(|{IsUt= zhG&dG5hBD_dyIj--vVP%$U1B--2(enxQCwY0RXrLHVvHez&t1H@BTHR5%VfaK%@@0R>m4;(83RI+m?%ID zG_c<-crxYm)BJ9rWylWDz+5qlh~#7Nrhetpoo>00ZY;g}*Z%8XUv-Sunejy#HjY)^ zQyrARv%%>nSN&uwsR1rRp0qOLK0_9K_Clfp6J;VH=VS2RKKH8=F8(&T8PX6A}a_oQ=|bRLXqSxn$5u=Gk}6px8pzy3?fk1%Xr^BtlRtTA-ii@B#*-L z1dgLnN~|_OL8y=nk6IDW724-TH`GdJzE_S^0!M}80M-s>iDB7yw3KLUZ2MIWUYD87 zqnBdZQ?%O|7FzaVv)MPNZ#nJF39X2{OBVd)V5MIYQ08X(u3_S7W7@sn+m&Q- zKMJ@L!h(B{SK%zYtXwN6m^E3m`vT(mMhI;TYGDu;m1_QQ37L)c#)}ORY9Kor5JTom zD9Ck}IK{C6)=dmHwW+Rn<-_0J_RbMH%y0zFzuE0jC{oP@6t71II+S0?6=({RuWEvTDfIRcq|PnJW{MKE|nJHz$!AO zC?vj3yOww;)Xl1Lz{!k{A#|Hv>)OKzc6M>89i^lPa}?0+-FO(y76;pzQm3~NUts`(F zr4g;PHE@H4P$;#euHy-!vdHIB)1*^yQc1UwL+2X~QbL;4kgB^C9882fC(m&WD|O-bXXulFcqZYyO-4T3Duz(K-;{gM=2laaRH( z4BpnKw*9#0{9`CQHe&Yf1M4o6OKzzn^mhVo1uFIhLKwWSZu7qzu6X;vjJHL{x4(7% zT?@5O-O2@!P`jeZ^!e%v59;3akw;lB^p&VRsH6mL0UR*67sZ5y6To3x`h0Ggqzs-0 zFojv;XRX2otLbXLJ=pUkLWH+2>~k(5X_78R+;Q>3^ZT|D_Ox^dT%}N{(+0206w*H) zcxywN(J5eWC5*xWOV^N2CiH5Rk6n!oM#PZ~)&K(`N-L=$cCV)`X(>#0YmUtm$_5S- z!1QhW=rlwiINz=Y=eDOz3SN@nvb7t=}mTuKF;t(vcy zSpyv|5rBojmr;zef#c2^0wD5aOhK~&%B+)g*i@xtnrxmrQNd)v#;a~Z!}Ky$29aNc zwJ|$yPQbsCCSnj0kyLV!5h}%(acm)51*<3GC`29CwU_$xesOWWj+4DgmrFA7h7_=Y zm~TK43kRV{GV;kf8u|=m{&s{0Ge~eSV7%Xj_g!=50mHUiBbnde^~4w-88+%3xmw#? zWuU*GB1d3+OoOQzGCgNs`m5{j`0kDw?*?ueuZ3MQ)FeGRk&prgM9k>*bTCM3J-5Sp zUQ9z+;PW1{IEqDIScf-0;j>=n30SWy_ff40wGW``@O>2A^p$KHPbcH5KoNRWIWZDv z^C#vP@a6|HHMatw4jOE_2ld8(Q1`EzOD{C*7X&5QXZ03PIhO9<^ngX6Y9g7`Y&d>c zpqVrg=!?q*<<17sm6;i6MhChuXfoj%D)`XjHcJofQr%L*yZ@2h24`+-PUMr>rE7Ab z*1IBWjWvP+%$4BhGYjE+5%WQ%0a%N6mdQP%yuaaY>g>` zV=!gH%>!Q}ozVisi1Un*0DGAMi$pulzjn^FQsc7k6KiKz0|hf_E>FaaP8rfVIv6bn zYct5rX9Nk>`t=wrQd7h53!s@QL#%)WHTKS5KJ({OPNPhwpN_sJ`$ErrEf-p0${L8F zs)>k-`WQT8s_Q^IGe>NIp#mkl(L{X=-j{Z`_Q$WDOMP}fvEIeo&HCNp+P6>NK@8fE zE2?*b1{l1)b0==sbrE&QezkPjJGVXDr>UOC$>-movsXc9E1}!~31PN*gkiG^srD!e zzQ67qftg2YqzC%fo0j?9Ng40g2S4-HU$O(525V0sI~WK7PzfL&0cvkoQ^<}Fz@ee{ zp$}JSr?bd_m^Ij0P}L5?4ix>7`U<;}siFqQCDL>eWCF)l2$fc5-<6cgV|DnRMDTqK za^OVGW4kiveq-*BCu*KqOuvk`VrHa&9-63S9xSwG31!EB zzC_zO`=tm6z*reNJ4vjJxB%-$d>nu&^JHMxD_I^a`4Q`X=d@Axk{sj8F@DlKx#k{* zgNcwN8Hq}6y*9F6gZVQ=L)Z;87TB9t-u}_H1?vbcEI%$Hlp93xoY!Rn@na)SH2Okp zY?zL7CUk{`?{kwkzVVQ2Hp+PVL3lX@G=M>*$km_?4nm4n%%qyk$-`g{oN3lB;A7({ z^D4Zi`y0oGco4}ZD@fe{qRcUgqt?F4#I`yWMb-Wd4t%*vz$?>C>Zq)CDp(+dWznJm z7D9{o7NI&dT+~BJowR+Gn|>#FAE2|5rR22glFXDRG$W*eO5LEXgM`o{FBrZZ}%;{;PHQsUn5!8;Ptd7FhmnjSI%)o#7e&pP}x9rZhC8)_t+B` zoYp<6t;v}on^%h^D>GQUrRzFaxj2Mr$;I2CvHm(suyA0nzt6GouPUaq+(s zUd*?RU3F;2+iT7`Upwg+?J}cE{5=LuS9<~fSuhBKCSZ{MP|uwPC^3~R-3|BMr0^^% zR6EK(C1g~GIE{yb)T&}sUfulXqWYDNp=wX5IG%nteJLd*)9?5fR_jeAj^WpEg?)Y3 zJA6m;X!?t0E!SGFR0+a}s{eb?CtEVP0V)nf;LJ^}AC;yVQ*M1um&aJ+BCwdU@>7S@rud`gB_~a5nkkwlQoP;u%Ks?GIe}ewaq*TXJkqY{% z=CT0HyDY>ce9V>AVajZROtPj`NgNb}6zMw$r(&%(CDL^E6grpBr_l0Zv{_OlnnXY5 zkoNJk-f-ue{^#Pi7G%8L&zm~xxNEM^{0V0fOabvHy5snx~kQ|B+(tzrwS@c8mn?CFC`*m ze?dc75^!kvztgh4ia=F)uQDug<> zPqHJ|*VBl9882H$q08V$Weq)q@}_>aukF|K-wD zbT2$5{GhJ5_6S$o*dgO_O_x1{6D-xXFIc;;K!+$@JMWpJtAkwwos@wzn9K2@OKB-8 zEnBB4YK0p>kQI)fM`oqJ(<4)WZE5V8l z80kD|xCQ~CL^9_9CRTU{{3ZlEmdspqGy;f`m)z@FNeLrUSKT@Ag&6T2T8f|gjC9!9 zMC;AuQ5X%8p->1ZOa}$wjaClmtS*nACNQc8Evm1E8NhL1L^{NTITK`7(kL`X2cFEa z6=|eyX;C&pCkhS~y_!%?9}u{JD9saASYYt}GUerEw@xB)c;LkI-@f~@xNX&ZIC8!DFi{Jg3}jMGSE9cA;y<;PGnI3iV;3xFxU z!tOwNSb-vu45IL`Q4s|pb%q=)aIzLia^{GhE%WwA+MRsRqUDZ7Tj4Jz4br#(KLu38fv1Dxr2mIA$G#( zHZ*UQC6QZ9&77Skkd7)6ffySuEHZ1o0|U*0C^L=ku^E$K@ezyWgscLXYfFNkhb4l8 zRDuBlWY3bF5&#D`HftNyb7Sb{L>VqiH+eL4Wo-PS?5x}ZDihgbxiO005hvjTD0)y| zVd>Y34z!BFm1s+65s?iacnP>b+9tN(%0+h@>77Xs)fLWT+w+y4@KQVIB(~Ib(5br< z9840Ee88kHU#8Mm;I(%MQ1)aRm=vSvi5oq0%Fyf6JkH9UCX&zMH8{VaVlfR~7yOe^ z9`;4#kAb&F(ZDlM42?nB&p$oQ+kUt9H$SuGE^9P{2CvHuT9JM=7dC_YlL{E@BmX91 z1n;pk&pG+sJRp+`Pz|Ap{~R?zv^YBE&~7j5d5P|QxKaQR2v^;^fUYa;Q8^tccVBl(8Fi9UtM@I(@iI;_m5j= z!f;P>BAjRu>p7Am5Fm9WnDZGi_D{{lnzKMALPU56+M7#~b1$)-GG5>6+r~Y6(+rI@ zmb6)Ju7OzhVhy`+WFqrf>xRN2Nti2<2O1~QOtR3$%&Q~l$;aSb^7u`6K6w!pS6*+% zKmL4w`*h7AIr?R@Q?E6YmEz)<`_e*Beg$QsQy8I_O5W;(ENmN<3N=&zbb&wUuW>z| zwSi(?CUtDPMAej?-ZGzXh)i!W*Yr67X*bQa$!JO&h39FZEKhtKeal5&9TbEL@y|=O z*}bU0r%)~|p!y-T25w01aDTmj1%2M`K?Psk@Sxm_<(mjD%bP&3gUfr@J;#a(csv1a;GA0UWTFX_jReZs<G4UJGzL$1*_26-)eh4~z_p=~(RtRAqo~d5_i^Zez51k8g`=iY#qI-|d{rkj3I48ppdJB%(|0Z+vh0 zjZ-t;8-F?X^}!F{qZcQ>t_V=EV}n?X$nEGLBJ7%!u7K)7Utv%KNfPStX!@Y9e#rYY zU=(u+KtCj`xNKyCK()!N-X{C3SD1=3e|k;2{+tL34;g7iI4Emx@$UF3d}gO)9*U z3Ra|ZqG{t`A464EFiB18R z?yA}cI*=CE>S-2E3$}~~SH4637ib@vx2d$EA7uTL0NM|r zC)0exW{ZX;iEoeS3YZC4st{n7(Y6JB%SF{$UQo1EKgdKAfEifFYDF8slodTDHdC?R z>Qxp|@hQJk-|hm3e~CVu^UBq)C;>OP{1sYz`b+f{)^};5SNH75K}Kj5KLwF#)mbW) z)miGH1WC2p(1i$Q;x|<2t6G5d6y6{vgr*;aZxY9=uGypkn*(p5Ogl}aSZ=ebG;o83kRm=7 zlDR)`;q2K9I%drQ79_``8RUmo%*<}Q`{@}^KL{<>qSn-q4GKbt_y!Ei4GMDQsY(XO zfKG5qw6+iQQz%&kMpLdt3RrR^vg@jNievUj-XTg$*APjmNDb1Io!nc0kKwqvzw;aj! zsMkBx!brF!VT|f(J!e^jB1vgpYMEM{-tU7do6@Q%b}3Z6?sm2l>R#e?@DjSDfLGJp z5+4T+z*-G(;38DFreQ(8vb@lxdIZfLs1B41b@H0iqmP3d9Q3AkQ~WFGj6>k>P=K{l zwSmhQl~X#|pcJwo+B&i)tuz0ijQ8)ZcYk}Jf3Q}lACwE`;3L~BDSWILesA6zpc30k zGCxb+arVXteECJy;*a|u2~MlCOex{ z8Cy6(0NPxC)%j~8o8tmpZ2&6oy#YYslK4R-99~%WZBb{?>bn(Sz(J)arg>Mq^5Ji9 zd*_HXI=X1^x=f&zXe!ZQA@WJ{>P%VjXaHl(GVSsI`wGj+25U2`-6&`8y5pcpKe zGTj8CEwo7kqh>^Da8(xhWa%_Kg-@a>O&oXk8FLUTY=MQ5g%bkTYke z0WzTgl!J_rB>r_oAXDh_sm&lY4J;C>e3t z(OaPKuQJ2V07>beb7F;`;Y(5%UgTOuVTDF5Ka6aiTT{9)Prf6qPV-goofOFGGW zuYCUbe0q6glALqTJ@@SQ+@V6YJI_rRhk&AmKZL)Wm1FA~XMg7!hI@ph6$i0+pXTZgo`Rno!hFKccWIBNW+@2(hY zDxjnLUIf1;(f%BfU^^3?qm(G0nK6~4+h2WNX0LhE^*%}fhq}prro*%C4qZ34&FCrN zreW<)^6U=gV`Oo42YV4t(St5ZI4wDD2KR9yPP!6wQ+K%H_?x`#4~+#<_F_0Dfer;b zLyeOF5<-(!g3Ps9I--ep6zgP2=JX)2U@CZQWo$|Pz*J}~9UFXI@Q;TpYbtquKvS4% zG|c9-GiVT%X&HFoQ>gV=8hl-*a3X%YS&yZ52{>?|uKvMeO?Q=hz!9pf4c%ZIw*pgH z-F{jpgAG%kO(fl1rjjUfq=iDcRr83!Cbk{Sq{=vjQg@cs;SoSWr42F*OUtr_L8(^9 z`mg1p?&$kBh|JdYD1!IZ%h3-)kygA<%F5~6T?+U;)#N{eb^<-6{)O58{Ng+=C@tm! zga}mRMDT!Z9L55NP&Nnvlu5UeK^Yjp1qLcZyO#mya}!JkMXNxW-*kMT*$rxLBF#zK zfcPnNk^!hP$>=_ku4yT*K!K)|adZL=)m3NV(m6QUD1Y&*ta@?QWN@lWngAM18cS!; z3Qo&*SLCvcgJ8_MG??49&4a9EbU!O7Y{?Gr-L2OHyj&Wb({^}q)+^_XOPL2YX_I%9 zyxU}yk@*`?*`>iWm^BZ=aM2?KOd8x?(dJTla0YjVLUdde*AEtmQs9mq5#Y57w)+v+~WY@xt}X@HLqCT>rqLIl~F7)cStb069GjJ<{M z{1$kq*32hQ%j$uA2$}YjrldBR99&uM4p90qYm7Hf{Bc(PQU=)D@ zZm}|eYz9$ah{P!3m+Q?elyb{wlXk3=%|KX88$?2kR)}wb-jSvXCJF>HH5da=rrMIT zQCglax@V~b?e+$s+HzQXUAuG=37_dHXV$APzI4e07wDK%QWNa+!;4kMcs(@t26Z{q z>YK2+arw;BIX~_ERO=NYdaVaG633Nzo}Z-FpDY50c%VQQG|(B?0wi_-Hg@ zYd5TaAX{xi+jJvPFUL=Fov{+&WN>mT98SHx*)BJyy{QirEr|&iz6aiS9Xy}N_U-;r z`bZ#GKE&A5TYF%>v*BbVhf4YYCL##qvO;@%u{c;Ax0=b2wxcb~i1M)#%oCjaK(jvqX-#UW^x_VG*Kd3oGnn(I$$ zf$+7uNFkA?iW$;K+43AT3GFJBl*vg*gwiB{j?knP*UNtl!j=MafPlKvqKljTHg!5C zZe$LqM-9BMUPe<3HCi!Btu~VL$R>OWd(pr9O|!yj_ujL7^_AynW{3!HXKaCV7iQwO zL;~<+eq^x5p_|Jpp@2|eZ;2!Tsr*pU&(bG&=r%4JLGZ8{kg{5#J0O6I&?LHzVD5CO zz1?LNFi~3p70@$^rQ&dZX;6}LUT90#W0=AW(F=)Tbvn_9_>Os|0VYD9*n=CBuuHge zk`8Y0cJU$-fkq)r6w7~U7|;lOU1rjX$1;F0cR_i$WJ;^_N*BF_&fKA*Eue2@J)^j2w_jIx*$2c2l1Tf7x~;4{|@Sd^n;*%GCmQ9!0^;J zbz)HEg(NtRf~-t$O9E4wEe-IIC2U1Q)M`&vEt4HCl$2j}Iy}%&FP`b}y6&9#wyrCW z-;19D5;s^|3k9J;JSf=bH&e6>WR>woB!X}$Ir|WsrJQMBy<+z}e)VCT-{j5we!FS5 zrJQPu!9zsBB$@yXQuMW^T@qrZF;)CD+`E>B9twN3uX^sj>9`(r-22yGJ@K&*qZ~hg zf^bq?yBjy(mE9pq4))}G`G074uf__f_U-(Z-zYK;s(y%B=G4Io>lD7Fs0xM^Q2{A!jq6cfOK(hHW{X@G;!p%oQYLExJY&))=a zN_}Q>g;FKo!+-JfM4bdpB^vAlYo|&azz1ss;CQN*bRieQq=T~+N&cc^y;{@BC>*B5 zmp>ouL0~-+w15*>(0w<@f^G$T{oX(T2U*a#B0+X_8twbTfde<(MN^MLeyGlgKYU8P zj1wmNKPj~8Zu|fuLZ7(26h)tGxttv~g-Yr`?G^w$4@X>_e0g@M3~}Y(4FSZ2LJ1;P zH-HepC9qYLB9=ZbVqhw(jt1w|Q*Peo%I7Ae%!5qjDEzTm1Jm-jU&N26_rc0C&o_V< zKzBbtHanZ|)8o4+cxMmx4i*FZ`U-r9Q|seCd+bXa9Wn!2T^?jU(fu}77K&#wT!*5n z4fX|Sbv0BbB(biMFxUtOw?bX(I;y?F4N7LybyQ8CY>o)L0~5CNlV7A-DN~tj;`w85 zZ_ty{Ago3{e)-XbJrACfa-MwVe;(ZFUtL;j&%?)>W$vK2qA#lQz$-TQ2oeA<1R*)x zEO@%El4SU1`1$lJ_yLwl{|BGIrNKF7?~lD!T75~%*=XR_p<536qMmCMV3z?-`X2;L z&8z{iz%Jec-|}{GFLLa>iQ(k>mGT69)TP1UGYA``%!6#+Rw|fO(Ge0=s&V)bem#9Z z2A;^ycv9W9#H4(;-8^t=FfzaaKu~!HYGF}Cfp56(w>Ap{ZY3`$wvL`Fl{u!z!ewWW zaHRcbjdUy_rn!<^n!W=A14QgoPWIG`_r&kyO`u&7<|rS#>WFLCJc=s`vs0HIwBL;% zhNG;{RhgdLO*zV=RNfK{%6nt1K64$HKJx-Vg_6n|QAkVGiOnws?zm&dv6wby}7==Qm(<-HMHQytr=No)mv_bs4;R#woayY1dWKr2gDZ14X z#*2XPav}nvA7nY>$LJ*>Lt;WiL<1CrDAC!Q;)(c2UGpFraR`S`u|EPN6m6FDxy4R5 z>nt5eyH4MTP5i_V1Ji}GI+2ZD#vKz9#S?P%3a5_W7L?fBpi=?eeQ+|(@j$GI9Nkgu1Bzuxp7;yky zOC^N`RA!n5g3&aLDsAe-F^96-jbl7LT_qgs?5OPz^f^FLY6m74|GiKe?C}%Ev~)qC!tL->-XZ zj;6Jw!GJRlGW*DI?*{j%lPehr{fq!tW>o{=!U?T}eXV0dlR#z5_}B@UxHLH2%6MVQ zJji5E1tnsTIxKPrxvA-F#Qse~vQ+?JIh8vQMl?8kZPmG*`|N_0dEh`-M+*pJu{B-LppNddHpqRXe~rDs+uzH={A1zDuMR!DUCQC| z)=p7>mgz+y023cZ=7gieoZ>0=sHB_~Csr)p;OB+KTUlW*=7gS>Xl+LFjSj7-E0>lQ zmlsPbi*#8>XjK_Lr(VW47v7Hx5pq64jT(U)2nw{a$*r{AX4pQ~Cif!q97n}HvA*7w z5#e1y@TmNoL&pu^$qGmJ4cU}gc5tUI&Hf0OD}97vV!uk=D&-uy@~!($y?C~^;S#{% zZdzwrQ>KIG0+=eRuUvE3bBA=!lCwM~;iECg);h)Ny|vh=%}0a8314p)z4jJ&TdR-< z5Cb-z(YVabuVe%J>b0Vxj~EGq5EY~0V#&JxEFBsli9m5NrSKQvtr>Mri^B3|6<{3j zgs`C$OQ=}T;0+!^l~xRon!D$JLL2o?fMrR4CZ1dxoKaI&-`@5$q*y=k?)qD8KK@$0 zNm@x{5k#p|AetXeFn1%EiUS+KlvzeMF1dY6&Gmb0fPivqvbcn(?%jL%kb3zQK_V!D zF5$~BNCdP(JQfK0!HRzLEFf~Il<{F(An>)d(=Gb&SbQwnu2dmCoUBp$xh?@TSOZ@; zqZPMX9rf(Vo1>m%Fl%LdAG>(b!cKnQ@Ad@tpUgiF_-mQ8C46MkWW_`yy3&=4tL4EQ zHHhz#R{FFzJxAKd0c?A3p>Le+(DHy{m$4$F?^a9avvL;K!%4{t&n^z&Bm|1Cx8zPH z*oR0kRpy~ZFU}tjed_Lz0m~!-ka7YX}H)Oi(12=W~MME|y2svVp{I3tA zioI3D&xiYQAzo!F?-aQ#;bI6Fm`0tl7_G_h>bhc_GxU@sNLfkSeyLMX-^KE zxE~too;1JE{yo!BH*sJ3Nib~sEDWq`8(<{ViEae5on;kY|8fhk3wb=M?ExjOm|2LC z)dis<)h!2CHctY`tfgqzlD6#R$EE12E3#!*-wsPgRQgnMO?(n9pl6cW!oLUc)4Ku< z|Gwq8Hkw!R!=^zGUnS1!$ z9dC8YrNIHxC);BQlqj7;?}W!(O$T57AiEQ<96ItPcSM#uiQb+umQkWcc+#5`~+ZfD^yqr=#N^+mh)NEin_VH zoXGWC3YOp%_FmVPf`x&Qr4{$epHQ_eH_|1FDl-PFebh%3S6ZT%Xj2i$xN$lFIE98B z@Vh{E)5b(-B<@zH#I^%j57{dIa zl^R20j)HdLL9>AOcqb6Hh>d>(sL*nR?&AOs!oRJA4r_9yM*^ZMh0iR@m%DMqFnsow z117VN47sj_5^y?W+p7`~kVwGX;coPRX&4VU?VT%cnEF5g&AQ}4Cch5j0UEMFL8vhu z3)igVGWk;7gS(qnAC;x+WoDpRZ@HSzqEZWSR2;7x8gbEWESS{g1|X+iehtH0d`^SS*&i!B5Zt_j5j?@NSWQZ3N#G44B61xo`${L@9 z&o;ZpwZ*6G##eFsCPH6rMeJ{S=IqUP@arsll|@Tz;L;$aVB4phdoOtUj?Z4RpC&-E z===xN;lfyjbcPXSQZ>L$NEO45L?w;g-eE4S)=bcY`C}51hX&IM*;)PS=ey7A{4h?f zn6}Is1))N8?MVJ@&9yiu(6Uf54aI#{NQbty+x-b(QulJ4I`I~(o}mr+n|g*!Mz<&L zE0vb(2IZyhGteB&s%r3U3jBh4895}X;4r+~>>kZ_tESIi#8=akKwm$TGbFH@evswu zYynoSJdm4-0aNS@HB0(mw$;svEd3y}B&Vm@S=K@x>UYZ7T)s{IOKKN(SGcvKfjjzv z=Wi`2B_5~ISz~g&##i$Bp7Gi0_=AR~9CUckp@$rnKS+*Jdow%na}&P%xm!9?j((7t zkpa}~%(#ITO`(UTKy{|Pgblz2ra(z+v>2iz9F@ski{>p{GAk`u?}0zLG?;=8^B`Cs zk3Tkxb?tiK_8V9~Q`?+MT0PNhXj_MxpIiRnKS%!N%1u&^e&DbwNylcf2x$YkG02ww z6n=||NNm9oBGWHxK@g08koIoC!HnHgR4X!aBmwPsH&=F;F82Ub7G zc8s3FtHon}Dcgg0W)m`0G04dHcIc}wE$yjJpP6!oHeLAf@xxbY zWv_V59l${dLbXE8@EW&uauJin_>#SY$jA{)YHmi8->SL7vF2X7; z=iIIK&a;U%Hp4(U|5@Dj+0Pi9$_U(DP>BP6UHugRDwB@BN43^(*h`iDEuy7En(2@9PQiF`vMpvXxKy*j-lq4Hg70UEy#ge5Yo=byg z)@$QhRPDT2&|7O8^nmbCy3R6rNIgvh{?<`9O8vPsnC4sNfi-1xh70%uYq7$ukIv!V{NW6OY#=!zk?;Ftcy2$q?Ny z(n#2RUY8aDG-6X}syb=GV4>=wl+Jgck0?Xw^D5OH)cK6x4&rtn>x^3P0zU&GYCBf#2*v7-jCs(x5<8SViNd~8$a@KKlA(e-e&v^(S zB^=U9X$1;p5dxpLh^X)*TA4Q>TzHo#s5BVsNtF0{TC7AYR@nqIWOxRY^4@~*WPe-CY=QvM(`w>Mni292Uy760WQCky@dJ-yMsru4rtkS|b|F zy7CXWsFx8xGR1g|_L>eGdxO{08-du&@Y@0|r+Qd{z1;4+aL8u29eu+N!tj2#qt;Su z@O7C&^hkrGYSVeT{*5*+s<%}`d5>d!5^Tf0zdU{Gi-%wt$%9Dq7|h<0)^2Oa1_dEU zbS1ks5BFV=C7m}5?B!>)0dDFjgetMyi_5@b+|~-rB1L4XJ&_W54G*G3s1fE`+YLvw z^&5O$W^gKgJDL%r49fZk%l`%dDj>`sS&%J4GSoTqhpJ3gBv0!YXyWJ*g+i@9jflZW z2o_!3Hz*@g>je&w^xm!~?DeDHO)aOK*N$AZ%N`rvuI-!Xz8m8(BBv>Ugb<K2UXh6r5$M2=hOWGT^V|EDlHCp;nZ|Wl zlX2X>gp$&HhB_xnLU1qq-K9Y;C;p(_JP7Wsn8Z}=05PG|>R9}EDDnYAjKg}Z6vNaM zo*hbZ=^hLmJEAzY-JZkpR9gqw@1hlSsWhU-5LV%E>i}zJIE9QZOiN}+i3*nnC(wB{ zCV&^#0~ioJF##mOGBT!-EuOp~^c+f6l!Z^B{u6oUzYP<_rNQ~@#7EnAz4XYGdEnh+ z?Zg8xC96_|JDg|oLv_nUlzGztg3LU2duta2rL3bfo`Ge!OW!man4`)h)SC1SzAh7p z-#$B%B!Fk1(N^L6b9e?grOKAchf!c<+5&TsYFiFLTYREuSeuRU3``D6z87c*YM% z-b*cUIR^eqprSIoB+>AP0j?SH8#OHBt?ZW&B6{VPAf^hHa9a`a!oiKnV__lWiGDi? zdBFY3)}K|#_fzv*LSz6;lAZxx^!s=xZ+7eIhuwWrPW#X+zq{b4Khu^j3A$<2DX-|X zThUO((%uF(-%iQ5Wg5rg+s$qz|5+ldIpcvO0r8W9y|<;zA-%IdJ?iZZcl)>YUSft% z7G)@x2jI*64{u@qbmurN6-2}Yvk0Cl>|;7@WI&*LAHf9*+K{EfNy&eYt$CB8M% zj>v)E5cFH|k|4P#gH3F31QuSMwvqRE;}Q}1PDR5F+swZ8`yc=1*&6kzRP!CDYyeQ^ zc?wW!cCXiFV_0wwlnTSeQooxmwB`Ep-NTi>{0brjRSzn9>7Nk)QT{wB@oGU)z^*a;cZzTJvfB9e#*q{M6<%uVzUi{qc)i{6$^PU-lm$yB7FSFP)?;j_@+xa`t;~$3K7f$Jgl9X+_@ZtGRXtHPU~_+Vj%fK&(K6 zGy2KrU!ON|YRWutaI6*543-OUkfzdpBjpsTO9ECQgKNdSp{Zq1e@pOoCU`p-&TFvr z3@-{PrxGcD0Dw%&{ozx&G&m1jI%Va7dt_4Pp>ZFQn;{R(m z53zvrI+<)lki4)hTc(hd`l0oeTZ+TBoo-GU#Cy^7zKwyWM}Z}E6vfQSJTSbtG$F}n z9C{<>Q8_}u6%;(?q4(%zG9_`Lz^1X)Ug~bB#55JsG8O#Zp;f@oC>(>2Hmx5AyDjJY zlf=d31~5c#(sg#|$*n+itN8;5vbp6*QC8Y`(q2pBMwhz#(Xk>b)E-4w#x;Rns>WOw>+1{<$@$b^~n17nkTj{Z`LL69Cn3}RWfFevvwzK6G68l+QA zr*2u(DIA_SVz&TzdL_uk>o!2^MuTHow(AF`R4Z0PgRHMI!)Wk|Lv%QX;myL|n&lI9 zU<={aN=^Sub#!1ZevW6VR4ols9TC{=t!zIe(T7|mTM#j`H@hcWczOZt(h6Pe5Zz4_ zmZtj`cy^vn*QP@ZHiT{cZAtUn(eRBozdFJ!>iiz2`Slohm}pH8$bhnH1)e=WszOc| z4LmiLIVF}Q9UA?m@=>Kng}x7GJES54fC1?XdKs^YkFKRqd5;5 z!h2fMWSK{)lNc|{oLgCFd*i$Y8IUH*^2YIOeV%kcPez4DjKy6|bEvzaf^-Hv7Vo<> zcqQ6;q7giI7=YdAL`(+3L`*XME=^PkU5}ZxDwHabS9CU{6^p=vS62cC;6<39WzF3| z^LyCLZ*!t24W_c*nfu=xO#I{h$7tWamHAolegk+aDFT(A?XFN+6R)J_zwu1pXqV!T zNfFFeYn#r)o=86h=nT$VNZui@v^&eTy6VFDYYx(f$D*e~SvK{r=zs^uCw_^eD7vU9 z;JxkVt$^f^NP1EzZGr{2Y;2D<0Yrr9V$Gt16AEs>%ZXw#_f=gGE<5injg&CS;X{(N zDblpEKP)!A3t}ey7=Zexe(rT=J~MqT66M^e)nuC@!rK{ZpC*;$-xdLQvhScl$!u63M`s(dG_6|UlImTZ@wG2S58mdWv%r)-3!*F}_jSH^*(`#LO zYcU%?3NHbsWfnC+L8uTtfE9=yO&}pmROhv)&BfVdCWGZo$l51>!#JV?L1vC`fJ3a@ zpxYUc3b+Z-t7MFKNOuE|C7BRU>o|j{hmVIJY$Ryn79AR(AasZ)k8AZUR$avlv=T}Z z{2df=X>cxn`rQ4WxMh!&c@S<`=drZcK^2z<=cvn0|IXF7Z<{g?%F(WyC{cd$zcDqJ z2C)%QDXB{)V`DAd)+1l(?pFRa>mR9jg5hKwhVA`0Z zo=&>yP(ls+%adXrhd~UYbQwWxa{JeMUPqq(ZuKJB>AH+$_x z;OjC0>h0ZZ*tWJ(tF}=c%6BT&td!t>A3v^|E74~%^GnWgxFR52E0|qt3J?;-Y;@y= zwy+U8MYjrbJ*tBVRFzb`{DpAnz>Z*wD1(Fsqp_VcpMJFL>~o?v&=bG`&~1iqfJ0IY z|2d$Lz8_rgXLxfwnGX@{)TD+Cd|f6G-Pj<}W_JTVjkfGe5Rzv=s)-M)=(;Uu+E=gG z{f=LK7>89ju(g5imEYuH6=S4)=8<_nxa-=nS|!FV^-`oHDGoyi84zpD7f2`2B|60( zzP*rX>jiyHU|m13E$LVG6!NQ9%kAuVHTZgL+nl*$sESY{AD?^!)2fmONOSY1RYLCH ztq%L=6;L!{BS+u+0mRnQt}SRJM~;eo3p+){Av25fXtUQ>D%UATvtY~oBf|!0Thh`0 z@)@N7#f248_(ZdsQC&T0wV_-}qTyBi5HB+=qWd@o=SRce=_p=+LT;|0*5-dKy(h0H zpuHHF=@n2K9DVA~0OibWyc1P!=tVS9O5sXOe@x2x=Ja0Yw?|LVB7~%5v(&A%JBXj9 zp;4vaT31P`CN_)JTTFKUTCdijj@3GYk`OioxPduo;UPTN3YXX1T<~LpcsB-~`9UbC zaA|OU@Q3X;?LTs5${Dx##fjHGb(Xd%B13$bAa)vV+X#}}rNLQm`<`FFF*q;foO}NG z=@(qGKyoUP0p3FZ@lV+MOg!<8#tZH#ZoR|H`=^|r{rZtRzy8I8;sW@40+=@de*~M{ zrNQ~fQ@g*mbpJ}qnY8iTL(boGh34(3naA_7hg9ZqVHWK=peIHwC8I*7{)P=0))LFY zu=Isyw=ooYfh+t~x^ob`Q=zmyI+zyoLjzFO$_yoo%B4Xfi$ z>thpp?>RAL9z>0|5@++DlC)1I_0t?akD0KpYk+{PZYz-#UoJWQ9>g2-sFy+J!x}HN zJBxmG!v%+}XB2uwc)n`A2JmEl@whj3m!RSXH9Skz0xk_s#{);4yUl2X%-NVRQ;r7( zdzDp17>F*b>}?y9NY@W+(ZmxT3LYu`4{_Ts47YjSGWP`7%{!Nu*lPS7&`n^OmWdhB zL&X$ru&~@HC@ht%tqm+U_vhnaR(GPjfQ zb8%?a*2?6c)>i-1`d-_4k?|oPq-Vv!DlMT5;Q^x>JXN&Yl(UN0?+-b7l{4Yye_!yJ zX7PBzqx#-9iyMF!j!)9GpwOmD3DT7u2nkcus$v#x%6a>H+kjcc3bzWYB#E52Cl!$z zAS0BDu1?q@%pu;hh2@MM1U z*=Pcr1Y}LS*{ul&FWm1P_%O$OAAaWKSF&v(PF{%J(%|bdg&6dyFWj$+uV)e!mD(f2 zfy4c}-@F_V`7r9LOu$|fF|=f)HYh%cCP0Jf8)$B0j=<(t2D}Y)Qg`vphSg9f@m)_3 zw8HTg=(>sT06dv0t!uL!AJSl+&Ofk~J{uR&byY=#f%oejh7idf6MWU*7QkeuH-O9Y zwroDiIGelYsB)#$E8hK7!kz}xmESzXi@i@l??7;A5PQ%Qj&#BW9)WPFkB25;O#n5aw+~|Jg^rHUXcgQkBI6 z=!}`~S%M~@rE<1BOdHp)gxTYMs$H_xPw7y4R3ye?hM_h{0AK{^Wc7x91}m)kBv5_M z;84& zJG?mSm2<{v?n($7pHiX!%O|)!*oU+S^3WscGfgCf3b|YwoIl@uz;93Losn`r zvi_Q}`yFwco_cbqEGATL#lS8PB_CZHoX6gNX8az%Iy~i^f8t@4xo6xc$-?9?Ih8Q^ zios+T!h{BC;ek^&yDnat-+uG2>MSBHX!Koa)xO_G7#xUSWsdZUVOZ6`sL=%iESmgM zwl-wk;Oop_*4N2undVmX-P&SLQhk8BC0Xhbkl^D|ucI_y#2V*73r_fF-7-Xo}lv}!)(>%c|3@{SVh`68lhew7sPhQ&5X1TETa78BB5WJMgnLWmRHT2qQjT@!?I z^J3o9R3yZd%h%~v22hE&-(W*-#je?v}cu;3Dl0WuwCsJtX9;4Ge z3*GE5{SZ(d2Y|>Xiramh;(4by$Z2JOcpht6u(ieC#Ma4`E@si48Ci zqO_v8rFZjkOeuXR1{RhR@Z{1U=bW}lIX4`9&>P?1XSOz0TCv})WWdLu7}M7nozVcE z%q_Zcl(NDg&RMUQk1TxEKV8o)C<+C}Sea)^n-uvdoQ}x7SV1BrdBdYfZpdhqp zxrDU`**Ga3^@Of(-v9c{;gKSMoVE zh070&w)0jcpn&5w2EuS5ZVa`T0=NiW$iHotFKccm+6VJZA8cmtnXkI-w4-ldmDxvz zSog-K07RK%JgUVycUQpnPg8j&i~BL4As^H==ZJL4KF`_OhnwQF(`udL249y6L@#hq zMlG(c#bN6~*i@a_D!Tis_zOjySWWsQS-`@U^-B_&y6hW3Mkq701@<*J;e_2u<0Ha; z4_xx|>(7~ko7+G5*eR=)oS?;dXB4=$NT(1>=!OkImKnEVIarau(b%abgVB|(R92$E zWPuYXn+OnGRzD(m+KQpm4ZxG>Chx3lvI!`%1@I!%l}ZrRVJzO+Ww3)wgG9SfWx-*u zLxmBnoqYg)!f4nLdoB$iFa<0KbmnbZ2F>v?>anD8_5&4|FO`&{!AtMzGutE4I1RoY&UA96Bo1qrtC?bc zWrp7nrt@?@o7}T;j7N2YGVV@fo&ONc|6B~rb`2oP5*!KQG;7y%yA|mnOxq~bt@--x zUw`P#Vn@o+4+)D!4aUHe>CI?idPeV62GMf2Vd%nK)zW|Xj}KpP-LC6S?FAsqgsGrH z9N-M<#0Yz0s`N5rd3vIc?ZA(uoc^OWxZ|X|O__MeZ+Hvs6K8?n5IkCO9y6uNP^L0C zK*?W1d>o*rPa|el8_`4DXQaQV%Ov6eIzT|rG&`sPP?>35cll-qhjJwt88q{Quw<&# zR}9b@gF{sGJEhZ434Bhy{MsuCq-YUBZ4$vDpwglTQ>+qSE7PkOkO2&4T%FyezgTc(`NMt^eZ=k_^4Cu^4i-DY)DZQ711W%E5Q zC2!gW$}Yuc8lNE9qkYwL_f1C|zcttX=(M&4>uU~*p0u%1LH@W_t@wm$01FW{WMDN* z5Z}R2+ANkEOKvvbeqr_wH*K4uXC8eK>QywnO_CPy1AFGZ8~^#c1>NKIt--o+Y&_PY z?Nru10%zhA*{Mqp+V93~G)JBSY@1zxT8?CiX5CRokJQ6PscLdM(l>;t>VVrP_Egdc z)pffA2*s=odyzHDAu~ezqyVa@quct;KuarA=dK@wJaMT(4VbW@y&9?pHEdJBD9O8YeC;jq&XMb;b%6akiF+X4Q+*h?=JQkmgCJRUgd{HUc-yaTFCLsMbCo*)s=&g>de&6Sh@AF9OwlDwudt_gv> zE~^+52E!x9z?27R3}WIVNJyM3BSt=}mIN^R)^lm_?l@tactcr)nD&uA6zy99iUqnf zcr{DEd-vy$ef6Y0<7Gscba`~lDe}#xq_HeU^sFpq#HZV(Rq5z>kr=Mo4L(XV*bRv( zs@>};DlQ@)opLf0cK^|4U;HqRb+NjBtKHNdgo?F#Rq#4lCoP!9X$vtqbNOGOrOHV7 zii7wF~+|Y@y^Zs~Z^57#LK9(V_L5vk5+_UXFecHi;W03WbE4%NnjhAXX{V6{-?d91#(Sn#yEI<5B8T zot-sX#G{pMi~S{{0?n8?qX7y+g(diGH0zQ*O?^Y0;n4~BVbwYDxMFE#ady@%AkjT* zD3>3gnifBo7~@kv2$v*=US01>BVfv$g-}$|5(lAF9{~w6n%eGNNq;Rg0tF9JR?D{d zrvC0(l|->21`6Fu0c?ae(M3Kpk)jQX+R!$jm@O!81strJ5HBf}=4Q)1v&!XQ9}1wW zUS@~KritpIMK(?-g#?oXLe%=uT7T9-h5lNLT|akq=RHq9Qb;-aL1+?#$QkL0H4WLI zAl$MLM2fbPNGsPgCipk)pD`w$wK*WvIc>{iu#)&>GoyK(-D$SL*JTRxVwr+&K0`uV zbyl6zdvNCpbp~Lh@-bdS>Ka(}gkp53j*mW=gw!Z3WR>!QGrH0LFPp1UI%;Yl9mV(< zFZX_(n2Q~sx*I)!fpA9h0i=^bo%BaTbcL~k`5@M4ZDq7#Y1IakX}@)3iz~7!_HaC` zzw~cuv-#2q0R&=G5A{O(`w%VgPYiL=ihNk{$Nl}!4Bz;fl!H64wmazjTQx1BYpQyv zc;_Y+RT`ioR3U?P8kii?yj|63S1EddUOJ0$b8`6phXu)eXIe}Kek4>Y=`WdYGYXaz z>?LG$56;E;D*Jv*P<;if%@iijBh8FW2?LIg;Z(e`Wch3le>0sQKs6uv1@z&mo%L&# z_u8s+JNMaLQ;vR!O?lT_DHQ>|9TR5$^;Sw_U{H~jIu)Odrmz$$sFdn;ox!pq3AGj> z(x@G^KB=!Em^!@dp9MVkXBeEZ_doRP13&3XIWK=_`hgp7Rncs`4lz>Pd<0=cgR{v) z-#dH%v8bnC*8SBl-S+G$5?D$cA=Rhbl*`PO}>Uc7P2JczW3T9P;fIOzuff!UKJIR~Rz^qP!-z6YKXK+TGjLJ4=-s_;uc zE&Mbx0n}z7BZa%V>eP*if%6gQsIx0T&2Y^p4CPD_<)D?!fa>m6^kYzGzO!1GuNQ!_ zbLn&NOKFPbGh`5<-U(EmdknPi;mbF5DsWb4=%1y}`6Pi+<>^_U6I)rECx0nN2(~x*jfOpXn80 zVLuz6Z+0ELF65QrN=`ZE4M7_{qXiCwjxJ|ZWMG7A!8-2uUJ!_pIH`sC*Xnu}b~=Su zETP6KUqPscNb((84g3=+f!N=AE)7z-jQVbN^>lBZn0VAzd_b7g4lpp6kz3nUUFI=dheo9*dA*r*NlyjitC7h^H1B)sMfl>Fk;u&sU&@tFuB5ar=A zL<9GyRO7J{sVa|I^%zoU`(t1-P;AttK}>ODB|IqU0!u-ML?aq}U6%8s`0Zu|PwmFD zmJ?U#;%22n2OZ6E(Qcm$yvVhe#jO()wj3^5+;xCf(@TAL3#4)irEc2yyW+cPGQN0O zX{q=q0dM!W+nq1(dH;*2-JQ|iUld?uX;#U{BIs-wH2^4#5Z%e942#w6&$C5H#;EK7 zw{cnVUoYK!{>|x>bK`Y~kGt`pd-arK_V-AXg_;8a_(Fl?r2Za+$~IULzicx?RzC>) zCx?np-qR-FRnZvuEApd@S=P+`**0Wi%A9`l%p)IfeDU$y?|JI-T~cz%v^iNr+B=$< zGFaH2Aq8qfc_e^`@JMuV&+bDODPfWeJ0Qxc`m|GrYswRca|rAuUZ3CVEOFe3kdO|g zgobMnNJ?I83W1S+)&$5r)fG^^vPoi>SarL51uzgAMCVGWi0SCVA^6H#3u10N@uKJV zKOZfe^@C6%hLFif3t}{6gMyHv6-TnB=g)YEqBOhmPfVomVfxqk-xce6A24N1~{DnUSI&?Aw2AVzmCC2 zm%S`)sw=W(S6>JH62PXKQec80sJlyp*2E)My+0Sy1>V zP+KzA;OjDhR=OE>_b3B+OORDL0W*8L{W?zbn_z1gF9JAPj8JtJfF)Cl9`hyhSD&BO z2i278L&gsECYYrTSNkW=x&^rw{U9Jz0A;u))`53Nc0w zRf4W;P{%_}a^OX+g7?)bn9BI#u*$tiX1`m>WhiAw#<40#`v_JsJXvAkBeY07TGoaM ztJBrApF6U+rpLdX@d5R6^n+~Y#8Ip3*l9!zMnbHa_(QXc7jn~79zT=*t6>^%&#^?Y z6uD3$Cb;APr9X**nWF(*nQ!!iRFY4l#`e}FijM&Yb;}69=Vyp|WJn5~y@@VF4W>(o zRiZHxx=>WASw5(Z05V;yJ`LCx-NTi>{0iE|YvAIh?*txx${5d*5i<3lNh3sgpHK<~ z5E2T-)fs`Tf^PK4B&uwT9ivVt&hMPjmCjdi=j5y+?(FpwiD?rIkS2lCT8sk=2_a1E z9{6#fN_vbDCZ0vAS;X1!OaFZB;K>J!NO?B+x=bMX8k;NOTB+nPik_zSElQyD);+&!iWZQ%b0m! z@3$4RxKhe3=XSgY;+I1OUO>1+fTj)skYxKaL8ETQJU6mSRNB+{qUM32C2koJ7%S9p zIw3@Z7g^GME*YWZm;V5)dYTI6nMAa@E)7DNCv@CF_b+K>`MEzYEy$_F{*yoihPDqu zqrpV_&BMBy|737SdQ&t1-3cQa3?k-XU19VtZOFXAXbfRQgW*;4z!*h$997W-4PAwj z>IHH)z*%hSDK8FL1ehXuHuY(U?T9Ee$Pw_D^;z(jb-Xfq+R6^1=qo>nhp{pu!jwFr z|K+sR?*Dph{{!x5!h&i>nFsUx&&8ZRn#&d5VW$?gWIh>?*1uaGaNju_I3C4F^J zy@uOC7c2pcXjvNQ7z>BksA4jDbmW?t{nYJB`&$5}ghK9LCks zp#cs;2l7UuxnGh)N~4iA3eJnpvQhyz%{AOLe?9k&m9KsKd~^+z2eHN0VIoOGHYf-^ zPK->Ca^5MsJyYBISIprO{Iq(52r>~ruKKdq{AHv*SE8tqyl=39g3cF(RUmp)F z>g=ZOnxH+ssFncUwwQ6p2BZJ=)*dP6`?G#md}~Td2oN_*POk@_18v);oQHq9>HKdE z9xd<_Ai>GCtKgA<8{3UdIekZe^VMHXK0;84C!%GgXqS^sa=Bqb4*}iaK+-`6B!$2o z5KGEb%pkKw(tf4eQ|+rTS9<7}0z#D-TsSgq^OZh|zmOTBuCTulc(56#d}|uKXeFOzdcV$*gxZRR z247!ihUp8SYPy@YyuxM+ROq-gIGc>W{lC8O?rACKt@&+Ju6Xf6ZJ5SG)bKuw$~Yz8 z!B={wQ(hc!j7JZ3jkxtN4w{Top3A#(9Q9aW7~S3MA_J9}Y6w4Pxolo+QBPYgMH|Ob z*GfKZif{UEJA4)IximOGUH#JYn?HaBTzThbUi;a1FVr%#mE#n-(tx@E<4gdo5`s8* zIxw7BiF-@&gd4-?=0n}d&kNTw*@6yV6clC>wH`HUy8*Cuwuin!C{YZS_t1A!SOOZH zy}x+xnDU=5O*wzM>zZ#J_52lj4<&C(yoRl$E>lPSL2fyf=&a1KQhgrCa)RySmmgi& z^WcdoXZ|1W`~L54&`LddR{r0#35L3c(h?7@)dp3=`Bs0L@*(+q4Wq~A@n%91$x+5j=oQBE`CGQrKiEU z9SbgS(huTcMFlv~xO6@P(^R?X2R1OH!aKGWo+l}}p~!B!`^Rn~m!iUZtQMZfM|xV~ zHve8Hr-}N}IGT4oI;pf(axQN0P<@@Y#?LY*sVRGS=v#Rl{U8e)SK%k&F`~S*hHnrN zmX7Yj>r7iES9S+T@LdLCsJj?vy1Bt_H^-Sbq$T~E9iLOL_~QxzoWLjHTU}7_VjHok zhqbiIq~aUZ5S%)pk(s(=cpxAS*{-nCe!@P{RmEDcBQ_2djRA~=Ud!->xHeXGWvR#Q z&*&;yZ|!`WOY2Xm;o4X`87IbwORuyyHQ3Zu8UbvCGH{2QrVMvj?aG!b+z{dm_ziUj zLFeE=!Ofwm!eVsSM%UHQ7JB%wdinQN9GDPoLm5M01~w9Tt<5q<$O!}ToKy)dPKFdp zMJb{61Z@Dk?39?m*Io4hTv_$#rP*ZP4wOr0@IsSd9ZTBoWwNo=Mi>j&T-su6+{;hi z_v&k(oToQJ@{WkFI&5=7i3ahAo^E$;{8Q(F58XU{BoQ16b8`DnqrN%(Jyl0=qI(Us z(cVn~QrV*aKSg(~Fc?)=Ov|7h+GL#KR5jRgbNa7{lr%Ve@6uMtaqhZw!I;6VG;hSv zcWpX;KYb$x_W91nlS_j*pBri~R9{>c1IRpqyacRyZAS=Y-8U?e1pC#r0vyALHdXN{3lUVd4x zjkEQ0hyKq?-`z)OVli|`T(`m3Wdd>Odv$9Is7oDN&5bsv&}0h4acY5)AmA1-LfP$~8I!zLce z=Wu$sR9t|&-c<4u2!*@nk9_KtiMfyUr5ybrR$~lXWu(1SG-QKdT zG2Rl;Ks6a!(z!r2n)7?(y63AjX#GHk-r`0C>=^Dr1Q19}ZcVBux6F0WAD-MYHwLh} zZt}hXorHHjb>~yR{&;y?y~U0N(VI1cyaV~@Z7`IRhP#THwlr(#vwHLyIwLn_Lq%`p z$5u}RoJhKbdZq!Kgs&2ATyO;NQ8jn-kR?V-L~6Y=-wpIV2?SJxVhLmCiA1Fp=zsYv zO#mOJmSv++b<8w$nM*m2J@05x>+@xFSQ zSO_b*btvHL5VUd_@M?BTN*^6>@qF9Q6!7h`@tY_7^3)@>5zz{)0q)u3Mc;gk5`ZP! z>Zlgx#pe{KlAfXzLUnii#@r=Ky1KHJ%1ZPRUEq{YK*dF8zBh|A^67lG5Gb)%tBk=c zwCtmZ=#Xl5H5}KV$7~O_}6*x6NR~^uu&pa~k2X|dNH6=AWN9)B;9HVbg zTnY$@g-HgaOM^qlEyf(NXUge6{Ktncxb8s7`Xr7J?QsjC(+MFO9NpsImmW_Xp&iKv z2LeK&9z3};1S2KFMbXnTfr9`q0$z0+3>nDn?rd(kQ!Wh_dver6omt7tM+Rh;Y^DUz zx(@tnk){C-LYnC6BN$oz9WhJ+v|&QrOnZt3Q-5Y2gb>L`R<9!`!C~u}OVFbN z+>HPhL)JY2P-d8ki32^Ss)*9of#nWWw&I3IVuGy!Lj@dXm&({Eq4~yo+G1Vc2e}h& zp9PSLi7n2@0;$u(nHd9ceR^i7Jgh&M!qBa)DncVFk5CFF)Eo@}49Gpou1(9Y$QDGx z9S?SMX>jQN%biD`n{p;S^tUs2_|3W6a6A^@h$i7k)0(@t&Lbt8!-DY+?jra!I4iF? zeBtOf&q+D|{fpQ7-?{Z%F%zQ;SaStcn|UIho=8M|1Op>NEX2OA$xrxd1xX@DCxn$D z`3l*CKPSV1zJLszoEPbrZmD=MW#N{px4p$-LZk9bZ*z)>gA6gh2Yt)&~n*eHAqaGr=?A^KM z6Wiga=-JL~OXu}0(t)+;)~IBp2Zzkv;q;s8mP&I5X~y6XWvHjrxj#IK7)uZ>V$}w+ z$3j9x?J@X5v)cxmhfascO=ZLz)$K8;Rt;Gkv_NGH{atQ+3KzQ;CL(sDW74#qiCt!7 zNoLTm@}#}AsBT;(f&1M=d^g@=4Zbd`7yAVE!34;bQx0e$zan3diw^ug-)gU*p4ZPm z6&Qk6&+P_Zm#HM+wr&rGNPjkDHMo`5AT1CN{YW{r)*{H9iry}YiqB_4^Q_S8_2W5 zO!1e#vQLEg3HU;@>ZI1;R*}`k>d4+;Ip0H7x7Y+^$JEtr0c3<4Gh09gX|yWcN7q&! zEaF;Vg6pXj#R(n}OiMF1MNLby=~3YJXWe2gR9{R#05#^dr=CoNz`djjHpf)x#+x)M z9OvK<;mRB(gv^nqHE>*vsF5KWgh~Vr*B~I&nAXA?)Le7&AN&AoLYOnS5CF9b{>ift z#?dnUAe$gEY>(r7Yp($rh%(z$3$s0=QYyCf})xD1VEt zxPq(XY4)oNYG)Pl{cxVuonMy`9uHt6a16q;zK(zF$#<8G+fTPCG^Nkc8A1hPif*r) z@0rp`QkdG0r*|e=sO8uePkbXPE8aKSopY}{^O@;$w;Pd1(ctUCPpt&Mmf{4&e7B;M zG)1tiO+>B)-_;aYJK02WX^N~|)JEt3t>}QF8V%-BXY;_!b3FbQ&0=Ab2~P0}Fb>oN zE!!6LurP+Zeh|91;{8?zyK(p+m#-*p{Uph6wQJOzJ^6jh4S)LhC6_Kk!=ww!Uq9{B zJ$mDw9C_ycdY_t0K?s4+T^zuNNnp7?G=XVnxdRdfrAhH^G+){LlFLtcVTY8XAB2hG zN^7X2dTyy&Dist>pCFq42ZKKf$!3QYJ7#8z*8iD;D4`T%`x4XE4-Bo9y=otI&1?dA zw*qMR?5q$?tjY#4R^74YMWXMngn{B&Pr@2QN2fq}p)DQ>2}w5idVs~qu$`9csk&&u zTA7*?PNVhX2H%>&{G4_gJ`qh^kceN_u{eV$zl)0|ATToe0Gr~ur(pA?R~VjafRe0A zT+Hv!Enc}95Fxq5i*qp1h6d-+-<&*p?z?ncMOyO7E{q<*W`VM{Y%6F}b4(u=I3JvO zO&S*@MUhW{>C%^xJFM*Tse}g&64l!><#5-M!*%5ORQxd-wgJs1nv*om- zVisygro5DS#eu=<;(>fFa51U&&?VUQtTx{h$Bnjhs5lE?B#a#0dc|3K~IYeFK8L~;V zP?f38i_DxP%CK40p^2*iF#SvXq+gk6sD7WdqXqC@7Muz}%4!RcO{;3AI$?sUL}o_; zC5fR~aC}s~O#Dzt5f?6`ltNiv;Chvhfu&Un30_eDK&f2KWJDot1FE_-I6u4j6FdC< z$vG+K;6ILg=ky&<(N?t zwJ_=0m?x_}3Ogdk-c~Fj;E87r%aHY%{u@kSzXNC*_e_BSziiD;)+*zEx>9R2CB{`i-(ROi$1u;3=@~Pquefged^MMW5B;} zmx}Z^b;G1qvaLO(9O)QRwdyGNYnVN2m`jK^X>jyi49?siFaG71&N?g@V%!5CGxlf& zh6~%H1z2L1J*u3g20tt2e=Ej=x7&L11Li(j&%&lBwb6LD@s|IH4y2gdjA!Fx&5C6Y zbj`6lnyjS}yxkRmEz>3kzggImbh4erNOmH!Kqk-PH z-b@4F0>-Y3uNuBtoUhI;txz}Obd_;bty~>uHo}SFd8i~RXI1&;32qN+N-AB$)jq^n z@wX+YF`^VPr*hKyfpWg0>)xhzTKuP&fNU3+24f$X2cbrCnWfJXr7p)xu}Rqg72%1N z^LfgoWy6sK7&D@86MS=euk+iZ$EBRleRPYiozCdghU0X6p;<;$Nkm(CpdO} zK$WS+lfbg-HYZ`?Y3ky~yI=<(#5Z`Fn-gxH_rnS0AM1m6jbn-pzMj+s&ZP-l2FmdS zyr^a%KERCYpFrcvD=TI#6Nt+gq{GKq7-7~Cko}1pPBBy2ht`4y6R$I>O!i=cxR8&Z zrvCZ72^-)dbcrXiY4_sj03||uadbRz#JSsyMhWc=2Ospt_xI6FS1R$N@Dfo0|AY$U zIB+)&ZQMvZkS2R^aO*;J6Ve%q#ArC99t~eOWV73jz5%*@^{b!nKCg2xE!Nf{4NYHw zmin2nd51GAx}aKU*h-qGT3Vhjx@W1#+~rtf6(e3kZ#ESdiwe4KMvFL*UM3JHbB#wE zSmg{GVZ*2IHxkGbrpC$8d=oBA>lI)Iz8+z*YI1VGR|Tvyi&06PUs4{-H#)sy<>*9$ zwz6b40&6+FVgZyHx8i-Q%x9OE^Sxxis=KeYGYhl|OySbt?DyPXoKugOo-z+I!Nl_x z_W^pEih)>BG{8tG5Z!R(5(1~P1nJ0S*|JN0D2O;?Ko`Xg^arZL(|`0^_-qCzZBbgosc2Dzbc(CqRyY-TebWN-fQVCP^UzZnk-*0V2XP(F4f5vv8YAK9}Wi z$6>@R#J&2>@Vx}8Fek6p3DYEysT(cOuniJIk$FJ8StqSFfNUr2*3g1@T>y8-|MLCb zIvVM$|Ct}1HEzcPgQ1^I@mb&PE)+rI%S1IlIeb^zP7=Y37x}uEiH_1`f?O4_yH3=! zQkRRqonB+Or!hg*;MT45xQ<&5-%mj)92xL)0GvJ?1FIze#<3s@n{?r`(b)tcu7N^! zct9>b_XL_RqQIr0o249m0#D>fJl5QqgNO~~Rj#+LJsH42=nxMER>jhvA;Z#SBk|gM z_N0jtvvl8RL_4Oz*JT2yL|#Zv1lU1uyEiK7&h$HGJ|v+zRBHS|9fX%PO&X!Pc0~Xo zp-}P_SqmYh(_J79ulWGchz94y88arGeCOe~`0t6Mj(Gfwrx=y!ZMSeg5%R^{ox@pg_ks%`LUFYEc+ND9|82KRj>lcCw>L`*<90`+~dG zwHPQVM1z#{;z|-$oBAT8c=e5^EY%Wt%2F#i$(!vb^G}{JFCxRvV+wCY%oU{?HBMQ@ zCJlAbkJm+5k;FqlA8K@_ef5gn@A#Fz<0yKuH*E~>I`2bk8Nw5%CK98Az9KAUf?Jx^ ziy@uvZvA z<+KFnVR6h|KL~!&Z3DI`QG}$rb0Gw?@8%#i`G34uy;Tp)k~L8mKH97tu61MCv9GSM zqGhk(N7IyY@_R{j64D8zSGqBCE5kDh$Z&eaC?sxH{-I_kGz!A?(QDFXEnd*oRw?J& z=pi$sYaT`AD8Z(B38*(!BEJ_K2@ia_+rOLearN@c&xFvUogKO_1&x68Y(<+{JyV~? z@2c2AIuD1o5>Ow3prCBlh+xU&3!P>Fo^ZoS_(HUusf9!1dPx$_O2)Fy@~=-Us=Tr1 z!6|9tI7{0QaTUT*@tIrf$q!|KR&F^To~TEg05U?GIHVR;sJE5#zyjS>XrH_fEUHvy zpkw>yygB-AP?h^gH%cPdQK%`DfAGF~ne8exqS#2Y{Nv=&YQfD>Zz`h5p7@FM9{`zW zPAG7^+Qe8mCh<=lnVsDNOs{+kZL)EAQ+nx5CD`v_@avEOY@V;Bt|#MLMqQ&^IM>J8 zTHXD#I6W)V#U`a+VIK&M?b6_knzH)#wy&YaUq3{U0hZxj0tKzxC6ud1gE^659#}cI zB650*YR0sD2NDU%J7yBLLnXR2m|(DZXdRq2yHzy1?F_iJ&hAirv{?ql6vldHbw?hUSfM zN+7O#=*qY5JN4p?Q%=v{Hn{Q^Up`YSrbb3S{f&DC9_IhHOd~356aXT<7l_9q(px4@ z+`Qmbw~Gjg3h-^vCjDEpP@q=5U_(5-|2)C_nStjyHEg$_8;MR)1?2GF_?D5w=>Az* ziMI4Cis9S&rSI;sX=d#rthv8J3|vBNo49$CV&i6#^N(d z>rU$)bPLr3-QswOcv1PA?t^?Jk(mbP;-}Bu|A|{*7w8AszsVh@*Om>84-^P|An zG$k@8)6tk7w=BndH>P>f;AFSm=+e?_N2Sbz%! zS7){WEF?Q}8#prkZG!9Dr!4hQf&TY3kIWuC>U7PP(LGm=IWR78^-1eeqB?yAZ4Tc~ z4PYU&k0DTxya93t9qNj^#ltwl+fSH~kYFF$M~}N6zb*Zd=hG=iKggmlXki^{qob6; zu#aUx2ZSpk4cVX|#327|niv)1p;N%PIOo5lFj-w8Up-~YX&fOBoflIWnnhcqGOvh+ z&5Kyb^geZ0)Pfh-fo(J$9ZIj{v*nRG=j0N&G?=-VhZuHf4nLee+|0<^p>@LMt^2N* z5~Nd&FG(!Pddutv{U8hwU3ZctQd2-M5m33MA|2#XX%?0cp1%}`)C-Xlz~(w&W0}bf za7d0KJ%q!{82&$^gQd5(1{YDjtTZsWKf4?;&1_M(AMqSEUeYIY7U~Hdv|EHPH>=rd zg`6~A>lx}Vh|C8i!^NCtZYdDCUye4DNzp70bgT4Xhmc&SIa;w%lCi$JS}h2LgQClI zT_`@c#Ko)=08?F#PH*_ttqED`huGAMAC1wql%Qo`>7pT$C{&?jO|$G+yCsM!)>+77z>{fegYK6vnlVjz zF;l|Y+abQ6Cn5u1kB!00d20DPwJl%iSI0xB?oH{8S$HF@{y5TAjlSFb$dL1EZFrB( z1B}J=u*j+GsSHJ1C-WIy)nkX1U?yA1xvsbbThiX4!9;1ygK%rhVP5NS@Oa>!rn7*4 z;}~zLm!lsdhL$auO9|$y_+5rck!%iU2b6w*dI#XM#(c|UaOit5m(L)Xm*Kb`S3vkf zd;5c7T^gKg{`&pj9+~8Q ze(T3onyxhYq~1WbO;1D#HNP*r=9!H@cFu_@XQOZ5m|yJLt` zHgq!tz{~vO3qkwbDD7o9bN_pTiGRFbA6BSD1z5K~W&ohfFmfby9&HiIf3S@6`~lOB zl6x=iu9q}2#9o59#P|iuRi?ol0~YC{i+X3bz(aLXtv;i{GoRS`L2Kht(mP4W8_|8F zYptr|fPZGuU=`gG(|H79P|JsX)zwqy&S&eiyhz`ONKCG`YwDQMb}KS-S| zKXNL5B%1tFq1gJ}I7h=HP-T!Ol(T3u*+WgSM{2Dkj$B=NU61oRTOgOW)zQ$UBF(U$ z#}B0^V(`<#DE^+*#ow5FuW4Zy8|0k{GP!AfGbaF9ScJAkvn&!40lgMKqiRQSS0mdd z{;4z3t%F-4USdK3TReQ?0k}MI%TgsPe;PW9qWU=yrPj9%NsEF#v>Ix~j#_J!Isi=8 zD0-Y$2M+oxOVjhwacFH9y|5m7x!w6)VYdr^{NA9R_QDpprPg0#Owa~eUvfjbHZVEMb5+#n& zQ-sl;APtM!1{ewBwql)=?*;Eq-FizVL3&3Bx^U47zR;0J;m+uCL$XXrOx8GJYZ0~< zCNlMP(&b1wN&66E(BM4rx1YcDsR_HK94>A(#$AHAbkhpGfq_|~0WLz9=pkX)hS{E; zQnAujD(2M%DxN^~d5tDCsim2)N%Z;!4~bc4Ey?%e2z6D}0oCP`04hR{=p0LVK>X{< zmT_DknF^oQcJmQEtxYMjuE zJ-B=TW}6-jz$}2r5C$}u#=6cg?z-c18^5l*nOQ4H$orZ{H2AvghE^)eseJ?Wr9EdV1GC5if=Pq3 ze7}o-GWnu~Dd)+<-#+2ecUQ=<;TS;Pf}c+p4M+-GyEHglii2X-OaJuc>M47gdn%O8 z&%x++Rk)g_`AiF(_FElGDYkeyftm#AurtEePR`Wew zCAU~bSz&=Se!Of8OIi%;~)loel&(co*q? zkTB^7X;UguM=Qlu0&GQ2PB~|Ou+O%8K7D$u&39~vV+uf8`Uks1+6?fWFSz{dgRB1V z&0Fp{Ot)K0UMze-MCmcIm-LHEgJbThz3=z`d(A~l`t<4~kJ20{q4b%+f!E0^a^UNF zHb^kf7%W&&U)n>828-J@EFac zaUoHkEYv_lXmKXk>#&g?iR$ z%dHvOM3jw21y)i*W0Rx*al{JeHLq8*3JLWbzEa*aa&3bcutomK^&w0((ZL$^-=6`{t7ky)j-iw&wgAkX9`_+#+n zs^6RHWz$hAm3wf!XQa%MC~8d`$gRY)`l{6dDY2gf)=;Nx7nTrADdLzjLMtPsL`2vf z^_YT%S8$8OmE3B07ou;keC+oBK4Q+UA5S^sem4EFd(S&Z+n&*rTP(|LoBWJ=1PLG^ zyQCFIm75sRrW~SeK(TvMHsN1*ol7%K%|uW{gS&mbX$HW_G^6WsGAp~NE`#Rn>2lv% zGvA?Njtc>F)87P&_6TsOJPe>9B#17WRs1xh+21ti1wJ^XsNtEoTR(T`|Gf0weNqxA zYSWyb94d4{ETiHJ00vMIsl!b1++2j7)eo(4s7$ zk7YZ=i_BVNV$d9z)&g(TbaH7U>i@tvl@sv4E)C9eJ6-qS2g5t*_H~D9(RWx25W9QS z`E?b9J`~?)2f6{Qcx2mo0G0j?!6Ul5WLK&|Jj2)9MajLT4{%15ZIcNeMG<*^4dBWA zqWfH=)N7JAQ?Qij%dw|;&YRPmX)u{9^S}&jgcjmhXo%A4lkU9d$3Mj;* zk9|DrpQ;5*-1rT_P(u{zdACByRdj49usrYt-puvn8da-e@g%VuHI9 z!MzaRc#k%K8)3d7_4DrmuBt%JWmc5jp3DHx+oL!Bu3nCQko9e4-XZV_P$)}la0af- zJ9;c8*P}XvR&mjns!V`n5)_m;_NM;M={xRx*As0>x19CqQEzY9u9rNH_@P3Q-z#QeRN2F;Fzw6%3d@2AKF&lL6hx(bIxN^ymY}b7@>CX>v+bTf4+_ z1kL$K4%V%wlP!dBv+A!l+fy5(lTOol{HzM;E*hZ19vG$7@?fs23VG_O21_f6=tu~; zrnO`AqF>%Yq(bP(urd!wiA>o9WTNt&c}@{^z_W&Oc||Y3Y^`T6B!<{pd^~HZM97>J znU9!6)}=^&`EozXAc#(MFoD_HCwbY$TGQ@t5P5R^=-4utmdx5_o+b$3BjicIP$tbE zN)r}!NG#9#UGc3cyN}n}D4sBY;oZ7=C;*>nU>WKpsi)<7NU=^vM>+bhWJYPB)oMF? zY_R3^$3BE23jH85A$oS0rDk@>RSL`}F}93UOo8u*+E&U-W>YyOTOg_mfH z;h$*qNyMBqh)rXmAlp2;JSHmOA05rGue+hSaU<2fd=7;bGfUZWAjN~vsF$&XWy>Un z6|qIA7!*VT7dAwNN10i-i1SwH z!8m{;V8uY(8lO@xKi?*TSY5Rhz(U9~7k_BhLPq zH)f)}Y7=*q#fpe$Q7Lxy1bo2M6f(?gfeayT{7>*R>duv1rngYaj+hr>0^hX6YNfLi zccZ`ozY1q61~BLJYottl)~oSO^@9lPIDnGZA1a$QEE7kS1y0_u*#O>7I%nvx1>(yt z4W{?3({;nUM~+(aUs_PdQw!OJTcvRm25rByh$#3cLK^r;Cs8H}Ty$-~vyhI*WbV?L zGfLK5;I||2G>G@|TDxiSqrh7hGr6q3(|NDrJ(mXOk$FG3>)NrWqmK26^UnFpeg73} zy>Zu2A={lVC|lWwKZ#PiyP_50V4kujFrFr$yS<))V?TAzhkgxv)TO~$w$)V^&R=s- zN{;23uv%Qs9hjo*4v{UI^jT&Mx6$8 z%B8^pHXlfHx-^($4d#J?M%RsOKGgJe_y+){Z^HZ;31T{z1_RqXFcP!yw`NtNcP`F$ zsHYHQQg94e=_DEi;DdT&J}9xXqgsG$6%F{3_}&r+gd zV>FrvMkwO^y`l+4X)jD@4bG2-ztd5?VCR(csXL$g^~cMHh{!$> ze`|I_)kb4^SBHk`N%L41fyeab{ucef^IsY#G8r87#NDmg0|^h=M;#uEIy3Lmp-`TFTGs;UoI~P* zOm$!Qq9MTPL~0tO`VbuiIfC?t2=chfL8+raw%P_Zs|=w2mALE@fKC4d1F!l%c;db* zfx4Wy_`P0v-b%vcc7qA+a+e0@g+n&G?dThDO}lPR@54ywcz6G7LC|QB zO%>qwR!VScE*qLh09A`j#e}rGeP=WEzUJvgWqQ>@`FcR%h4sU;CMd2=bTghK9CD83 zHn2CF@jibJD5;mxX5!Dq44vEoDA6iSVN$Q5pgo{KT2v%YKjBBBXd%5;DwwBiSUQ!hVjB!J8~0173Dpb%h> zxDp6dn@z3wNeC4ItU3n6jBZG#EUsslKZf&&aUJj1rEEzcMLQ*wGFmmR|TM_T8ml2dgfJ9uvg8_g-|DYHi<2q{uRrX9Jh3ium1!( zjjU(AA1=a!YCbWfNbZF)Pd$}S>CIa!n;CDj#SAWTTTd;^L0z)=-vwWdBMAB2Y5_h+rohdiyvq08geF-FPvwD_bD(MG};} zzR*?YN|+5(j((6?M?W8^v9Q;iOt;XDprIQygcymM`Dz1r{@T8Oxbcl+_QIXH@9lis z3A=A~i?$LdDi}?(DOZE5tp{-_(;Qsgr7ucW3j+XRFeo0O!P)&^kL`cJ9XP-6rLAT> z`u9h_CfSJSl0hNkb#Gke=2vn_#MJ<6*)AR`_uu0DZ~ly_DJQq@#3z@|yIY4E`#W`A98 z-00ju;BEP(QsN}U{7I_-3PORFl!x2f3uQ@S`vSz#)d8=$)&4>!-uEjlLwWrWMQM3( zcdp0v8jKh$t94hZ=s`L5b^GXALz?+&n6#>u%xv_e?iehu$dl9zpMKEGjU63g_)syx z1hFuXg^ykmPrTQk)g9X=K{BQ(2gM{HwZUD)*)_zaD}2AYzH7$sS=Kg8Yw&f!zm-IL zW@SFRyqxa^ELy_ZM6;Yhnf8uLgE@U>9)xKR!ylU!7uoI{!TKV;nkE|Y#+*Q~XfR1U z^T6q@2%yd*Q2QBBq#*b(bUnK@uBbWfkl>jzpDeuLh6}HM^uc*4r|X@Wza0KgM$5wJ zh7@m58gW$<(Y&rP7r;SyD!L&>CHVL^kLnhXzrZQBdHq>OB{%*bb6)}{S5f>Qj&LS{ zaD;F}AcQkZ5=a7sog}+CNysuefP^s2&d$DlWOrtnncXBHf`W)#0xE}~zz;+a&>$Wl zBA22FB65QwhX{fQC?InGztvUU@6CH}hRpPv<-eZ~&CBk*sc%02Z ze(|@L+}@vX^h0dE0-^C+hl;CkP1!&YhSVd4#iH7@xE0-1dpRxHLdorPGf3vHDHLHr zo5rywWoWOCNg4X;XD);6sg!Lhv0dy7#w6+D>g*0hT;3?&1qTK?Plap(MAtGpEkxK&<#XZQL;4z zgGIPxALybHPv=~ufM!!(ftfyX3urTSn)(wIKuaNukI>C6J!@TQu2JYb9Te#xhrNVG zud)Ni;iBf!w38p`PB_mFp1aAur{1BB!vLh2S5g@vNFqS>|{YIiCDCH9I_w&$`UFk5`+)2)!;Hu=l)36_(ZGnT0N>#Sxi5 zRe34jotNS+oPbzb`-M#6@!2#rpG6mV0GeoOQsbSt;6s9M>Zxf> z@lcF*@&_Qnv$G1t*v5>#Wt65VP3v_@A#F-ywlOedi%uskYD3m4pqcL1-M1H@5SWUF zDuh88QjfPN1-jIp89bXo(>vOa=yOA-%UDc(wo#Oj1<8ut3(=D9#SWL0Qke4 zeE2}}y5q?GNSBb#-I;I7AhA$Ak!~A9EPj+mJ<#s}i}l$7dmtR0P9fPfUnr$$16plv zf)~|Rrm*dLBzOR(7X4>TwV$$~MXWX|( zg~P16xzITU`%oIQ z(SJIUlr)KVayq6o3w9^yyVN+RTyeq+Q)i=k`aM_9yZZj$?5WjNqkwEqK)w%U#vG{v zMC9E*CsPH8BPz-tjB!y*Nb|R#1v44@`ay)fahOQ$L@Gaxz+@%}dzRvbT3xR4__=HX zC9^q9cLe^Cv`QZFcy*7tH~Rv{{fh_Pviz#eIunk55Z1)7=vv!tAWhjo5SGLM0p6g$ zPS;^zLu4j2yT2PJ9KPwyTyGyggx5$g@Sn_^z3{}D(436@!DrOfDBqUx-ad(nx$gA8 zX6H<Xrb zT~#m$AMDq3Y^OuzQjgvc(lHW9GTqs9A(hT`q_7vA=}N6k7jn?fp)e;eu0mn=_7WB4E6^Sm3CH zv*C}HKht~E-rDK2XNU5&sL=_z6&;!o24P41rgQsp%R}>=&oSv^oKAZD;{Er&{`0Wj ztY_b8c6Qjk_5Cl8*rK*`Or}g|;69$liPSL^hWHM-?@FY0AYM`<3uLS#rW|(u@U|DO zY@kT}l4cnG6J<@x(xpbqZa}OL=^iyZtE@;)WU# zPrA)1J(jW0wT3L00NScH={8rk^0iZ2YaZGs04goDuq)l0#i4bT?nYWiIc2G7biOC( zl(A{^>27gF8UcmkFp*2Z5D3wjRDoxTRQ}op?$uazjrgMOvBeC+)TL$nFXy9I{G|a? zz{2rZvvcx=G;1d5d0S85!&iOmRd@->J)n4lfsYV9>4g1xM_I?B1Zz(|N2M5W$}Fpr z`#h5z==^b?_T`>A=d^^Q9|nFAt0@}@!jF3DW2W-ORjFcMFKyyb(B~`&Mv=q`HwNXh zt9lC(_VR+qW;FDJFdz=q< zF76|4(ocG4Nd>j1%b$Z2o!1;V`=B3$Ap?Xha^7nw29xm1enlu#X3l~+YU59HC{j_p z|87h7n%)8;;PNo=b461&5QGu-OC4I2;y>btza)7@#qsp|BQHukH!r2QWr>~nzh=AT}1hHGW zosI9a-!b8wb>aE5|NOs&+H6=;`~y)u#b}Kx6s3<->tMOJ=iHrF{TzlbNj^loYXJ)p zvbiGlu~4lzo*}BzS9^DZ1RXU|jz|4Cte0uR{~f(fUTnHv1Sec-98NLW0r#qY|CMKt zYMZTxxDg;u11o$ky%&GcscTX*XhgIJS$-PFdwZ}{fp_MvnSA;Cj}MUrLF1ETPCP3M11Pe*JTs~``1+{ zN+0W4Soki2-xms6?bXl8^{2bt4%`VI)Y<5-`iW&P*Smtg1z#HJp9#6pUaoyKjbp^9 zU#*Mqoq{+=@)o14$$+p25V9Czry77^>q>kGVc-$>ZOD^mo>Ii>B-I}JrP&-hU1kcPYzjqE=Y{Z69){;zIb^u7H+Uq5h4 zTRkhGinK%{S1G;7Vw)wom#dL75}=CRUOuobG%(s#cJlr`*v<$NupL zmu@oq!_5*7r7QjUw9Pf+V*`P_Mz@qo5s2drh=2zh0wJ6@#(MNstcMFR^%YQjD4&}t zHP94WzP>Kl@`0IAAK{-aHO}C>R&6l!H3a@Gy!=z_&0Zdc7 z&fZY+P9U|Pb)Y+hK{`CIjt-YQ<7Dc5=X!6Yi829dgau%8d_Pw?Fi9h@O@DQf*}pSVUC zdeS+hK+4Tl%1~THM*KcBtOdPArg5!*{;gv#JNH{%qIBX}(fH59j{^gI6G-uc8ri%cy4y~DA`X(^3~?oC8@D$x!2 zQ=E^6I%Gr6yYR?YMjj_Z853FJYb2Xll_S}n)1=qYk{A=+4XC@PQ+Ji{6AWJdn2m59 zv=UK^iEhRIhUkh|#W491ibgnk&Vr-n&#P+CzVqFcnQ7_Xgrgs%>+wMF>z{Qijk>06 zAP5(Zzzelbu5x=OHZ`B?$DN82u%w;B$hj8qBTSj~#=xj369E`&tyN_C`p1;Gs)dE+j0Zd00zL!IMjkW0Gw-vta{m3>t{#Ji>Ah zVNnL63Kro@J#`!My%}t^lSHUt=%Iy>QqYv;>c1uhC-?MbrpSODIU?d4^(y3~ck%2L zQhGd&0YW9Icmj2tF2G98frjLc(-|h08cEm3aWL)lOUE0AFME$#KtZegk_Pc30)2%|U@S5`NkakK~EIQYCOTNzr~a>;dv~h9-RE zEDQm$&@#SR|3eTgZ4092t{vB*Vjz8`uGz?u?+zbSWPuIm#Wza*gy>1f8^75+3#;Db z3E&Oe9@?LAsWJCyI*)Jk@w_{7(`2GlkMdM`oqObaeQ!`PH{SN6@-g3dt30Ezxeg`A z_*FZl8x&>7hgK0>I?CjM>BXX$M*AodyJo(9v*)$}izt2-Tqmy9yJ*5j$V+LFdr ztpY&DHX^k~2!QY)_K4_}5WnR5P~<#UypSf30&Mw=M{@6s+j*C@nk!Xak983J=je_G zc;D)RoD)9Hu-j&>Bit8n2f}k9k|HkgtP0>!1v43+1rJqyQ&q^M)lEB# zdy}ry71|mKDa2UUD-p2#N5BLLN1XgImh(hq|Uz*Fa@@raLesW`j#M?47E}tH)*k-TZ zu*((-d9`9BK~WoZymwbqO>6tXiG&k5lbI!JbQNYDul6lA_CQa}VgsjHusbo=&N$`Cm%I%GSkS7_i){{4tOOYyh(1ypH;%WsrPZXG zNC~J&e4G4ohWb#@(=l?VAA}M1Q=k&Cih4>Tko}3f^!^0-vv$^9Uz9|5HT4zcA~g?3 zz=-J?D1m8HCDeYqM&s}sGV%o@#XkfiHjNNk3-6EA4!#hSZgS3cKxA^I1--Prwzl$O zuNXq8DC`i)nM#5Zi&Jy}B1mWSU1i(L5q=qg5(^k=*z*Y_ULOKyT?_Z$og9 zkXGS_4~58yr7GKrZ04RI$`atIvc3QIoO8_NsW|7e{m(DCV*BH@!)r` zb%y9k|LWN%^2&)H3vw!HytCB1vXJiW4TlRu6Hrv69btr>qQ@~rPWowEJZ}s!7DQzr zNtFF{+HtT^U#lYhvnBW@Ne;~t9?2>MW9s1z*b+%@2RcDz#ous**-OlT;lxI4RkY{a8EGA8S=) zL3j)ZCl55k=qZ2@E$*bxFWVn)8NaO4McB8yo1L;0PKu0On4FPnOQXncAy?T$)5(}} zExF0cv{WjqqE{h$GIaIq6_y>CTuIa6YEo><&!GJpwQ1w+{p-|AnSa(4e~GD( ze9DMt6^hbFdxOPUIqCj%!PP~aPC`e0ddHh2CPRvkI1JabGAMZspe5)Rjibmn0ajD{0_<#t5?A`Im^MMp1QuUkI z?@V_e-q+K+nzuT0r3vGs`Sh@Mz8=;ZuR-uA`MC<4d^lp9Q|f-~LKdZ^v;8WW=Ig|y z;b@M`QlyqII-Q?h5q4f!jC`;}jN+JNAy{PMYhuo9yilt>T-DRv1Xg6TO_GDX2+!o9 zlQn1RO2K-HX4eaT_U|!!AC_=FzP-8l#P^TUipGAe!s^a<_e8~66v80lVUIxvQdCJ7 z;=}9Ug9_-kB4J>qQ{wPWM8V!lDy9LLV1%kkMp(PpC%)-uHLk5gX5!3zA7+nfyKn||o>rChIEQi%!@A^Rd<>}%dcYys;)tsKu&SVL)TPQ7lZf>L&sst`2A{80_mn5( zC@7WB4{k%ex!nN5gDkk1H@^H6=8e5drcfKiKGo+UZEBSYTii}uIo0@pN;6VpD(sjC z1~In|t^|{SecP)v-pR)dc~S#h=_j>`UeWp77$4F`1eMZqs+pB;mRxwcZz9b5qoCMdG*+O27ON~joH4kE!>?bP6@iO^P z5;SE=M(SUd3FI;A2hqQAWAU9jrZtgoa6F$uLoir`FAdikcM_uK(6FPs22U`8;p`ic5$5_HA4T%;&n= zb&ASNe4Bx^K+U}1iH|2nisG6x`hL6#~;M%d8+3|p7; zp$dkOQ%fGnluVbdLii87>r&&qvFxTTFaFzs3G*QEm*Rz5XH~h`)-1%LdKK;fY3j&! z;s#v&gJv3ulW#}|;omMb;w+&;kgn6iZc9CZWb8qhiyG(Qy94DIm7;rz2vZ|f0&vR= z-^wA?u8MKgAc02ncXk*2)1^kXv!2(XmFMNST0Q$7?df86;sM0kz-;kY%SWI#N=Q6( zBT?n`Q1iBT?gksHGnT7fp(R z8?4LE=qhV6?_vew^TQzGei@{Ha(FfbL^x7U_}^D6YF%g?WkY5!TGX~MI;Q9gN=WZ5 ziMCYgWN5K0ovdduR<7k}aiTm4ntI+uSIa<;$$M=u`+zTvIwRps7`Ob)$FKN@b}eHF ze1N_`%VAt47K9*JjI%EhX9(HFdqI?kSSeL%M7JR>%8tIdoVuPN_R(8I?%@ccXGp0G zoG?AbMY8jErk~hOl&f4*pPU z*Td4SSGe?TDnDaU=#(-0Vc~<8@dBU$_xTLo>$5bc%O^ol~ZlVk#K<0X6+2+``q9Dmh<#IC`-|A9h?k{v6e&hW1 zQ(MiQ7ctTG3Xm%4s6tny!#)s}>8P?rMf_Jj20I$-P5 zc%A*`2x}cWtiB{&;9a{sPF0x_<0M@wt8ET$mMnDQ{^+RtgsI2$6P$I8$5&A)F(4l# znS}L3g8Ww;uL8y7Z}9Cr(>BDDOO2HH9G-CWl{cb!YzYRkG^-Gl9@?kBYc=C9-2`RF z>z8TWZn`)R0r0g|HI2bT>b53*({S(lYI10|11z)Sj9U^HqRw@;pv%@qv&^^AJWwlv ziqj^v=P5#E7v-ZIM|I8&=Oood-Cg|>Fh%J1doz0%q6Dpf?jeo7{xZb3I<`3y_a2{SP6ZB z15Y{LJX1$9sn`O2CWX|nh_gNTtNIDfl!gK$Pasm^3K-A$3!CB@sy=^3*&^0u%Hd66 z!?7n_F!_{Zom^@pju(m)_!6`>#>a507LJ&eu%D&YGF4t5uxZgt-s@ZvL!~)3ryfxw z%YHZ(Bd*!@>}zky=*3<<6+W1Yw3^tI0K5Z=%#$hrgeP$s_MZMF#UpVXk~gwx{zWc& z_30Or@gc@?0ba1vpzQDX*Z)va(ZU`AA-sqq3ei&>-&B?pPnJ(*5icsFb44mz2Pa+S z?FVhAsVSfzgf|U=<&97v5TJ=W`XM&vu#Mwj8TQCXTql?z3RqgM@32e4xqbByT5@OX zqvwmgoG=Q%oE&dJ1XvLQA*`5<7ityOiV4-NqzId7ERRZv zPxau4M2ai{U%?U-X?9wDCBHK+g4bGvXotM?1z1MMEL2$XOmjBfPQKwGx9s==X3bP}@%H2J(zs z^BLMirQZj+gTJbupl93&Jl;|-p!-80gemr_NM#H79pbad0&E6?oyV`Vdxd@>lnYeXmQ8NE_E`&B8mx?fF%7UnUv#-7&_=9no+H$kX8UAmc`=)208} z^}6lu*krA=SC!Xe?EtRr&>h$Z1CqSUc<~+rv)<;O=<-v+5hz!`RbH14q^w7Pm5>)c z$n~yH^{#MInS8F(RX1!>BCncwZ7ZC^^Cg_r30F|UN7PSn;td2oQq_^#Nic<0rnVv3 zzhhifI4h+>7<96rZ>?34E%8f0Jo$5UEoi4I_0~QmjMR?r*b3$=%~g->0TY#PeecE< zKiN0oEL^vJi?J__)2>)d74rD}jNc3QkOVYw2#L&^ddA>0(m@pu{thHAHIBK~_qOiR zLkmtYg^q10?^rJDRR~H~?N@-TASg4@B&tmY3U)VJv%Q6E2Jz3JB@X%jv8_lW@Kh9l z5DMW+{5yY}0E2Jy(cAf>vmoC+dfkL`{rt=S@@CuTac5}=f^dNf%-3wb3t5;3b?$(a zz$mhJ3($8S{}=I%E;Y`uCq6ys!HdV>g1JExp1XU&zFG;yKywn&q;fy30Z$;B)JSE= z%@fY)w>|s7$%U;XL-|1bt=4XG{lu5?X7YM8K}sL>EI9wEH+Is8Nk-|zBy;K@6?TYp z%G`nAt6JYvwu6MocLoKQ8i|bmv)MfG46E)@kgw=cWAZA^1Lsx8+k+!$R)Cr?(2FTn zI(lL6sKZ!EHO_o4tL`BqN4-RrfqoIKr@~usjQ~OzA{`Z0Q$7$fLG4!zYJZ;^oy9Yf zFyOzChs{|$k2Ra~rlPPLfMG+DihT)#ve%xM8^XYR@QE~ic1ky0RilfN*#g4d%yP>KNbMIQCq0eV4Z8$lp8TB|X!y@k>4GboZI^IbCZ0cb;!TURrXvS)iX5BS1s>H{ z<&rMy9;=Gjl$MQO-t1fdD=SV$kTbQpLfh5}=aUn^GWfmqn#B$OtnZvq?K@4NdBYzq zf2Q}Sx!U2bXE}igsbn}RTS*x>$ra!Ui^6f+uQ$l0#_7N3u-@0!yFOtaL=K zRM-QmLQ~|So;6Hfb?+@2`)5t}ys>A|Lr8V7oF$a**@tP^UCPkDMwKv46(rJW`ve1B zd&v)j=<-|)#H}_+=iVz^(VcLPdU2iX!XI9#Cxd+ejkRu1e+#xVxY`rxBkb8lD}@jc z;YZ_LqIKY3Cr>oO;%)!2XO45#-4Fir%$AAA32%I!`NrtYl=AR(mDi<5N8_bh&3L&% zQ*LLH{3%jV>4N{nf(l&Inp5RZbbeMIrq558snA$>6gIE+KHttUe~ku(2%90!_JY$Ftu)>Is!u%C{^h43xm zJuqWQy7ncwDqZKy+fUqjTU=NE^EY0;e%NhCYunTK>G(cE7s=z`wyjoVk2#Nsko}h^q=;IMAAMq?s+Bl1XxNv$o0FMiSdHS%_UxO7|mM@qPk-K0tpf|&h<@)9dh8s5Ty1e&c5pMu9aH0<6)w2 zXZKDRmE?^yyOh=SM$v4H>iQC_d#iV#%IjiT=o3?LwFF8FimTd--vqsVlg_6fMDd5; zrWGnH25pjg4re&q!Wt zmA3_Iq7JAWc4|u(ikz|e3PIirO^~}RnlCjw=Uj2$9q$iasI^oaL@D1T(rSc=N>AfX zmz{$_NxouqvnP=Ot*}NibbYkC*w1R_dqg-iLA>UWw zu7t2FWJ{hFO_AdjVi)%}#4gMaFX($QO$%zIbW^yX`atGGwV-b>=~ih3%Xq$q%ci;lvth#4l@AhElw=;v5%BUSbE6vX9U5$~8sG7{W%}9S&N)?t-tCb{nj_TOd-;fC3LB zMVwq}j4+u8CPm@9S~=_G`4m?dy%e8YK{Z*Rb)Rx9yk3HY`Uwmw2|=x-OZgSq9I=$X zJ(8tN3LVxDqWWTYM!rkV$f=+bbVfqTNc@4=5m3#rNT)W0AfygQ0kT;vL@JOF6k&;d$iPcFO1b$Gwu+RjKL{l1fDT+@soHjAx{$+~Bj^ePvHCG$A=9r> z$Y{9|$s)lK(y{ioQ)g^L7l^CijZ;8m%(laB`+e)@yIp>U78(11FN0`loj=c8pH$>U z2!@D@eFR);+b40?DAM|K&b&D-Rp$_j^bTLpe_F!P4Jj@mXA?%1jI#oQn2lx1u z)LMr01dm8SW4w9xVT+%65f>K!=H8Qr?K|rdEfw(uJWXON+3`q;2+?O2_*SX=;#K38 zDXYnDnYl@8e!7(D3OZ<8;w_gNlZIy=L(VW-VbJ*io@v=fAWeIQVN2 zV8@7bFJCASa%^L9{{k1es?`fM(kovaLu7Ud{%GkPL8C&y&*6JZ7UJHL%x7FZ{->Ls zeCNt5I}(n57?9`1T{N8qke)uP)ry+9jc^& z{>cuikPW#!u`lYr0`-xkT_NsyFsA3r?_>e+X^)8A(<-ma;MJ3efP4M?`P&qcPv#Be z9{kg##+lvr(a7SH(-Y3HTYq@T@V_3e6>bbPr-Ga>tGWtJ>1U&yj zA&V9{dqOB0$&#-SOGsNNCIuN{c60TED9eFmh$e1)X<>+^Fa0vv_Z=||+-uL-G<%MN z%Twtr=>>fED)i#%pBGD2)?hRS*`>z$`d_|XS~hA@!g=Q4$xmH2^2>VGTlQ~zS}Txb zu&S#cRh=c<{z-hbm?FGx5S{r=Cx58w1!&4R{5@(M#K z0oa^Ig&Nt`TQ4CGTS}g7;}P8q>d6!|G>_X&hXN5b&hIX6yZeQ~UrIP%e(sEsKU)2* z0Ymf}4clQfGZl|$C(WhC6gzPq-{|9ccjU$m7^0zIPm&nLh(;13YRttnrj{$OgBw3; ze**R7`3BLqz%7>==Y&u8*lN`CQxnefU%YF*^)^~CU_4Uym(4e$rj!mf<_MZRyd;TL zjpxyWq~VV;h<*$(E;Y`~iyplBmp33Cl8>`a889CGf)HJ6M$O|W}10jW(+q*$rzU!=bol_-@bO# zVjOlj;kTE4G@@s~5Zwo*l-$7}@;3J0zx?*)P4iLO@9gJK+2`q-cO5W9>aP102GQ^E zJ4I{d7I1o|eOdWpq$o`R;gmdhh zpRD@P($xdTqrZ?{`-4GrH}QxX=T~Puf9pAy?VWJm?fB$RliY&`43T&2U9FWUCd;e*kZsC{TL#Y>@#vi4yH?utlq{aoO`aEclG_hnLS{L)TIj(!5@~RmxxEyID8Iu z91#8LJFTamGHt*RjU_qS*zkw~02~EiMC;(%=?9l?GW)~L1`N?D8vxNy0gHK*Aw<-O z@fekGc7FHCefGVzX}}P@P5S6K!z0fd;oCa@JMe3fktEp%0T%OUcj6H>!Xs3L;v1X> zZmvDMJ`nXA9(ijKb81`HsTwGqP4@vLZv!mmk+j@RhJ-vfo{LmIWL;gN^PoVC)3 zI4SDx>w&d^5OFMkfcIeDR(;Z>kWe6~?rqQAyil(qmG z&a=b;r+N8IZMSGP3L1nrdQ%3!S3iz^5FXhl7xI>7DO)Tdv(PKbw=eXuipxj}>ilf6 zn07*07`)gB_ z#su}z8mm>lI25u~oFQ``Qd+wU|R(=KCSOK^(~L2$IO z+oX9o2a}_6xM*2lU(X(uExi=cyTx$S6E?m4cR17jgJ$9A5%{c~%hJ0#)7gY$1}!uB zG%_V?c&rO4vM%H^ExCY( z<2Mj?9)54J!po=knw=$&zT5ibR}y;o=@aFZ5lBHqFTU{hVtHG-VV{wwRvVN(oo(w* z=dwq-9msy8`Aabkbqz@Hk3qrSW|OCe&3t`5o%pbx?pXt|VU9%$eF%&2$=;pLAR844 zi=Fu<^F&-4Lr5N_5mVEh5{J2BkJhn9*@~8H7?R@%3Hc2yJ5`VfPulQVJGIYC9~|Mq z1%8FJI)m2_HmED1dkU#cce+?1N6&W>K={%SG@B4ly!qtWAic+94kj>9e16bwc-4ds z++v68xOASkbC)qFV-gGtkn(e>k?-?WNs{i>lc*i2j5iMOlXrj!4{#NlF%K}+IWT8( zUIRPT0542;W@q58g`heJts`R|;4(BcqE!aiw`vle%)twGLQi_Xqkn?B^82?${zRkg zX>HBEBf)6Ph^L zh9+q4SPGDe%XegJqu`rhq@V&7>O5;1dR;nj7+$J%_|)Z9h|Lt6aC>D2*A%6)#Z0La*@>^8IFq51~%bdd-sFt3+=P zqGxm%>(LNB8Dx8Jftj4{mn%GJs69~&3^iX|a}0t~Tc+=Qbf53(UdJ`meh@@Da;QTf zgcbGGcqBK>Hk7iET&y7nx2_#QuBU$33-w1K>>nJz@BDjIsv*90pc+x&w zOh`EM)n%ZE=-Fd$DnxL{Lvm^UdI$o%2q6$&G;XgBXB4m-kA}s9N@uy$I0q&^dF20^ zFHJblF1z58E6@0mW=7+n>_JfQpXk;qP=qV>xHaVll*Xkco$Kc%;Zy@4AQ-&W@?yw` zh#P>q#?a${r#3XeVPVIF5bja2s z5Y-*!Dz8fyY=g+(1~!%&HE5n^ZW4fBx%Za!w_Rt37GPU~Bd{Jwo@>@JRS3p5NbCam zt`epbA!^rVW;&BCA(Wltn?ZuQoxPIq#kcly6M{s-8tD#%FvQFjRQ%0k`;-gp>D9ml z4w+qxg;BW%5$|l3tAa}2Rzg6rhX4o@TEMkhC$LwGFIy<&3yLrW*OkF*YvE2oV-0kfyJd3FV`pPisfqh`^L9!{)L(&~XR`+a)pDg)K{ zgH+Qu1f<7_KWYYVP5hz8nRe^Co4otZt_f$!zh}ODL1Ok=S)VGeOONU)DV)j|SEY)5 zy;O>cytz|>FL|s9ErFln>>I1iJ6vz-JGbK?s!n&FKt$EpRUs-podQ_3PO{#7(OuP> zE_G2i55O0w1Ke&g-7e8`HAvKW@;kWvC^H>ksFiH_+@7&;ep^$qkZGca)VzGU0}nF^ z(PsqB5z}M&eN4`{S+k&%Cd?wkbj5jU3>_0y7p5<=?!DQ=Dc{Z69$&0(Ql$zIxJtFt zT@_UGA-gMTKAvq=|AJ~9z(gwi5Cmb%QfszQ2mt@h$swl?(LXF}c|TAYLz)bXC*TI` z{O^69=)K@D$fa2SJy|Z zmnV9d?`5fdnVmIY5o;ECLH}Ba&E7VDxmUaTtM740D~kp z{;=a+>`u44qy###5F(pEiqW?m^z0&juYSzdgz%&x0b26#e4&ggD1;w&^^xud*NbYK z%E{)kt9o&dgPJbhHQ$`LH8J5_v-NXr|LZ?~KICtYj& zLgzs6UM<*D@ZfOyN_QIDy7}I8#??1=dr}l~qh$Ev_Zes|fmgz(DhPy6_6DVbe>)5y zl$j&{wxdu?A(D+2GgY9(cPXj(syH&OCtaTVqIL3?U?S;9_51STa>;WDUt97Afu2`BzIWm zeHes0_W8NY9m*E--x2Uj$fY`#WzMeE6wGZDESjEG_~VNz3xDd_BkQ3$in#9_1(J(& zR?RQI6uwZFVUgRD&G(fexq{EApP*%k8_d3-63Gpr@0ljyhW+vs9zMnQo6@*A0=duy znohLspbFAXlV3(MC8V`w7BvP_&4N--zCln>L}rL56x>!dQm6Hmx^Qcmn^D;h3)R(r zK?75XH8Eq_t&+He=!>}26DdBvn9nt-R6-Vx*NG@8T<-Kx{L`gIVwH%J#t@zk65R#d zPre2!>~U8iDm|T!&(>93|R z@k}eanM}T?*X?FT)3PF383budpY6>T2SKPs6=0J3dx-D9F)J(lOZFmkB;1rX<;fph zisHgH1e^3dkX2rnF4X1mAR2e)01q zy|SN%Kh`=6j6+-ObNMz5lB*JhgD51hkbdi9FO8`PK{ziU9{NNgaw3ElvLZ$HF*whM z%0aC1BwH!s0_lUpdrzE+IU3|a$e|N+*bp!kSrS4aEI9K8drNt) zuQ*a)DzQkd}Y=m_%czF1we&6DsFz z_@m{|^d2==PZ#^mMHSC3tw{B`O)ecROPS*%9+-e7c_n$w;{Ps3DWAR_f3Vm62Opyu zNS&{B#L9O%ePG)AN+p!|2s6dwYY2x(PCQYe6Z&ug72i)X0yLAf-^`*!L0>NXWKIg| zs(mtp8XrBYSc@tINtj}P#7}FOT)Mk_L9!qC!P+h$D5gH{?D03OymiN=T2K~S3yQ|l z-qf4#UY*PLxan?^m5Lrn2#T=9K2oM+R#LKk+f*AtT$J){b<;ihT0XyROGKQlyK_z)BIntN?OgV}L+iWJ0H;yc+vb~;j-m~w4_ zq89VH zNtf#hij_MqEJA5Xf>j~ZpMeo;>v6{ofD}m;4uoU4_LGRrpg&6a2|*~Dpo=GWrda0F z>yNxB@!Ul16zq%_rieeh3%+fvI^49Vdu%aNaC=M3_Fvu{^pC52sf?_>o&plN+olVN z#d)WY?g_Z+0jKArtCw8zt0(tQNHu|jb^q++(H;~(qlpQTV;uq_JUIq0*eOg^h=R+< z^zo6ZnSD8xgQi$B3Zt$9kLDw|(@uXPI3?I~ezsX^frEhhAonBAw(96(RWbu z1)`_6;FZ9Tr^*K>IlJIL&Cci@PCWao@9nDvrXDTmqvstAHKZ!glm6KYC~Lu<{uYGe zl39IHnO3pP=)g=FeSh)formG3yhR5*@ySE~y;67FKK>x;*ne1)m=HPKAr!)nx+BjW zSvt9{wk3uW(K8~HAX_3to^@)882dPgQhY74ry-)!(|Q6QEBUr=HQ!r^;BIJmZmUtI z#u@g+rw2WFF)ld&>j`I__tJkB=mCyvEm}zDI`TbbW`~XoM0VaJeeN{w#N1W;==*H! z&jrgOr}A~c7=EcDW~%AlH0S4|3wIwR^?e(crVu#BVDhIX0#dCeK*|A9Zz5;&i68y- z+Qf(Hg!6vqW!pcxWv3o&OEosu&{Jy6Gx;HU7SimG8&Z)DRahal5O-Sg6)n@0aSNKR zkUJ@pxSsjsM?eK=B4s#4P`X@C4r8yIS<$Uh5omx^hE1FLRpiboKB9ht(F!}t+u}PT zJ1W#dA&Ge0R4mKPz1bT;ppvwT=E2FU&hbN_O+sJXxC#Ur zZp#_95mpB(e?VPBltKnUZ=VDljHlpjjcTJ2&ua8lP>8G^p~)D++*jYydT+4FEUmM- z4qjMSza)GJ4JS47wZ4TftF||L zYC1`5KYWP_+NBm#f;H0avmFcjGPJM{>P37~{REZ8RQ%Q&2N{5xbcVe*NlROtLZB@Y zU2wxg5%6hw3{XdLusQ{{sa6~I&b1E(rGMj~OV!Ph5D*cDdYp~2Q*gaB0Dpjy3=X^5 z+ho$_N>^KRSaDx1L{PeDKjN7Vm0?uKB3CBcudL)C47rMH>0l)mw;e8>y9!sKVqmW} z%P#Y)dQIC9U=`i{5DH;WJfcVm43wFM{10qzl#62IoWNoyAQ-U(XK)sRfvi$^m%h+GM}%J@MtfU+=n)upk})z9M|*knQ%yzyrX`)AbWhIRN_v zDKZ-{=ACY~V_Yi@!X@Ppwjwd0MlR^wA>lmmvqzse^SCLJW8ibacEQJt3)Y+O_4YP` z+Zwa!Td9$-9x7++wWv5=)A7ezoq>pbGm4xiPea2(O@VKf3@Q`cmyOE~n5{8d1$j;W z#?YhK7H4R%X7M?g@zA@B=v`(ettT)Q=-DfGj%QGwdJ`Uz1Cb%A`NpQefzAq_Cs4ns zF##;|z#7#jH7c;*lf{iK9lMM{ES;sMn57!6?Z?BBEXrZMemE5_HDWgpLS*oz%}*%q zeUR3P^^|5!t<0uZ;Cwg;Qb$PClZTp)&{hrCR|uH~9>9jjp~sU>qCg=_a0daRMpAun z&l%_Z>@7Me1|E=*sB1ki8ccN$qDqZ1jOJm0*r2K|srsyH5&8uJM2(aK!8Kia_mu(F z!-ncrdJiO$)JQP{91zz*Lnc{I)GXburVm9tlVog}-IIwFHAX9%2PPGd?e)7v;|Kxf zmLNC~R=}mk*=@7d5$=ma6Xt;t*eXiz?gllULB-|s2AN*N=h>aafaeSY*5HY+hvLg0 zha}_{$RRS%=Hdgj8mRJ3VP$%8Qb7gD|3&04H{`*2+4pC?<1e_NrB|I-Z zDP?cvV|_G0Uk(^M2RM)h z<*ujGj_uR$R5UA`HA!4h=eVZlk^b8=FWXsKR0v%?h7YNqV1Th#ZtOZDz0=(T|Cwicep%(Ub@sc&kuDMJ>PLi!aPV{>RG*%@+-1A z_e2%#57hM`X>_SE%QW-ACV4vkR_kIRBAP|%VaciZF7^aQiPUpih(JA;_ zt(+~}ucBB_@-JX46Wk6@E;SDOmtzvQtu1>)lq7J5rUe54) z1<|8M4zz!&m#?2n{m&WrTdn-&(>tm-hcCxXg;C!#l<`n0oKZh(Y2zxBMwSY7bv7s@ zhgKvQr?M&#DT+t(DE<~tE;Y{Iw!7l~PgZZ2Fc0)pl}(<%g|d-Y5Ue*#?}=6z{<>SlUnD{hdY z^8?tZpPlXQotZE6s8f1t>lN8zA?;qp$cEgaA{oP4$F^K2(%O1S%fb|Hd~Vv{t?C5_`zyC#0Ck{oonqElvhY z?PODuoM%|<0PZ9JHxdh!j`jfPT}qjHI_ecqJl?+-{tX%g4}s?;FajKi(AQGN$pYV2 z^#7Fu@K|7?PC5lLW&k=LVW;vjpxqJ9M=+c5AN4Fa|EV{2iZ%G_F>T)i45R4%3 zRM;+VLC})8Ww|=?B$3t8rU_@}MGxNm%Nusm@y~kJU0%ZV4dAgl8qNvVp#{3pLHa@L zupQNHK{e74X)0z(D^}P(D#FKb!e@N@G2o@Gfrk$NF2X5}qKo=eIOp|XAu zb~Fwj>B2}>X#@s}u&NC&*xBrejKg90QWf1iGV3~BrQ-bbifkb=JHJvyry;N~SE88{ zLJ=Etc#&6jdGYIn;s(eOOAFQd;me$L^uSqDYMye~`MYW##-0}uDE>hx@SnI5RZs{o z=)-n`qBc%A8F{6-0GyPvDwW8003@@$g@s*iPjDuMmc25Q8iWd?Q%zEQOE%$7<6Yl{ zr0M4yvGEM9aeB1b6V}9U^X~)oNaqhl5(iXlQ{uZbfNfg{o45<($- zISen@%_`EwJ?R3BGEJoq2*5<6S-j;`1*PlT>msu;1!cZ{bqA}wF8JeF68qA_JttU6 z_vQe_%duUX*Zl3ysW{TY*M#jR(jDvo@+*BEsPejWpq{{re~X3|ZpjnPY}}IYQezTP zgH=6k2{sYI!Di}_#BnXd&_(@yb)x>^t5)s zUul*ROaM`>Q>b#8R3&x0P$$QrF)>IP&MmY~jhCq6ETs`}5;rSyR9+u&-QhiD}rrrXelk_sbUV1?v`+_pMUvZ-fY`lYpG-KLanN? zJc$1pHFgL`WbZ?Wr1yu`fhdK2gA#JBQYo4eln~7cXfv~E`gKrOggkQ@eS6aTSL$tu zr1aK4HdHC2XEWl$FfpE5AJXK+CPs?)Od<<6vK=(0+AoQHIg zMfp61vVxNgXw*;8i?t-(f-jBis*npgtdy@~r*h5ZCltqn!`hKug;V&cEbakGbM1R# zJ%b9!!nAMS+;#9FI8>=0L>BCm!89nOZkA9a(dA<174@&CZ-B5M_yP)L38ARoU%-F< zQmVle-^;OdaH(-_xap}>{{q~Ksvo42G(+q-PvIU@8~s#pIhiq&|5x~Smm0@hnWZ0C z&rGU=JSBRO-$hB>$)Dj1ctY(19qv*iH;NvrFF8F_wnuGfeGD?mR}C%FDK0f8DbqY~ zzhY+VL}DvV67K3yB2SH(x8|WCsCzCUm6t(eeJS27T`dq^$FHXd!b$Pc7hlIbw_U#$^ojL$|2Qzf*`hatxLw#>*W@Z+FJm&)f^;=w_`ubYkC5S-o{%PwHH; zt2?Wz?RY9Jpj%DGh(0qWYR7&wf(fqKRoP66imo8JpR~gP5Qaz_6oMo&8&BZacZTvR za3#49V6cc{z6^4yF{h`UVehp4`HUm>7ZLU8c@_CC4;)u{T{;k#@1pj@iWJ>QwTEs( z42&=DBKS^(%lIxrKkXENZ*R`Oc)|3F9@Y>N;fnogjzcV^LSKd!_Z_neZbw^pUPZ%* z8<9Q*U#2`i;rwM*ZvHR!OKUB3v^8H88oJ%vr7WFvAsUW~-x9AlgEa(4m@~BwI4V-@ zACf&t6<>pIVmT*W;E(@5-|Vyx-R8FM-*A~`LM&9*C91~~Rn^xjRHd(JeAZ4R73*8! z$Q4}N!jkQ1%VWE^CEwjmqmk!Z*lFWYt!mp^sJwg7;STxwGG7J;oF}dU`3S)hp4GE; z;!ilf4iwcsdWvf*X7V{)>6($Mik?a{$J+ISu*H@>u|GKzvcW=9g`jjeb|WyGjKBeq zRh9$~0S6Ys7j4Ck;3b+UkjfAbLI{Kh_Mtd^Cbg%3#=`kCIleYRUA3v2?w*y+qx4llE#xcm=D9mppYY-hSUBm2f#;2;Y#<14>RI4>r}2VNoX{)eh?OX z{@#GSZBUuH;gTi?W7?O94GVKf;0}s<$RiboGz^ZXgx1nGj%R3m$8Hvrs|bFGa8L|@ zQ@4M0#`CwHa~TTW<=bZ;zDMpr?Izd~ZLOqy{pHNDSpwy@zCPvURK;7sAS|&3h6EstUTc zve^g_yATNcCu2cU%1ipt1Q8|HhELcT?T9SWtst7}V2VDAf(V1rqJ`}>BdQJ-!yY$g{Qdp5on2So^JniZAXD6I<|Jd>Al%Zw`W3R9{5~j;J zo2?d7Q;~BdghV=iI9{-m3`TFgR;g3MVQ-p$@E;WuRp7>Dm$Csb}$Ske0 z8i3)6k-(r%yeP%J9burxOCX$f>$;n~`_44cR`yb8*no2Lg|t$cuY;fugr~dN*Fb>u z_SHXV$(^x%Y_Wd>LXSn~PGt~0_iAwY+2Jk2^@}$H`YGz<{n+B_A_Zxr@~o$Bv|nP@ ztTLw$#j7<7RbM;qe54x^NQO=Wkw`fXkrX+$pHXD?sD@Y`RqS)TA|WJi(;(tMk!H$n zb*XXI{QX=1?3sY@ggdf%)U~YzEzONGz^_1(lV2mtqePngV3!)_sB=f(c<#+D31|Ly zX8q>V9Zwi21FXDNYNSrdMhWMxo1H&qj~}nMkL)Kl4NBPw+`Y&jdc+KDo9bcKb_-b-5W`)kgaI0!YXhTZzZONRfoS--W;kYo^u#22x!j^WCKHj2VS5DQ%7>HA8NU znVELGYsegp1qF3BQt?)DElCB{IuO3p@jns0Wu(=VI@urpbg415k4!a9u`QPL&ZEiq z3<$6m-IVB2W6Dg)!}D@Zq#km6WA~ zvgFA(jn4GsIW(ri<3@m}S+HWTqnvR&XTeeP=e4DAGC_r(Js?WrJZ?-l{#SFG`<;ZN zAA}n*tYp_V*;Z3F5aLiUJ!w~6IYVBH%KcjewS#>~x}7(A6&pU2Fct6CI?IiQ(*Qiq z2lOh-p^vI`yPgnc`N0654D*+aC&T*%@*U8Tkm04@(NAz~8Z&+Bb);@p#QpT8|Mvb< zXhCo!)PTy!PqpT0TxJz;JRuxZ4k41c&;UfVIbIW2?A;;qDsjC*zCdM0K0_<$vO2OU zwX=3W>^DRSMOK{*DmKxjKWPjFiD|`Y5`q$&nD8_~UEtERUY9VC$xs*AWs6QHqF>qK zj8&PeDhw7>8I2Q_5UPrt31JY<%)uXORa@l>ga)aje}c*$Q|oym6=VVHFXXh0TlV9< z@0tIImXR1N2gt8g3^W8mI54da4(M8|xHr;GE7L*w`f4XCRa}|w?ag+iuuqqcW<$8} zK|B~L4t~gsk*?3HqwD2^&jQ$`@8;f)xG)0Ew03M=r8A}3h!vcO;^Nr3ME+MaJ01?* z;DPWIF#W`gVT^1Q|>uS*wf z^0x1zaa1dD9l?Y9ve!eS-StsoU?9@2l*fzh<9TS%&%!61#8{!v$c#<>;uL!CT zlb+f;<1|=^tABsub=tooS*&T@=;ooHGUU#GQ9ER zP{WrE2og0Wp5tut%Wo|Bde62T-l{G?aB`%0t%+vn>(zy;F|01YRpb>1w#l{y>0}C% zf#(5O9L#&vnp$M(Fnq$^M75-I{Ty^Y5OXK_HGC<{7imrZ-jGij@Tq{f>EDV$V+KSz z`9AuwDxN2J)|qFnO0#!sX^xd)sCesx$(Ja*sjRv@ zdvSX$J^ji)8P}&byDjcEb(pekI{-^Rv!negW&Md?|uC%|JX&8tZ%k&4DeIR zeda2!O9zPGwYnO5E$FLeKL=x1BIDlDI&U72AAVEG%Mc-si8c|6RFIXHI`z;sfy+W) z4i}b_2H630RoHA1c8Do{n#>kqB7(iwGuJq+7QK%^QL*PoUJXevomF8v?CkBE?

2Qys0{Hm$H8$91dcl>HmLKzf?VP`xkd*-*67US#(^Yb8p*E^ z6yeuIyilu3Z0~3%mCy;%Q1=2a>S&Mdxo<;5w)um&e+&y6)mq zDimT;dsk2_;wf;P$CYNG|0)~=dUeXFjH|7#`z|`>^F^uNq2Y4 z?QKpA4%PGRNitxy2X$mS zVFp-Ptfc-^<0aB_Onn{Qe> zc$q^812w^9%ZFuU=vx|y>GfAhukw0q_R~N2IPVEkStKTHRK7K>B;-VVp)av;L;RCVq?>5=?7J8K?pr5LjFAayztIb*2cp?k zAP5ueWr9}^5f`O+swW^5`plK{_c4z*@A&mOnjQ9=@jfhgL<;s&a+O$%MbI`jYcOT~-zbk~>MzCLVO@@}w z{PyKd^Vdl@TfVho_l@t_Iy#T2{Ct@Aw)S!zzU6Xjop)iMoy7rnY7ZCB`%!pI$!>BK zp-*@Wc_7WXQNCPeJxl>7@C9{Hi5&Lv$<(var9MBCcxV0yVL zgKb8NjyCmm(1v66^KW|XW&C$usMt?psV-2$){;U%XAP5&q2Yy@=lL@N zH*0#Y8V_ZWkR)OniUdSX#&Cg}qpgP|2xYB;04x|jIKr8F1hUYXnLJ({nIXO=>Ehj> zD$++(rEa@9t7=D%qHB@UEksUw7n3XBokf&a<@k>R0=28x)?Ezt*@(Y>kVzOj2=Z1V z*`NuV`~qP^1J>@pCRId%bmqcVc;bX^lS9eNt8K&x1=sH7$thJ{moC^V5n7b_bBxxb z9!xhq@SG98uWEyYRLn9-&hbO2=!~%Wz^>O0ySKjo;kmmP3`xkmAF5rDrFD=lH$*|LS5^uQLm53I zLU=@+8o&Gf3_K*W`+Zbs_xt1v59uB?VNAl&53DSF(_~-t$!7Okf3cw;UAH$tG?VZj z1%33vG*e;58;O8qFq}!a{(E%ay5HXDFfAGJXh*;q4?JX%;T=cILI{B{B%Z7s@Ak^C zlVSk~QH?ZL`1HiJQ#+kM9kO-8`D)MELca1ZO;pNFL;mrwl3(i-vSSQ=-2M3e>0 zqK_^$612wU0(^1I!J5VKNEy~6h;Jwtl$Pl}8%#pS1*}6hn4REyVjI3X2o>uRuwS=+ z!jyw$awLDXs`@B>o9^gH<+3YvuLCgzuh(V)q8}Irohh#sM(|e4z4iJ*&q5}p#nYxpxQR5uA@|`=6IeSFH zJjB-1ap-CC4$xo~F_cJB=oU<%5|J2Iwtp?W;VU6^Dvvc}w&pvQ+VSUX`dmVvF-EB?9 zLZ*oxQq$VzkQCGWP*HC6OFH?wP~C$NTrPz|B(hv;5G>DS4Fvl`IK(Z8VRH@+5}Xp* z731o65I>pY0srW*b07ZWWB=?=IQl`@5ra`)+YK>I*+39Z#A7^t8)7$*h>$Iz%uu%N zEFC+8JuWroG^crp$v>__L3-PO#qzGOVafZ@a4(0T=MAk&R*xAf;0~O84^7|>644(T zv?Q?{U*=nIK5ce(U3b`3bN_I-){}PRmJvDpCnl&0IT@gd_-w6Cg(PJw3#(|U**6-G zE;Xi#lzEWZR}ZaTP5?g?-|OpF63E^menp(Wc?}#)zHEk%0+gJceEzTIJbGo< zu!NK<*-Q^#Omu1BeBMhHy3*gquffm4KDV#xfOiB+d#PqCGNfI|TvR+k6?$EI)bN{% z+rVU%mk7TcTOYbW(?>MM)JWiO+k|-#Ic_+zbx7(~k<=;kdO0DY#^I_okUIUqj%33D zQHE~vn+DKv1c(~X+ta&bGI$Np`wKz7MB1M09Hk7FR`*IOsb>R1k@;v@EZ=#o^15`# ze$x*@1&A5)K27Of8d@cOxMffMDcYy=9X1j1YXq2pzM+5m_p^N-5`rL%XlSX`5tp zrG6a!ptQ3u45#d1x$gO_w~O&&KZ39mJjU)B@d`1-qJ213r}f}ykee^%^W7@sM;=Y& zrpHarM!((nq)|FvF-AL9_6o-Xl7nNeHk^t3J~zu7j1UT$?e(~@>EI3E%3abaWeuY9l&MEHQ}O=}3_$W$nnTLPpy6Q0*6jXrfPJ)7xTZiv ztuvT;JgS_>Uf_JNE{lH36(_tfb@m=Ysh&U)de@#UsE!44X;km1F~$OgOu@oCg`ZU5~YWd_;rr8#51vVuL5%As8awq#9}+ z<#IjElT3+R4-zxe>U1}(SoCD)Rn#X~1UIkw+nrMfX?D!aAN)33^A+*=AHm+-x*QEothe^HTvI?)KD7M+;sbMo;-!kE>*!%2z z#-3#Y7`6nr!VLDAC{JijT42|WAAjdxe>zO`g)O~@&@Uf743BI+nbZZH#3&pc0O3@u z_Ih3#b@!qPEACA=PyHmh(MwzWR!@_~*23x8M6wKgNhpP_Dr$}p6k$r^;}35_hb1SX z;feDSjT1G_mv8+3lGO486VBqhue;{(sS7oC;#nLZORkGH=7}pUGSVIuB0LGIN%8(`_~^eJA3Z6X3(`mc8HY&J^)@x zFQo@O06YZmH9OyY>Zf-+d!Yu<09|+h@xW6>o-Q;H^brOY!v;Xuy?huv2s{D)+wAB} zDTWZgO`1?X7d@+Jrh>K%an41bAY4ZPJhSWxf?icPGcS7Z=3m~hQ>>EcQwF=!T=c}i zn~Q7^{?#nGCL0KV28hAF>TyU7nZGAv`wr$z#wRoK$U`g>cHcH@l481 zLi}=g7$NXR!IMK{mQVW1;P=+s>3{mp%6K67)1VKBXXZ9pzr55!h zG!VpdZv#HNwRXg@mUet;iI)9x)FrsLVG`T*gG6c@0)`e+kx@QPTna4wJ6^%?uN)|y zG5LMqU`BYdX?#{4fQVl8muL7_d7TH<7jqs4qH?t$BF~wX9if{Ajh568G8S|3X03t| ztO4V@W^lJkqoB!}Adm>A?ZW;WM3CxC1cgs4B2!mGI&4djk|iVMEJRRx*zkSZn@Q{_ zN03=C835g0G|tz4`oFCP{q3NH6Sy9<;fTIRrVbT-Fu_B_&O*Zh zbrXxO2P$69dVntd&#u>PcgJ=K=joU4d*}4gV|BcE3eeU%ElOQfC0Y(1{*ov@MHJOM zrqnH$8dD@Bm^x`q@vB4;6r_(;D2ia($HZHgOlWOd*p=?h!a-2SOm6{w-oIDBPG%7# z4&CDs+GUlg*$6jq2S^U zdVV0oH=FJ`vVa>j3qjKr%C8l%h#L&K?~!vO1VFeEPmIgArdmQe>n$@gBGwZ;O?5Fa zpUXoNJCJTx<#p-69K2MkS}))F@~0?lPXgVCujB!w;#V#;-Y%qG9PM6eDG4*37%IJE+eGzf>{I7SwRecHqWDx}CbFS_JkWDqe(LN$8i= z)9(rbH?`x{29P+}F5(o1`{ zlwE<|eD~@cuER=qH+hf5gh>WbVCWxzaOozqKTIT?`>+2_`uM}<>)o!Uc%kMwSSE`h zME;F)(ms&}A%sUbR8Ja5XAVWaGF{aF{fHiEOje+j)xpIHd9}Dp!nvpE-M6nDwOIF` z7*=clo$kCUFFuQi5d(P*P=%OuE*@*=3t=8h*6wID+})tL^5tJf+l%s~vMR4j2Nu-9 zt#WI}(vl(;ra7f+SA1t_B%1m8j=t_}Yqqz5`)Nw3jC*9dkb`ntTW6*b;D!TNr2K}I zig4&CYYvHSpXqkPkt@#Z&aZ4sm%3DvQbony^7WC2{`}#-grgq@Ua@P+212Yd?>o4p z70-henCk4~eCx znZ?5lNSRBGbJxwzAG60#PdKlpF8uvg#pAT~h+VKwBn0?RIOus4#)sw={(tzqYLJ8F z@m}v12D+kX^U1*fjr-^T*>O53btEWRiUb@#Xe{H2F6hnXX3Zm0jFF4>Lce{~^ZWeb z-Ln#oei(RVr70T-EKxpolKV8JC*3PyZ?Xd}H4bkEZIp0EuJ_N$U%c*gEeiD&$ldha!O`Al6z;|&Qmp$ z?bQy)iPf2QEC4&`mJsMZ66(Lwi2t8H=gw+!!r-|E}E)>-?`WhIX`~?kyT5}D8 z(srqFhGnli>-u+E63!Xd-E+kYf0(PgZ%y$~>f;ZHqOz3t;mM^&%qx;>%P!(A)-!Pf zy6I*jnKL9u5J_qzwDgj9-%il9D^1#+&52p3$>CDta0MJ(KD775m-~Lb>pr4othsYG zLA}91odq7b)OeHP`CqipTy@e^Jt^$PQQye55XI2ljJ|A(#PKEIP`8%ypBCYWchSYg zANn&aGe9hQ0uSoP(GOxA8;OzDeUWxRV=!Q3%Gf6mlP9U~aq!0rh!G4$%_Wa7_dfjE zOGAFM9P9Vv_f7YlbF!XGN8klZ4+cB*zf~00<%Ay`{H<^@kSWqjnN$F2-HU zD{}QPm|X%EN}o5I1}0O;Yhkv8KshdrDy`;fUhv=N;J$!DTCL=cbUP3hDz>dIb>Sv@ z{EhC@BqKY$uT;wCk`$jQLW8OG-}qMF)o*IbQUJuIMm)JqbRDowwB*`r4`uxs&h&JF z0h6$t1G32rDIBKePZcOKZR^?pDqj+d=0}Ac0&occsLkqW?I@83ep2b3po%wnW%@x> zeB5A&2a$rS>6*f@!i{6`f}P|B+%j$ClE`A<6K)fTLA24fps&>1hbvk$LGEzqCKS0W z4gffk-$;gqFoh=A7I<|^3S-`vDUHpfyE8?sv1IK?f8&G3dhISb*8kD*spxBDm0~^@dS2#J9Xb9PCsH|Bp#<(H~Xrv^3VnqRP~)Y-|O4~-|M@f z@5c9Yi|KA`!Bwo{`Z|pUHBzDnp#(0`v!%^w1cHFe@%>SyJ*yCxVX?29tUMIB9ngWO z1(Yt3gVrW>WJn$(718EPH%skt)^Q2v^!@rjym7pd%wzCEt#-RyA1gSxtxHy)*io73 z-%xo5oJyXECa9r9h=f7)1W(GcOb>z`=M9K}GB%lox}dqJAZv=~U9{H~q9}c|uPx$_ zK6v*E(Eh!0-sh>S2C7{n7j{n@1*#%MAnbKC&bSuu|TBo>jC zww~9AQOLqf!GZ({6wT_BB|?rwu}oKVAAFnEGPOfrQDt%Ddz**AXMr{+C@Co-)6tF4 z1A@Vdk1&doxcs|iKm20%g{g$29|Qx*U9BoMVrjIL#t&a50#t>r2v9uJ$bXi{J7=c4 zZW=E+lh@@RSGZ}jd~dhP>#_AfN400?i)w2{#o|;XOi}k_@RKp8ym#Jq*y#B6Ol?4y#LvP75E=Mdrv6o3kF;ok7MggxPBUQDM{-Pp3$CTYj!;KgUsmI5xi7B zx2qr!9#CAcR-IDrwv`v%rhBAd>8@>+JyVI|A_a zt5T+Gh~C?aBO2dR9N(1b>nOSuB=1aT)UNNQ0H-3EnLgQljvim1VU%t)3{pki$WDq6 ziHz-%I>xqqB1p2LN&lHOZ+zQAiiCRu6&UP62mZACrlvx|(GS9v7!2;(=AdiJ212a5 zvCUgioDTj*E~a!C$Ke`wBea=_feCP1{my&9bEaY8`5uBGOqg1SOoSqv8R~eHr*LxV zwck6dn{idj_C7k@f-}>%)517zyTz-c3;)9-ROiQhs>5Flt$s$fN)HM%fvXw6Ao%*5rFHUmTr2>!w}cg%8j5B*)-Q|jr-k&FXh-2Lof~+U-WH4p18E#z*F6Ok z2wmKzBM0`YHX6aQT=jXNnxvbjx$7SL*$Vj%CW;bl0ER0F19%~lTm?gHlI&Zv`Dz$H zO+Y?1%)o<~WK(*HS4{6~Ik2Bn(Ll&RM@mKrh;SsHQNc9vHg4zA@^NcpA-tVemW+2$ zfau)OH=cWQi%e@@SP81M^2TlGb?HJq_oNi_nH8K|`X)%KOXX8ko*>_TJT?-7vzenf zDBh$WM5OH~?^kK8G!;WmI@WS1ljGx3WA3;z_m&9<8V~7IbZ{oBg!sC~c4G*{dZ_UKhep)|{p+_svrq zA%fDkxYUO7rEn$>bvINjoW55XHQuh~MCee-fl8XaQK)tYsz_xP0wU~*%kQNyhl_LA zt5OKIXI3Z{(cmzcfN*@P^}o|D8oV&!j2`vT*;kIsXyJ&9E0tp|YC?EI69OV!u@4ET zEzLPSX(#*tin|stsfsH-fQTq!*TpSPgM5cyjjE`jtW3LI z8AF2rX;&argaTNYSsq(NzV&ptb~wD|8*%osJaILt3@cFw-t3V-fTYz(+SfO-0fKU5 zlaDQ|0CmsCAURhKH8$5kLgweUSAIpGCsOss{l^l7_s}(~VjOjV8h_nAeS7yT{Igth zp;rYhIh6$&sUA25W@<_w9g)IP8;7oUzaY|$2vC+%6F(U3`ku5KiP|-;nuN6uSCj57 zcU=qocaP5YO{f5v!0ac#Sf|*`7U|XG86ulwVWu^!ldNZFb8DSKO)j5xldJJJBxB2W z`*W#(jPG@*kT_PY{Q5VA3S8POHVv%+rl$4gG0Wx9L1hn{8U6Qb*? zAkp6vbY*{&Hy=ktnGX(6^-0-$Y z_ugLx^WyLPP-F$awC#eEL-04+gumGc;NmjZWjNIV_sUUM+|e*|ydMwZM~8o5} zlduvr7u6zp}HH7+=awl z{6_ep9&*MM$sypa#}9QG+*@1~g{vhvxOBL*XKa^)?@PIzh~{(7dU+fP+Sq_B-oxQd(jhHHchP>uS`iLX}4WY zt^WyBtt=Ym*fwlcIMmp^-d^?0Nh6W$eB0TdT{mXRd5UAPDLxFHWZh2`1&7w)$)QG9 zwXly|a_o@xFHK46AozRua%;OL*pCQOqeBY%U=p8)irqus$@3Y+Q)=uRcjue7%|dqL zfwimae)0ObY7~uSkgZGLbzeiMwYE~qn9myB7XphGq zn33fC8}J_ZBk&fzjznyNSB{Oif6>1(tjhI3kqI>R*qWvDe|5uUDg7Y*x_W$9xeC9l z6BCkA;a2+aDY-!3ct$Oa4MIc{Lyr3PBr(5<#9Sa53PKJwZZ@ro`UU+h-u^+nPfC;y6 z#d%uwz~oNH`xB6`=#x;x$aw$}HOuhQITelEY((PB#`|CS?;qv|N$0^hAnLaV(3yDY zP-B15y6Cd!KR6_%AG(P{Gci0C%{!Kmhw$W3Bi$?9ma6UwVL+AWA>Tp1$ZB2zOWjR8 zpp%8xl@JR*4^-Gx$4?nhY>%%W5xfChW`Y)8I@H()9aj6r(9v;Mx&lV*d#)_;K5JBF!2JS)Z@6_zS z7%v@a^oeEt!0b2Yj7}#c#0DN2|GYyCjDrBG>R(*1uTNe0ietUMidzzJ>x^+ zJEvS?$;Lxr9FXt6pu34f)X4IkpU%(^4Cr|LuUzfqhFmYir#<73fstOKFZQ#QtF{)B z+En#sInzbVVlQAEsfksPNESvH3{Z(5pPGm(j9*gdt%z@CdanB)(fK;OwOm%a7od1I zvxQGgT8=40Gs=3Y5tJ*@zaF2sk=6poX~rH-Lu2UZ#yX$?@F&)V2ZCKIq9 z$aw^fUh)MW5fi@>v2Mwsev!yt7T(lc&|v<$1}DO%R>I%VTCGBcCR69A(G}kG1M~O$ z_+Pn#k3@;kN8SurmehIsCZS{lE>p~D^Vkx!F=sY)TnXel8V9Iq%Aj-%J^J+ z7GL0{Lyg?O9ErN}Vk2{8QjuAjwAMz=Z`WX|>uq!?JLZ5n)19TRuhCt1qc{4DgnD2k z$-A+wPN5;KwpIk3y)+zGnSx>B$EUo_F=h^`*|1A{1CU}!unM?u4kvKv#4TW9C!9avq`1-_O(iUTy`LxNC%J~k?wG+ zS7n}~)LPp0E7HahRPX=KotA59ysf@*QBO`5OT2Eo@m>(rD zNPfh}5bzFZ5JKg8;D@UZ>-+HFl>NbzdpvUgrsawc_4q(MZ6PsuCD}#cljH!3fFzFt z9=-pCBEY==C3rodtud3&XQ*PWICWEyLVguK!beKEQ1Z}}z4_&9iYrFxA|y%WjEcop z6Yd zP$O-eCx1O5b5EX&bp=Q;!He+Hp~hDBL_f$06JJ=#wAFW_K>O;}Or8&Fi~_|XyqYTf zowbLnd6g5c-SWhCRzrXguS0Wc0w^RqjK&bIAvDv#3g*dJyyQSKqe0bec0fKzoX}9?F1(d9!m?=;%sm9=Y%~mpj4vnbGHZ}u!Fvs_sN=Nr@Q!#&mc*r) zS=Yj~=|@7r3Xz>%43w5$IrQzi_s{E{veknW*`zT<>Uc$01CY`h-`WK%?sIU2t=qMX zx>9lTiB0y?(_ro1eB|Hv7}ldsSvvz5o+b$ zcT7URJsPwRv4I-B9uq8Qbxa5oK;6SI*YE}CN#UJaL6?JzOFH*Q zV*3G+r$8EamoDw(yN-LStlcRW@AuxP)f1)ImL4!S6v`iecZU7_tDd~`!P^g!0+%fK zle>yLErdABPE%JAGs(M?@s4uECCEEf@L*gk&Lu_JZU`CWCxQ`bl#Fq6G--Eq1W7D zS~T&Y6+WxdD`lq-KXltZSAHAm?g0pr3(4$7*Q>2?*IO1Q&sAM~@}`G6dD=^vyyQoL z2!~2~0D@$}3Va}*24EM+z3{oZIh$|Aq2sjBr-Psjtb4(V@Ogl#ryNtM0Zap;C21&! zv`JNfB!`koM-dVsCdJ?X4(oryj-K!LA9okR0zY{EZ$IvMG+Bv2LR2n~Ya&S-?N9R( zeU{FkJ1@5uXH1`W8Fo<=1YV}Z>F$9<>#Y!4Itp^iVPkH2b;YC7`o*F3C5_|Tn${Nd z(bODp8;*Z> z@y#-W-s2Q}7oXC>qe90j4j!d(=wZTQt1gX8llAfoo)2J4+EiJ4MDahkc6O3rdPRFL|JN{9EqU>i4;FK#` z?hbY~pU2h)2^!6Aag#``N*k{0%r?}~|HF+za4nG(l)ivcLg{-5GY>oycr-q$CvZnQ ziayJTXxIUW??C}N)Yy~Gd138~!!xMhCm-Z+#!-2Z>QzNubsVJtAK_F#y_V${yu|9#?kb;6~g@fRwEdPCwBKwo-_IOv+l!{ znCgKMB$yT>6xxO8Gj|@dO>RnZ^8YY(3SgM@G7Jd8tbM@$PEckD6ftqAabv$K?i$c1 zBk(q@PnuAoi9G^TA@Mr_L+D$n(P3@<5W_Y^-0!L7nB9&*d_P%X#ug>ghx2@k#op+m zXGXc>8CbkBh)M!Xo`mI%MD7heb_0mZ)ac|M{UGh(Qv9=Ad)U?g;TbHp>aash4qrxW zSCd~^q-cq}hQeZZ7>ca9wEX zOk?9JR8974>cE;&c03+cGX9}+E_eyjrSpNy3puGftr&Tcz`{n%??sLYj zW0KUw0ThvkyaOmCFOmuFisdZ1++y8MD-vF9eKJK=9wGr&;Retra=(2mvZer)w18Im*{3aN)`Kt)#rkTWdt z5qXo4}!$B411!~BG;8H;w4~!sJNZR>RK&p3x25x2&rUAQmzVJ zQSB(jcMgdLiGe>f6hM&}TS)nKxjW#O#Fo8*fs}8dHJ2;Ot1SoNZw@uO4vKzYo|M*o zB|a`YQ%UUvs=g&ptkanOf{foEiGgBubv{9+#^%LceagPz^Q(?udB9?2F%qEZUcD`X zP$g(4I-fnqN&ba;{Tnp?`K)8QD*gAH43ujk0w0$hSPYKFizt!QWpJMpb|ccw*_L*8 zU2Y-0gzuL9K!;>xG!V{{lh729T^fiO(h@)exDl1X0Nm8*xx~7;yR%G7qpx*aGGrx9bJzWqQ7R%CBOFhV0V*-$?mwkpp z(bl`EQkhWtR=LW=dqD-A5Cy?%U1R^fpbMoF1Y z{<&t(F$o8Sfe)XB0U(k)$*aq1g76GRh>NDh z;g>G>jz5zkc{w;f3IT6s^-syIZ*y`W%E^R{0^4QqfY*LQjEzEd6c2cRcmI^lRl*N6 zh9DD#fU8Dg6xe2%lf=c}I)dI&2=rVqt&zq>A>ib;ektQRQ6w0K%>_LhUmt$M_OI5N z(}@eBcra32xrEus73a;(h4j}Vn6&cZXAjMon+qaiKWr5AlFqbUsEOi%)=0e8H#Z8$ zL?OsbUOMr}TL=0RJ(IUg%cBtRxd~|HNAK7$^sN`o*@b%)VM*~Y`8c%Z$s>-zolpH6wxoIV&5g+PyjX-^debi;jR z6`HY4+l6US2)fN%7o~;5BvJbZe7~eQ+t?7r13e0+5iE^D@X3Zng^xx-E1UL_`a~h< zHaQsowFp!idXlO4-gV=_Q3$j?Fui&o8HGUWMAJMN7==Ldz%+uoCKnfY0wC zieuVST@i&q>jTqvVc#eO+E3&_vN`|Y&?p3)h>BYKW5;c+y1Cy$#yk{J^&!kMscjeg zg}*+wYvbXn=0x(oa<3>JXsvA8GP$>Q`l5MSADH&ihDGr}&qmYU`n)IvS`tnBiFEQY zG^VO!X{I%jxDFs}E@(M0y>guy#e<8VnS1X8*Fqnd9)&4U2(+ha+COkNrG2we$B|4U zI3o@ zja!XbJME>?1dO72gwQGG$> z>)SZvGl#OKsGd$P?_}GM7$UD2c!QXeCHWN^H8axMX(#(weDf7?F%6XcFQ_R5IU#=m&F%GIBWf0nKB zxX|)FfwOLi9 z$_#X)dYg^Q>2P+ugEAfc$rWnbQ12fmmdF!C6{)=fAS7#yiJ_a~;nV2HoVDw>r(e1! z>P@e>W8lwTKU`^aI^IyW7^1+{QSBL2Z@04|@6@f$K;siCBmw%}rpKScp(^VlvbTaI zGw|e4W3Rtq&8sKQ8I#fvEFqp0JvwZm%N3;4`D|lH14?^!rqf)vfa_j+N*4(IT!Mn^ zbbV~5i)#rMWZD;G+As*>y0ruFr6Re{{j+~gu>a>dA0g+25j@20P*Dh=kX%_2n=9;G zL{(#>aPlyNVc4oJRol}^nMzT5F1h=e7`^dPq)pLuP|3c^+r0?vYf@| z|A5Y+#%^6Y;DtWRr{bKqd`M`*l%ODc9^VBf*GiS@Y(jN`Og@{Tq);kAA!ZHPm{R3B zan_Rs_b;jnnK@9A_Cz7jP$Ylir!mse0sJDNyfxQWLnZWxJ1!94lsWgAT`%<53HM4p z$SFh4VN7!ZAl_LLX;Bnq4MFlEzS}{v(zTxR2-sEY9c@GCm@eP*s52+;u=jfWyXWZZ zEV|wE6)J=pDH>4nHx7HW&)P4JV9(cM)j|&H5|e$2xhh1Ew1mxVYs#&43N<+{$QLPL zOD9(?S@U{R%2p5EFJX$Zh9G&7jQ0j96X$if2%;z&N8Wi6)s?E2WlQGKl}myzBS4A|S@_ftTS^p`Ru580 zDmiuAHJn5`peEC{ma8-!M)RNg%d0z=2a2u+AbAk~EIFSz&Eq2Bne7hg;=3?O#kuxu z!ES=JiYUVo^zIB`iIj;b-!A@uFh6Q)7tAMSjKx@pYLfH^{}jE$AHad53gpb2`yo3HHS&)5aVoiaoLmQb%tK|1o)Q$~l&Iuv z2Wrr?XYzb}=U~lkpAz5=z6mLN_T~3%vd+nzIs2sPtH67h1UU#Ec+CIAQ@p`+0>G;J5Y>99OH^y#_2fJ zoSS+c@zO&_DLF8J$IG9{Wn2J{BDDR)q>6txX6RD0UVM^b1Gm`XKPD!wwTXm ztLs{_t=K(Sf@fmQO2~=uDLsGpD-*U?xF<Pd1@r}gP~NG_<6OX;eVtr93Cr{a6mWa??BuS?Y`YYCXcD~u8tBwH%+ zZVJunQsXh`UXg@4vMM?LCw~0v%y@JoM?XMLcC!+%(R<{%7nDtL5WYQK)0}e}vW5CW zwxcmOQ_LT~9tX-SapaEK^y{xW^u8x* zQudKcjvcc8r5fc<#;-7|fOx$~XrFL?1Yk&h#MeQ*TjIGe*DdTVR#?JJQzI|!#VtlE zi7GKY7{G8k!e7>#Aj(sP*usHHpIr2k8~O&=Fcvi;Eb{8ZXDc=WR5gL5>Vk7vp-bJ- ZWuWgVvQE>5qi(u#ATKZ8pD}Ub{{u}+Dr*1$ diff --git a/docs/doctest_info/errors_only.txt b/docs/doctest_info/errors_only.txt deleted file mode 100644 index 090052cc2..000000000 --- a/docs/doctest_info/errors_only.txt +++ /dev/null @@ -1,1106 +0,0 @@ -Document: API/secondary/texttable - -********************************************** -File "API/secondary/texttable.rst", line 20, in script_examples -Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/texttable.py", line 558, in script - fp.write("%s.color = %g\n\n" % (unique_name, self.color)) - TypeError: float argument required, not tuple -********************************************** -Document: API/graphics/meshfill - -********************************************** -File "API/graphics/meshfill.rst", line 20, in script_examples -Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/meshfill.py", line 900, in script - fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) - TypeError: float argument required, not tuple -1 items passed all tests: - 3 tests in xyscale_meshfill -********************************************** -Document: API/graphics/vector - -********************************************** -File "API/graphics/vector.rst", line 20, in script_examples -Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' -Expected nothing -Got: - DEPRECATED: Use linetype or setLineAttributes instead. -********************************************** -Document: API/misc/manageElements - -********************************************** -File "API/misc/manageElements.rst", line 21, in manageElements_create -Failed example: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 120, in createprojection - return projection.Proj(name, source) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/projection.py", line 434, in __init__ - self.type = src.type - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/projection.py", line 987, in _settype - value = VCS_validation_functions.checkProjType(self, 'type', value) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/VCS_validation_functions.py", line 1440, in checkProjType - checkedRaise(self, value, Exception, err) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/VCS_validation_functions.py", line 59, in checkedRaise - raise ex(err) - Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) -********************************************** -File "API/misc/manageElements.rst", line 22, in manageElements_create -Failed example: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection -Expected: - [...'projection_ex2'...] -Got: - ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] -********************************************** -File "API/misc/manageElements.rst", line 14, in manageElements_create -Failed example: - vcs.show('textcombined') # show all available textcombined -Expected: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -Got: - *******************Textcombined Names List********************** - *******************End Textcombined Names List********************** -********************************************** -File "API/misc/manageElements.rst", line 18, in manageElements_create -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists -********************************************** -File "API/misc/manageElements.rst", line 22, in manageElements_get -Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -********************************************** -File "API/misc/manageElements.rst", line 21, in manageElements_get -Failed example: - a.plot(ex, slab1) # plot using specified 3d_scalar object -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -********************************************** -File "API/misc/manageElements.rst", line 22, in manageElements_get -Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -********************************************** -File "API/misc/manageElements.rst", line 21, in manageElements_get -Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 1275, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 3630, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/taylor.py", line 1965, in plot - self.draw(canvas, data) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/taylor.py", line 1205, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars -********************************************** -File "API/misc/manageElements.rst", line 17, in manageElements_get -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists -1 items passed all tests: - 3 tests in manageElements_removeobject -********************************************** -Document: API/Canvas - -********************************************** -File "API/Canvas.rst", line 10, in utils_getcolorcell -Failed example: - a.getcolorcell(2,b) -Expected: - [85, 85, 85, 100.0] -Got: - [26, 1, 34, 100] -********************************************** -File "API/Canvas.rst", line 32, in canvas_ffmpeg -Failed example: - a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.ffmpeg('mymovie.mpeg',files="my_png__[0-9]*\.png") # generate from files with name matching regex - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 4591, in ffmpeg - if test_file is not False: - UnboundLocalError: local variable 'test_file' referenced before assignment -********************************************** -File "API/Canvas.rst", line 18, in manageElements_create -Failed example: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create 3d_dual_scalar '3d_dual_scalar_ex1' that inherits from 'default' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1596, in create3d_dual_scalar - name, source = check_name_source(name, source, '3d_dual_scalar') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error 3d_dual_scalar object named 3d_dual_scalar_ex1 already exists -********************************************** -File "API/Canvas.rst", line 18, in manageElements_create -Failed example: - ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex=vcs.create3d_scalar('3d_scalar_ex1') # Create 3d_scalar '3d_scalar_ex1' that inherits from 'default' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1556, in create3d_scalar - name, source = check_name_source(name, source, '3d_scalar') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error 3d_scalar object named 3d_scalar_ex1 already exists -********************************************** -File "API/Canvas.rst", line 18, in manageElements_create -Failed example: - ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex=vcs.create3d_vector('3d_vector_ex1') # Create 3d_vector '3d_vector_ex1' that inherits from 'default' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1637, in create3d_vector - name, source = check_name_source(name, source, '3d_vector') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error 3d_vector object named 3d_vector_ex1 already exists -********************************************** -File "API/Canvas.rst", line 21, in manageElements_create -Failed example: - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex2=vcs.createprojection('projection_ex2','polar') # create 'projection_ex2' from 'polar' template - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 120, in createprojection - return projection.Proj(name, source) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/projection.py", line 434, in __init__ - self.type = src.type - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/projection.py", line 987, in _settype - value = VCS_validation_functions.checkProjType(self, 'type', value) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/VCS_validation_functions.py", line 1440, in checkProjType - checkedRaise(self, value, Exception, err) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/VCS_validation_functions.py", line 59, in checkedRaise - raise ex(err) - Exception: type can either be ('linear', 'utm', 'state plane', 'albers equal area', 'lambert', 'mercator', 'polar', 'polyconic', 'equid conic a', 'transverse mercator', 'stereographic', 'lambert azimuthal', 'azimuthal', 'gnomonic', 'orthographic', 'gen. vert. near per', 'sinusoidal', 'equirectangular', 'miller', 'van der grinten', 'hotin', 'robinson', 'space oblique', 'alaska', 'interrupted goode', 'mollweide', 'interrupted mollweide', 'hammer', 'wagner iv', 'wagner vii', 'oblated') or (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) -********************************************** -File "API/Canvas.rst", line 22, in manageElements_create -Failed example: - vcs.listelements('projection') # should now contain the 'projection_ex2' projection -Expected: - [...'projection_ex2'...] -Got: - ['default', 'lambert', 'linear', 'mercator', 'mollweide', 'orthographic', 'polar', 'polyconic', 'projection_ex1', 'robinson'] -********************************************** -File "API/Canvas.rst", line 18, in manageElements_create -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists -********************************************** -File "API/Canvas.rst", line 22, in canvas_textcombined -Failed example: - vcs.createtext('qa_tta', 'qa', '7left_tto', '7left') # Create instance of 'std_tt' and '7left_to' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtext('qa_tta', 'qa', '7left_tto', '7left') # Create instance of 'std_tt' and '7left_to' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named qa_tta already exists -********************************************** -File "API/Canvas.rst", line 22, in manageElements_get -Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -********************************************** -File "API/Canvas.rst", line 21, in manageElements_get -Failed example: - a.plot(ex, slab1) # plot using specified 3d_scalar object -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -********************************************** -File "API/Canvas.rst", line 22, in manageElements_get -Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -********************************************** -File "API/Canvas.rst", line 21, in manageElements_get -Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 1275, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 3630, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/taylor.py", line 1965, in plot - self.draw(canvas, data) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/taylor.py", line 1205, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars -********************************************** -File "API/Canvas.rst", line 17, in manageElements_get -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists -********************************************** -File "API/Canvas.rst", line 8, in canvas_objecthelp -Failed example: - a.objecthelp(ln) # This will print out information on how to use ln -Expected nothing -Got: - - The Line object allows the manipulation of line type, width, color index, - view port, world coordinates, and (x,y) points. - - This class is used to define an line table entry used in VCS, or it - can be used to change some or all of the line attributes in an - existing line table entry. - - .. describe:: Useful Functions: - - .. code-block:: python - - # VCS Canvas Constructor - a=vcs.init() - # Show predefined line objects - a.show('line') - # Will list all the line attribute values - ln.list() - # Updates the VCS Canvas at user's request - a.update() - - .. describe:: Create a new instance of line: - - .. code-block:: python - - # Copies content of 'red' to 'new' - ln=a.createline('new','red') - # Copies content of 'default' to 'new' - ln=a.createline('new') - - .. describe:: Modify an existing line: - - * Get a line object 'ln' to manipulate: - - .. code-block:: python - - ln=a.getline('red') - - * Set line color: - - .. code-block:: python - - # Range from 1 to 256 - ln.color=100 - - * Set line width: - - .. code-block:: python - - # Range from 1 to 300 - ln.width=100 - - * Specify the line type: - - .. code-block:: python - - # Same as ln.type=0 - ln.type='solid' - # Same as ln.type=1 - ln.type='dash' - # Same as ln.type=2 - ln.type='dot' - # Same as ln.type=3 - ln.type='dash-dot' - # Same as ln.type=4 - ln.type='long-dash' - - * Set the graphics priority on the canvas: - - .. code-block:: python - - ln.priority=1 - # FloatType [0,1]x[0,1] - ln.viewport=[0, 1.0, 0,1.0] - # FloatType [#,#]x[#,#] - ln.worldcoordinate=[0,1.0,0,1.0] - - * Set line x and y values: - - .. code-block:: python - - # List of FloatTypes - ln.x=[[0,.1,.2], [.3,.4,.5]] - # List of FloatTypes - ln.y=[[.5,.4,.3], [.2,.1,0]] - -********************************************** -File "API/Canvas.rst", line 11, in canvas_drawtextcombined -Failed example: - tc=a.drawtextcombined(Tt_name = 'std_example', To_name='7left_example', - string='Hello example!', spacing=5, - color=242, priority=1, viewport=[0, 1.0, 0, 1.0], - worldcoordinate=[0,100, 0,50], - x=[0,20,40,60,80,100], - y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 6, in - y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 2314, in drawtextcombined - t = self.gettextcombined(Tt_name, To_name) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 2134, in gettextcombined - x, y, height, angle, path, halign, valign) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1482, in gettextcombined - (Tt_name_src, To_name_src)) - Exception: No such text combined: std_example:::7left_example -********************************************** -File "API/Canvas.rst", line 17, in canvas_drawtextcombined -Failed example: - a.textcombined(tc) # Plot using specified texttable object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.textcombined(tc) # Plot using specified texttable object - NameError: name 'tc' is not defined -********************************************** -File "API/Canvas.rst", line 11, in canvas_drawtextcombined -Failed example: - tc=a.drawtextcombined(Tt_name = 'std_example', To_name='7left_example', - string='Hello example!', spacing=5, - color=242, priority=1, viewport=[0, 1.0, 0, 1.0], - worldcoordinate=[0,100, 0,50], - x=[0,20,40,60,80,100], - y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 6, in - y=[0,10,20,30,40,50]) # Create instance of texttable object 'red' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 2314, in drawtextcombined - t = self.gettextcombined(Tt_name, To_name) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/Canvas.py", line 2134, in gettextcombined - x, y, height, angle, path, halign, valign) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1482, in gettextcombined - (Tt_name_src, To_name_src)) - Exception: No such text combined: std_example:::7left_example -********************************************** -File "API/Canvas.rst", line 17, in canvas_drawtextcombined -Failed example: - a.textcombined(tc) # Plot using specified texttable object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.textcombined(tc) # Plot using specified texttable object - NameError: name 'tc' is not defined -50 items passed all tests: - 14 tests in canvas_boxfill - 4 tests in canvas_clear - 4 tests in canvas_close - 4 tests in canvas_destroy - 4 tests in canvas_drawfillarea - 4 tests in canvas_drawline - 3 tests in canvas_drawlogooff - 3 tests in canvas_drawlogoon - 4 tests in canvas_drawmarker - 9 tests in canvas_eps - 9 tests in canvas_fillarea - 4 tests in canvas_flush - 4 tests in canvas_geometry - 2 tests in canvas_getcontinentstype - 4 tests in canvas_getdrawlogo - 7 tests in canvas_getfont - 6 tests in canvas_gettextextent - 4 tests in canvas_islandscape - 10 tests in canvas_isofill - 8 tests in canvas_isoline - 4 tests in canvas_isportrait - 8 tests in canvas_landscape - 9 tests in canvas_line - 2 tests in canvas_listelements - 9 tests in canvas_marker - 9 tests in canvas_meshfill - 3 tests in canvas_open - 2 tests in canvas_orientation - 6 tests in canvas_pdf - 13 tests in canvas_plot - 4 tests in canvas_png - 8 tests in canvas_portrait - 9 tests in canvas_postscript - 6 tests in canvas_pstogif - 2 tests in canvas_saveinitial_warning - 10 tests in canvas_scatter - 4 tests in canvas_scriptobject - 3 tests in canvas_setbgoutputdimensions - 11 tests in canvas_setcolorcell - 5 tests in canvas_setcolormap - 5 tests in canvas_setcontinentsline - 4 tests in canvas_setcontinentstype - 6 tests in canvas_svg - 8 tests in canvas_taylordiagram - 13 tests in canvas_update - 10 tests in canvas_vector - 11 tests in canvas_xvsy - 8 tests in canvas_xyvsy - 8 tests in canvas_yxvsx - 3 tests in manageElements_removeobject -********************************************** -Document: API/secondary/textcombined - -********************************************** -File "API/secondary/textcombined.rst", line 22, in script_examples -Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/textcombined.py", line 503, in script - fp.write("%s.color = %g\n\n" % (unique_name, self.color)) - TypeError: float argument required, not list -********************************************** -Document: API/template/template - -********************************************** -File "API/template/template.rst", line 11, in template_drawLinesAndMarkersLegend -Failed example: - t.drawLinesAndMarkersLegend(x, - ["red","blue","green"], ["solid","dash","dot"],[1,4,8], - ["blue","green","red"], ["cross","square","dot"],[3,4,5], - ["sample A","type B","thing C"],True) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 4, in - ["sample A","type B","thing C"],True) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/template.py", line 1522, in drawLinesAndMarkersLegend - strings, scratched, bg, render) - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/utils.py", line 2388, in drawLinesAndMarkersLegend - if scratched is not None and scratched[i] is not False: - TypeError: 'bool' object has no attribute '__getitem__' -5 items passed all tests: - 4 tests in script_examples - 3 tests in template_move - 2 tests in template_moveto - 2 tests in template_reset - 4 tests in template_scale -********************************************** -Document: API/misc/vcshelp - -********************************************** -File "API/misc/vcshelp.rst", line 8, in vcshelp_objecthelp -Failed example: - for object in objects: - vcs.objecthelp(object) -Expected nothing -Got: - None - - The Colormap object allows the manipulation of the colormap index R,G,B values. - - This class is used to define a colormap table entry used in VCS, or it - can be used to change some or all of the colormap R,G,B attributes in an - existing colormap table entry. - - .. describe:: Some Useful Functions: - - .. code-block:: python - - # Constructor - a=vcs.init() - # Show predefined colormap objects - a.show('colormap') - # Updates the VCS Canvas at user's request - a.update() - # If mode=1, automatic update - a.mode=1 - #If mode=0, use update function to update the VCS Canvas. - a.mode=0 - - - - .. describe:: General use of a colormap: - - .. code-block:: python - - # Create a VCS Canvas object - a=vcs.init() - #To Create a new instance of colormap use: - # Copies content of 'red' to 'new' - cp=a.createcolormap('new','quick') - # Copies content of 'default' to 'new' - cp=a.createcolormap('new') - - .. describe:: Modifying an existing colormap: - - .. code-block:: python - - cp=a.getcolormap('quick') - - .. describe:: Overview of colormap attributes: - - * List all the colormap indices and R,G,B attribute values - - .. code-block:: python - - cp.list() - - * Setting colormap attribute values: - - .. code-block:: python - - # Index, R, G, B - cp.color=16,100,0,0 - # Index range from 0 to 255, but can only modify from 0 to 239 - cp.color=16,0,100,0 - # R, G, B values range from 0 to 100, where 0 is low intensity and 100 is highest intensity - cp.color=17,0,0,100 - - - - The boxfill graphics method (Gfb) displays a two-dimensional data array - by surrounding each data value by a colored grid box. - - This class is used to define a boxfill table entry used in VCS, or it - can be used to change some or all of the attributes in an existing - boxfill table entry. - - - .. describe:: General use of a boxfill: - - .. code-block:: python - - # Constructor - a=vcs.init() - # Show predefined boxfill graphics methods - a.show('boxfill') - # Change the VCS color map - a.setcolormap("AMIP") - # Plot data 's' with boxfill 'b' and 'default' template - a.boxfill(s,b,'default') - - .. describe:: Updating a boxfill: - - .. code-block:: python - - # Updates the VCS Canvas at user's request - a.update() - # Set VCS Canvas to automatic update mode - a.mode=1 - # Use update function to update the VCS Canvas - a.mode=0 - - .. describe:: Create a new instance of boxfill: - - .. code-block:: python - - # Copies content of 'quick' to 'new' - box=a.createboxfill('new','quick') - # Copies content of 'default' to 'new' - box=a.createboxfill('new') - - .. describe:: Modifying an existing boxfill: - - .. code-block:: python - - fill=a.getboxfill('quick') - - # Set index using fillarea - box.fillareaindices=(7,fill,4,9,fill,15) - # list fillarea attributes - fill.list() - # change style - fill.style='hatch' - # change color - fill.color='black' - # change style index - fill.index=3 - - .. describe:: Overview of boxfill attributes: - - * Listing all the boxfill attribute values: - - .. code-block:: python - - box.list() - - * Setting boxfill attribute values: - - .. code-block:: python - - box.projection='linear' - lon30={-180:'180W',-150:'150W',0:'Eq'} - box.xticlabels1=lon30 - box.xticlabels2=lon30 - # Will set them both - box.xticlabels(lon30, lon30) - box.xmtics1='' - box.xmtics2='' - # Will set them both - box.xmtics(lon30, lon30) - box.yticlabels1=lat10 - box.yticlabels2=lat10 - # Will set them both - box.yticlabels(lat10, lat10) - box.ymtics1='' - box.ymtics2='' - # Will set them both - box.ymtics(lat10, lat10) - box.datawc_y1=-90.0 - box.datawc_y2=90.0 - box.datawc_x1=-180.0 - box.datawc_x2=180.0 - # Will set them all - box.datawc(-90, 90, -180, 180) - box.xaxisconvert='linear' - box.yaxisconvert='linear' - # Will set them both - box.xyscale('linear', 'area_wt') - box.level_1=1e20 - box.level_2=1e20 - box.color_1=0 - box.color_2=255 - # Will set them both - box.colors(0, 255 ) - # 'linear' - compute or specify legend - box.boxfill_type='linear' - # 'log10' - plot using log10 - box.boxfill_type='log10' - # 'custom' - use custom values to display legend evenly - box.boxfill_type='custom' - # Hold the legend values - box.legend=None - # Show left overflow arrow - box.ext_1='n' - # Show right overflow arrow - box.ext_2='y' - # Will set them both - box.exts('n', 'y' ) - box.missing='black' - - * Setting the boxfill levels: - - .. code-block:: python - - # Case 1: Levels are all contiguous: - box.levels=([0,20,25,30,35,40],) - box.levels=([0,20,25,30,35,40,45,50]) - box.levels=[0,20,25,30,35,40] - box.levels=(0.0,20.0,25.0,30.0,35.0,40.0,50.0) - - # Case 2: Levels are not contiguous: - box.levels=([0,20],[30,40],[50,60]) - box.levels=([0,20,25,30,35,40],[30,40],[50,60]) - - * Setting the fillarea color indices: - - .. code-block:: python - - # Three different methods for setting color indices: - box.fillareacolors=([22,33,44,55,66,77]) - box.fillareacolors=(16,19,33,44) - box.fillareacolors=None - - * Setting the fillarea style: - - .. code-block:: python - - box.fillareastyle = 'solid' - box.fillareastyle = 'hatch' - box.fillareastyle = 'pattern' - - * Setting the fillarea hatch or pattern indices: - - .. code-block:: python - - box.fillareaindices=([1,3,5,6,9,20]) - box.fillareaindices=(7,1,4,9,6,15) - - * Using the fillarea secondary object (Ex): - - .. code-block:: python - - f=createfillarea('fill1') - #To Create a new instance of fillarea use: - # Copies 'quick' to 'new' - fill=a.createfillarea('new','quick') - # Copies 'default' to 'new' - fill=a.createfillarea('new') - - .. _boxfill-attribute-descriptions: - - * Attribute descriptions: - - - .. py:attribute:: boxfill_type (str) - - Type of boxfill legend. One of 'linear', 'log10', or 'custom'. See examples above for usage. - - .. py:attribute:: level_1 (float) - - Used in conjunction with boxfill_type linear/log10. Sets the value of the legend's first level - - .. py:attribute:: level_2 (float) - - Used in conjunction with boxfill_type linear/log10, sets the value of the legend's end level - - .. py:attribute:: color_1 (float) - - Used in conjunction with boxfill_type linear/log10, sets the legend's color range first value - - .. py:attribute:: color_2 (float) - - Used in conjunction with boxfill_type linear/log10, sets the legend's color range lasst value - - .. py:attribute:: levels (list of floats) - - Used in conjunction for boxfill_type custom, sets the levels range to use, can be - either a list of contiguous levels, or list of tuples indicating first - and last value of the range. - - .. py:attribte:: fillareacolors (list) - - Used in conjunction for boxfill_type custom colors to use for each level - - .. py:attribute:: legend ({float:str}) - - Used in conjunction with boxfill_type linear/log10, replaces the - legend values in the dictionary keys with their associated string. - - .. py:attribute:: ext_1 (str) - - Draws an extension arrow on right side (values less than first range value) - - .. py:attribute:: ext_2 (str) - - Draws an extension arrow on left side (values greater than last range value) - - .. py:attribute:: missing (int) - - Color to use for missing value or values not in defined ranges. - - - - .. py:attribute:: xmtics1 (str/{float:str}) - - (Ex: '') dictionary with location of intermediate tics as keys for 1st side of y axis - - .. py:attribute:: xmtics2 (str/{float:str}) - - (Ex: '') dictionary with location of intermediate tics as keys for 2nd side of y axis - - .. py:attribute:: ymtics1 (str/{float:str}) - - (Ex: '') dictionary with location of intermediate tics as keys for 1st side of y axis - - .. py:attribute:: ymtics2 (str/{float:str}) - - (Ex: '') dictionary with location of intermediate tics as keys for 2nd side of y axis - - .. py:attribute:: xticlabels1 (str/{float:str}) - - (Ex: '*') values for labels on 1st side of x axis - - .. py:attribute:: xticlabels2 (str/{float:str}) - - (Ex: '*') values for labels on 2nd side of x axis - - .. py:attribute:: yticlabels1 (str/{float:str}) - - (Ex: '*') values for labels on 1st side of y axis - - .. py:attribute:: yticlabels2 (str/{float:str}) - - (Ex: '*') values for labels on 2nd side of y axis - - .. py:attribute:: projection (str/vcs.projection.Proj) - - (Ex: 'default') projection to use, name or object - - .. py:attribute:: datawc_x1 (float) - - (Ex: 1.E20) first value of xaxis on plot - - .. py:attribute:: datawc_x2 (float) - - (Ex: 1.E20) second value of xaxis on plot - - .. py:attribute:: datawc_y1 (float) - - (Ex: 1.E20) first value of yaxis on plot - - .. py:attribute:: datawc_y2 (float) - - (Ex: 1.E20) second value of yaxis on plot - - - .. py:attribute:: datawc_timeunits (str) - - (Ex: 'days since 2000') units to use when displaying time dimension auto tick - - .. py:attribute:: datawc_calendar (int) - - (Ex: 135441) calendar to use when displaying time dimension auto tick, default is proleptic gregorian calendar - - - - -********************************************** -Document: API/misc/queries - -********************************************** -File "API/misc/queries.rst", line 11, in queries_isplot -Failed example: - vcs.queries.isplot(dsp_plot) -Expected: - 1 -Got: - 0 -********************************************** -File "API/misc/queries.rst", line 7, in queries_is -Failed example: - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') # Create 'EXAMPLE_tt' and 'EXAMPLE_tto' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 1365, in createtextcombined - Tt_name, Tt_source = check_name_source(Tt_name, Tt_source, 'texttable') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/manageElements.py", line 57, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error texttable object named EXAMPLE_tt already exists -4 items passed all tests: - 2 tests in queries_gmlist - 7 tests in queries_gmtype - 3 tests in queries_isgraphicsmethod - 4 tests in queries_issecondary -********************************************** -Document: API/graphics/isofill - -********************************************** -File "API/graphics/isofill.rst", line 20, in script_examples -Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/isofill.py", line 856, in script - fp.write("%s.missing = %g\n" % (unique_name, self.missing)) - TypeError: float argument required, not tuple -1 items passed all tests: - 3 tests in xyscale_isofill -********************************************** -Document: API/misc/utils - -********************************************** -File "API/misc/utils.rst", line 10, in utils_getcolorcell -Failed example: - a.getcolorcell(2,b) -Expected: - [85, 85, 85, 100.0] -Got: - [26, 1, 34, 100] -********************************************** -File "API/misc/utils.rst", line 8, in utils_mklabels -Failed example: - vcs.mklabels (a) -Expected: - {20.0: '20', 18.0: '18', 16.0: '16', 14.0: '14', 12.0: '12', - 10.0: '10', 8.0: '8', 6.0: '6', 4.0: '4', 2.0: '2', 0.0: '0'} -Got: - {0.0: '0', 2.0: '2', 4.0: '4', 6.0: '6', 8.0: '8', 10.0: '10', 12.0: '12', 14.0: '14', 16.0: '16', 18.0: '18', 20.0: '20'} -********************************************** -File "API/misc/utils.rst", line 11, in utils_mklabels -Failed example: - vcs.mklabels ( [5,.005]) -Expected: - {0.0050000000000000001: '0.005', 5.0: '5.000'} -Got: - {5.0: '5.000', 0.005: '0.005'} -********************************************** -File "API/misc/utils.rst", line 13, in utils_mklabels -Failed example: - vcs.mklabels ( [.00002,.00005]) -Expected: - {2.0000000000000002e-05: '2E-5', 5.0000000000000002e-05: '5E-5'} -Got: - {2e-05: '2E-5', 5e-05: '5E-5'} -********************************************** -File "API/misc/utils.rst", line 8, in utils_match_color -Failed example: - print vcs.match_color('salmon') -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - print vcs.match_color('salmon') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/utils.py", line 1958, in match_color - colormap = vcs.getcolormapname() - AttributeError: 'module' object has no attribute 'getcolormapname' -********************************************** -File "API/misc/utils.rst", line 9, in utils_match_color -Failed example: - print vcs.match_color('red') -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - print vcs.match_color('red') - File "/Users/brown308/projects/embrown/documentation/vcs/vcs/vcs/utils.py", line 1958, in match_color - colormap = vcs.getcolormapname() - AttributeError: 'module' object has no attribute 'getcolormapname' -********************************************** -File "API/misc/utils.rst", line 10, in utils_match_color -Failed example: - print vcs.match_color([0,0,100],'default') # closest color from blue -Expected nothing -Got: - 52 -12 items passed all tests: - 13 tests in utils_Logo - 13 tests in utils_Logo_plot - 5 tests in utils_drawLinesAndMarkersLegend - 4 tests in utils_generate_time_labels - 4 tests in utils_getcolormap - 7 tests in utils_getcolors - 4 tests in utils_minmax - 3 tests in utils_mkevenlevels - 6 tests in utils_mkscale - 2 tests in utils_rbga_color - 6 tests in utils_setcolorcell - 6 tests in utils_show -********************************************** diff --git a/docs/doctest_info/Canvas.md b/docs/doctest_info/markdown/Canvas.md similarity index 84% rename from docs/doctest_info/Canvas.md rename to docs/doctest_info/markdown/Canvas.md index c4ac9512d..350b1aad1 100644 --- a/docs/doctest_info/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -1,14 +1,3 @@ -vcs.Canvas.Canvas.clean_auto_generated_objects ----------------------------------------------- -```python -Failed example: - boxes == new_boxes # should not be the same -Expected: - False -Got: - True -``` - vcs.Canvas.Canvas.createtext ---------------------------- ```python @@ -19,17 +8,7 @@ Failed example: pass Expected nothing Got: - -``` - -vcs.Canvas.Canvas.drawtext --------------------------- -```python -Failed example: - tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) -Expected: - -Got nothing + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -41,7 +20,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -53,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -67,7 +46,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.gettaylordiagram @@ -83,7 +62,7 @@ Exception raised: a.taylordiagram(ex, slab1) # plot using specified taylordiagram object File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3701, in __plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3700, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) @@ -104,17 +83,6 @@ Expected: Got nothing ``` -vcs.Canvas.Canvas.show ----------------------- -```python -Failed example: - vcs.show() # show all vcs object types -Expected: - ['1d','3d_dual_scalar','3d_scalar','3d_vector','boxfill', ...] -Got: - ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', 'colormap', 'display', 'fillarea', 'font', 'fontNumber', 'isofill', 'isoline', 'line', 'list', 'marker', 'meshfill', 'projection', 'scatter', 'taylordiagram', 'template', 'textcombined', 'textorientation', 'texttable', 'vector', 'xvsy', 'xyvsy', 'yxvsx'] -``` - Missing Doctests ---------------- :x:``` vcs.Canvas``` diff --git a/docs/doctest_info/Pboxeslines.md b/docs/doctest_info/markdown/Pboxeslines.md similarity index 100% rename from docs/doctest_info/Pboxeslines.md rename to docs/doctest_info/markdown/Pboxeslines.md diff --git a/docs/doctest_info/Pdata.md b/docs/doctest_info/markdown/Pdata.md similarity index 100% rename from docs/doctest_info/Pdata.md rename to docs/doctest_info/markdown/Pdata.md diff --git a/docs/doctest_info/Pformat.md b/docs/doctest_info/markdown/Pformat.md similarity index 100% rename from docs/doctest_info/Pformat.md rename to docs/doctest_info/markdown/Pformat.md diff --git a/docs/doctest_info/Plegend.md b/docs/doctest_info/markdown/Plegend.md similarity index 100% rename from docs/doctest_info/Plegend.md rename to docs/doctest_info/markdown/Plegend.md diff --git a/docs/doctest_info/Ptext.md b/docs/doctest_info/markdown/Ptext.md similarity index 100% rename from docs/doctest_info/Ptext.md rename to docs/doctest_info/markdown/Ptext.md diff --git a/docs/doctest_info/Pxlabels.md b/docs/doctest_info/markdown/Pxlabels.md similarity index 100% rename from docs/doctest_info/Pxlabels.md rename to docs/doctest_info/markdown/Pxlabels.md diff --git a/docs/doctest_info/Pxtickmarks.md b/docs/doctest_info/markdown/Pxtickmarks.md similarity index 100% rename from docs/doctest_info/Pxtickmarks.md rename to docs/doctest_info/markdown/Pxtickmarks.md diff --git a/docs/doctest_info/Pylabels.md b/docs/doctest_info/markdown/Pylabels.md similarity index 100% rename from docs/doctest_info/Pylabels.md rename to docs/doctest_info/markdown/Pylabels.md diff --git a/docs/doctest_info/Pytickmarks.md b/docs/doctest_info/markdown/Pytickmarks.md similarity index 100% rename from docs/doctest_info/Pytickmarks.md rename to docs/doctest_info/markdown/Pytickmarks.md diff --git a/docs/doctest_info/VCS_validation_functions.md b/docs/doctest_info/markdown/VCS_validation_functions.md similarity index 89% rename from docs/doctest_info/VCS_validation_functions.md rename to docs/doctest_info/markdown/VCS_validation_functions.md index e1fac32f0..6d682bcb6 100644 --- a/docs/doctest_info/VCS_validation_functions.md +++ b/docs/doctest_info/markdown/VCS_validation_functions.md @@ -176,4 +176,25 @@ Missing Doctests :x:``` vcs.VCS_validation_functions.checkVectorType``` - +:x:``` vcs.VCS_validation_functions.checkWrap``` + +:x:``` vcs.VCS_validation_functions.checkYesNo``` + +:x:``` vcs.VCS_validation_functions.checkedRaise``` + +:x:``` vcs.VCS_validation_functions.checkname``` + +:x:``` vcs.VCS_validation_functions.color2vcs``` + +:x:``` vcs.VCS_validation_functions.deg2DMS``` + +:x:``` vcs.VCS_validation_functions.getProjType``` + +:x:``` vcs.VCS_validation_functions.isListorTuple``` + +:x:``` vcs.VCS_validation_functions.isNumber``` + +:x:``` vcs.VCS_validation_functions.matchVcsColor``` + +:x:``` vcs.VCS_validation_functions.setProjParameter``` + diff --git a/docs/doctest_info/boxfill.md b/docs/doctest_info/markdown/boxfill.md similarity index 100% rename from docs/doctest_info/boxfill.md rename to docs/doctest_info/markdown/boxfill.md diff --git a/docs/doctest_info/markdown/colormap.md b/docs/doctest_info/markdown/colormap.md new file mode 100644 index 000000000..e0167c424 --- /dev/null +++ b/docs/doctest_info/markdown/colormap.md @@ -0,0 +1,32 @@ +Missing Doctests +---------------- +:x:``` vcs.colormap``` + +:x:``` vcs.colormap.Cp``` + +:x:``` vcs.colormap.Cp.__init__``` + +:x:``` vcs.colormap.Cp.getindex``` + +:x:``` vcs.colormap.Cp.getname``` + +:x:``` vcs.colormap.Cp.index``` + +:x:``` vcs.colormap.Cp.list``` + +:x:``` vcs.colormap.Cp.name``` + +:x:``` vcs.colormap.Cp.setindex``` + +:x:``` vcs.colormap.Cp.setname``` + +:x:``` vcs.colormap.RGB_Table``` + +:x:``` vcs.colormap.RGB_Table.__getitem__``` + +:x:``` vcs.colormap.RGB_Table.__init__``` + +:x:``` vcs.colormap.RGB_Table.__setitem__``` + +:x:``` vcs.colormap.process_src``` + diff --git a/docs/doctest_info/colors.md b/docs/doctest_info/markdown/colors.md similarity index 100% rename from docs/doctest_info/colors.md rename to docs/doctest_info/markdown/colors.md diff --git a/docs/doctest_info/configurator.md b/docs/doctest_info/markdown/configurator.md similarity index 100% rename from docs/doctest_info/configurator.md rename to docs/doctest_info/markdown/configurator.md diff --git a/docs/doctest_info/displayplot.md b/docs/doctest_info/markdown/displayplot.md similarity index 100% rename from docs/doctest_info/displayplot.md rename to docs/doctest_info/markdown/displayplot.md diff --git a/docs/doctest_info/dv3d.md b/docs/doctest_info/markdown/dv3d.md similarity index 100% rename from docs/doctest_info/dv3d.md rename to docs/doctest_info/markdown/dv3d.md diff --git a/docs/doctest_info/editors.md b/docs/doctest_info/markdown/editors.md similarity index 100% rename from docs/doctest_info/editors.md rename to docs/doctest_info/markdown/editors.md diff --git a/docs/doctest_info/error.md b/docs/doctest_info/markdown/error.md similarity index 100% rename from docs/doctest_info/error.md rename to docs/doctest_info/markdown/error.md diff --git a/docs/doctest_info/fillarea.md b/docs/doctest_info/markdown/fillarea.md similarity index 100% rename from docs/doctest_info/fillarea.md rename to docs/doctest_info/markdown/fillarea.md diff --git a/docs/doctest_info/isofill.md b/docs/doctest_info/markdown/isofill.md similarity index 100% rename from docs/doctest_info/isofill.md rename to docs/doctest_info/markdown/isofill.md diff --git a/docs/doctest_info/isoline.md b/docs/doctest_info/markdown/isoline.md similarity index 100% rename from docs/doctest_info/isoline.md rename to docs/doctest_info/markdown/isoline.md diff --git a/docs/doctest_info/line.md b/docs/doctest_info/markdown/line.md similarity index 100% rename from docs/doctest_info/line.md rename to docs/doctest_info/markdown/line.md diff --git a/docs/doctest_info/manageElements.md b/docs/doctest_info/markdown/manageElements.md similarity index 60% rename from docs/doctest_info/manageElements.md rename to docs/doctest_info/markdown/manageElements.md index b3ed13a9a..0eb742321 100644 --- a/docs/doctest_info/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -22,7 +22,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar @@ -34,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -46,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -60,61 +60,31 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.manageElements.getprojection --------------------------------- -```python -Failed example: - a.plot(ex, slab1) # plot using specified projection object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex, slab1) # plot using specified projection object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2636, in plot - a = self.__plot(arglist, keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2967, in __plot - setattr(copy_mthd, p, keyargs[p]) - AttributeError: 'NoneType' object has no attribute 'projection' -``` - -vcs.manageElements.getprojection --------------------------------- -```python -Failed example: - a.plot(ex2, slab1) # plot using specified projection object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex2, slab1) # plot using specified projection object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2636, in plot - a = self.__plot(arglist, keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2967, in __plot - setattr(copy_mthd, p, keyargs[p]) - AttributeError: 'NoneType' object has no attribute 'projection' + ``` vcs.manageElements.gettaylordiagram ----------------------------------- ```python Failed example: - a.taylordiagram(ex) # plot using specified taylordiagram object + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1319, in taylordiagram - arglist = _determine_arg_list('taylordiagram', args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list - arglist[igraphics_method]) - vcsError: Graphics method taylordiagram requires 1 slab. + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3700, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars ``` Missing Doctests diff --git a/docs/doctest_info/marker.md b/docs/doctest_info/markdown/marker.md similarity index 100% rename from docs/doctest_info/marker.md rename to docs/doctest_info/markdown/marker.md diff --git a/docs/doctest_info/meshfill.md b/docs/doctest_info/markdown/meshfill.md similarity index 100% rename from docs/doctest_info/meshfill.md rename to docs/doctest_info/markdown/meshfill.md diff --git a/docs/doctest_info/projection.md b/docs/doctest_info/markdown/projection.md similarity index 100% rename from docs/doctest_info/projection.md rename to docs/doctest_info/markdown/projection.md diff --git a/docs/doctest_info/queries.md b/docs/doctest_info/markdown/queries.md similarity index 90% rename from docs/doctest_info/queries.md rename to docs/doctest_info/markdown/queries.md index 9fecf5153..2c64703c5 100644 --- a/docs/doctest_info/queries.md +++ b/docs/doctest_info/markdown/queries.md @@ -19,7 +19,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/taylor.md b/docs/doctest_info/markdown/taylor.md similarity index 100% rename from docs/doctest_info/taylor.md rename to docs/doctest_info/markdown/taylor.md diff --git a/docs/doctest_info/template.md b/docs/doctest_info/markdown/template.md similarity index 99% rename from docs/doctest_info/template.md rename to docs/doctest_info/markdown/template.md index d6709b768..697935e9c 100644 --- a/docs/doctest_info/template.md +++ b/docs/doctest_info/markdown/template.md @@ -14,7 +14,7 @@ Exception raised: ["sample A","type B","thing C"],True) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2693, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2690, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' ``` diff --git a/docs/doctest_info/textcombined.md b/docs/doctest_info/markdown/textcombined.md similarity index 98% rename from docs/doctest_info/textcombined.md rename to docs/doctest_info/markdown/textcombined.md index 7fc6ca92d..164fa7601 100644 --- a/docs/doctest_info/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script diff --git a/docs/doctest_info/textorientation.md b/docs/doctest_info/markdown/textorientation.md similarity index 100% rename from docs/doctest_info/textorientation.md rename to docs/doctest_info/markdown/textorientation.md diff --git a/docs/doctest_info/texttable.md b/docs/doctest_info/markdown/texttable.md similarity index 100% rename from docs/doctest_info/texttable.md rename to docs/doctest_info/markdown/texttable.md diff --git a/docs/doctest_info/unified1D.md b/docs/doctest_info/markdown/unified1D.md similarity index 100% rename from docs/doctest_info/unified1D.md rename to docs/doctest_info/markdown/unified1D.md diff --git a/docs/doctest_info/utils.md b/docs/doctest_info/markdown/utils.md similarity index 100% rename from docs/doctest_info/utils.md rename to docs/doctest_info/markdown/utils.md diff --git a/docs/doctest_info/vcshelp.md b/docs/doctest_info/markdown/vcshelp.md similarity index 100% rename from docs/doctest_info/vcshelp.md rename to docs/doctest_info/markdown/vcshelp.md diff --git a/docs/doctest_info/vector.md b/docs/doctest_info/markdown/vector.md similarity index 100% rename from docs/doctest_info/vector.md rename to docs/doctest_info/markdown/vector.md diff --git a/docs/doctest_info/Canvas.report b/docs/doctest_info/reports/Canvas.report similarity index 97% rename from docs/doctest_info/Canvas.report rename to docs/doctest_info/reports/Canvas.report index 58dd07974..13d9d493e 100644 --- a/docs/doctest_info/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -161,7 +161,7 @@ Trying: Expecting nothing ok Trying: - boxes=a.listelements('boxfill') # initial boxfill names + txt=a.listelements('textorientation') # initial objects Expecting nothing ok Trying: @@ -174,21 +174,27 @@ Expecting: ok Trying: - new_boxes=a.listelements('boxfill') # has new names + new_txt=a.listelements('textorientation') # has new names Expecting nothing ok Trying: - boxes == new_boxes # should not be the same + txt == new_txt # should not be the same Expecting: False -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1159, in vcs.Canvas.Canvas.clean_auto_generated_objects -Failed example: - boxes == new_boxes # should not be the same -Expected: - False -Got: +ok +Trying: + clean() +Expecting nothing +ok +Trying: + new_txt=a.listelements('textorientation') # back to initial +Expecting nothing +ok +Trying: + txt == new_txt # should have the same contents +Expecting: True +ok Trying: a=vcs.init() Expecting nothing @@ -231,8 +237,9 @@ Expecting: *******************End 1d Names List********************** ok Trying: - blue = vcs.get1d('blue_yxvsx') -Expecting nothing + vcs.get1d('blue_yxvsx') +Expecting: + ok Trying: vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar @@ -577,7 +584,12 @@ Failed example: pass Expected nothing Got: - + +Trying: + vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' +Expecting: + [...'EXAMPLE_tt:::EXAMPLE_tto'...] +ok Trying: vcs.show('textorientation') # show all available textorientation Expecting: @@ -833,15 +845,8 @@ Expecting nothing ok Trying: tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2316, in vcs.Canvas.Canvas.drawtext -Failed example: - tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) -Expected: - -Got nothing +Expecting nothing +ok Trying: a=vcs.init() Expecting nothing @@ -1068,7 +1073,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1106,7 +1111,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1150,7 +1155,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1629,7 +1634,7 @@ Exception raised: a.taylordiagram(ex, slab1) # plot using specified taylordiagram object File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3701, in __plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3700, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) @@ -1901,7 +1906,7 @@ Trying: Expecting: 1 ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5606, in vcs.Canvas.Canvas.isinfile +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5605, in vcs.Canvas.Canvas.isinfile Failed example: a.isinfile(box, 'deft_box.py') Expected: @@ -2800,15 +2805,43 @@ ok Trying: vcs.show() # show all vcs object types Expecting: - ['1d','3d_dual_scalar','3d_scalar','3d_vector','boxfill', ...] -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5602, in vcs.Canvas.Canvas.show -Failed example: - vcs.show() # show all vcs object types -Expected: - ['1d','3d_dual_scalar','3d_scalar','3d_vector','boxfill', ...] -Got: - ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', 'colormap', 'display', 'fillarea', 'font', 'fontNumber', 'isofill', 'isoline', 'line', 'list', 'marker', 'meshfill', 'projection', 'scatter', 'taylordiagram', 'template', 'textcombined', 'textorientation', 'texttable', 'vector', 'xvsy', 'xyvsy', 'yxvsx'] + ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', ...] +ok +Trying: + vcs.show('boxfill') # List boxfill objects +Expecting: + *******************Boxfill Names List********************** + ... + *******************End Boxfill Names List********************** +ok +Trying: + vcs.show('3d_vector') # List 3d_vector objects +Expecting: + *******************3d_vector Names List********************** + ... + *******************End 3d_vector Names List********************** +ok +Trying: + vcs.show('3d_scalar') # List 3d_scalar objects +Expecting: + *******************3d_scalar Names List********************** + ... + *******************End 3d_scalar Names List********************** +ok +Trying: + vcs.show('3d_dual_scalar') # List 3d_dual_scalar objects +Expecting: + *******************3d_dual_scalar Names List********************** + ... + *******************End 3d_dual_scalar Names List********************** +ok +Trying: + vcs.show('1d') # List 1d objects +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok Trying: a=vcs.init() Expecting nothing @@ -3265,12 +3298,13 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -113 items passed all tests: +116 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill 2 tests in vcs.Canvas.Canvas.canvasid 5 tests in vcs.Canvas.Canvas.canvasinfo 6 tests in vcs.Canvas.Canvas.change_display_graphic_method 4 tests in vcs.Canvas.Canvas.check_name_source + 11 tests in vcs.Canvas.Canvas.clean_auto_generated_objects 4 tests in vcs.Canvas.Canvas.clear 4 tests in vcs.Canvas.Canvas.close 2 tests in vcs.Canvas.Canvas.create1d @@ -3301,6 +3335,7 @@ ok 3 tests in vcs.Canvas.Canvas.drawlogooff 3 tests in vcs.Canvas.Canvas.drawlogoon 4 tests in vcs.Canvas.Canvas.drawmarker + 6 tests in vcs.Canvas.Canvas.drawtext 3 tests in vcs.Canvas.Canvas.dummy_user_action 9 tests in vcs.Canvas.Canvas.eps 10 tests in vcs.Canvas.Canvas.ffmpeg @@ -3370,6 +3405,7 @@ ok 5 tests in vcs.Canvas.Canvas.setcolormap 5 tests in vcs.Canvas.Canvas.setcontinentsline 4 tests in vcs.Canvas.Canvas.setcontinentstype + 6 tests in vcs.Canvas.Canvas.show 6 tests in vcs.Canvas.Canvas.svg 7 tests in vcs.Canvas.Canvas.switchfonts 8 tests in vcs.Canvas.Canvas.taylordiagram @@ -3380,16 +3416,13 @@ ok 8 tests in vcs.Canvas.Canvas.xyvsy 8 tests in vcs.Canvas.Canvas.yxvsx ********************************************************************** -9 items had failures: - 1 of 11 in vcs.Canvas.Canvas.clean_auto_generated_objects +6 items had failures: 1 of 3 in vcs.Canvas.Canvas.createtext - 1 of 6 in vcs.Canvas.Canvas.drawtext 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram 1 of 4 in vcs.Canvas.Canvas.isinfile - 1 of 6 in vcs.Canvas.Canvas.show 691 tests in 205 items. -682 passed and 9 failed. -***Test Failed*** 9 failures. +685 passed and 6 failed. +***Test Failed*** 6 failures. diff --git a/docs/doctest_info/Pboxeslines.report b/docs/doctest_info/reports/Pboxeslines.report similarity index 100% rename from docs/doctest_info/Pboxeslines.report rename to docs/doctest_info/reports/Pboxeslines.report diff --git a/docs/doctest_info/Pdata.report b/docs/doctest_info/reports/Pdata.report similarity index 100% rename from docs/doctest_info/Pdata.report rename to docs/doctest_info/reports/Pdata.report diff --git a/docs/doctest_info/Pformat.report b/docs/doctest_info/reports/Pformat.report similarity index 100% rename from docs/doctest_info/Pformat.report rename to docs/doctest_info/reports/Pformat.report diff --git a/docs/doctest_info/Plegend.report b/docs/doctest_info/reports/Plegend.report similarity index 100% rename from docs/doctest_info/Plegend.report rename to docs/doctest_info/reports/Plegend.report diff --git a/docs/doctest_info/Ptext.report b/docs/doctest_info/reports/Ptext.report similarity index 100% rename from docs/doctest_info/Ptext.report rename to docs/doctest_info/reports/Ptext.report diff --git a/docs/doctest_info/Pxlabels.report b/docs/doctest_info/reports/Pxlabels.report similarity index 100% rename from docs/doctest_info/Pxlabels.report rename to docs/doctest_info/reports/Pxlabels.report diff --git a/docs/doctest_info/Pxtickmarks.report b/docs/doctest_info/reports/Pxtickmarks.report similarity index 100% rename from docs/doctest_info/Pxtickmarks.report rename to docs/doctest_info/reports/Pxtickmarks.report diff --git a/docs/doctest_info/Pylabels.report b/docs/doctest_info/reports/Pylabels.report similarity index 100% rename from docs/doctest_info/Pylabels.report rename to docs/doctest_info/reports/Pylabels.report diff --git a/docs/doctest_info/Pytickmarks.report b/docs/doctest_info/reports/Pytickmarks.report similarity index 100% rename from docs/doctest_info/Pytickmarks.report rename to docs/doctest_info/reports/Pytickmarks.report diff --git a/docs/doctest_info/VCS_validation_functions.report b/docs/doctest_info/reports/VCS_validation_functions.report similarity index 99% rename from docs/doctest_info/VCS_validation_functions.report rename to docs/doctest_info/reports/VCS_validation_functions.report index 7c09a36d5..cac2d926f 100644 --- a/docs/doctest_info/VCS_validation_functions.report +++ b/docs/doctest_info/reports/VCS_validation_functions.report @@ -101,4 +101,3 @@ 0 tests in 99 items. 0 passed and 0 failed. Test passed. -Done logging VCS_validation_functions.md diff --git a/docs/doctest_info/boxfill.report b/docs/doctest_info/reports/boxfill.report similarity index 100% rename from docs/doctest_info/boxfill.report rename to docs/doctest_info/reports/boxfill.report diff --git a/docs/doctest_info/reports/colormap.report b/docs/doctest_info/reports/colormap.report new file mode 100644 index 000000000..5960fb0df --- /dev/null +++ b/docs/doctest_info/reports/colormap.report @@ -0,0 +1,64 @@ +Trying: + a=vcs.init() # Create a vcs Canvas +Expecting nothing +ok +Trying: + cmap = a.createcolormap('gcc_cmap') # Create a colormap +Expecting nothing +ok +Trying: + cmap.getcolorcell(1) # Get RGBA values +Expecting: + [26, 0, 33, 100] +ok +Trying: + a=vcs.init() # Make a Canvas object to work with +Expecting nothing +ok +Trying: + ex=a.getcolormap() # Get default colormap +Expecting nothing +ok +Trying: + ex.script('filename.py') # Append to a Python script named 'filename.py' +Expecting nothing +ok +Trying: + ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. +Expecting nothing +ok +Trying: + a = vcs.init() # Create a vcs Canvas +Expecting nothing +ok +Trying: + cmap = a.createcolormap('scc_cmap') # Create a colormap +Expecting nothing +ok +Trying: + cmap.setcolorcell(40,80,95,1.0) # Set RGBA values +Expecting nothing +ok +15 items had no tests: + vcs.colormap + vcs.colormap.Cp + vcs.colormap.Cp.__init__ + vcs.colormap.Cp.getindex + vcs.colormap.Cp.getname + vcs.colormap.Cp.index + vcs.colormap.Cp.list + vcs.colormap.Cp.name + vcs.colormap.Cp.setindex + vcs.colormap.Cp.setname + vcs.colormap.RGB_Table + vcs.colormap.RGB_Table.__getitem__ + vcs.colormap.RGB_Table.__init__ + vcs.colormap.RGB_Table.__setitem__ + vcs.colormap.process_src +3 items passed all tests: + 3 tests in vcs.colormap.Cp.getcolorcell + 4 tests in vcs.colormap.Cp.script + 3 tests in vcs.colormap.Cp.setcolorcell +10 tests in 18 items. +10 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/colors.report b/docs/doctest_info/reports/colors.report similarity index 100% rename from docs/doctest_info/colors.report rename to docs/doctest_info/reports/colors.report diff --git a/docs/doctest_info/configurator.report b/docs/doctest_info/reports/configurator.report similarity index 100% rename from docs/doctest_info/configurator.report rename to docs/doctest_info/reports/configurator.report diff --git a/docs/doctest_info/displayplot.report b/docs/doctest_info/reports/displayplot.report similarity index 100% rename from docs/doctest_info/displayplot.report rename to docs/doctest_info/reports/displayplot.report diff --git a/docs/doctest_info/dv3d.report b/docs/doctest_info/reports/dv3d.report similarity index 100% rename from docs/doctest_info/dv3d.report rename to docs/doctest_info/reports/dv3d.report diff --git a/docs/doctest_info/editors.report b/docs/doctest_info/reports/editors.report similarity index 100% rename from docs/doctest_info/editors.report rename to docs/doctest_info/reports/editors.report diff --git a/docs/doctest_info/error.report b/docs/doctest_info/reports/error.report similarity index 100% rename from docs/doctest_info/error.report rename to docs/doctest_info/reports/error.report diff --git a/docs/doctest_info/fillarea.report b/docs/doctest_info/reports/fillarea.report similarity index 100% rename from docs/doctest_info/fillarea.report rename to docs/doctest_info/reports/fillarea.report diff --git a/docs/doctest_info/isofill.report b/docs/doctest_info/reports/isofill.report similarity index 100% rename from docs/doctest_info/isofill.report rename to docs/doctest_info/reports/isofill.report diff --git a/docs/doctest_info/isoline.report b/docs/doctest_info/reports/isoline.report similarity index 100% rename from docs/doctest_info/isoline.report rename to docs/doctest_info/reports/isoline.report diff --git a/docs/doctest_info/line.report b/docs/doctest_info/reports/line.report similarity index 100% rename from docs/doctest_info/line.report rename to docs/doctest_info/reports/line.report diff --git a/docs/doctest_info/manageElements.report b/docs/doctest_info/reports/manageElements.report similarity index 89% rename from docs/doctest_info/manageElements.report rename to docs/doctest_info/reports/manageElements.report index 747b51847..c2497aa61 100644 --- a/docs/doctest_info/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -27,16 +27,19 @@ Expecting: *******************End 1d Names List********************** ok Trying: - oneD_default = vcs.create1d() # inherit default, name generated -Expecting nothing + vcs.create1d() # inherits default, name generated +Expecting: + ok Trying: - oneD_named = vcs.create1d("one_D") # inherit default, name "one_D" -Expecting nothing + vcs.create1d("one_D") # inherits default, name "one_D" +Expecting: + ok Trying: - new_one_D = vcs.create1d(source="one_D") # inherit from "one_D" -Expecting nothing + vcs.create1d(source="one_D") # inherits from "one_D" +Expecting: + ok Trying: vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar @@ -366,7 +369,7 @@ Expecting: ... *******************End Textcombined Names List********************** ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1434, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1438, in vcs.manageElements.createtext Failed example: vcs.show('textcombined') # show all available textcombined Expected: @@ -383,7 +386,7 @@ Trying: pass Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1438, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1442, in vcs.manageElements.createtext Failed example: try: # try to create a new textcombined, in case none exist vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') @@ -391,7 +394,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -519,8 +522,9 @@ Expecting: *******************End 1d Names List********************** ok Trying: - blue = vcs.get1d('blue_yxvsx') -Expecting nothing + vcs.get1d('blue_yxvsx') +Expecting: + ok Trying: a=vcs.init() @@ -556,14 +560,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1703, in vcs.manageElements.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1707, in vcs.manageElements.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -594,14 +598,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1661, in vcs.manageElements.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1665, in vcs.manageElements.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -636,7 +640,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1744, in vcs.manageElements.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1748, in vcs.manageElements.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -645,7 +649,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -904,60 +908,10 @@ Trying: ex=vcs.getprojection() # instance of 'default' projection graphics method Expecting nothing ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified projection object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 183, in vcs.manageElements.getprojection -Failed example: - a.plot(ex, slab1) # plot using specified projection object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex, slab1) # plot using specified projection object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2636, in plot - a = self.__plot(arglist, keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2967, in __plot - setattr(copy_mthd, p, keyargs[p]) - AttributeError: 'NoneType' object has no attribute 'projection' Trying: ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method Expecting nothing ok -Trying: - a.plot(ex2, slab1) # plot using specified projection object -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 186, in vcs.manageElements.getprojection -Failed example: - a.plot(ex2, slab1) # plot using specified projection object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex2, slab1) # plot using specified projection object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2636, in plot - a = self.__plot(arglist, keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2967, in __plot - setattr(copy_mthd, p, keyargs[p]) - AttributeError: 'NoneType' object has no attribute 'projection' Trying: a=vcs.init() Expecting nothing @@ -1018,24 +972,30 @@ Trying: Expecting nothing ok Trying: - a.taylordiagram(ex) # plot using specified taylordiagram object + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Expecting: ********************************************************************** File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 292, in vcs.manageElements.gettaylordiagram Failed example: - a.taylordiagram(ex) # plot using specified taylordiagram object + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - a.taylordiagram(ex) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1319, in taylordiagram - arglist = _determine_arg_list('taylordiagram', args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 272, in _determine_arg_list - arglist[igraphics_method]) - vcsError: Graphics method taylordiagram requires 1 slab. + a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram + return self.__plot(arglist, parms) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3700, in __plot + t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot + self.draw(canvas, data) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw + d0 = float(data[i][0]) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ + raise TypeError("Only length-1 arrays can be converted " + TypeError: Only length-1 arrays can be converted to Python scalars Trying: a=vcs.init() Expecting nothing @@ -1049,32 +1009,10 @@ Trying: ex=vcs.gettemplate() # instance of 'default' template graphics method Expecting nothing ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot using specified template object -Expecting: - -ok Trying: ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method Expecting nothing ok -Trying: - a.plot(ex2, slab1) # plot using specified template object -Expecting: - -ok Trying: a=vcs.init() Expecting nothing @@ -1329,7 +1267,7 @@ ok vcs.manageElements.removeTm vcs.manageElements.removeTo vcs.manageElements.removeTt -43 items passed all tests: +44 items passed all tests: 4 tests in vcs.manageElements.check_name_source 4 tests in vcs.manageElements.create1d 3 tests in vcs.manageElements.create3d_dual_scalar @@ -1362,8 +1300,9 @@ ok 6 tests in vcs.manageElements.getline 6 tests in vcs.manageElements.getmarker 9 tests in vcs.manageElements.getmeshfill + 4 tests in vcs.manageElements.getprojection 8 tests in vcs.manageElements.getscatter - 9 tests in vcs.manageElements.gettemplate + 4 tests in vcs.manageElements.gettemplate 5 tests in vcs.manageElements.gettextcombined 4 tests in vcs.manageElements.gettextorientation 4 tests in vcs.manageElements.gettexttable @@ -1374,13 +1313,12 @@ ok 3 tests in vcs.manageElements.removeobject 7 tests in vcs.manageElements.setLineAttributes ********************************************************************** -6 items had failures: +5 items had failures: 2 of 3 in vcs.manageElements.createtext 1 of 8 in vcs.manageElements.get3d_dual_scalar 1 of 7 in vcs.manageElements.get3d_scalar 1 of 8 in vcs.manageElements.get3d_vector - 2 of 9 in vcs.manageElements.getprojection 1 of 7 in vcs.manageElements.gettaylordiagram -263 tests in 71 items. -255 passed and 8 failed. -***Test Failed*** 8 failures. +253 tests in 71 items. +247 passed and 6 failed. +***Test Failed*** 6 failures. diff --git a/docs/doctest_info/marker.report b/docs/doctest_info/reports/marker.report similarity index 100% rename from docs/doctest_info/marker.report rename to docs/doctest_info/reports/marker.report diff --git a/docs/doctest_info/meshfill.report b/docs/doctest_info/reports/meshfill.report similarity index 100% rename from docs/doctest_info/meshfill.report rename to docs/doctest_info/reports/meshfill.report diff --git a/docs/doctest_info/projection.report b/docs/doctest_info/reports/projection.report similarity index 100% rename from docs/doctest_info/projection.report rename to docs/doctest_info/reports/projection.report diff --git a/docs/doctest_info/queries.report b/docs/doctest_info/reports/queries.report similarity index 99% rename from docs/doctest_info/queries.report rename to docs/doctest_info/reports/queries.report index 080434c3c..c88ccade5 100644 --- a/docs/doctest_info/queries.report +++ b/docs/doctest_info/reports/queries.report @@ -444,7 +444,7 @@ Failed example: pass Expected nothing Got: - + Trying: a.show('textcombined') # Show all available textcombined Expecting: diff --git a/docs/doctest_info/taylor.report b/docs/doctest_info/reports/taylor.report similarity index 100% rename from docs/doctest_info/taylor.report rename to docs/doctest_info/reports/taylor.report diff --git a/docs/doctest_info/template.report b/docs/doctest_info/reports/template.report similarity index 99% rename from docs/doctest_info/template.report rename to docs/doctest_info/reports/template.report index efb4cb983..bf705ac10 100644 --- a/docs/doctest_info/template.report +++ b/docs/doctest_info/reports/template.report @@ -31,7 +31,7 @@ Exception raised: ["sample A","type B","thing C"],True) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2693, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2690, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' Trying: diff --git a/docs/doctest_info/textcombined.report b/docs/doctest_info/reports/textcombined.report similarity index 98% rename from docs/doctest_info/textcombined.report rename to docs/doctest_info/reports/textcombined.report index 563c85517..77dacb07a 100644 --- a/docs/doctest_info/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing diff --git a/docs/doctest_info/textorientation.report b/docs/doctest_info/reports/textorientation.report similarity index 100% rename from docs/doctest_info/textorientation.report rename to docs/doctest_info/reports/textorientation.report diff --git a/docs/doctest_info/texttable.report b/docs/doctest_info/reports/texttable.report similarity index 100% rename from docs/doctest_info/texttable.report rename to docs/doctest_info/reports/texttable.report diff --git a/docs/doctest_info/unified1D.report b/docs/doctest_info/reports/unified1D.report similarity index 100% rename from docs/doctest_info/unified1D.report rename to docs/doctest_info/reports/unified1D.report diff --git a/docs/doctest_info/utils.report b/docs/doctest_info/reports/utils.report similarity index 100% rename from docs/doctest_info/utils.report rename to docs/doctest_info/reports/utils.report diff --git a/docs/doctest_info/vcshelp.report b/docs/doctest_info/reports/vcshelp.report similarity index 100% rename from docs/doctest_info/vcshelp.report rename to docs/doctest_info/reports/vcshelp.report diff --git a/docs/doctest_info/vector.report b/docs/doctest_info/reports/vector.report similarity index 100% rename from docs/doctest_info/vector.report rename to docs/doctest_info/reports/vector.report diff --git a/docs/doctest_info/scripts/deft_box.py b/docs/doctest_info/scripts/deft_box.py new file mode 100644 index 000000000..2cbc0212b --- /dev/null +++ b/docs/doctest_info/scripts/deft_box.py @@ -0,0 +1,48 @@ +##################################### +# # +# Import and Initialize VCS # +# # +############################# +import vcs +v=vcs.init() + +#----------Boxfill (Gfb) member (attribute) listings ---------- +gfb_list=v.listelements('boxfill') +if ('default' in gfb_list): + __Gfb__default = v.getboxfill('default') +else: + __Gfb__default = v.createboxfill('default') +__Gfb__default.projection = 'linear' +__Gfb__default.xticlabels1 = '*' +__Gfb__default.xticlabels2 = '*' +__Gfb__default.xmtics1 = '' +__Gfb__default.xmtics2 = '' +__Gfb__default.yticlabels1 = '*' +__Gfb__default.yticlabels2 = '*' +__Gfb__default.ymtics1 = '' +__Gfb__default.ymtics2 = '' +__Gfb__default.datawc_x1 = 1e+20 +__Gfb__default.datawc_y1 = 1e+20 +__Gfb__default.datawc_x2 = 1e+20 +__Gfb__default.datawc_y2 = 1e+20 +__Gfb__default.xaxisconvert = 'linear' +__Gfb__default.yaxisconvert = 'linear' +__Gfb__default.boxfill_type = 'linear' +__Gfb__default.level_1 = 1e+20 +__Gfb__default.level_2 = 1e+20 +__Gfb__default.levels = [1e+20, 1e+20] +__Gfb__default.color_1 = 0 +__Gfb__default.color_2 = 255 +__Gfb__default.fillareacolors = None +__Gfb__default.fillareastyle = 'solid' +__Gfb__default.fillareaindices = [1] +__Gfb__default.fillareaopacity = [] +__Gfb__default.legend = None +__Gfb__default.ext_1 = 'False' +__Gfb__default.ext_2 = 'False' +__Gfb__default.missing = (0.0, 0.0, 0.0, 100.0) +__Gfb__default.datawc_calendar = 135441 +__Gfb__default.datawc_timeunits = 'days since 2000' + +__Gfb__default.colormap = 'None' + diff --git a/docs/doctest_info/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py similarity index 95% rename from docs/doctest_info/doctest_vcs.py rename to docs/doctest_info/scripts/doctest_vcs.py index 196f623be..bc28a9c70 100644 --- a/docs/doctest_info/doctest_vcs.py +++ b/docs/doctest_info/scripts/doctest_vcs.py @@ -4,11 +4,11 @@ def log_stats(module_name, verbose): # open .results file to read, and .md file to log try: - results = open(module_name+".report", "r+") + results = open("../reports/" + module_name + ".report", "r+") except: - raise SystemError("File not found: " + module_name + ".results") + raise SystemError("File not found: " + "../reports/" + module_name + ".results") else: - log = open(module_name+'.md', 'w+') + log = open("../markdown/" + module_name + '.md', 'w+') missing_header = re.compile("^[0-9]+ items had no tests:$") # missing tests will be followed by either passed all tests or "tests in items" entry passing_header = re.compile("^[0-9]+ items passed all tests:$") diff --git a/docs/doctest_info/run_all_doctests.sh b/docs/doctest_info/scripts/run_all_doctests.sh similarity index 92% rename from docs/doctest_info/run_all_doctests.sh rename to docs/doctest_info/scripts/run_all_doctests.sh index cb6139cfb..6e361d5fa 100755 --- a/docs/doctest_info/run_all_doctests.sh +++ b/docs/doctest_info/scripts/run_all_doctests.sh @@ -7,5 +7,5 @@ MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" "textorientation" "texttable" "unified1D" "utils" "vcshelp" "vector") -for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -a -v -r > "$module.report"; done; +for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -a -v -r > ../reports/"$module.report"; done; for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r --LO; done; diff --git a/docs/doctest_info/validation_functions.md b/docs/doctest_info/validation_functions.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/doctest_info/validation_functions.report b/docs/doctest_info/validation_functions.report deleted file mode 100644 index e69de29bb..000000000 diff --git a/vcs/Canvas.py b/vcs/Canvas.py index cf0a4dbda..9fdb0a328 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -1151,16 +1151,16 @@ def clean_auto_generated_objects(self, type=None): >>> a=vcs.init() >>> clean=a.clean_auto_generated_objects # alias long name >>> clean() # clean possible old objects from vcs - >>> boxes=a.listelements('boxfill') # initial boxfill names + >>> txt=a.listelements('textorientation') # initial objects >>> array=[range(10) for _ in range(10)] >>> a.plot(array) - >>> new_boxes=a.listelements('boxfill') # has new names - >>> boxes == new_boxes # should not be the same + >>> new_txt=a.listelements('textorientation') # has new names + >>> txt == new_txt # should not be the same False >>> clean() - >>> new_boxes=a.listelements('boxfill') # back to initial state - >>> boxes == new_boxes # should have the same contents + >>> new_txt=a.listelements('textorientation') # back to initial + >>> txt == new_txt # should have the same contents True @@ -2314,7 +2314,6 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, >>> msg=["Hello", "drawtextcombined!"] >>> tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) - :param Tt_name: String name of a texttable object :type Tt_name: :py:class:`str` diff --git a/vcs/colormap.py b/vcs/colormap.py index 04287c1ed..f98ceeda7 100644 --- a/vcs/colormap.py +++ b/vcs/colormap.py @@ -308,7 +308,7 @@ def setcolorcell(self, index, red, green, blue, alpha=100.): .. doctest:: colormap_setcolorcell >>> a = vcs.init() # Create a vcs Canvas - >>> cmap = a.createcolormap('example', 'default') # Create a colormap + >>> cmap = a.createcolormap('scc_cmap') # Create a colormap >>> cmap.setcolorcell(40,80,95,1.0) # Set RGBA values :param index: Integer from 0-255. @@ -338,7 +338,7 @@ def getcolorcell(self, index): .. doctest:: colormap_getcolorcell >>> a=vcs.init() # Create a vcs Canvas - >>> cmap = a.createcolormap('example', 'default') # Create a colormap + >>> cmap = a.createcolormap('gcc_cmap') # Create a colormap >>> cmap.getcolorcell(1) # Get RGBA values [26, 0, 33, 100] diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 94f8194dd..d9ed62582 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -279,7 +279,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): """ - A function to generate docstrings from a dictionary. + A function to populate docstrings from a dictionary. Structure of the function is pretty specific to type_dicts shaped like xmldoc.obj_details. Indentation of the docstring snippets is screwy because they need to maintain alignment From b46416da34b42c4786b0fef7a50efaecb2678403 Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 15 Dec 2016 07:50:59 -0800 Subject: [PATCH 20/45] Fixed reference to old branch in README.md --- docs/doctest_info/README.md | 74 ++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/docs/doctest_info/README.md b/docs/doctest_info/README.md index 707e84c24..24baa051b 100644 --- a/docs/doctest_info/README.md +++ b/docs/doctest_info/README.md @@ -1,76 +1,76 @@ Doctest Info ------------ -[Canvas] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Canvas.md) +[Canvas] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Canvas.md) -[Pboxeslines] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pboxeslines.md) +[Pboxeslines] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pboxeslines.md) -[Pdata] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pdata.md) +[Pdata] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pdata.md) -[Pformat] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pformat.md) +[Pformat] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pformat.md) -[Plegend] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Plegend.md) +[Plegend] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Plegend.md) -[Ptext] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Ptext.md) +[Ptext] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Ptext.md) -[Pxlabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pxlabels.md) +[Pxlabels] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pxlabels.md) -[Pxtickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pxtickmarks.md) +[Pxtickmarks] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pxtickmarks.md) -[Pylabels] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pylabels.md) +[Pylabels] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pylabels.md) -[Pytickmarks] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/Pytickmarks.md) +[Pytickmarks] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pytickmarks.md) -[VCS_validation_functions] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/VCS_validation_functions.md) +[VCS_validation_functions] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/VCS_validation_functions.md) -[boxfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/boxfill.md) +[boxfill] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/boxfill.md) -[colormap] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/colormap.md) +[colormap] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/colormap.md) -[colors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/colors.md) +[colors] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/colors.md) -[configurator] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/configurator.md) +[configurator] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/configurator.md) -[displayplot] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/displayplot.md) +[displayplot] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/displayplot.md) -[dv3d] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/dv3d.md) +[dv3d] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/dv3d.md) -[editors] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/editors.md) +[editors] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/editors.md) -[error] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/error.md) +[error] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/error.md) -[fillarea] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/fillarea.md) +[fillarea] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/fillarea.md) -[isofill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/isofill.md) +[isofill] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/isofill.md) -[isoline] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/isoline.md) +[isoline] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/isoline.md) -[line] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/line.md) +[line] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/line.md) -[manageElements] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/manageElements.md) +[manageElements] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/manageElements.md) -[marker] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/marker.md) +[marker] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/marker.md) -[meshfill] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/meshfill.md) +[meshfill] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/meshfill.md) -[projection] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/projection.md) +[projection] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/projection.md) -[queries] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/queries.md) +[queries] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/queries.md) -[taylor] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/taylor.md) +[taylor] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/taylor.md) -[template] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/template.md) +[template] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/template.md) -[textcombined] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/textcombined.md) +[textcombined] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/textcombined.md) -[textorientation] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/textorientation.md) +[textorientation] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/textorientation.md) -[texttable] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/texttable.md) +[texttable] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/texttable.md) -[unified1D] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/unified1D.md) +[unified1D] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/unified1D.md) -[utils] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/utils.md) +[utils] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/utils.md) -[vcshelp] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/vcshelp.md) +[vcshelp] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/vcshelp.md) -[vector] (https://github.com/embrown/vcs/blob/more_documentation/docs/doctest_info/markdown/vector.md) +[vector] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/vector.md) From 2c74fc1401c8388dc337fb8e60096d87f004ea88 Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 15 Dec 2016 15:43:56 -0800 Subject: [PATCH 21/45] Docstring formatting. Doctest corrections. Changed Not Yet Implemented warning. --- vcs/Canvas.py | 358 +++++++++++++++--------------------------- vcs/boxfill.py | 2 +- vcs/colormap.py | 2 +- vcs/fillarea.py | 3 +- vcs/isofill.py | 2 +- vcs/isoline.py | 2 +- vcs/manageElements.py | 298 ++++++++--------------------------- vcs/meshfill.py | 2 +- vcs/queries.py | 8 +- vcs/vcshelp.py | 28 +++- vcs/xmldocs.py | 95 +++++------ 11 files changed, 275 insertions(+), 525 deletions(-) diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 9fdb0a328..cb1e183c4 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -1,13 +1,7 @@ """ -Canvas ------- - Canvas objects are the 'visualization' component of VCS. Canvases allow the user to take data and plot it on a visible window. This gives users an easy way to preview how changes to data representation in VCS will change the visualization of that data. - - Usually created using :py:func:`vcs.init`, this object provides easy access - to the functionality of the entire VCS module. """ import warnings import numpy.ma @@ -46,8 +40,7 @@ import inspect import VCS_validation_functions from xmldocs import plot_keywords_doc, graphics_method_core, axesconvert, xaxisconvert, \ - plot_1D_input, plot_2D_input, plot_output, plot_2_1D_input, \ - plot_2_1D_options + plot_1D_input, plot_2D_input, plot_output, plot_2_1D_input, plot_2_1D_options gui_canvas_closed = 0 canvas_closed = 0 import vcsaddons # noqa @@ -108,7 +101,7 @@ def dictionarytovcslist(dictionary, name): def _determine_arg_list(g_name, actual_args): - "Determine what is in the argument list for plotting graphics methods" + """Determine what is in the argument list for plotting graphics methods""" itemplate_name = 2 igraphics_method = 3 @@ -292,8 +285,7 @@ def _process_keyword(obj, target, source, keyargs, default=None): class Canvas(object): - """ - Usually created using :py:func:`vcs.init`, this object provides easy access + """Usually created using :py:func:`vcs.init`, this object provides easy access to the functionality of the entire VCS module: See :py:func:`vcs.Canvas.Canvas.plot` for more information on the type of @@ -480,8 +472,7 @@ def start(self, *args, **kargs): self.interact(*args, **kargs) def interact(self, *args, **kargs): - """ - Puts the canvas into interactive mode. + """Puts the canvas into interactive mode. :param args: :param kargs: @@ -795,8 +786,7 @@ def _reconstruct_tv(self, arglist, keyargs): return tv def objecthelp(self, *arg): - """ - Print out information on the VCS object. See example below on its use. + """Print out information on the VCS object. See example below on its use. :Example: @@ -945,8 +935,7 @@ def processParameterChange(self, args): # Functions to set/querie drawing of UV-CDAT logo def drawlogoon(self): - """ - Show UV-CDAT logo on the canvas + """Show UV-CDAT logo on the canvas :Example: @@ -960,8 +949,7 @@ def drawlogoon(self): self.enableLogo = True def drawlogooff(self): - """ - Hide UV-CDAT logo on the canvas + """Hide UV-CDAT logo on the canvas :Example: @@ -975,8 +963,7 @@ def drawlogooff(self): self.enableLogo = False def getdrawlogo(self): - """ - Returns value of draw logo. By default, draw logo is set to True. + """Returns value of draw logo. By default, draw logo is set to True. :Example: @@ -995,8 +982,7 @@ def getdrawlogo(self): return self.enableLogo def initLogoDrawing(self): - """ - Initializes logo drawing for the canvas. + """Initializes logo drawing for the canvas. :Example: @@ -1012,8 +998,7 @@ def initLogoDrawing(self): self.drawLogo = self.enableLogo def update(self, *args, **kargs): - """ - If a series of commands are given to VCS and the Canvas Mode is + """If a series of commands are given to VCS and the Canvas Mode is set to manual, then use this function to update the plot(s) manually. @@ -1040,8 +1025,7 @@ def update(self, *args, **kargs): return self.backend.update(*args, **kargs) def scriptobject(self, obj, script_filename=None, mode=None): - """ - Save individual attributes sets (i.e., individual primary class + """Save individual attributes sets (i.e., individual primary class objects and/or secondary class objects). These attribute sets are saved in the user's current directory in one of two formats: Python script, or a Javascript Object. @@ -1135,8 +1119,7 @@ def removeP(self, *args): return vcs.removeP(*args) def clean_auto_generated_objects(self, type=None): - """ - Cleans up all automatically generated VCS objects. + """Cleans up all automatically generated VCS objects. This function will delete all references to objects that VCS created automatically in response to user actions but are @@ -1226,14 +1209,11 @@ def getboxfill(self, Gfb_name_src='default'): getboxfill.__doc__ = vcs.manageElements.getboxfill.__doc__ def boxfill(self, *args, **parms): - """ - Generate a boxfill plot given the data, boxfill graphics method, and + """Generate a boxfill plot given the data, boxfill graphics method, and template. If no boxfill class object is given, then the 'default' boxfill graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. - - :Example: .. doctest:: canvas_boxfill @@ -1289,8 +1269,7 @@ def gettaylordiagram(self, Gtd_name_src='default'): gettaylordiagram.__doc__ = vcs.manageElements.gettaylordiagram.__doc__ def taylordiagram(self, *args, **parms): - """ - Generate a taylordiagram plot given the data, taylordiagram graphics method, and + """Generate a taylordiagram plot given the data, taylordiagram graphics method, and template. If no taylordiagram class object is given, then the 'default' taylordiagram graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. @@ -1328,8 +1307,7 @@ def getmeshfill(self, Gfm_name_src='default'): getmeshfill.__doc__ = vcs.manageElements.getmeshfill.__doc__ def meshfill(self, *args, **parms): # noqa - """ - Generate a meshfill plot given the data, the mesh, a meshfill graphics method, and + """Generate a meshfill plot given the data, the mesh, a meshfill graphics method, and a template. If no meshfill class object is given, then the 'default' meshfill graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. @@ -1353,18 +1331,19 @@ def meshfill(self, *args, **parms): # noqa .. doctest:: canvas_meshfill >>> a=vcs.init() - >>> a.show('meshfill') # Show all the existing meshfill graphics methods + >>> a.show('meshfill') # Show all meshfill graphics methods *******************Meshfill Names List********************** ... *******************End Meshfill Names List********************** >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file - >>> slab = f('clt') # use the data file to create a cdms2 slab - >>> mesh=a.getmeshfill() # Create instance of 'default' - >>> a.meshfill(slab,mesh) # Plot array using specified mesh and default template + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file + >>> slab = f('clt') # use data file to create a cdms2 slab + >>> m=a.getmeshfill() # Create instance of 'default' + >>> a.meshfill(slab,m) # Plot with default mesh & template >>> a.clear() # Clear VCS canvas - >>> a.meshfill(slab,mesh,'quick','a_polar_meshfill') # Plot slab with polar mesh, quick template + >>> p='a_polar_meshfill' # will use this to plot + >>> a.meshfill(slab,m,'quick', p) # polar mesh, quick template :returns: A VCS displayplot object. @@ -1421,8 +1400,7 @@ def getisofill(self, Gfi_name_src='default'): getisofill.__doc__ = vcs.manageElements.getisofill.__doc__ def isofill(self, *args, **parms): - """ - Generate a isofill plot given the data, isofill graphics method, and + """Generate a isofill plot given the data, isofill graphics method, and template. If no isofill class object is given, then the 'default' isofill graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. @@ -1452,9 +1430,6 @@ def isofill(self, *args, **parms): %s %s %s - - :returns: A VCS displayplot object. - :rtype: vcs.displayplot.Dp """ arglist = _determine_arg_list('isofill', args) return self.__plot(arglist, parms) @@ -1470,8 +1445,7 @@ def getisoline(self, Gi_name_src='default'): getisoline.__doc__ = vcs.manageElements.getisoline.__doc__ def isoline(self, *args, **parms): - """ - Generate a isoline plot given the data, isoline graphics method, and + """Generate a isoline plot given the data, isoline graphics method, and template. If no isoline class object is given, then the 'default' isoline graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. @@ -1499,9 +1473,6 @@ def isoline(self, *args, **parms): %s %s %s - - :returns: A VCS displayplot object. - :rtype: vcs.displayplot.Dp """ arglist = _determine_arg_list('isoline', args) return self.__plot(arglist, parms) @@ -1525,8 +1496,7 @@ def getxyvsy(self, GXy_name_src='default'): getxyvsy.__doc__ = vcs.manageElements.getxyvsy.__doc__ def xyvsy(self, *args, **parms): - """ - Generate a Xyvsy plot given the data, Xyvsy graphics method, and + """Generate a Xyvsy plot given the data, Xyvsy graphics method, and template. If no Xyvsy class object is given, then the 'default' Xyvsy graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. @@ -1554,9 +1524,6 @@ def xyvsy(self, *args, **parms): %s %s %s - - :returns: A VCS displayplot object. - :rtype: vcs.displayplot.Dp """ arglist = _determine_arg_list('xyvsy', args) return self.__plot(arglist, parms) @@ -1572,8 +1539,7 @@ def getyxvsx(self, GYx_name_src='default'): getyxvsx.__doc__ = vcs.manageElements.getyxvsx.__doc__ def yxvsx(self, *args, **parms): - """ - Generate a Yxvsx plot given the data, Yxvsx graphics method, and + """Generate a Yxvsx plot given the data, Yxvsx graphics method, and template. If no Yxvsx class object is given, then the 'default' Yxvsx graphics method is used. Simerly, if no template class object is given, then the 'default' template is used. @@ -1601,9 +1567,6 @@ def yxvsx(self, *args, **parms): %s %s %s - - :returns: A VCS displayplot object. - :rtype: vcs.displayplot.Dp """ arglist = _determine_arg_list('yxvsx', args) return self.__plot(arglist, parms) @@ -1619,8 +1582,7 @@ def getxvsy(self, GXY_name_src='default'): getxvsy.__doc__ = vcs.manageElements.getxvsy.__doc__ def xvsy(self, *args, **parms): - """ - Generate a XvsY plot given the data, XvsY graphics method, and + """Generate a XvsY plot given the data, XvsY graphics method, and template. If no XvsY class object is given, then the 'default' XvsY graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. @@ -1651,9 +1613,6 @@ def xvsy(self, *args, **parms): %s %s %s - - :returns: A VCS displayplot object. - :rtype: vcs.displayplot.Dp """ arglist = _determine_arg_list('xvsy', args) return self.__plot(arglist, parms) @@ -1672,8 +1631,7 @@ def getvector(self, Gv_name_src='default'): getvector.__doc__ = vcs.manageElements.getvector.__doc__ def vector(self, *args, **parms): - """ - Generate a vector plot given the data, vector graphics method, and + """Generate a vector plot given the data, vector graphics method, and template. If no vector class object is given, then the 'default' vector graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. @@ -1713,8 +1671,7 @@ def getscatter(self, GSp_name_src='default'): getscatter.__doc__ = vcs.manageElements.getscatter.__doc__ def scatter(self, *args, **parms): - """ - Generate a scatter plot given the data, scatter graphics method, and + """Generate a scatter plot given the data, scatter graphics method, and template. If no scatter class object is given, then the 'default' scatter graphics method is used. Similarly, if no template class object is given, then the 'default' template is used. @@ -1744,9 +1701,6 @@ def scatter(self, *args, **parms): %s %s %s - - :returns: A VCS displayplot object. - :rtype: vcs.displayplot.Dp """ arglist = _determine_arg_list('scatter', args) @@ -1771,8 +1725,7 @@ def getline(self, name='default', ltype=None, width=None, color=None, getline.__doc__ = vcs.manageElements.getline.__doc__ def line(self, *args, **parms): - """ - Plot a line segment on the Vcs Canvas. If no line class + """Plot a line segment on the Vcs Canvas. If no line class object is given, then an error will be returned. :Example: @@ -1803,8 +1756,7 @@ def drawline(self, name=None, ltype='solid', width=1, color=241, # noqa priority=1, viewport=[0.0, 1.0, 0.0, 1.0], worldcoordinate=[0.0, 1.0, 0.0, 1.0], x=None, y=None, projection='default', bg=0): - """ - Generate and draw a line object on the VCS Canvas. + """Generate and draw a line object on the VCS Canvas. :Example: @@ -1899,8 +1851,7 @@ def getmarker(self, name='default', mtype=None, size=None, color=None, getmarker.__doc__ = vcs.manageElements.getmarker.__doc__ def marker(self, *args, **parms): - """ - Plot a marker segment on the Vcs Canvas. If no marker class + """Plot a marker segment on the Vcs Canvas. If no marker class object is given, then an error will be returned. :Example: @@ -1931,8 +1882,7 @@ def drawmarker(self, name=None, mtype='solid', size=1, color=241, priority=1, viewport=[0.0, 1.0, 0.0, 1.0], worldcoordinate=[0.0, 1.0, 0.0, 1.0], x=None, y=None, bg=0): - """ - Generate and draw a marker object on the VCS Canvas. + """Generate and draw a marker object on the VCS Canvas. :Example: @@ -2023,8 +1973,7 @@ def getfillarea(self, name='default', style=None, getfillarea.__doc__ = vcs.manageElements.getfillarea.__doc__ def fillarea(self, *args, **parms): - """ - Generate a fillarea plot + """Generate a fillarea plot Plot a fillarea segment on the Vcs Canvas. If no fillarea class object is given, then an error will be returned. @@ -2057,8 +2006,7 @@ def drawfillarea(self, name=None, style=1, index=1, color=241, priority=1, viewport=[0.0, 1.0, 0.0, 1.0], worldcoordinate=[0.0, 1.0, 0.0, 1.0], x=None, y=None, bg=0): - """ - Generate and draw a fillarea object on the VCS Canvas. + """Generate and draw a fillarea object on the VCS Canvas. :Example: @@ -2189,15 +2137,9 @@ def gettextcombined(self, Tt_name_src='default', To_name_src=None, string=None, gettext = gettextcombined def textcombined(self, *args, **parms): - """ - Plot a textcombined segment on the Vcs Canvas. If no textcombined class + """Plot a textcombined segment on the Vcs Canvas. If no textcombined class object is given, then an error will be returned. - .. note:: - - The text() function is an alias for textcombined(). - See example for usage. - :Example: .. doctest:: canvas_textcombined @@ -2259,8 +2201,7 @@ def textcombined(self, *args, **parms): text = textcombined def gettextextent(self, textobject): - """ - Returns the coordinate of the box surrounding a text object once printed + """Returns the coordinate of the box surrounding a text object once printed :Example: @@ -2297,8 +2238,7 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, priority=1, viewport=[0.0, 1.0, 0.0, 1.0], worldcoordinate=[0.0, 1.0, 0.0, 1.0], x=None, y=None, bg=0): - """ - Draw a textcombined object on the VCS Canvas. + """Draw a textcombined object on the VCS Canvas. :Example: @@ -2408,8 +2348,7 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, # self.plot(*self.__last_plot_actual_args, **self.__last_plot_keyargs) def plot(self, *actual_args, **keyargs): - """ - Plot an array(s) of data given a template and graphics method. + """Plot an array(s) of data given a template and graphics method. The VCS template is used to define where the data and variable attributes will be displayed on the VCS Canvas. @@ -4041,8 +3980,7 @@ def setAnimationStepper(self, stepper): self.backend.setAnimationStepper(stepper) def return_display_names(self, *args): - """ - Show the list of display names associated with all active plots + """Show the list of display names associated with all active plots on the canvas. :Example: @@ -4065,8 +4003,7 @@ def return_display_names(self, *args): return self.display_names def remove_display_name(self, *args): - """ - Removes a plotted item from the canvas. + """Removes a plotted item from the canvas. :Example: @@ -4093,7 +4030,7 @@ def remove_display_name(self, *args): def cgm(self, file, mode='w'): """ - .. deprecated:: + .. deprecated:: 2.6.1 Exporting images to CGM format is no longer supported. To generate an image from the canvas, see @@ -4112,8 +4049,7 @@ def cgm(self, file, mode='w'): return self.backend.cgm(file) def clear(self, *args, **kargs): - """ - Clears all the VCS displays on a page (i.e., the VCS Canvas object). + """Clears all the VCS displays on a page (i.e., the VCS Canvas object). :Example: @@ -4156,8 +4092,7 @@ def clear(self, *args, **kargs): return def close(self, *args, **kargs): - """ - Close the VCS Canvas. It will not deallocate the VCS Canvas object. + """Close the VCS Canvas. It will not deallocate the VCS Canvas object. To deallocate the VCS Canvas, use the destroy method. :Example: @@ -4179,8 +4114,7 @@ def close(self, *args, **kargs): return a def destroy(self): - """ - Destroy the VCS Canvas. It will deallocate the VCS Canvas object. + """Destroy the VCS Canvas. It will deallocate the VCS Canvas object. :Example: @@ -4200,12 +4134,11 @@ def destroy(self): gc.collect() def change_display_graphic_method(self, display, type, name): - """ - Changes the type and graphic method of a plot. + """Changes the type and graphic method of a plot. :Example: - doctest:: canvas_change_display_graphic_method + .. doctest:: canvas_change_display_graphic_method >>> a=vcs.init() >>> cdgm=a.change_display_graphic_method # alias long name @@ -4233,8 +4166,8 @@ def change_display_graphic_method(self, display, type, name): def get_selected_display(self): """ - .. admonition:: Not Yet Implemented - + .. attention:: + This function does not currently work. It will be implemented in the future. """ @@ -4244,8 +4177,7 @@ def plot_annotation(self, *args): self.canvas.plot_annotation(*args) def flush(self, *args): - """ - The flush command executes all buffered X events in the queue. + """The flush command executes all buffered X events in the queue. :Example: @@ -4260,8 +4192,7 @@ def flush(self, *args): return self.backend.flush(*args) def geometry(self, *args): - """ - The geometry command is used to set the size and position of the VCS canvas. + """The geometry command is used to set the size and position of the VCS canvas. :Example: @@ -4286,8 +4217,7 @@ def geometry(self, *args): return a def canvasinfo(self, *args, **kargs): - """ - Obtain the current attributes of the VCS Canvas window. + """Obtain the current attributes of the VCS Canvas window. :Example: @@ -4313,8 +4243,7 @@ def canvasinfo(self, *args, **kargs): return self.backend.canvasinfo(*args, **kargs) def getcontinentstype(self, *args): - """ - Retrieve continents type from VCS; either an integer between 0 and 11 or the + """Retrieve continents type from VCS; either an integer between 0 and 6 or the path to a custom continentstype. :Example: @@ -4322,9 +4251,11 @@ def getcontinentstype(self, *args): .. doctest:: canvas_getcontinentstype >>> a=vcs.init() - >>> cont_type = a.getcontinentstype() # Get the continents type + >>> a.setcontinentstype(6) + >>> a.getcontinentstype() # Get the continents type + 6 - :returns: An int between 1 and 0, or the path to a custom continentstype + :returns An int between 0 and 6, or the path to a custom continentstype :rtype: :py:class:`int` or system filepath """ try: @@ -4333,8 +4264,7 @@ def getcontinentstype(self, *args): return None def pstogif(self, filename, *opt): - """ - In some cases, the user may want to save the plot out as a gif image. This + """In some cases, the user may want to save the plot out as a gif image. This routine allows the user to convert a postscript file to a gif file. :Example: @@ -4354,9 +4284,6 @@ def pstogif(self, filename, *opt): :param opt: One of 'l' or 'p', indicating landscape or portrait mode, respectively. :type opt: :py:class:`str` - - :returns: ??? - :rtype: ??? """ from os import popen @@ -4392,7 +4319,7 @@ def grid(self, *args): than the graphics method. This will also be used for animating plots over the third and fourth dimensions. - .. admonition:: Not Yet Implemented + .. attention:: This function does not currently work. It will be implemented in the future. @@ -4403,8 +4330,7 @@ def grid(self, *args): return p def landscape(self, width=-99, height=-99, x=-99, y=-99, clear=0): - """ - Change the VCS Canvas orientation to Landscape. + """Change the VCS Canvas orientation to Landscape. .. note:: @@ -4482,10 +4408,8 @@ def landscape(self, width=-99, height=-99, x=-99, y=-99, clear=0): return l def listelements(self, *args): - """ - Returns a Python list of all VCS object names, or a list of names - of objects of the given type. - + """Returns a sorted Python list of all VCS object names, or a list of + names of objects of the given type. :Example: @@ -4508,27 +4432,25 @@ def listelements(self, *args): return L def updateorientation(self, *args): - """ - Takes a string 'portrait' or 'landscape' and updates a Canvas object's + """Takes a string 'portrait' or 'landscape' and updates a Canvas object's orientation accordingly. - .. admonition:: Not Yet Implemented + :param args: String with value 'landscape' or 'portrait' + :type args: :py:class:`str` + + .. attention:: This function does not currently work. It will be implemented in the future. Use :func:`landscape` or :func:`portrait` instead. - - :param args: String with value 'landscape' or 'portrait' - :type args: :py:class:`str` """ a = self.canvas.updateorientation(*args) return a def open(self, width=None, height=None, **kargs): - """ - Open VCS Canvas object. This routine really just manages the VCS canvas. + """Open VCS Canvas object. This routine really just manages the VCS canvas. It can be used to display the VCS Canvas. :Example: @@ -4551,8 +4473,7 @@ def open(self, width=None, height=None, **kargs): return a def canvasid(self, *args): - """ - Get the ID of this canvas. + """Get the ID of this canvas. This ID number is found at the top of the VCS Canvas, as part of its title. @@ -4569,8 +4490,7 @@ def canvasid(self, *args): return self._canvas_id def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): - """ - Change the VCS Canvas orientation to Portrait. + """Change the VCS Canvas orientation to Portrait. .. note:: @@ -4637,8 +4557,7 @@ def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): return p def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): - """ - MPEG output from a list of valid files. + """MPEG output from a list of valid files. Can output to more than just mpeg format. .. note:: @@ -4779,8 +4698,7 @@ def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): return result == 0 def getantialiasing(self): - """ - Returns the current antialiasing rate for the canvas. + """Returns the current antialiasing rate for the canvas. :Example: @@ -4797,8 +4715,7 @@ def getantialiasing(self): return self.backend.getantialiasing() def setantialiasing(self, antialiasing): - """ - Sets the antialiasing rate for the canvas. + """Sets the antialiasing rate for the canvas. :Example: @@ -4816,8 +4733,7 @@ def setantialiasing(self, antialiasing): self.backend.setantialiasing(antialiasing) def setbgoutputdimensions(self, width=None, height=None, units='inches'): - """ - Sets dimensions for output in bg mode. + """Sets dimensions for output in bg mode. :Example: @@ -4854,8 +4770,7 @@ def setbgoutputdimensions(self, width=None, height=None, units='inches'): def put_png_on_canvas( self, filename, zoom=1, xOffset=0, yOffset=0, units="percent", fitToHeight=True, *args, **kargs): - """ - Display a PNG file on the canvas + """Display a PNG file on the canvas :Example: @@ -4901,8 +4816,7 @@ def put_png_on_canvas( def png(self, file, width=None, height=None, units=None, draw_white_background=True, **args): - """ - PNG output, dimensions set via setbgoutputdimensions + """PNG output, dimensions set via setbgoutputdimensions :Example: @@ -4948,8 +4862,7 @@ def png(self, file, width=None, height=None, def pdf(self, file, width=None, height=None, units='inches', textAsPaths=True): - """ - PDF output is another form of vector graphics. + """PDF output is another form of vector graphics. .. note:: @@ -4997,8 +4910,7 @@ def pdf(self, file, width=None, height=None, units='inches', def svg(self, file, width=None, height=None, units='inches', textAsPaths=True): - """ - SVG output is another form of vector graphics. + """SVG output is another form of vector graphics. .. note:: @@ -5141,8 +5053,7 @@ def _compute_margins( return top_margin, bottom_margin, right_margin, left_margin def isopened(self): - """ - Returns a boolean value indicating whether the canvas is opened or not. + """Returns a boolean value indicating whether the canvas is opened or not. :Example: @@ -5236,8 +5147,7 @@ def _compute_width_height(self, width, height, units, ps=False): return W, H def postscript(self, file, mode='r', orientation=None, width=None, height=None, units='inches', textAsPaths=True): - """ - Postscript output is another form of vector graphics. It is larger than its CGM output + """Postscript output is another form of vector graphics. It is larger than its CGM output counter part, because it is stored out in ASCII format. There are two modes for saving a postscript file: 'Append' (a) mode appends postscript @@ -5324,8 +5234,7 @@ def scriptrun(self, aFile, *args, **kargs): vcs.scriptrun(aFile, *args, **kargs) def setcolormap(self, name): - """ - It is necessary to change the colormap. This routine will change the VCS + """It is necessary to change the colormap. This routine will change the VCS color map. If the the visual display is 16-bit, 24-bit, or 32-bit TrueColor, then a redrawing @@ -5359,8 +5268,7 @@ def setcolormap(self, name): return def setcolorcell(self, *args): - """ - Set a individual color cell in the active colormap. If default is + """Set a individual color cell in the active colormap. If default is the active colormap, then return an error string. If the the visul display is 16-bit, 24-bit, or 32-bit TrueColor, then a redrawing @@ -5392,8 +5300,7 @@ def setcolorcell(self, *args): return a def setcontinentsline(self, line="default"): - """ - One has the option of configuring the appearance of the lines used to + """One has the option of configuring the appearance of the lines used to draw continents by providing a VCS Line object. :Example: @@ -5414,8 +5321,7 @@ def setcontinentsline(self, line="default"): self._continents_line = line def getcontinentsline(self): - """ - Returns the continents line associated with the canvas. + """Returns the continents line associated with the canvas. :Example: @@ -5436,8 +5342,7 @@ def getcontinentsline(self): return self._continents_line def setcontinentstype(self, value): - """ - One has the option of using continental maps that are predefined or that + """One has the option of using continental maps that are predefined or that are user-defined. Predefined continental maps are either internal to VCS or are specified by external files. User-defined continental maps are specified by additional external files that must be read as input. @@ -5465,9 +5370,11 @@ def setcontinentstype(self, value): .. doctest:: canvas_setcontinentstype >>> a=vcs.init() - >>> a.setcontinentstype(3) - >>> array = [range(1, 11) for _ in range(1, 11)] - >>> a.plot(array,'default','isofill','quick') + >>> a.setcontinentstype(4) "Political Borders" + >>> import cdms2 # We need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file + >>> v = f('v') # use the data file to create a slab + >>> a.plot(v,'default','isofill','quick') # map with borders :param value: Integer representing continent type, as specified in function description @@ -5495,8 +5402,7 @@ def _continentspath(self): def gif(self, filename='noname.gif', merge='r', orientation=None, geometry='1600x1200'): - """ - In some cases, the user may want to save the plot out as a gif image. This + """In some cases, the user may want to save the plot out as a gif image. This routine allows the user to save the VCS canvas output as a SUN gif file. This file can be converted to other gif formats with the aid of xv and other such imaging tools found freely on the web. @@ -5509,7 +5415,7 @@ def gif(self, filename='noname.gif', merge='r', orientation=None, file; 'Replace' (r) mode overwrites an existing gif file with new gif output. The default mode is to overwrite an existing gif file (i.e. mode (r)). - .. admonition:: Not Yet Implemented + .. attention:: This function does not currently work. It will be implemented in the future. @@ -5529,8 +5435,7 @@ def gs(self, filename='noname.gs', device='png256', warnings.warn("Export to GhostScript is no longer supported", DeprecationWarning) def eps(self, file, mode='r', orientation=None, width=None, height=None, units='inches', textAsPaths=True): - """ - In some cases, the user may want to save the plot out as an Encapsulated + """In some cases, the user may want to save the plot out as an Encapsulated PostScript image. This routine allows the user to save the VCS canvas output as an Encapsulated PostScript file. This file can be converted to other image formats with the aid of xv and other @@ -5591,8 +5496,7 @@ def show(self, *args): show.__doc__ = vcs.utils.show.__doc__ def isinfile(self, GM, file=None): - """ - Checks if a graphic method is stored in a file + """Checks if a graphic method is stored in a file if no file name is passed then looks into the initial.attributes file :Example: @@ -5630,8 +5534,7 @@ def isinfile(self, GM, file=None): return def saveinitialfile(self): - """ - At start-up, VCS reads a script file named initial.attributes that + """At start-up, VCS reads a script file named initial.attributes that defines the initial appearance of the VCS Interface. Although not required to run VCS, this initial.attributes file contains many predefined settings to aid the beginning user of VCS. @@ -5641,7 +5544,9 @@ def saveinitialfile(self): .. code-block:: python a=vcs.init() - a.saveinitialfile() + box=vcs.createboxfill('m_box') + line=vcs.createline('m_line') + a.saveinitialfile() # m_line, m_box saved for future sessions .. warning:: @@ -5658,8 +5563,7 @@ def saveinitialfile(self): return vcs.saveinitialfile() def raisecanvas(self, *args): - """ - Raise the VCS Canvas to the top of all open windows. + """Raise the VCS Canvas to the top of all open windows. :Example: @@ -5673,8 +5577,7 @@ def raisecanvas(self, *args): return self.backend.raisecanvas(*args) def islandscape(self): - """ - Indicates if VCS's orientation is landscape. + """Indicates if VCS's orientation is landscape. Returns a 1 if orientation is landscape. Otherwise, it will return a 0, indicating false (not in landscape mode). @@ -5699,8 +5602,7 @@ def islandscape(self): return 0 def isportrait(self): - """ - Indicates if VCS's orientation is portrait. + """Indicates if VCS's orientation is portrait. :Example: @@ -5723,13 +5625,7 @@ def isportrait(self): return 0 def getplot(self, Dp_name_src='default', template=None): - """ - .. admonition:: Not Yet Implemented - - This function does not currently work. - It will be implemented in the future. - - This function will create a display plot object from an existing display + """This function will create a display plot object from an existing display plot object from an existing VCS plot. If no display plot name is given, then None is returned. @@ -5742,6 +5638,11 @@ def getplot(self, Dp_name_src='default', template=None): :returns: A VCS displayplot object :rtype: vcs.displayplot.Dp + + .. attention:: + + This function does not currently work. + It will be implemented in the future. """ if not isinstance(Dp_name_src, str): raise ValueError('Error - The argument must be a string.') @@ -5761,8 +5662,7 @@ def getcolormap(self, Cp_name_src='default'): getcolormap.__doc__ = vcs.manageElements.getcolormap.__doc__ def addfont(self, path, name=""): - """ - Add a font to VCS. + """Add a font to VCS. :param path: Path to the font file you wish to add (must be .ttf) :type path: :py:class:`str` @@ -5811,8 +5711,7 @@ def getfontname(self, number): getfontname.__doc__ = vcs.utils.getfontname.__doc__ def getfont(self, font): - """ - Get the font name/number associated with a font number/name + """Get the font name/number associated with a font number/name :Example: @@ -5845,8 +5744,7 @@ def getfont(self, font): raise vcsError("Error you must pass a string or int") def switchfonts(self, font1, font2): - """ - Switch the font numbers of two fonts. + """Switch the font numbers of two fonts. :Example: @@ -5890,19 +5788,19 @@ def switchfonts(self, font1, font2): vcs.elements['fontNumber'][index2] = tmp def copyfontto(self, font1, font2): - """ - .. admonition:: Not Yet Implemented - - This function does not currently work. - It will be added in the future. - - Copy 'font1' into 'font2'. + """Copy 'font1' into 'font2'. :param font1: Name/number of font to copy :type font1: :py:class:`str` or int :param font2: Name/number of destination :type font2: :py:class:`str` or :py:class:`int` + + .. attention:: + + This function does not currently work. + It will be added in the future. + """ if isinstance(font1, str): index1 = self.getfont(font1) @@ -5925,24 +5823,22 @@ def copyfontto(self, font1, font2): return self.canvas.copyfontto(*(index1, index2)) def setdefaultfont(self, font): - """ - .. admonition:: Not Yet Implemented - - This function does not currently work. - It will be implemented in the future. - - Sets the passed/def show font as the default font for vcs + """Sets the passed/def show font as the default font for vcs :param font: Font name or index to use as default :type font: :py:class:`str` or :py:class:`int` + + .. attention:: + + This function does not currently work. + It will be implemented in the future. """ if isinstance(font, str): font = self.getfont(font) return self.copyfontto(font, 1) def orientation(self, *args, **kargs): - """ - Return canvas orientation. + """Return canvas orientation. The current implementation does not use any args or kargs. @@ -5964,8 +5860,7 @@ def getcolorcell(self, *args): getcolorcell.__doc__ = vcs.utils.getcolorcell.__doc__ def getcolormapname(self): - """ - Returns the name of the colormap this canvas is set to use by default. + """Returns the name of the colormap this canvas is set to use by default. :Example: @@ -5987,8 +5882,7 @@ def getcolormapname(self): return self.colormap def dummy_user_action(self, *args, **kargs): - """ - Given args and kargs, prints the arguments and keyword arguments + """Given args and kargs, prints the arguments and keyword arguments associated with those parameters. Use this function to test what args and kargs are, if you're unsure. diff --git a/vcs/boxfill.py b/vcs/boxfill.py index dd9d05179..e5962b675 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -871,7 +871,7 @@ def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): def xyscale(self, xat='linear', yat='linear'): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('boxfill',) * 2) + xyscale.__doc__ = xmldocs.xyscaledoc % (('boxfill',) * 3) def getlevels(self, varmin, varmax): if self.boxfill_type == "custom": diff --git a/vcs/colormap.py b/vcs/colormap.py index f98ceeda7..267d956bf 100644 --- a/vcs/colormap.py +++ b/vcs/colormap.py @@ -251,7 +251,7 @@ def getindex(self): return self._index def setindex(self, value): - # usually we cannot set index, but there is an exception for lading + # usually we cannot set index, but there is an exception for loading # from json files if not(isinstance(value, dict) and value.keys() == [u'data', ]): raise Exception("invalid") diff --git a/vcs/fillarea.py b/vcs/fillarea.py index 2150c38b6..2c0b62fa9 100755 --- a/vcs/fillarea.py +++ b/vcs/fillarea.py @@ -103,8 +103,7 @@ def process_src(nm, code): class Tf(object): - """ - The Fillarea class object allows the user to edit fillarea attributes, including + """The Fillarea class allows the user to edit fillarea attributes, including fillarea interior style, style index, and color index. This class is used to define an fillarea table entry used in VCS, or it diff --git a/vcs/isofill.py b/vcs/isofill.py index d4552ca73..38859ad34 100755 --- a/vcs/isofill.py +++ b/vcs/isofill.py @@ -709,7 +709,7 @@ def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('isofill',) * 2) + xyscale.__doc__ = xmldocs.xyscaledoc % (('isofill',) * 3) def list(self): print "", "----------Isofill (Gfi) member (attribute) listings ----------" diff --git a/vcs/isoline.py b/vcs/isoline.py index cded12345..6be6f3661 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -1017,7 +1017,7 @@ def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('isoline',) * 2) + xyscale.__doc__ = xmldocs.xyscaledoc % (('isoline',) * 3) def list(self): if (self.name == '__removed_from_VCS__'): diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 7218c0c47..cd4e1191d 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -96,8 +96,7 @@ def check_name_source(name, source, typ): def createtemplate(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -117,8 +116,7 @@ def createtemplate(name=None, source='default'): def gettemplate(Pt_name_src='default'): - """ - %s + """%s :param Pt_name_src: String name of an existing template VCS object :type Pt_name_src: :py:class:`str` @@ -137,8 +135,7 @@ def gettemplate(Pt_name_src='default'): def createprojection(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -157,8 +154,7 @@ def createprojection(name=None, source='default'): def getprojection(Proj_name_src='default'): - """ - %s + """%s :param Proj_name_src: String name of an existing VCS projection object :type Proj_name_src: :py:class:`str` @@ -178,8 +174,7 @@ def getprojection(Proj_name_src='default'): def createboxfill(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -190,37 +185,21 @@ def createboxfill(name=None, source='default'): :return: A boxfill graphics method object :rtype: vcs.boxfill.Gfb - - %s - %s - %s - %s - %s """ name, source = check_name_source(name, source, 'boxfill') return boxfill.Gfb(name, source) -createboxfill.__doc__ = createboxfill.__doc__ % ( - xmldocs.create_docs['boxfill'], - xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.create_GM_input, xmldocs.boxfill_output) +createboxfill.__doc__ = createboxfill.__doc__ % xmldocs.create_docs['boxfill'] def getboxfill(Gfb_name_src='default'): - """ - %s + """%s :param Gfb_name_src: String name of an existing boxfill VCS object :type Gfb_name_src: :py:class:`str` :return: A pre-existing boxfill graphics method :rtype: vcs.boxfill.Gfb - - %s - %s - %s - %s - %s """ # Check to make sure the argument passed in is a STRING if not isinstance(Gfb_name_src, str): @@ -229,14 +208,11 @@ def getboxfill(Gfb_name_src='default'): if Gfb_name_src not in vcs.elements["boxfill"].keys(): raise "The boxfill method: '%s' does not seem to exist" return vcs.elements["boxfill"][Gfb_name_src] -getboxfill.__doc__ = getboxfill.__doc__ % ( - xmldocs.get_docs['boxfill'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.get_GM_input, xmldocs.boxfill_output) +getboxfill.__doc__ = getboxfill.__doc__ % xmldocs.get_docs['boxfill'] def createtaylordiagram(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -266,8 +242,7 @@ def createtaylordiagram(name=None, source='default'): def gettaylordiagram(Gtd_name_src='default'): - """ - %s + """%s :param Gtd_name_src: String name of an existing taylordiagram VCS object :type Gtd_name_src: :py:class:`str` @@ -290,8 +265,7 @@ def gettaylordiagram(Gtd_name_src='default'): def createmeshfill(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -309,8 +283,7 @@ def createmeshfill(name=None, source='default'): def getmeshfill(Gfm_name_src='default'): - """ - %s + """%s :param Gfm_name_src: String name of an existing meshfill VCS object :type Gfm_name_src: :py:class:`str` @@ -331,8 +304,7 @@ def getmeshfill(Gfm_name_src='default'): def createisofill(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -343,36 +315,21 @@ def createisofill(name=None, source='default'): :returns: An isofill graphics method :rtype: vcs.isofill.Gfi - - %s - %s - %s - %s - %s """ name, source = check_name_source(name, source, 'isofill') return isofill.Gfi(name, source) -createisofill.__doc__ = createisofill.__doc__ % ( - xmldocs.create_docs['isofill'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, - xmldocs.axesconvert, xmldocs.create_GM_input, xmldocs.isofill_output) +createisofill.__doc__ = createisofill.__doc__ % xmldocs.create_docs['isofill'] def getisofill(Gfi_name_src='default'): - """ - %s + """%s :param Gfi_name_src: String name of an existing isofill VCS object :type Gfi_name_src: :py:class:`str` :returns: The specified isofill VCS object :rtype: vcs.isofill.Gfi - - %s - %s - %s - %s - %s """ # Check to make sure the argument passed in is a STRING @@ -382,14 +339,11 @@ def getisofill(Gfi_name_src='default'): if Gfi_name_src not in vcs.elements["isofill"]: raise ValueError("The isofill '%s' does not exists" % Gfi_name_src) return vcs.elements["isofill"][Gfi_name_src] -getisofill.__doc__ = getisofill.__doc__ % ( - xmldocs.get_docs['isofill'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.get_GM_input, xmldocs.isofill_output) +getisofill.__doc__ = getisofill.__doc__ % xmldocs.get_docs['isofill'] def createisoline(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -400,36 +354,22 @@ def createisoline(name=None, source='default'): :returns: An isoline graphics method object :rtype: vcs.isoline.Gi - - %s - %s - %s - %s - %s """ name, source = check_name_source(name, source, 'isoline') return isoline.Gi(name, source) -createisoline.__doc__ = createisoline.__doc__ % ( - xmldocs.create_docs['isoline'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.create_GM_input, xmldocs.isoline_output) +createisoline.__doc__ = createisoline.__doc__ % xmldocs.create_docs['isoline'] + def getisoline(Gi_name_src='default'): - """ - %s + """%s :param Gi_name_src: String name of an existing isoline VCS object :type Gi_name_src: :py:class:`str` :returns: The requested isoline VCS object :rtype: vcs.isoline.Gi - - %s - %s - %s - %s - %s """ # Check to make sure the argument passed in is a STRING @@ -438,14 +378,11 @@ def getisoline(Gi_name_src='default'): if Gi_name_src not in vcs.elements["isoline"]: raise ValueError("The isoline '%s' does not exists" % Gi_name_src) return vcs.elements["isoline"][Gi_name_src] -getisoline.__doc__ = getisoline.__doc__ % ( - xmldocs.get_docs['isoline'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.get_GM_input, xmldocs.isoline_output) +getisoline.__doc__ = getisoline.__doc__ % xmldocs.get_docs['isoline'] def create1d(name=None, source='default'): - """ - Creates a new :py:class:`vcs.unified1d.G1d` object called name, and inheriting from source. + """Creates a new :py:class:`vcs.unified1d.G1d` object called name, and inheriting from source. :Example: @@ -476,8 +413,7 @@ def create1d(name=None, source='default'): def get1d(name): - """ - Given name, returns a :py:class:`vcs.unified1d.G1d` from vcs with that name. + """Given name, returns a :py:class:`vcs.unified1d.G1d` from vcs with that name. Unlike other VCS 'get' functions, name cannot be None when calling get1d(). :Example: @@ -507,8 +443,7 @@ def get1d(name): def createxyvsy(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -520,12 +455,6 @@ def createxyvsy(name=None, source='default'): :returns: A XYvsY graphics method object :rtype: vcs.unified1D.G1d - - %s - %s - %s - %s - %s """ try: gm = vcs.create1d(name, source) @@ -539,40 +468,28 @@ def createxyvsy(name=None, source='default'): raise ve gm.flip = True return gm -createxyvsy.__doc__ = createxyvsy.__doc__ % ( - xmldocs.create_docs['xyvsy'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.create_GM_input, xmldocs.xyvsy_output) +createxyvsy.__doc__ = createxyvsy.__doc__ % xmldocs.create_docs['xyvsy'] def getxyvsy(GXy_name_src='default'): - """ - %s + """%s :param GXy_name_src: String name of an existing Xyvsy graphics method :type GXy_name_src: :py:class:`str` :returns: An XYvsY graphics method object :rtype: vcs.unified1D.G1d - - %s - %s - %s - %s - %s """ gm = vcs.get1d(GXy_name_src) if gm.g_type != "xyvsy": # Already existed when name_src was created, most likely return vcs.get1d(GXy_name_src + "_xyvsy") return gm -getxyvsy.__doc__ = getxyvsy.__doc__ % ( - xmldocs.get_docs['xyvsy'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.get_GM_input, xmldocs.xyvsy_output) +getxyvsy.__doc__ = getxyvsy.__doc__ % xmldocs.get_docs['xyvsy'] def createyxvsx(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -583,12 +500,6 @@ def createyxvsx(name=None, source='default'): :returns: A YXvsX graphics method object :rtype: vcs.unified1D.G1d - - %s - %s - %s - %s - %s """ try: gm = vcs.create1d(name, source) @@ -601,39 +512,29 @@ def createyxvsx(name=None, source='default'): else: raise ve return gm -createyxvsx.__doc__ = createyxvsx.__doc__ % ( - xmldocs.create_docs['yxvsx'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.create_GM_input, xmldocs.yxvsx_output) +createyxvsx.__doc__ = createyxvsx.__doc__ % xmldocs.create_docs['yxvsx'] + def getyxvsx(GYx_name_src='default'): - """ - %s + """%s :param GYx_name_src: String name of an existing Yxvsx graphics method :type GYx_name_src: str :return: A Yxvsx graphics method object :rtype: vcs.unified1D.G1d - - %s - %s - %s - %s - %s """ gm = vcs.get1d(GYx_name_src) if gm.g_type != "yxvsx": return vcs.get1d(GYx_name_src + "_yxvsx") return gm -getyxvsx.__doc__ = getyxvsx.__doc__ % ( - xmldocs.get_docs['yxvsx'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.get_GM_input, xmldocs.yxvsx_output) +getyxvsx.__doc__ = getyxvsx.__doc__ % xmldocs.get_docs['yxvsx'] + def createxvsy(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -644,12 +545,6 @@ def createxvsy(name=None, source='default'): :returns: A XvsY graphics method object :rtype: vcs.unified1D.G1d - - %s - %s - %s - %s - %s """ try: gm = vcs.create1d(name, source) @@ -662,39 +557,30 @@ def createxvsy(name=None, source='default'): else: raise ve return gm -createxvsy.__doc__ = createxvsy.__doc__ % ( - xmldocs.create_docs['xvsy'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.create_GM_input, xmldocs.xvsy_output) +createxvsy.__doc__ = createxvsy.__doc__ % xmldocs.create_docs['xvsy'] + def getxvsy(GXY_name_src='default'): - """ - %s + """%s :param GXY_name_src: String name of a 1d graphics method :type GXY_name_src: :py:class:`str` :returns: A XvsY graphics method object :rtype: vcs.unified1D.G1d - %s - %s - %s - %s - %s """ gm = vcs.get1d(GXY_name_src) # Deliberately yxvsx here; xvsy is just an alias if gm.g_type != "yxvsx": return vcs.get1d(GXY_name_src + "_xvsy") return gm -getxvsy.__doc__ = getxvsy.__doc__ % ( - xmldocs.get_docs['xvsy'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.get_GM_input, xmldocs.xvsy_output) +getxvsy.__doc__ = getxvsy.__doc__ % xmldocs.get_docs['xvsy'] + def createvector(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -712,8 +598,7 @@ def createvector(name=None, source='default'): def getvector(Gv_name_src='default'): - """ - %s + """%s :param Gv_name_src: String name of an existing vector VCS object :type Gv_name_src: :py:class:`str` @@ -732,8 +617,7 @@ def getvector(Gv_name_src='default'): def createscatter(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -744,12 +628,6 @@ def createscatter(name=None, source='default'): :return: A scatter graphics method :rtype: vcs.unified1D.G1d - - %s - %s - %s - %s - %s """ try: gm = vcs.create1d(name, source) @@ -763,42 +641,32 @@ def createscatter(name=None, source='default'): raise ve gm.linewidth = 0 return gm -createscatter.__doc__ = createscatter.__doc__ % ( - xmldocs.create_docs['scatter'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.create_GM_input, xmldocs.scatter_output) +createscatter.__doc__ = createscatter.__doc__ % xmldocs.create_docs['scatter'] + def getscatter(GSp_name_src='default'): - """ - %s + """%s :param GSp_name_src: String name of an existing scatter VCS object. :type GSp_name_src: :py:class:`str` :returns: A scatter graphics method object :rtype: vcs.unified1D.G1d - - %s - %s - %s - %s - %s """ gm = vcs.get1d(GSp_name_src) if gm.g_type != "scatter": return vcs.get1d(GSp_name_src + "_scatter") return gm -getscatter.__doc__ = getscatter.__doc__ % ( - xmldocs.get_docs['scatter'], xmldocs.plot_keywords_doc, xmldocs.graphics_method_core, xmldocs.axesconvert, - xmldocs.get_GM_input, xmldocs.scatter_output) +getscatter.__doc__ = getscatter.__doc__ % xmldocs.get_docs['scatter'] + def createline(name=None, source='default', ltype=None, width=None, color=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None, projection=None): - """ - %s + """%s :param name: Name of created object :type name: :py:class:`str` @@ -836,7 +704,6 @@ def createline(name=None, source='default', ltype=None, :returns: A VCS line secondary method object :rtype: vcs.line.Tl - """ name, source = check_name_source(name, source, 'line') @@ -864,8 +731,7 @@ def createline(name=None, source='default', ltype=None, def setLineAttributes(to, l): - """ - Set attributes linecolor, linewidth and linetype from line l on object to. + """Set attributes linecolor, linewidth and linetype from line l on object to. :Example: @@ -914,8 +780,7 @@ def getline(name='default', ltype=None, width=None, color=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None): - """ - %s + """%s :param name: Name of created object :type name: :py:class:`str` @@ -982,8 +847,7 @@ def createmarker(name=None, source='default', mtype=None, size=None, color=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None, projection=None): - """ - %s + """%s :param name: Name of created object :type name: :py:class:`str` @@ -1048,8 +912,7 @@ def getmarker(name='default', mtype=None, size=None, color=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None): - """ - %s + """%s :param name: Name of created object :type name: :py:class:`str` @@ -1117,8 +980,7 @@ def createfillarea(name=None, source='default', style=None, index=None, color=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None): - """ - %s + """%s :param name: Name of created object :type name: :py:class:`str` @@ -1185,8 +1047,7 @@ def getfillarea(name='default', style=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None): - """ - %s + """%s :param name: String name of an existing fillarea VCS object :type name: :py:class:`str` @@ -1219,7 +1080,6 @@ def getfillarea(name='default', style=None, :returns: A fillarea secondary object :rtype: vcs.fillarea.Tf - """ # Check to make sure the argument passed in is a STRING @@ -1253,8 +1113,7 @@ def createtexttable(name=None, source='default', font=None, spacing=None, expansion=None, color=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None): - """ - %s + """%s :param name: Name of created object :type name: :py:class:`str` @@ -1325,8 +1184,7 @@ def gettexttable(name='default', font=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None): - """ - %s + """%s :param name: String name of an existing VCS texttable object :type name: :py:class:`str` @@ -1372,8 +1230,7 @@ def gettexttable(name='default', font=None, def createtextorientation(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -1393,8 +1250,7 @@ def createtextorientation(name=None, source='default'): def gettextorientation(To_name_src='default'): - """ - %s + """%s :param To_name_src: String name of an existing textorientation VCS object :type To_name_src: :py:class:`str` @@ -1419,8 +1275,7 @@ def createtextcombined(Tt_name=None, Tt_source='default', To_name=None, To_sourc font=None, spacing=None, expansion=None, color=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None, height=None, angle=None, path=None, halign=None, valign=None, projection=None): - """ - %s + """%s :param Tt_name: Name of created object :type Tt_name: :py:class:`str` @@ -1528,8 +1383,7 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N expansion=None, color=None, priority=None, viewport=None, worldcoordinate=None, x=None, y=None, height=None, angle=None, path=None, halign=None, valign=None): - """ - %s + """%s :param Tt_name_src: Name of created object :type Tt_name_src: :py:class:`str` @@ -1639,8 +1493,7 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N def get3d_scalar(Gfdv3d_name_src='default'): - """ - %s + """%s :param Gfdv3d_name_src: String name of an existing 3d_scalar VCS object. :type Gfdv3d_name_src: str @@ -1661,8 +1514,7 @@ def get3d_scalar(Gfdv3d_name_src='default'): def create3d_scalar(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -1680,8 +1532,7 @@ def create3d_scalar(name=None, source='default'): def get3d_dual_scalar(Gfdv3d_name_src='default'): - """ - %s + """%s :param Gfdv3d_name_src: String name of an existing 3d_dual_scalar VCS object :type Gfdv3d_name_src: :py:class:`str` @@ -1701,8 +1552,7 @@ def get3d_dual_scalar(Gfdv3d_name_src='default'): def create3d_dual_scalar(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -1721,8 +1571,7 @@ def create3d_dual_scalar(name=None, source='default'): def get3d_vector(Gfdv3d_name_src='default'): - """ - %s + """%s :param Gfdv3d_name_src: String name of an existing 3d_vector VCS object :type Gfdv3d_name_src: :py:class:`str` @@ -1743,8 +1592,7 @@ def get3d_vector(Gfdv3d_name_src='default'): def create3d_vector(name=None, source='default'): - """ - %s + """%s :param name: The name of the created object :type name: :py:class:`str` @@ -1769,8 +1617,7 @@ def create3d_vector(name=None, source='default'): def createcolormap(Cp_name=None, Cp_name_src='default'): - """ - %s + """%s :param Cp_name: The name of the created object :type Cp_name: :py:class:`str` @@ -1789,8 +1636,7 @@ def createcolormap(Cp_name=None, Cp_name_src='default'): def getcolormap(Cp_name_src='default'): - """ - %s + """%s :param Cp_name_src: String name of an existing colormap VCS object :type Cp_name_src: :py:class:`str` @@ -1912,18 +1758,12 @@ def removeP(obj): def removeobject(obj): - """ - The user has the ability to create primary and secondary class + """The user has the ability to create primary and secondary class objects. The function allows the user to remove these objects from the appropriate class list. .. note:: - To remove the object completely from Python, remember to - use the "del" function. - - .. admonition:: Also note - The user is not allowed to remove a "default" class object. diff --git a/vcs/meshfill.py b/vcs/meshfill.py index 8d40618a7..29d517678 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -726,7 +726,7 @@ def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('meshfill',) * 2) + xyscale.__doc__ = xmldocs.xyscaledoc % (('meshfill',) * 3) ########################################################################## # # diff --git a/vcs/queries.py b/vcs/queries.py index 7035997f6..9a8052807 100644 --- a/vcs/queries.py +++ b/vcs/queries.py @@ -178,11 +178,9 @@ def isplot(pobj): .. doctest:: queries_isplot >>> a=vcs.init() - >>> import cdms2 # need this to make a slab for a boxfill plot - >>> f = cdms2.open(vcs.sample_data + '/clt.nc') # open a variable file - >>> v = f('v') # create a slab from the variable file - >>> dsp_plot=(a.getboxfill(), v) # plot a boxfill. Should return vcs.displayplot.Dp. - >>> vcs.queries.isplot(dsp_plot) + >>> array=[range(10) for _ in range(10)] + >>> dsp=a.plot(array) # plotting should return a displayplot object + >>> vcs.queries.isplot(dsp) 1 :param obj: A VCS object diff --git a/vcs/vcshelp.py b/vcs/vcshelp.py index bcea4894b..c39f68e80 100644 --- a/vcs/vcshelp.py +++ b/vcs/vcshelp.py @@ -27,8 +27,7 @@ def objecthelp(*arg): - """ - Print the documentation of each object in the argument list. + """Print the documentation of each object in the argument list. Prints a blank line if no documentation. :Example: @@ -36,9 +35,8 @@ def objecthelp(*arg): .. doctest:: vcshelp_objecthelp >>> fa=vcs.getfillarea() - >>> vcs.objecthelp(fa) - - The Fillarea class object... + >>> vcs.objecthelp(fa) # print fillarea class documentation + The Fillarea class ... :param arg: Instance(s) of VCS object(s) to display the documentation for. Multiple objects should be comma-delimited. @@ -49,7 +47,27 @@ def objecthelp(*arg): def help(*arg): + """Prints the documentation for named VCS class(es) and/or function(s). + + :Example: + + .. doctest:: vcs_vcshelp_help + + >>> vcs.help('fillareaobject') # show fillarea help + The Fillarea class ... + >>> vcs.help('getboxfill') + + :param arg: One or multiple strings containing the name(s) of object(s) + and/or function(s) to view the documentation for. + + .. note:: + + To get help on a VCS object class, you must supply a string that + is the name of that class, plus the word "object". + (i.e. vcs.help("templateobject") will print the documentation for + the template class) + """ if (len(arg) == 0): b = ['fillarea', 'line', 'marker', 'textcombined', 'textorientation', 'texttable', 'projection'] diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index d9ed62582..f8830f8cb 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -1,86 +1,86 @@ plot_keywords_doc = """ :param xaxis: Axis object to replace the slab -1 dim axis. - Keyword parameter. + (**keyword parameter**) :param yaxis: Axis object to replace the slab -2 dim axis, only if slab has more than 1D. - Keyword parameter. + (**keyword parameter**) :param zaxis: Axis object to replace the slab -3 dim axis, only if slab has more than 2D. - Keyword parameter. + (**keyword parameter**) :param taxis: Axis object to replace the slab -4 dim axis, only if slab has more than 3D. - Keyword parameter. + (**keyword parameter**) :param waxis: Axis object to replace the slab -5 dim axis, only if slab has more than 4D. - Keyword parameter. + (**keyword parameter**) :param xrev: reverse x axis. - Keyword parameter. + (**keyword parameter**) :param yrev: reverse y axis, only if slab has more than 1D. - Keyword parameter. + (**keyword parameter**) :param xarray: Values to use instead of x axis. - Keyword parameter. + (**keyword parameter**) :param yarray: Values to use instead of y axis, only if var has more than 1D. - Keyword parameter. + (**keyword parameter**) :param zarray: Values to use instead of z axis, only if var has more than 2D. - Keyword parameter. + (**keyword parameter**) :param tarray: Values to use instead of t axis, only if var has more than 3D. - Keyword parameter. + (**keyword parameter**) :param warray: Values to use instead of w axis, only if var has more than 4D. - Keyword parameter. + (**keyword parameter**) :param continents: continents type number. - Keyword parameter. + (**keyword parameter**) :param name: replaces variable name on plot. - Keyword parameter. + (**keyword parameter**) :param time: replaces time name on plot. - Keyword parameter. + (**keyword parameter**) :param units: replaces units value on plot. - Keyword parameter. + (**keyword parameter**) :param ymd: replaces year/month/day on plot. - Keyword parameter. + (**keyword parameter**) :param hms: replaces hh/mm/ss on plot. - Keyword parameter. + (**keyword parameter**) :param file_comment: replaces file_comment on plot. - Keyword parameter. + (**keyword parameter**) :param xbounds: Values to use instead of x axis bounds values. - Keyword parameter. + (**keyword parameter**) :param ybounds: Values to use instead of y axis bounds values (if exist). - Keyword parameter. + (**keyword parameter**) :param xname: replace xaxis name on plot. - Keyword parameter. + (**keyword parameter**) :param yname: replace yaxis name on plot (if exists). - Keyword parameter. + (**keyword parameter**) :param zname: replace zaxis name on plot (if exists). - Keyword parameter. + (**keyword parameter**) :param tname: replace taxis name on plot (if exists). - Keyword parameter. + (**keyword parameter**) :param wname: replace waxis name on plot (if exists). - Keyword parameter. + (**keyword parameter**) :param xunits: replace xaxis units on plot. - Keyword parameter. + (**keyword parameter**) :param yunits: replace yaxis units on plot (if exists). - Keyword parameter. + (**keyword parameter**) :param zunits: replace zaxis units on plot (if exists). - Keyword parameter. + (**keyword parameter**) :param tunits: replace taxis units on plot (if exists). - Keyword parameter. + (**keyword parameter**) :param wunits: replace waxis units on plot (if exists). - Keyword parameter. + (**keyword parameter**) :param xweights: replace xaxis weights used for computing mean. - Keyword parameter. + (**keyword parameter**) :param yweights: replace xaxis weights used for computing mean. - Keyword parameter. + (**keyword parameter**) :param comment1: replaces comment1 on plot. - Keyword parameter. + (**keyword parameter**) :param comment2: replaces comment2 on plot. - Keyword parameter. + (**keyword parameter**) :param comment3: replaces comment3 on plot. - Keyword parameter. + (**keyword parameter**) :param comment4: replaces comment4 on plot. - Keyword parameter. + (**keyword parameter**) :param long_name: replaces long_name on plot. - Keyword parameter. + (**keyword parameter**) :param grid: replaces array grid (if exists). - Keyword parameter. + (**keyword parameter**) :param bg: plots in background mode. - Keyword parameter. + (**keyword parameter**) :param ratio: sets the y/x ratio ,if passed as a string with 't' at the end, will aslo moves the ticks. - Keyword parameter. + (**keyword parameter**) :type xaxis: cdms2.axis.TransientAxis :type yaxis: cdms2.axis.TransientAxis :type zaxis: cdms2.axis.TransientAxis @@ -265,8 +265,8 @@ .. doctest:: xyscale_%s >>> a=vcs.init() - >>> ex=a.create%s('xyscale_ex') # create a boxfill to work with - >>> ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' + >>> ex=a.create%s('xyscale_ex') # create a %s to work with + >>> ex.xyscale(xat='linear', yat='linear') :param xat: Set value for x axis conversion. :type xat: str @@ -408,8 +408,9 @@ def populate_docstrings(type_dict, target_dict, docstring, method): target_dict[obj_name] = docstring % d d.clear() -# contains VCS object details used to build Example doctests and fill in docstrings +# obj_details contains VCS object details used to build Example doctests and fill in docstrings # Keys: +# "graphics method" / "secondary method" : These top-level keys specify the type of objects described within # "callable"(bool): specifies whether the object has a self-named plotting function, i.e. fillarea() # "parent"(str): specifies the name of the object to be used in inheritance for a first example. # Usually 'default', but it can change based on situation. @@ -669,8 +670,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): :rtype: int """ -get_methods_doc = """ - VCS contains a list of %(type)ss. This function will create a +get_methods_doc = """VCS contains a list of %(type)ss. This function will create a %(sp_name)s class object from an existing VCS %(sp_name)s %(type)s. If no %(sp_name)s name is given, then %(parent)s %(sp_name)s will be used. @@ -717,6 +717,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): docstrings['get'] = [get_docs, get_methods_doc] create_docs = {} docstrings['create'] = [create_docs, create_methods_doc] + # populate all the docstrings for method in docstrings.keys(): populate_docstrings(obj_details, docstrings[method][0], docstrings[method][1], method) @@ -904,7 +905,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): # # ############################################################################# plot_output = """ - :return: Display Plot object representing the plot. + :return: A VCS displayplot object. :rtype: vcs.displayplot.Dp """ From 1d4e7b4c17c01e5387c3888524788eea36da686c Mon Sep 17 00:00:00 2001 From: embrown Date: Mon, 19 Dec 2016 15:44:20 -0800 Subject: [PATCH 22/45] doctest_vcs.py now filters out private functions from the missing section of the log. --- docs/doctest_info/scripts/doctest_vcs.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/doctest_info/scripts/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py index bc28a9c70..f0c8f7203 100644 --- a/docs/doctest_info/scripts/doctest_vcs.py +++ b/docs/doctest_info/scripts/doctest_vcs.py @@ -31,7 +31,7 @@ def log_stats(module_name, verbose): log.write("-") log.write("\n") log.write("```python\n") - consume_entry(results, log, err_endpoints, "", "") + consume_entry(results, log, err_endpoints) log.write("```\n\n") if re.match(missing_header, line): header="Missing Doctests" @@ -46,16 +46,18 @@ def log_stats(module_name, verbose): # note: will only consume the first full error -def consume_entry(readfile, writefile, endpoints, prepend, append): +def consume_entry(readfile, writefile, endpoints, prepend="", append=""): more = True + private = re.compile("_[_A-z0-9]+") line = readfile.readline() while more and line != '': - if append != "": - index = line.find("\n") - new_line = prepend + line[:index] + append + line[index:] - writefile.write(new_line) - else: - writefile.write(prepend + line + append) + if not re.match(private,line.split('.')[-1]): + if append != "": + index = line.find("\n") + new_line = prepend + line[:index] + append + line[index:] + writefile.write(new_line) + else: + writefile.write(prepend + line + append) line = readfile.readline() for endpoint in endpoints: if re.match(endpoint, line): From c9658946b930e9abf6d3b593702e6e1fe3729c0b Mon Sep 17 00:00:00 2001 From: embrown Date: Mon, 19 Dec 2016 17:42:37 -0800 Subject: [PATCH 23/45] Fixed more docstring formatting issues. Make html now reports (almost) no errors. Re-ran doctests/logging. --- docs/doctest_info/markdown/Canvas.md | 102 ++------ docs/doctest_info/markdown/Pboxeslines.md | 2 - docs/doctest_info/markdown/Pdata.md | 2 - docs/doctest_info/markdown/Pformat.md | 6 - docs/doctest_info/markdown/Plegend.md | 2 - docs/doctest_info/markdown/Ptext.md | 2 - docs/doctest_info/markdown/Pxlabels.md | 2 - docs/doctest_info/markdown/Pxtickmarks.md | 2 - docs/doctest_info/markdown/Pylabels.md | 2 - docs/doctest_info/markdown/Pytickmarks.md | 2 - .../markdown/VCS_validation_functions.md | 68 ------ docs/doctest_info/markdown/boxfill.md | 102 -------- docs/doctest_info/markdown/colormap.md | 8 - docs/doctest_info/markdown/configurator.md | 2 - docs/doctest_info/markdown/displayplot.md | 54 ----- docs/doctest_info/markdown/dv3d.md | 20 -- docs/doctest_info/markdown/error.md | 4 - docs/doctest_info/markdown/fillarea.md | 34 --- docs/doctest_info/markdown/isofill.md | 86 ------- docs/doctest_info/markdown/isoline.md | 134 ----------- docs/doctest_info/markdown/line.md | 42 ---- docs/doctest_info/markdown/manageElements.md | 13 +- docs/doctest_info/markdown/marker.md | 42 ---- docs/doctest_info/markdown/meshfill.md | 94 -------- docs/doctest_info/markdown/projection.md | 142 ------------ docs/doctest_info/markdown/queries.md | 13 +- docs/doctest_info/markdown/taylor.md | 146 ------------ docs/doctest_info/markdown/template.md | 22 +- docs/doctest_info/markdown/textcombined.md | 84 +------ docs/doctest_info/markdown/textorientation.md | 26 --- docs/doctest_info/markdown/texttable.md | 62 ----- docs/doctest_info/markdown/unified1D.md | 112 --------- docs/doctest_info/markdown/utils.md | 10 - docs/doctest_info/markdown/vcshelp.md | 121 +++------- docs/doctest_info/markdown/vector.md | 114 --------- docs/doctest_info/reports/Canvas.report | 88 ++++--- docs/doctest_info/reports/boxfill.report | 2 +- docs/doctest_info/reports/isofill.report | 4 +- docs/doctest_info/reports/isoline.report | 4 +- .../reports/manageElements.report | 24 +- docs/doctest_info/reports/meshfill.report | 4 +- docs/doctest_info/reports/queries.report | 37 +-- docs/doctest_info/reports/template.report | 28 +-- docs/doctest_info/reports/textcombined.report | 2 +- docs/doctest_info/reports/utils.report | 30 +-- docs/doctest_info/reports/vcshelp.report | 142 ++++-------- docs/doctest_info/scripts/deft_box.py | 40 ++++ vcs/Canvas.py | 217 +++++++++--------- vcs/boxfill.py | 9 +- vcs/colormap.py | 28 ++- vcs/queries.py | 32 +-- vcs/template.py | 80 +++---- vcs/utils.py | 180 +++++++-------- 53 files changed, 550 insertions(+), 2080 deletions(-) diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index 350b1aad1..b6e2e060d 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -20,7 +20,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -32,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -46,7 +46,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.gettaylordiagram @@ -60,9 +60,8 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3700, in __plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1310, in taylordiagram + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3650, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) @@ -83,78 +82,27 @@ Expected: Got nothing ``` +vcs.Canvas.Canvas.setcontinentstype +----------------------------------- +```python +Failed example: + a.setcontinentstype(4) "Political Borders" +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1 + a.setcontinentstype(4) "Political Borders" + ^ + SyntaxError: invalid syntax +``` + Missing Doctests ---------------- :x:``` vcs.Canvas``` :x:``` vcs.Canvas.Canvas``` -:x:``` vcs.Canvas.Canvas._Canvas__new_elts``` - -:x:``` vcs.Canvas.Canvas._Canvas__plot``` - -:x:``` vcs.Canvas.Canvas.__init__``` - -:x:``` vcs.Canvas.Canvas._compute_margins``` - -:x:``` vcs.Canvas.Canvas._compute_width_height``` - -:x:``` vcs.Canvas.Canvas._continentspath``` - -:x:``` vcs.Canvas.Canvas._datawc_tv``` - -:x:``` vcs.Canvas.Canvas._get_user_actions``` - -:x:``` vcs.Canvas.Canvas._get_user_actions_names``` - -:x:``` vcs.Canvas.Canvas._getanimate``` - -:x:``` vcs.Canvas.Canvas._getanimate_info``` - -:x:``` vcs.Canvas.Canvas._getcanvas``` - -:x:``` vcs.Canvas.Canvas._getisplottinggridded``` - -:x:``` vcs.Canvas.Canvas._getmode``` - -:x:``` vcs.Canvas.Canvas._getpausetime``` - -:x:``` vcs.Canvas.Canvas._getvarglist``` - -:x:``` vcs.Canvas.Canvas._getviewport``` - -:x:``` vcs.Canvas.Canvas._getwinfo_id``` - -:x:``` vcs.Canvas.Canvas._getworldcoordinate``` - -:x:``` vcs.Canvas.Canvas._reconstruct_tv``` - -:x:``` vcs.Canvas.Canvas._scriptrun``` - -:x:``` vcs.Canvas.Canvas._set_user_actions``` - -:x:``` vcs.Canvas.Canvas._set_user_actions_names``` - -:x:``` vcs.Canvas.Canvas._setanimate``` - -:x:``` vcs.Canvas.Canvas._setanimate_info``` - -:x:``` vcs.Canvas.Canvas._setcanvas``` - -:x:``` vcs.Canvas.Canvas._setisplottinggridded``` - -:x:``` vcs.Canvas.Canvas._setmode``` - -:x:``` vcs.Canvas.Canvas._setpausetime``` - -:x:``` vcs.Canvas.Canvas._setvarglist``` - -:x:``` vcs.Canvas.Canvas._setviewport``` - -:x:``` vcs.Canvas.Canvas._setwinfo_id``` - -:x:``` vcs.Canvas.Canvas._setworldcoordinate``` - :x:``` vcs.Canvas.Canvas.addfont``` :x:``` vcs.Canvas.Canvas.animate``` @@ -233,20 +181,12 @@ Missing Doctests :x:``` vcs.Canvas.SIGNAL``` -:x:``` vcs.Canvas.SIGNAL.__call__``` - -:x:``` vcs.Canvas.SIGNAL.__init__``` - :x:``` vcs.Canvas.SIGNAL.clear``` :x:``` vcs.Canvas.SIGNAL.connect``` :x:``` vcs.Canvas.SIGNAL.disconnect``` -:x:``` vcs.Canvas._determine_arg_list``` - -:x:``` vcs.Canvas._process_keyword``` - :x:``` vcs.Canvas.change_date_time``` :x:``` vcs.Canvas.dictionarytovcslist``` diff --git a/docs/doctest_info/markdown/Pboxeslines.md b/docs/doctest_info/markdown/Pboxeslines.md index ad0d440c3..26466f2fa 100644 --- a/docs/doctest_info/markdown/Pboxeslines.md +++ b/docs/doctest_info/markdown/Pboxeslines.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.Pboxeslines.Pbl``` -:x:``` vcs.Pboxeslines.Pbl.__init__``` - :x:``` vcs.Pboxeslines.Pbl.line``` :x:``` vcs.Pboxeslines.Pbl.list``` diff --git a/docs/doctest_info/markdown/Pdata.md b/docs/doctest_info/markdown/Pdata.md index 6315adc83..c87991714 100644 --- a/docs/doctest_info/markdown/Pdata.md +++ b/docs/doctest_info/markdown/Pdata.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.Pdata.Pds``` -:x:``` vcs.Pdata.Pds.__init__``` - :x:``` vcs.Pdata.Pds.list``` :x:``` vcs.Pdata.Pds.priority``` diff --git a/docs/doctest_info/markdown/Pformat.md b/docs/doctest_info/markdown/Pformat.md index d84d33c37..51430c24b 100644 --- a/docs/doctest_info/markdown/Pformat.md +++ b/docs/doctest_info/markdown/Pformat.md @@ -4,12 +4,6 @@ Missing Doctests :x:``` vcs.Pformat.Pf``` -:x:``` vcs.Pformat.Pf.__init__``` - -:x:``` vcs.Pformat.Pf._getformat``` - -:x:``` vcs.Pformat.Pf._setformat``` - :x:``` vcs.Pformat.Pf.format``` :x:``` vcs.Pformat.Pf.list``` diff --git a/docs/doctest_info/markdown/Plegend.md b/docs/doctest_info/markdown/Plegend.md index 02012a145..7461e0fb2 100644 --- a/docs/doctest_info/markdown/Plegend.md +++ b/docs/doctest_info/markdown/Plegend.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.Plegend.Pls``` -:x:``` vcs.Plegend.Pls.__init__``` - :x:``` vcs.Plegend.Pls.arrow``` :x:``` vcs.Plegend.Pls.line``` diff --git a/docs/doctest_info/markdown/Ptext.md b/docs/doctest_info/markdown/Ptext.md index ed6eb7c8c..bc9fae6a3 100644 --- a/docs/doctest_info/markdown/Ptext.md +++ b/docs/doctest_info/markdown/Ptext.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.Ptext.Pt``` -:x:``` vcs.Ptext.Pt.__init__``` - :x:``` vcs.Ptext.Pt.list``` :x:``` vcs.Ptext.Pt.priority``` diff --git a/docs/doctest_info/markdown/Pxlabels.md b/docs/doctest_info/markdown/Pxlabels.md index 7a3a2cdca..c71476ea4 100644 --- a/docs/doctest_info/markdown/Pxlabels.md +++ b/docs/doctest_info/markdown/Pxlabels.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.Pxlabels.Pxl``` -:x:``` vcs.Pxlabels.Pxl.__init__``` - :x:``` vcs.Pxlabels.Pxl.list``` :x:``` vcs.Pxlabels.Pxl.priority``` diff --git a/docs/doctest_info/markdown/Pxtickmarks.md b/docs/doctest_info/markdown/Pxtickmarks.md index 5d87807fb..bbfd89623 100644 --- a/docs/doctest_info/markdown/Pxtickmarks.md +++ b/docs/doctest_info/markdown/Pxtickmarks.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.Pxtickmarks.Pxt``` -:x:``` vcs.Pxtickmarks.Pxt.__init__``` - :x:``` vcs.Pxtickmarks.Pxt.line``` :x:``` vcs.Pxtickmarks.Pxt.list``` diff --git a/docs/doctest_info/markdown/Pylabels.md b/docs/doctest_info/markdown/Pylabels.md index 723e10b1a..6e9acc1aa 100644 --- a/docs/doctest_info/markdown/Pylabels.md +++ b/docs/doctest_info/markdown/Pylabels.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.Pylabels.Pyl``` -:x:``` vcs.Pylabels.Pyl.__init__``` - :x:``` vcs.Pylabels.Pyl.list``` :x:``` vcs.Pylabels.Pyl.priority``` diff --git a/docs/doctest_info/markdown/Pytickmarks.md b/docs/doctest_info/markdown/Pytickmarks.md index 0c2295118..d087c72ea 100644 --- a/docs/doctest_info/markdown/Pytickmarks.md +++ b/docs/doctest_info/markdown/Pytickmarks.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.Pytickmarks.Pyt``` -:x:``` vcs.Pytickmarks.Pyt.__init__``` - :x:``` vcs.Pytickmarks.Pyt.line``` :x:``` vcs.Pytickmarks.Pyt.list``` diff --git a/docs/doctest_info/markdown/VCS_validation_functions.md b/docs/doctest_info/markdown/VCS_validation_functions.md index 6d682bcb6..6b0c7fd17 100644 --- a/docs/doctest_info/markdown/VCS_validation_functions.md +++ b/docs/doctest_info/markdown/VCS_validation_functions.md @@ -6,74 +6,6 @@ Missing Doctests :x:``` vcs.VCS_validation_functions.PPE``` -:x:``` vcs.VCS_validation_functions.PPE.__init__``` - -:x:``` vcs.VCS_validation_functions.PPE.__str__``` - -:x:``` vcs.VCS_validation_functions._getLine``` - -:x:``` vcs.VCS_validation_functions._getX``` - -:x:``` vcs.VCS_validation_functions._getX2``` - -:x:``` vcs.VCS_validation_functions._getY``` - -:x:``` vcs.VCS_validation_functions._getY1``` - -:x:``` vcs.VCS_validation_functions._getY2``` - -:x:``` vcs.VCS_validation_functions._getcolormap``` - -:x:``` vcs.VCS_validation_functions._getfillareacolors``` - -:x:``` vcs.VCS_validation_functions._getfillareaopacity``` - -:x:``` vcs.VCS_validation_functions._getlegend``` - -:x:``` vcs.VCS_validation_functions._getpriority``` - -:x:``` vcs.VCS_validation_functions._getprojection``` - -:x:``` vcs.VCS_validation_functions._gettextorientation``` - -:x:``` vcs.VCS_validation_functions._gettexttable``` - -:x:``` vcs.VCS_validation_functions._getvp``` - -:x:``` vcs.VCS_validation_functions._getwc``` - -:x:``` vcs.VCS_validation_functions._setLine``` - -:x:``` vcs.VCS_validation_functions._setX``` - -:x:``` vcs.VCS_validation_functions._setX2``` - -:x:``` vcs.VCS_validation_functions._setY``` - -:x:``` vcs.VCS_validation_functions._setY1``` - -:x:``` vcs.VCS_validation_functions._setY2``` - -:x:``` vcs.VCS_validation_functions._setcolormap``` - -:x:``` vcs.VCS_validation_functions._setfillareacolors``` - -:x:``` vcs.VCS_validation_functions._setfillareaopacity``` - -:x:``` vcs.VCS_validation_functions._setlegend``` - -:x:``` vcs.VCS_validation_functions._setpriority``` - -:x:``` vcs.VCS_validation_functions._setprojection``` - -:x:``` vcs.VCS_validation_functions._settexorientation``` - -:x:``` vcs.VCS_validation_functions._settextable``` - -:x:``` vcs.VCS_validation_functions._setvp``` - -:x:``` vcs.VCS_validation_functions._setwc``` - :x:``` vcs.VCS_validation_functions.add_level_ext_1``` :x:``` vcs.VCS_validation_functions.add_level_ext_2``` diff --git a/docs/doctest_info/markdown/boxfill.md b/docs/doctest_info/markdown/boxfill.md index f6f97b1bb..19d3c6762 100644 --- a/docs/doctest_info/markdown/boxfill.md +++ b/docs/doctest_info/markdown/boxfill.md @@ -4,108 +4,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb``` -:x:``` vcs.boxfill.Gfb.__init__``` - -:x:``` vcs.boxfill.Gfb._getboxfilltype``` - -:x:``` vcs.boxfill.Gfb._getcalendar``` - -:x:``` vcs.boxfill.Gfb._getcolor_1``` - -:x:``` vcs.boxfill.Gfb._getcolor_2``` - -:x:``` vcs.boxfill.Gfb._getdatawc_x1``` - -:x:``` vcs.boxfill.Gfb._getdatawc_x2``` - -:x:``` vcs.boxfill.Gfb._getdatawc_y1``` - -:x:``` vcs.boxfill.Gfb._getdatawc_y2``` - -:x:``` vcs.boxfill.Gfb._getfillareaindices``` - -:x:``` vcs.boxfill.Gfb._getfillareastyle``` - -:x:``` vcs.boxfill.Gfb._getlevel_1``` - -:x:``` vcs.boxfill.Gfb._getlevel_2``` - -:x:``` vcs.boxfill.Gfb._getmissing``` - -:x:``` vcs.boxfill.Gfb._getname``` - -:x:``` vcs.boxfill.Gfb._gettimeunits``` - -:x:``` vcs.boxfill.Gfb._getxaxisconvert``` - -:x:``` vcs.boxfill.Gfb._getxmtics1``` - -:x:``` vcs.boxfill.Gfb._getxmtics2``` - -:x:``` vcs.boxfill.Gfb._getxticlabels1``` - -:x:``` vcs.boxfill.Gfb._getxticlabels2``` - -:x:``` vcs.boxfill.Gfb._getyaxisconvert``` - -:x:``` vcs.boxfill.Gfb._getymtics1``` - -:x:``` vcs.boxfill.Gfb._getymtics2``` - -:x:``` vcs.boxfill.Gfb._getyticlabels1``` - -:x:``` vcs.boxfill.Gfb._getyticlabels2``` - -:x:``` vcs.boxfill.Gfb._setboxfilltype``` - -:x:``` vcs.boxfill.Gfb._setcalendar``` - -:x:``` vcs.boxfill.Gfb._setcolor_1``` - -:x:``` vcs.boxfill.Gfb._setcolor_2``` - -:x:``` vcs.boxfill.Gfb._setdatawc_x1``` - -:x:``` vcs.boxfill.Gfb._setdatawc_x2``` - -:x:``` vcs.boxfill.Gfb._setdatawc_y1``` - -:x:``` vcs.boxfill.Gfb._setdatawc_y2``` - -:x:``` vcs.boxfill.Gfb._setfillareaindices``` - -:x:``` vcs.boxfill.Gfb._setfillareastyle``` - -:x:``` vcs.boxfill.Gfb._setlevel_1``` - -:x:``` vcs.boxfill.Gfb._setlevel_2``` - -:x:``` vcs.boxfill.Gfb._setmissing``` - -:x:``` vcs.boxfill.Gfb._setname``` - -:x:``` vcs.boxfill.Gfb._settimeunits``` - -:x:``` vcs.boxfill.Gfb._setxaxisconvert``` - -:x:``` vcs.boxfill.Gfb._setxmtics1``` - -:x:``` vcs.boxfill.Gfb._setxmtics2``` - -:x:``` vcs.boxfill.Gfb._setxticlabels1``` - -:x:``` vcs.boxfill.Gfb._setxticlabels2``` - -:x:``` vcs.boxfill.Gfb._setyaxisconvert``` - -:x:``` vcs.boxfill.Gfb._setymtics1``` - -:x:``` vcs.boxfill.Gfb._setymtics2``` - -:x:``` vcs.boxfill.Gfb._setyticlabels1``` - -:x:``` vcs.boxfill.Gfb._setyticlabels2``` - :x:``` vcs.boxfill.Gfb.boxfill_type``` :x:``` vcs.boxfill.Gfb.color_1``` diff --git a/docs/doctest_info/markdown/colormap.md b/docs/doctest_info/markdown/colormap.md index e0167c424..689714cfa 100644 --- a/docs/doctest_info/markdown/colormap.md +++ b/docs/doctest_info/markdown/colormap.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.colormap.Cp``` -:x:``` vcs.colormap.Cp.__init__``` - :x:``` vcs.colormap.Cp.getindex``` :x:``` vcs.colormap.Cp.getname``` @@ -22,11 +20,5 @@ Missing Doctests :x:``` vcs.colormap.RGB_Table``` -:x:``` vcs.colormap.RGB_Table.__getitem__``` - -:x:``` vcs.colormap.RGB_Table.__init__``` - -:x:``` vcs.colormap.RGB_Table.__setitem__``` - :x:``` vcs.colormap.process_src``` diff --git a/docs/doctest_info/markdown/configurator.md b/docs/doctest_info/markdown/configurator.md index 0c8ddba6f..17d7bb2f6 100644 --- a/docs/doctest_info/markdown/configurator.md +++ b/docs/doctest_info/markdown/configurator.md @@ -4,8 +4,6 @@ Missing Doctests :x:``` vcs.configurator.Configurator``` -:x:``` vcs.configurator.Configurator.__init__``` - :x:``` vcs.configurator.Configurator.activate``` :x:``` vcs.configurator.Configurator.actor_at_point``` diff --git a/docs/doctest_info/markdown/displayplot.md b/docs/doctest_info/markdown/displayplot.md index 9ce19df33..187917769 100644 --- a/docs/doctest_info/markdown/displayplot.md +++ b/docs/doctest_info/markdown/displayplot.md @@ -4,60 +4,6 @@ Missing Doctests :x:``` vcs.displayplot.Dp``` -:x:``` vcs.displayplot.Dp.__init__``` - -:x:``` vcs.displayplot.Dp._get_backend``` - -:x:``` vcs.displayplot.Dp._getarray``` - -:x:``` vcs.displayplot.Dp._getcontinents``` - -:x:``` vcs.displayplot.Dp._getcontinents_line``` - -:x:``` vcs.displayplot.Dp._getg_name``` - -:x:``` vcs.displayplot.Dp._getg_type``` - -:x:``` vcs.displayplot.Dp._getname``` - -:x:``` vcs.displayplot.Dp._getnewelements``` - -:x:``` vcs.displayplot.Dp._getoff``` - -:x:``` vcs.displayplot.Dp._getpriority``` - -:x:``` vcs.displayplot.Dp._gettemplate``` - -:x:``` vcs.displayplot.Dp._gettemplate_origin``` - -:x:``` vcs.displayplot.Dp._repr_png_``` - -:x:``` vcs.displayplot.Dp._set_backend``` - -:x:``` vcs.displayplot.Dp._setarray``` - -:x:``` vcs.displayplot.Dp._setcontinents``` - -:x:``` vcs.displayplot.Dp._setcontinents_line``` - -:x:``` vcs.displayplot.Dp._setg_name``` - -:x:``` vcs.displayplot.Dp._setg_type``` - -:x:``` vcs.displayplot.Dp._setname``` - -:x:``` vcs.displayplot.Dp._setnewelements``` - -:x:``` vcs.displayplot.Dp._setoff``` - -:x:``` vcs.displayplot.Dp._setpriority``` - -:x:``` vcs.displayplot.Dp._settemplate``` - -:x:``` vcs.displayplot.Dp._settemplate_origin``` - -:x:``` vcs.displayplot.Dp._template_origin``` - :x:``` vcs.displayplot.Dp.array``` :x:``` vcs.displayplot.Dp.backend``` diff --git a/docs/doctest_info/markdown/dv3d.md b/docs/doctest_info/markdown/dv3d.md index fe60ecfbb..8b5df0553 100644 --- a/docs/doctest_info/markdown/dv3d.md +++ b/docs/doctest_info/markdown/dv3d.md @@ -44,8 +44,6 @@ Missing Doctests :x:``` vcs.dv3d.Gf3DDualScalar.ZSlider``` -:x:``` vcs.dv3d.Gf3DDualScalar.__init__``` - :x:``` vcs.dv3d.Gf3Dscalar``` :x:``` vcs.dv3d.Gf3Dscalar.Animation``` @@ -88,8 +86,6 @@ Missing Doctests :x:``` vcs.dv3d.Gf3Dscalar.ZSlider``` -:x:``` vcs.dv3d.Gf3Dscalar.__init__``` - :x:``` vcs.dv3d.Gf3Dvector``` :x:``` vcs.dv3d.Gf3Dvector.Animation``` @@ -132,26 +128,10 @@ Missing Doctests :x:``` vcs.dv3d.Gf3Dvector.ZSlider``` -:x:``` vcs.dv3d.Gf3Dvector.__init__``` - :x:``` vcs.dv3d.Gfdv3d``` :x:``` vcs.dv3d.Gfdv3d.NumCores``` -:x:``` vcs.dv3d.Gfdv3d.__init__``` - -:x:``` vcs.dv3d.Gfdv3d._getNumCores``` - -:x:``` vcs.dv3d.Gfdv3d._getaxes``` - -:x:``` vcs.dv3d.Gfdv3d._getname``` - -:x:``` vcs.dv3d.Gfdv3d._setNumCores``` - -:x:``` vcs.dv3d.Gfdv3d._setaxes``` - -:x:``` vcs.dv3d.Gfdv3d._setname``` - :x:``` vcs.dv3d.Gfdv3d.addParameters``` :x:``` vcs.dv3d.Gfdv3d.addPlotAttribute``` diff --git a/docs/doctest_info/markdown/error.md b/docs/doctest_info/markdown/error.md index 08e1a219f..9317dd1ac 100644 --- a/docs/doctest_info/markdown/error.md +++ b/docs/doctest_info/markdown/error.md @@ -4,7 +4,3 @@ Missing Doctests :x:``` vcs.error.vcsError``` -:x:``` vcs.error.vcsError.__init__``` - -:x:``` vcs.error.vcsError.__str__``` - diff --git a/docs/doctest_info/markdown/fillarea.md b/docs/doctest_info/markdown/fillarea.md index 1dc6bc8e2..5ac920e45 100644 --- a/docs/doctest_info/markdown/fillarea.md +++ b/docs/doctest_info/markdown/fillarea.md @@ -4,40 +4,6 @@ Missing Doctests :x:``` vcs.fillarea.Tf``` -:x:``` vcs.fillarea.Tf.__init__``` - -:x:``` vcs.fillarea.Tf._getfillareacolors``` - -:x:``` vcs.fillarea.Tf._getfillareaindices``` - -:x:``` vcs.fillarea.Tf._getfillareaopacity``` - -:x:``` vcs.fillarea.Tf._getfillareastyle``` - -:x:``` vcs.fillarea.Tf._getname``` - -:x:``` vcs.fillarea.Tf._getpriority``` - -:x:``` vcs.fillarea.Tf._getx``` - -:x:``` vcs.fillarea.Tf._gety``` - -:x:``` vcs.fillarea.Tf._setfillareacolors``` - -:x:``` vcs.fillarea.Tf._setfillareaindices``` - -:x:``` vcs.fillarea.Tf._setfillareaopacity``` - -:x:``` vcs.fillarea.Tf._setfillareastyle``` - -:x:``` vcs.fillarea.Tf._setname``` - -:x:``` vcs.fillarea.Tf._setpriority``` - -:x:``` vcs.fillarea.Tf._setx``` - -:x:``` vcs.fillarea.Tf._sety``` - :x:``` vcs.fillarea.Tf.color``` :x:``` vcs.fillarea.Tf.colormap``` diff --git a/docs/doctest_info/markdown/isofill.md b/docs/doctest_info/markdown/isofill.md index f28fc2109..6413d6b64 100644 --- a/docs/doctest_info/markdown/isofill.md +++ b/docs/doctest_info/markdown/isofill.md @@ -20,92 +20,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi``` -:x:``` vcs.isofill.Gfi.__init__``` - -:x:``` vcs.isofill.Gfi._getcalendar``` - -:x:``` vcs.isofill.Gfi._getdatawc_x1``` - -:x:``` vcs.isofill.Gfi._getdatawc_x2``` - -:x:``` vcs.isofill.Gfi._getdatawc_y1``` - -:x:``` vcs.isofill.Gfi._getdatawc_y2``` - -:x:``` vcs.isofill.Gfi._getfillareacolors``` - -:x:``` vcs.isofill.Gfi._getfillareaindices``` - -:x:``` vcs.isofill.Gfi._getfillareastyle``` - -:x:``` vcs.isofill.Gfi._getmissing``` - -:x:``` vcs.isofill.Gfi._getname``` - -:x:``` vcs.isofill.Gfi._gettimeunits``` - -:x:``` vcs.isofill.Gfi._getxaxisconvert``` - -:x:``` vcs.isofill.Gfi._getxmtics1``` - -:x:``` vcs.isofill.Gfi._getxmtics2``` - -:x:``` vcs.isofill.Gfi._getxticlabels1``` - -:x:``` vcs.isofill.Gfi._getxticlabels2``` - -:x:``` vcs.isofill.Gfi._getyaxisconvert``` - -:x:``` vcs.isofill.Gfi._getymtics1``` - -:x:``` vcs.isofill.Gfi._getymtics2``` - -:x:``` vcs.isofill.Gfi._getyticlabels1``` - -:x:``` vcs.isofill.Gfi._getyticlabels2``` - -:x:``` vcs.isofill.Gfi._setcalendar``` - -:x:``` vcs.isofill.Gfi._setdatawc_x1``` - -:x:``` vcs.isofill.Gfi._setdatawc_x2``` - -:x:``` vcs.isofill.Gfi._setdatawc_y1``` - -:x:``` vcs.isofill.Gfi._setdatawc_y2``` - -:x:``` vcs.isofill.Gfi._setfillareacolors``` - -:x:``` vcs.isofill.Gfi._setfillareaindices``` - -:x:``` vcs.isofill.Gfi._setfillareastyle``` - -:x:``` vcs.isofill.Gfi._setmissing``` - -:x:``` vcs.isofill.Gfi._setname``` - -:x:``` vcs.isofill.Gfi._settimeunits``` - -:x:``` vcs.isofill.Gfi._setxaxisconvert``` - -:x:``` vcs.isofill.Gfi._setxmtics1``` - -:x:``` vcs.isofill.Gfi._setxmtics2``` - -:x:``` vcs.isofill.Gfi._setxticlabels1``` - -:x:``` vcs.isofill.Gfi._setxticlabels2``` - -:x:``` vcs.isofill.Gfi._setyaxisconvert``` - -:x:``` vcs.isofill.Gfi._setymtics1``` - -:x:``` vcs.isofill.Gfi._setymtics2``` - -:x:``` vcs.isofill.Gfi._setyticlabels1``` - -:x:``` vcs.isofill.Gfi._setyticlabels2``` - :x:``` vcs.isofill.Gfi.colormap``` :x:``` vcs.isofill.Gfi.colors``` diff --git a/docs/doctest_info/markdown/isoline.md b/docs/doctest_info/markdown/isoline.md index 95725767d..7ad0846ea 100644 --- a/docs/doctest_info/markdown/isoline.md +++ b/docs/doctest_info/markdown/isoline.md @@ -4,140 +4,6 @@ Missing Doctests :x:``` vcs.isoline.Gi``` -:x:``` vcs.isoline.Gi.__init__``` - -:x:``` vcs.isoline.Gi._getangle``` - -:x:``` vcs.isoline.Gi._getcalendar``` - -:x:``` vcs.isoline.Gi._getclockwise``` - -:x:``` vcs.isoline.Gi._getdatawc_x1``` - -:x:``` vcs.isoline.Gi._getdatawc_x2``` - -:x:``` vcs.isoline.Gi._getdatawc_y1``` - -:x:``` vcs.isoline.Gi._getdatawc_y2``` - -:x:``` vcs.isoline.Gi._getlabel``` - -:x:``` vcs.isoline.Gi._getlabelbackgroundcolors``` - -:x:``` vcs.isoline.Gi._getlabelbackgroundopacities``` - -:x:``` vcs.isoline.Gi._getlabelskipdistance``` - -:x:``` vcs.isoline.Gi._getlevels``` - -:x:``` vcs.isoline.Gi._getline``` - -:x:``` vcs.isoline.Gi._getlinecolors``` - -:x:``` vcs.isoline.Gi._getlinetypes``` - -:x:``` vcs.isoline.Gi._getlinewidths``` - -:x:``` vcs.isoline.Gi._getname``` - -:x:``` vcs.isoline.Gi._getprojection``` - -:x:``` vcs.isoline.Gi._getscale``` - -:x:``` vcs.isoline.Gi._getspacing``` - -:x:``` vcs.isoline.Gi._gettext``` - -:x:``` vcs.isoline.Gi._gettextcolors``` - -:x:``` vcs.isoline.Gi._gettimeunits``` - -:x:``` vcs.isoline.Gi._getxaxisconvert``` - -:x:``` vcs.isoline.Gi._getxmtics1``` - -:x:``` vcs.isoline.Gi._getxmtics2``` - -:x:``` vcs.isoline.Gi._getxticlabels1``` - -:x:``` vcs.isoline.Gi._getxticlabels2``` - -:x:``` vcs.isoline.Gi._getyaxisconvert``` - -:x:``` vcs.isoline.Gi._getymtics1``` - -:x:``` vcs.isoline.Gi._getymtics2``` - -:x:``` vcs.isoline.Gi._getyticlabels1``` - -:x:``` vcs.isoline.Gi._getyticlabels2``` - -:x:``` vcs.isoline.Gi._setangle``` - -:x:``` vcs.isoline.Gi._setcalendar``` - -:x:``` vcs.isoline.Gi._setclockwise``` - -:x:``` vcs.isoline.Gi._setdatawc_x1``` - -:x:``` vcs.isoline.Gi._setdatawc_x2``` - -:x:``` vcs.isoline.Gi._setdatawc_y1``` - -:x:``` vcs.isoline.Gi._setdatawc_y2``` - -:x:``` vcs.isoline.Gi._setlabel``` - -:x:``` vcs.isoline.Gi._setlabelbackgroundcolors``` - -:x:``` vcs.isoline.Gi._setlabelbackgroundopacities``` - -:x:``` vcs.isoline.Gi._setlabelskipdistance``` - -:x:``` vcs.isoline.Gi._setlevels``` - -:x:``` vcs.isoline.Gi._setline``` - -:x:``` vcs.isoline.Gi._setlinecolors``` - -:x:``` vcs.isoline.Gi._setlinetypes``` - -:x:``` vcs.isoline.Gi._setlinewidths``` - -:x:``` vcs.isoline.Gi._setname``` - -:x:``` vcs.isoline.Gi._setprojection``` - -:x:``` vcs.isoline.Gi._setscale``` - -:x:``` vcs.isoline.Gi._setspacing``` - -:x:``` vcs.isoline.Gi._settext``` - -:x:``` vcs.isoline.Gi._settextcolors``` - -:x:``` vcs.isoline.Gi._settimeunits``` - -:x:``` vcs.isoline.Gi._setxaxisconvert``` - -:x:``` vcs.isoline.Gi._setxmtics1``` - -:x:``` vcs.isoline.Gi._setxmtics2``` - -:x:``` vcs.isoline.Gi._setxticlabels1``` - -:x:``` vcs.isoline.Gi._setxticlabels2``` - -:x:``` vcs.isoline.Gi._setyaxisconvert``` - -:x:``` vcs.isoline.Gi._setymtics1``` - -:x:``` vcs.isoline.Gi._setymtics2``` - -:x:``` vcs.isoline.Gi._setyticlabels1``` - -:x:``` vcs.isoline.Gi._setyticlabels2``` - :x:``` vcs.isoline.Gi.angle``` :x:``` vcs.isoline.Gi.clockwise``` diff --git a/docs/doctest_info/markdown/line.md b/docs/doctest_info/markdown/line.md index 93d965b12..15c720175 100644 --- a/docs/doctest_info/markdown/line.md +++ b/docs/doctest_info/markdown/line.md @@ -4,48 +4,6 @@ Missing Doctests :x:``` vcs.line.Tl``` -:x:``` vcs.line.Tl.__init__``` - -:x:``` vcs.line.Tl._getfillareacolors``` - -:x:``` vcs.line.Tl._getname``` - -:x:``` vcs.line.Tl._getpriority``` - -:x:``` vcs.line.Tl._getprojection``` - -:x:``` vcs.line.Tl._gettype``` - -:x:``` vcs.line.Tl._getvp``` - -:x:``` vcs.line.Tl._getwc``` - -:x:``` vcs.line.Tl._getwidth``` - -:x:``` vcs.line.Tl._getx``` - -:x:``` vcs.line.Tl._gety``` - -:x:``` vcs.line.Tl._setfillareacolors``` - -:x:``` vcs.line.Tl._setname``` - -:x:``` vcs.line.Tl._setpriority``` - -:x:``` vcs.line.Tl._setprojection``` - -:x:``` vcs.line.Tl._settype``` - -:x:``` vcs.line.Tl._setvp``` - -:x:``` vcs.line.Tl._setwc``` - -:x:``` vcs.line.Tl._setwidth``` - -:x:``` vcs.line.Tl._setx``` - -:x:``` vcs.line.Tl._sety``` - :x:``` vcs.line.Tl.color``` :x:``` vcs.line.Tl.colormap``` diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md index 0eb742321..8e5caa9f0 100644 --- a/docs/doctest_info/markdown/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -22,7 +22,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar @@ -34,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -46,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -60,7 +60,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.gettaylordiagram @@ -74,9 +74,8 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3700, in __plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1310, in taylordiagram + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3650, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) diff --git a/docs/doctest_info/markdown/marker.md b/docs/doctest_info/markdown/marker.md index 55ac7209b..ce513115f 100644 --- a/docs/doctest_info/markdown/marker.md +++ b/docs/doctest_info/markdown/marker.md @@ -4,48 +4,6 @@ Missing Doctests :x:``` vcs.marker.Tm``` -:x:``` vcs.marker.Tm.__init__``` - -:x:``` vcs.marker.Tm._getfillareacolors``` - -:x:``` vcs.marker.Tm._getname``` - -:x:``` vcs.marker.Tm._getpriority``` - -:x:``` vcs.marker.Tm._getprojection``` - -:x:``` vcs.marker.Tm._getsize``` - -:x:``` vcs.marker.Tm._gettype``` - -:x:``` vcs.marker.Tm._getvp``` - -:x:``` vcs.marker.Tm._getwc``` - -:x:``` vcs.marker.Tm._getx``` - -:x:``` vcs.marker.Tm._gety``` - -:x:``` vcs.marker.Tm._setfillareacolors``` - -:x:``` vcs.marker.Tm._setname``` - -:x:``` vcs.marker.Tm._setpriority``` - -:x:``` vcs.marker.Tm._setprojection``` - -:x:``` vcs.marker.Tm._setsize``` - -:x:``` vcs.marker.Tm._settype``` - -:x:``` vcs.marker.Tm._setvp``` - -:x:``` vcs.marker.Tm._setwc``` - -:x:``` vcs.marker.Tm._setx``` - -:x:``` vcs.marker.Tm._sety``` - :x:``` vcs.marker.Tm.color``` :x:``` vcs.marker.Tm.colormap``` diff --git a/docs/doctest_info/markdown/meshfill.md b/docs/doctest_info/markdown/meshfill.md index 1678c76e3..d3649988f 100644 --- a/docs/doctest_info/markdown/meshfill.md +++ b/docs/doctest_info/markdown/meshfill.md @@ -20,100 +20,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm``` -:x:``` vcs.meshfill.Gfm.__init__``` - -:x:``` vcs.meshfill.Gfm._getcalendar``` - -:x:``` vcs.meshfill.Gfm._getdatawc_x1``` - -:x:``` vcs.meshfill.Gfm._getdatawc_x2``` - -:x:``` vcs.meshfill.Gfm._getdatawc_y1``` - -:x:``` vcs.meshfill.Gfm._getdatawc_y2``` - -:x:``` vcs.meshfill.Gfm._getfillareaindices``` - -:x:``` vcs.meshfill.Gfm._getfillareastyle``` - -:x:``` vcs.meshfill.Gfm._getmesh``` - -:x:``` vcs.meshfill.Gfm._getmissing``` - -:x:``` vcs.meshfill.Gfm._getname``` - -:x:``` vcs.meshfill.Gfm._getprojection``` - -:x:``` vcs.meshfill.Gfm._gettimeunits``` - -:x:``` vcs.meshfill.Gfm._getwrap``` - -:x:``` vcs.meshfill.Gfm._getxaxisconvert``` - -:x:``` vcs.meshfill.Gfm._getxmtics1``` - -:x:``` vcs.meshfill.Gfm._getxmtics2``` - -:x:``` vcs.meshfill.Gfm._getxticlabels1``` - -:x:``` vcs.meshfill.Gfm._getxticlabels2``` - -:x:``` vcs.meshfill.Gfm._getyaxisconvert``` - -:x:``` vcs.meshfill.Gfm._getymtics1``` - -:x:``` vcs.meshfill.Gfm._getymtics2``` - -:x:``` vcs.meshfill.Gfm._getyticlabels1``` - -:x:``` vcs.meshfill.Gfm._getyticlabels2``` - -:x:``` vcs.meshfill.Gfm._setcalendar``` - -:x:``` vcs.meshfill.Gfm._setdatawc_x1``` - -:x:``` vcs.meshfill.Gfm._setdatawc_x2``` - -:x:``` vcs.meshfill.Gfm._setdatawc_y1``` - -:x:``` vcs.meshfill.Gfm._setdatawc_y2``` - -:x:``` vcs.meshfill.Gfm._setfillareaindices``` - -:x:``` vcs.meshfill.Gfm._setfillareastyle``` - -:x:``` vcs.meshfill.Gfm._setmesh``` - -:x:``` vcs.meshfill.Gfm._setmissing``` - -:x:``` vcs.meshfill.Gfm._setname``` - -:x:``` vcs.meshfill.Gfm._setprojection``` - -:x:``` vcs.meshfill.Gfm._settimeunits``` - -:x:``` vcs.meshfill.Gfm._setwrap``` - -:x:``` vcs.meshfill.Gfm._setxaxisconvert``` - -:x:``` vcs.meshfill.Gfm._setxmtics1``` - -:x:``` vcs.meshfill.Gfm._setxmtics2``` - -:x:``` vcs.meshfill.Gfm._setxticlabels1``` - -:x:``` vcs.meshfill.Gfm._setxticlabels2``` - -:x:``` vcs.meshfill.Gfm._setyaxisconvert``` - -:x:``` vcs.meshfill.Gfm._setymtics1``` - -:x:``` vcs.meshfill.Gfm._setymtics2``` - -:x:``` vcs.meshfill.Gfm._setyticlabels1``` - -:x:``` vcs.meshfill.Gfm._setyticlabels2``` - :x:``` vcs.meshfill.Gfm.colormap``` :x:``` vcs.meshfill.Gfm.colors``` diff --git a/docs/doctest_info/markdown/projection.md b/docs/doctest_info/markdown/projection.md index d193638b9..5f14de89c 100644 --- a/docs/doctest_info/markdown/projection.md +++ b/docs/doctest_info/markdown/projection.md @@ -4,148 +4,6 @@ Missing Doctests :x:``` vcs.projection.Proj``` -:x:``` vcs.projection.Proj.__init__``` - -:x:``` vcs.projection.Proj._getangle``` - -:x:``` vcs.projection.Proj._getazimuthalangle``` - -:x:``` vcs.projection.Proj._getazimuthallongitude``` - -:x:``` vcs.projection.Proj._getcenterlatitude``` - -:x:``` vcs.projection.Proj._getcenterlongitude``` - -:x:``` vcs.projection.Proj._getcentralmeridian``` - -:x:``` vcs.projection.Proj._getfactor``` - -:x:``` vcs.projection.Proj._getfalseeasting``` - -:x:``` vcs.projection.Proj._getfalsenorthing``` - -:x:``` vcs.projection.Proj._getheight``` - -:x:``` vcs.projection.Proj._getlandsatcompensationratio``` - -:x:``` vcs.projection.Proj._getlatitude1``` - -:x:``` vcs.projection.Proj._getlatitude2``` - -:x:``` vcs.projection.Proj._getlongitude1``` - -:x:``` vcs.projection.Proj._getlongitude2``` - -:x:``` vcs.projection.Proj._getname``` - -:x:``` vcs.projection.Proj._getorbitinclination``` - -:x:``` vcs.projection.Proj._getorbitlongitude``` - -:x:``` vcs.projection.Proj._getoriginlatitude``` - -:x:``` vcs.projection.Proj._getparameters``` - -:x:``` vcs.projection.Proj._getpath``` - -:x:``` vcs.projection.Proj._getpathflag``` - -:x:``` vcs.projection.Proj._getsatellite``` - -:x:``` vcs.projection.Proj._getsatelliterevolutionperiod``` - -:x:``` vcs.projection.Proj._getshapem``` - -:x:``` vcs.projection.Proj._getshapen``` - -:x:``` vcs.projection.Proj._getsmajor``` - -:x:``` vcs.projection.Proj._getsminor``` - -:x:``` vcs.projection.Proj._getsphere``` - -:x:``` vcs.projection.Proj._getstandardparallel``` - -:x:``` vcs.projection.Proj._getstandardparallel1``` - -:x:``` vcs.projection.Proj._getstandardparallel2``` - -:x:``` vcs.projection.Proj._getsubtype``` - -:x:``` vcs.projection.Proj._gettruescale``` - -:x:``` vcs.projection.Proj._gettype``` - -:x:``` vcs.projection.Proj._setangle``` - -:x:``` vcs.projection.Proj._setazimuthalangle``` - -:x:``` vcs.projection.Proj._setazimuthallongitude``` - -:x:``` vcs.projection.Proj._setcenterlatitude``` - -:x:``` vcs.projection.Proj._setcenterlongitude``` - -:x:``` vcs.projection.Proj._setcentralmeridian``` - -:x:``` vcs.projection.Proj._setfactor``` - -:x:``` vcs.projection.Proj._setfalseeasting``` - -:x:``` vcs.projection.Proj._setfalsenorthing``` - -:x:``` vcs.projection.Proj._setheight``` - -:x:``` vcs.projection.Proj._setlandsatcompensationratio``` - -:x:``` vcs.projection.Proj._setlatitude1``` - -:x:``` vcs.projection.Proj._setlatitude2``` - -:x:``` vcs.projection.Proj._setlongitude1``` - -:x:``` vcs.projection.Proj._setlongitude2``` - -:x:``` vcs.projection.Proj._setname``` - -:x:``` vcs.projection.Proj._setorbitinclination``` - -:x:``` vcs.projection.Proj._setorbitlongitude``` - -:x:``` vcs.projection.Proj._setoriginlatitude``` - -:x:``` vcs.projection.Proj._setparameters``` - -:x:``` vcs.projection.Proj._setpath``` - -:x:``` vcs.projection.Proj._setpathflag``` - -:x:``` vcs.projection.Proj._setsatellite``` - -:x:``` vcs.projection.Proj._setsatelliterevolutionperiod``` - -:x:``` vcs.projection.Proj._setshapem``` - -:x:``` vcs.projection.Proj._setshapen``` - -:x:``` vcs.projection.Proj._setsmajor``` - -:x:``` vcs.projection.Proj._setsminor``` - -:x:``` vcs.projection.Proj._setsphere``` - -:x:``` vcs.projection.Proj._setstandardparallel``` - -:x:``` vcs.projection.Proj._setstandardparallel1``` - -:x:``` vcs.projection.Proj._setstandardparallel2``` - -:x:``` vcs.projection.Proj._setsubtype``` - -:x:``` vcs.projection.Proj._settruescale``` - -:x:``` vcs.projection.Proj._settype``` - :x:``` vcs.projection.Proj.angle``` :x:``` vcs.projection.Proj.attributes``` diff --git a/docs/doctest_info/markdown/queries.md b/docs/doctest_info/markdown/queries.md index 2c64703c5..a7fa0fe80 100644 --- a/docs/doctest_info/markdown/queries.md +++ b/docs/doctest_info/markdown/queries.md @@ -1,14 +1,3 @@ -vcs.queries.isplot ------------------- -```python -Failed example: - vcs.queries.isplot(dsp_plot) -Expected: - 1 -Got: - 0 -``` - vcs.queries.istextcombined -------------------------- ```python @@ -19,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/taylor.md b/docs/doctest_info/markdown/taylor.md index 652eb45bf..c84aea1a4 100644 --- a/docs/doctest_info/markdown/taylor.md +++ b/docs/doctest_info/markdown/taylor.md @@ -6,84 +6,6 @@ Missing Doctests :x:``` vcs.taylor.Gtd.Marker``` -:x:``` vcs.taylor.Gtd.__init__``` - -:x:``` vcs.taylor.Gtd._getMarker``` - -:x:``` vcs.taylor.Gtd._getarrowangle``` - -:x:``` vcs.taylor.Gtd._getarrowbase``` - -:x:``` vcs.taylor.Gtd._getarrowlength``` - -:x:``` vcs.taylor.Gtd._getcmtics1``` - -:x:``` vcs.taylor.Gtd._getcticlabels1``` - -:x:``` vcs.taylor.Gtd._getdetail``` - -:x:``` vcs.taylor.Gtd._getmax``` - -:x:``` vcs.taylor.Gtd._getname``` - -:x:``` vcs.taylor.Gtd._getquadrans``` - -:x:``` vcs.taylor.Gtd._getreferencevalue``` - -:x:``` vcs.taylor.Gtd._getskillDrawLabels``` - -:x:``` vcs.taylor.Gtd._getskillcoefficient``` - -:x:``` vcs.taylor.Gtd._getskillcolor``` - -:x:``` vcs.taylor.Gtd._getskillvalues``` - -:x:``` vcs.taylor.Gtd._getxmtics1``` - -:x:``` vcs.taylor.Gtd._getxticlabels1``` - -:x:``` vcs.taylor.Gtd._getymtics1``` - -:x:``` vcs.taylor.Gtd._getyticlabels1``` - -:x:``` vcs.taylor.Gtd._setMarker``` - -:x:``` vcs.taylor.Gtd._setarrowangle``` - -:x:``` vcs.taylor.Gtd._setarrowbase``` - -:x:``` vcs.taylor.Gtd._setarrowlength``` - -:x:``` vcs.taylor.Gtd._setcmtics1``` - -:x:``` vcs.taylor.Gtd._setcticlabels1``` - -:x:``` vcs.taylor.Gtd._setdetail``` - -:x:``` vcs.taylor.Gtd._setmax``` - -:x:``` vcs.taylor.Gtd._setname``` - -:x:``` vcs.taylor.Gtd._setquadrans``` - -:x:``` vcs.taylor.Gtd._setreferencevalue``` - -:x:``` vcs.taylor.Gtd._setskillDrawLabels``` - -:x:``` vcs.taylor.Gtd._setskillcoefficient``` - -:x:``` vcs.taylor.Gtd._setskillcolor``` - -:x:``` vcs.taylor.Gtd._setskillvalues``` - -:x:``` vcs.taylor.Gtd._setxmtics1``` - -:x:``` vcs.taylor.Gtd._setxticlabels1``` - -:x:``` vcs.taylor.Gtd._setymtics1``` - -:x:``` vcs.taylor.Gtd._setyticlabels1``` - :x:``` vcs.taylor.Gtd.addMarker``` :x:``` vcs.taylor.Gtd.arrowangle``` @@ -150,74 +72,6 @@ Missing Doctests :x:``` vcs.taylor.TDMarker``` -:x:``` vcs.taylor.TDMarker.__getstate__``` - -:x:``` vcs.taylor.TDMarker.__init__``` - -:x:``` vcs.taylor.TDMarker.__len__``` - -:x:``` vcs.taylor.TDMarker.__setstate__``` - -:x:``` vcs.taylor.TDMarker._getcolor``` - -:x:``` vcs.taylor.TDMarker._getid``` - -:x:``` vcs.taylor.TDMarker._getid_color``` - -:x:``` vcs.taylor.TDMarker._getid_font``` - -:x:``` vcs.taylor.TDMarker._getid_size``` - -:x:``` vcs.taylor.TDMarker._getline``` - -:x:``` vcs.taylor.TDMarker._getline_color``` - -:x:``` vcs.taylor.TDMarker._getline_size``` - -:x:``` vcs.taylor.TDMarker._getline_type``` - -:x:``` vcs.taylor.TDMarker._getnumber``` - -:x:``` vcs.taylor.TDMarker._getsize``` - -:x:``` vcs.taylor.TDMarker._getstatus``` - -:x:``` vcs.taylor.TDMarker._getsymbol``` - -:x:``` vcs.taylor.TDMarker._getxoffset``` - -:x:``` vcs.taylor.TDMarker._getyoffset``` - -:x:``` vcs.taylor.TDMarker._setcolor``` - -:x:``` vcs.taylor.TDMarker._setid``` - -:x:``` vcs.taylor.TDMarker._setid_color``` - -:x:``` vcs.taylor.TDMarker._setid_font``` - -:x:``` vcs.taylor.TDMarker._setid_size``` - -:x:``` vcs.taylor.TDMarker._setline``` - -:x:``` vcs.taylor.TDMarker._setline_color``` - -:x:``` vcs.taylor.TDMarker._setline_size``` - -:x:``` vcs.taylor.TDMarker._setline_type``` - -:x:``` vcs.taylor.TDMarker._setnumber``` - -:x:``` vcs.taylor.TDMarker._setsize``` - -:x:``` vcs.taylor.TDMarker._setstatus``` - -:x:``` vcs.taylor.TDMarker._setsymbol``` - -:x:``` vcs.taylor.TDMarker._setxoffset``` - -:x:``` vcs.taylor.TDMarker._setyoffset``` - :x:``` vcs.taylor.TDMarker.addMarker``` :x:``` vcs.taylor.TDMarker.checklineconnectingtype``` diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md index 697935e9c..f8d872dac 100644 --- a/docs/doctest_info/markdown/template.md +++ b/docs/doctest_info/markdown/template.md @@ -12,9 +12,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 4, in ["sample A","type B","thing C"],True) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1526, in drawLinesAndMarkersLegend strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2690, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2666, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' ``` @@ -30,7 +30,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate name, source = check_name_source(name, source, 'template') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -62,7 +62,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate name, source = check_name_source(name, source, 'template') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -94,7 +94,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate name, source = check_name_source(name, source, 'template') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -149,14 +149,6 @@ Missing Doctests :x:``` vcs.template.P``` -:x:``` vcs.template.P.__init__``` - -:x:``` vcs.template.P._getName``` - -:x:``` vcs.template.P._getOrientation``` - -:x:``` vcs.template.P._setOrientation``` - :x:``` vcs.template.P.blank``` :x:``` vcs.template.P.box1``` @@ -277,10 +269,6 @@ Missing Doctests :x:``` vcs.template.P.zvalue``` -:x:``` vcs.template._getgen``` - -:x:``` vcs.template._setgen``` - :x:``` vcs.template.epsilon_gte``` :x:``` vcs.template.epsilon_lte``` diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md index 164fa7601..582953576 100644 --- a/docs/doctest_info/markdown/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script @@ -37,88 +37,6 @@ Missing Doctests :x:``` vcs.textcombined.Tc.Tt_name``` -:x:``` vcs.textcombined.Tc.__init__``` - -:x:``` vcs.textcombined.Tc._getToname``` - -:x:``` vcs.textcombined.Tc._getTtname``` - -:x:``` vcs.textcombined.Tc._getangle``` - -:x:``` vcs.textcombined.Tc._getcolor``` - -:x:``` vcs.textcombined.Tc._getcolormap``` - -:x:``` vcs.textcombined.Tc._getexpansion``` - -:x:``` vcs.textcombined.Tc._getfcolor``` - -:x:``` vcs.textcombined.Tc._getfont``` - -:x:``` vcs.textcombined.Tc._gethalign``` - -:x:``` vcs.textcombined.Tc._getheight``` - -:x:``` vcs.textcombined.Tc._getpath``` - -:x:``` vcs.textcombined.Tc._getpriority``` - -:x:``` vcs.textcombined.Tc._getprojection``` - -:x:``` vcs.textcombined.Tc._getspacing``` - -:x:``` vcs.textcombined.Tc._getstring``` - -:x:``` vcs.textcombined.Tc._getvalign``` - -:x:``` vcs.textcombined.Tc._getviewport``` - -:x:``` vcs.textcombined.Tc._getworldcoordinate``` - -:x:``` vcs.textcombined.Tc._getx``` - -:x:``` vcs.textcombined.Tc._gety``` - -:x:``` vcs.textcombined.Tc._setToname``` - -:x:``` vcs.textcombined.Tc._setTtname``` - -:x:``` vcs.textcombined.Tc._setangle``` - -:x:``` vcs.textcombined.Tc._setcolor``` - -:x:``` vcs.textcombined.Tc._setcolormap``` - -:x:``` vcs.textcombined.Tc._setexpansion``` - -:x:``` vcs.textcombined.Tc._setfcolor``` - -:x:``` vcs.textcombined.Tc._setfont``` - -:x:``` vcs.textcombined.Tc._sethalign``` - -:x:``` vcs.textcombined.Tc._setheight``` - -:x:``` vcs.textcombined.Tc._setpath``` - -:x:``` vcs.textcombined.Tc._setpriority``` - -:x:``` vcs.textcombined.Tc._setprojection``` - -:x:``` vcs.textcombined.Tc._setspacing``` - -:x:``` vcs.textcombined.Tc._setstring``` - -:x:``` vcs.textcombined.Tc._setvalign``` - -:x:``` vcs.textcombined.Tc._setviewport``` - -:x:``` vcs.textcombined.Tc._setworldcoordinate``` - -:x:``` vcs.textcombined.Tc._setx``` - -:x:``` vcs.textcombined.Tc._sety``` - :x:``` vcs.textcombined.Tc.angle``` :x:``` vcs.textcombined.Tc.color``` diff --git a/docs/doctest_info/markdown/textorientation.md b/docs/doctest_info/markdown/textorientation.md index e5c55ff66..128ca62c1 100644 --- a/docs/doctest_info/markdown/textorientation.md +++ b/docs/doctest_info/markdown/textorientation.md @@ -4,32 +4,6 @@ Missing Doctests :x:``` vcs.textorientation.To``` -:x:``` vcs.textorientation.To.__init__``` - -:x:``` vcs.textorientation.To._getangle``` - -:x:``` vcs.textorientation.To._gethalign``` - -:x:``` vcs.textorientation.To._getheight``` - -:x:``` vcs.textorientation.To._getname``` - -:x:``` vcs.textorientation.To._getpath``` - -:x:``` vcs.textorientation.To._getvalign``` - -:x:``` vcs.textorientation.To._setangle``` - -:x:``` vcs.textorientation.To._sethalign``` - -:x:``` vcs.textorientation.To._setheight``` - -:x:``` vcs.textorientation.To._setname``` - -:x:``` vcs.textorientation.To._setpath``` - -:x:``` vcs.textorientation.To._setvalign``` - :x:``` vcs.textorientation.To.angle``` :x:``` vcs.textorientation.To.halign``` diff --git a/docs/doctest_info/markdown/texttable.md b/docs/doctest_info/markdown/texttable.md index e82c043af..581c611d2 100644 --- a/docs/doctest_info/markdown/texttable.md +++ b/docs/doctest_info/markdown/texttable.md @@ -20,68 +20,6 @@ Missing Doctests :x:``` vcs.texttable.Tt``` -:x:``` vcs.texttable.Tt.__init__``` - -:x:``` vcs.texttable.Tt._getbackgroundcolor``` - -:x:``` vcs.texttable.Tt._getbackgroundopacity``` - -:x:``` vcs.texttable.Tt._getcolor``` - -:x:``` vcs.texttable.Tt._getexpansion``` - -:x:``` vcs.texttable.Tt._getfillincolor``` - -:x:``` vcs.texttable.Tt._getfont``` - -:x:``` vcs.texttable.Tt._getname``` - -:x:``` vcs.texttable.Tt._getpriority``` - -:x:``` vcs.texttable.Tt._getprojection``` - -:x:``` vcs.texttable.Tt._getspacing``` - -:x:``` vcs.texttable.Tt._getstring``` - -:x:``` vcs.texttable.Tt._getvp``` - -:x:``` vcs.texttable.Tt._getwc``` - -:x:``` vcs.texttable.Tt._getx``` - -:x:``` vcs.texttable.Tt._gety``` - -:x:``` vcs.texttable.Tt._setbackgroundcolor``` - -:x:``` vcs.texttable.Tt._setbackgroundopacity``` - -:x:``` vcs.texttable.Tt._setcolor``` - -:x:``` vcs.texttable.Tt._setexpansion``` - -:x:``` vcs.texttable.Tt._setfillincolor``` - -:x:``` vcs.texttable.Tt._setfont``` - -:x:``` vcs.texttable.Tt._setname``` - -:x:``` vcs.texttable.Tt._setpriority``` - -:x:``` vcs.texttable.Tt._setprojection``` - -:x:``` vcs.texttable.Tt._setspacing``` - -:x:``` vcs.texttable.Tt._setstring``` - -:x:``` vcs.texttable.Tt._setvp``` - -:x:``` vcs.texttable.Tt._setwc``` - -:x:``` vcs.texttable.Tt._setx``` - -:x:``` vcs.texttable.Tt._sety``` - :x:``` vcs.texttable.Tt.backgroundcolor``` :x:``` vcs.texttable.Tt.backgroundopacity``` diff --git a/docs/doctest_info/markdown/unified1D.md b/docs/doctest_info/markdown/unified1D.md index 0fd528efb..eef3de363 100644 --- a/docs/doctest_info/markdown/unified1D.md +++ b/docs/doctest_info/markdown/unified1D.md @@ -4,118 +4,6 @@ Missing Doctests :x:``` vcs.unified1D.G1d``` -:x:``` vcs.unified1D.G1d.__init__``` - -:x:``` vcs.unified1D.G1d._getcalendar``` - -:x:``` vcs.unified1D.G1d._getdatawc_x1``` - -:x:``` vcs.unified1D.G1d._getdatawc_x2``` - -:x:``` vcs.unified1D.G1d._getdatawc_y1``` - -:x:``` vcs.unified1D.G1d._getdatawc_y2``` - -:x:``` vcs.unified1D.G1d._getflip``` - -:x:``` vcs.unified1D.G1d._getline``` - -:x:``` vcs.unified1D.G1d._getlinecolor``` - -:x:``` vcs.unified1D.G1d._getlinetype``` - -:x:``` vcs.unified1D.G1d._getlinewidth``` - -:x:``` vcs.unified1D.G1d._getmarker``` - -:x:``` vcs.unified1D.G1d._getmarkercolor``` - -:x:``` vcs.unified1D.G1d._getmarkersize``` - -:x:``` vcs.unified1D.G1d._getname``` - -:x:``` vcs.unified1D.G1d._getprojection``` - -:x:``` vcs.unified1D.G1d._getsmooth``` - -:x:``` vcs.unified1D.G1d._gettimeunits``` - -:x:``` vcs.unified1D.G1d._getxaxisconvert``` - -:x:``` vcs.unified1D.G1d._getxmtics1``` - -:x:``` vcs.unified1D.G1d._getxmtics2``` - -:x:``` vcs.unified1D.G1d._getxticlabels1``` - -:x:``` vcs.unified1D.G1d._getxticlabels2``` - -:x:``` vcs.unified1D.G1d._getyaxisconvert``` - -:x:``` vcs.unified1D.G1d._getymtics1``` - -:x:``` vcs.unified1D.G1d._getymtics2``` - -:x:``` vcs.unified1D.G1d._getyticlabels1``` - -:x:``` vcs.unified1D.G1d._getyticlabels2``` - -:x:``` vcs.unified1D.G1d._gtype``` - -:x:``` vcs.unified1D.G1d._setcalendar``` - -:x:``` vcs.unified1D.G1d._setdatawc_x1``` - -:x:``` vcs.unified1D.G1d._setdatawc_x2``` - -:x:``` vcs.unified1D.G1d._setdatawc_y1``` - -:x:``` vcs.unified1D.G1d._setdatawc_y2``` - -:x:``` vcs.unified1D.G1d._setflip``` - -:x:``` vcs.unified1D.G1d._setline``` - -:x:``` vcs.unified1D.G1d._setlinecolor``` - -:x:``` vcs.unified1D.G1d._setlinetype``` - -:x:``` vcs.unified1D.G1d._setlinewidth``` - -:x:``` vcs.unified1D.G1d._setmarker``` - -:x:``` vcs.unified1D.G1d._setmarkercolor``` - -:x:``` vcs.unified1D.G1d._setmarkersize``` - -:x:``` vcs.unified1D.G1d._setname``` - -:x:``` vcs.unified1D.G1d._setprojection``` - -:x:``` vcs.unified1D.G1d._setsmooth``` - -:x:``` vcs.unified1D.G1d._settimeunits``` - -:x:``` vcs.unified1D.G1d._setxaxisconvert``` - -:x:``` vcs.unified1D.G1d._setxmtics1``` - -:x:``` vcs.unified1D.G1d._setxmtics2``` - -:x:``` vcs.unified1D.G1d._setxticlabels1``` - -:x:``` vcs.unified1D.G1d._setxticlabels2``` - -:x:``` vcs.unified1D.G1d._setyaxisconvert``` - -:x:``` vcs.unified1D.G1d._setymtics1``` - -:x:``` vcs.unified1D.G1d._setymtics2``` - -:x:``` vcs.unified1D.G1d._setyticlabels1``` - -:x:``` vcs.unified1D.G1d._setyticlabels2``` - :x:``` vcs.unified1D.G1d.colormap``` :x:``` vcs.unified1D.G1d.datawc``` diff --git a/docs/doctest_info/markdown/utils.md b/docs/doctest_info/markdown/utils.md index fc0e03acf..3832806a1 100644 --- a/docs/doctest_info/markdown/utils.md +++ b/docs/doctest_info/markdown/utils.md @@ -2,18 +2,8 @@ Missing Doctests ---------------- :x:``` vcs.utils``` -:x:``` vcs.utils.Logo.__init__``` - :x:``` vcs.utils.VCSUtilsError``` -:x:``` vcs.utils.VCSUtilsError.__init__``` - -:x:``` vcs.utils.VCSUtilsError.__str__``` - -:x:``` vcs.utils.__split2contiguous``` - -:x:``` vcs.utils._scriptrun``` - :x:``` vcs.utils.getDataWcValue``` :x:``` vcs.utils.getdotdirectory``` diff --git a/docs/doctest_info/markdown/vcshelp.md b/docs/doctest_info/markdown/vcshelp.md index 7e08b700e..f782a7ae9 100644 --- a/docs/doctest_info/markdown/vcshelp.md +++ b/docs/doctest_info/markdown/vcshelp.md @@ -1,98 +1,51 @@ -vcs.vcshelp.objecthelp ----------------------- +vcs.vcshelp.help +---------------- ```python Failed example: - vcs.objecthelp(fa) -Expected: - - The Fillarea class object... + vcs.help('getboxfill') +Expected nothing Got: + VCS contains a list of graphics methods. This function will create a + boxfill class object from an existing VCS boxfill graphics method. If + no boxfill name is given, then default boxfill will be used. - The Fillarea class object allows the user to edit fillarea attributes, including - fillarea interior style, style index, and color index. - - This class is used to define an fillarea table entry used in VCS, or it - can be used to change some or all of the fillarea attributes in an - existing fillarea table entry. - - - .. describe:: Useful Functions: - - .. code-block:: python - - # VCS Canvas Constructor - a=vcs.init() - # Show predefined fillarea objects - a.show('fillarea') - # Updates the VCS Canvas at user's request - a.update() - - .. describe:: Create a fillarea object: - - .. code-block:: python - - #Create a VCS Canvas object - a=vcs.init() - - # Two ways to create a fillarea: - - # Copies content of 'def37' to 'new'ea: - fa=a.createfillarea('new','def37') - # Copies content of 'default' to 'new' - fa=a.createfillarea('new') - - .. describe:: Modify an existing fillarea: - - .. code-block:: python - - fa=a.getfillarea('red') + .. note:: - * Overview of fillarea attributes: + VCS does not allow the modification of 'default' attribute sets. + However, a 'default' attribute set that has been copied under a + different name can be modified. (See the :py:func:`vcs.manageElements.createboxfill` function.) - * List all the fillarea attribute values + :Example: - .. code-block:: python + .. doctest:: manageElements_get - fa.list() + >>> a=vcs.init() + >>> vcs.listelements('boxfill') # Show all the existing boxfill graphics methods + [...] + >>> ex=vcs.getboxfill() # instance of 'default' boxfill graphics method + >>> import cdms2 # Need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + >>> slab1 = f('u') # use the data file to create a cdms2 slab + >>> a.boxfill(ex, slab1) # plot using specified boxfill object + + >>> ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method + >>> a.boxfill(ex2, slab1) # plot using specified boxfill object + - * There are three possibilities for setting the isofill style: - .. code-block:: python - - fa.style = 'solid' - fa.style = 'hatch' - fa.style = 'pattern' - - * Setting index, color, opacity: - - .. code-block:: python - - # Range from 1 to 20 - fa.index=1 - # Range from 1 to 256 - fa.color=100 - # Range from 0 to 100 - fa.opacity=100 - - * Setting the graphics priority viewport, worldcoordinate: - - .. code-block:: python - - fa.priority=1 - # FloatType [0,1]x[0,1] - fa.viewport=[0, 1.0, 0,1.0] - # FloatType [#,#]x[#,#] - fa.worldcoordinate=[0,1.0,0,1.0] - - * Setting x and y values: - - .. code-block:: python - - #List of FloatTypes - fa.x=[[0,.1,.2], [.3,.4,.5]] - # List of FloatTypes - fa.y=[[.5,.4,.3], [.2,.1,0]] + :param Gfb_name_src: String name of an existing boxfill VCS object + :type Gfb_name_src: :py:class:`str` + :return: A pre-existing boxfill graphics method + :rtype: vcs.boxfill.Gfb ``` +Missing Doctests +---------------- +:x:``` vcs.vcshelp``` + +:x:``` vcs.vcshelp.help__doc__``` + +:x:``` vcs.vcshelp.mode__doc__``` + diff --git a/docs/doctest_info/markdown/vector.md b/docs/doctest_info/markdown/vector.md index c6474e5c0..abd2f95bc 100644 --- a/docs/doctest_info/markdown/vector.md +++ b/docs/doctest_info/markdown/vector.md @@ -14,120 +14,6 @@ Missing Doctests :x:``` vcs.vector.Gv``` -:x:``` vcs.vector.Gv.__init__``` - -:x:``` vcs.vector.Gv._getalignment``` - -:x:``` vcs.vector.Gv._getcalendar``` - -:x:``` vcs.vector.Gv._getdatawc_x1``` - -:x:``` vcs.vector.Gv._getdatawc_x2``` - -:x:``` vcs.vector.Gv._getdatawc_y1``` - -:x:``` vcs.vector.Gv._getdatawc_y2``` - -:x:``` vcs.vector.Gv._getline``` - -:x:``` vcs.vector.Gv._getlinecolor``` - -:x:``` vcs.vector.Gv._getlinetype``` - -:x:``` vcs.vector.Gv._getlinewidth``` - -:x:``` vcs.vector.Gv._getname``` - -:x:``` vcs.vector.Gv._getprojection``` - -:x:``` vcs.vector.Gv._getreference``` - -:x:``` vcs.vector.Gv._getscale``` - -:x:``` vcs.vector.Gv._getscalerange``` - -:x:``` vcs.vector.Gv._getscaletype``` - -:x:``` vcs.vector.Gv._gettimeunits``` - -:x:``` vcs.vector.Gv._gettype``` - -:x:``` vcs.vector.Gv._getxaxisconvert``` - -:x:``` vcs.vector.Gv._getxmtics1``` - -:x:``` vcs.vector.Gv._getxmtics2``` - -:x:``` vcs.vector.Gv._getxticlabels1``` - -:x:``` vcs.vector.Gv._getxticlabels2``` - -:x:``` vcs.vector.Gv._getyaxisconvert``` - -:x:``` vcs.vector.Gv._getymtics1``` - -:x:``` vcs.vector.Gv._getymtics2``` - -:x:``` vcs.vector.Gv._getyticlabels1``` - -:x:``` vcs.vector.Gv._getyticlabels2``` - -:x:``` vcs.vector.Gv._setalignment``` - -:x:``` vcs.vector.Gv._setcalendar``` - -:x:``` vcs.vector.Gv._setdatawc_x1``` - -:x:``` vcs.vector.Gv._setdatawc_x2``` - -:x:``` vcs.vector.Gv._setdatawc_y1``` - -:x:``` vcs.vector.Gv._setdatawc_y2``` - -:x:``` vcs.vector.Gv._setline``` - -:x:``` vcs.vector.Gv._setlinecolor``` - -:x:``` vcs.vector.Gv._setlinetype``` - -:x:``` vcs.vector.Gv._setlinewidth``` - -:x:``` vcs.vector.Gv._setname``` - -:x:``` vcs.vector.Gv._setprojection``` - -:x:``` vcs.vector.Gv._setreference``` - -:x:``` vcs.vector.Gv._setscale``` - -:x:``` vcs.vector.Gv._setscalerange``` - -:x:``` vcs.vector.Gv._setscaletype``` - -:x:``` vcs.vector.Gv._settimeunits``` - -:x:``` vcs.vector.Gv._settype``` - -:x:``` vcs.vector.Gv._setxaxisconvert``` - -:x:``` vcs.vector.Gv._setxmtics1``` - -:x:``` vcs.vector.Gv._setxmtics2``` - -:x:``` vcs.vector.Gv._setxticlabels1``` - -:x:``` vcs.vector.Gv._setxticlabels2``` - -:x:``` vcs.vector.Gv._setyaxisconvert``` - -:x:``` vcs.vector.Gv._setymtics1``` - -:x:``` vcs.vector.Gv._setymtics2``` - -:x:``` vcs.vector.Gv._setyticlabels1``` - -:x:``` vcs.vector.Gv._setyticlabels2``` - :x:``` vcs.vector.Gv.alignment``` :x:``` vcs.vector.Gv.colormap``` diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index 13d9d493e..0af9d11a6 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -576,7 +576,7 @@ Trying: pass Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2212, in vcs.Canvas.Canvas.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2170, in vcs.Canvas.Canvas.createtext Failed example: try: # try to create a new textcombined, in case none exist vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') @@ -584,7 +584,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -1066,14 +1066,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1448, in vcs.Canvas.Canvas.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1436, in vcs.Canvas.Canvas.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1104,14 +1104,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1447, in vcs.Canvas.Canvas.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1435, in vcs.Canvas.Canvas.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1146,7 +1146,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1448, in vcs.Canvas.Canvas.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1436, in vcs.Canvas.Canvas.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -1155,7 +1155,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1280,9 +1280,14 @@ Trying: Expecting nothing ok Trying: - cont_type = a.getcontinentstype() # Get the continents type + a.setcontinentstype(6) Expecting nothing ok +Trying: + a.getcontinentstype() # Get the continents type +Expecting: + 6 +ok Trying: a=vcs.init() Expecting nothing @@ -1623,7 +1628,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1315, in vcs.Canvas.Canvas.gettaylordiagram +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1304, in vcs.Canvas.Canvas.gettaylordiagram Failed example: a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Exception raised: @@ -1632,9 +1637,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1310, in taylordiagram return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3700, in __plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3650, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) @@ -1906,7 +1911,7 @@ Trying: Expecting: 1 ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5605, in vcs.Canvas.Canvas.isinfile +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5520, in vcs.Canvas.Canvas.isinfile Failed example: a.isinfile(box, 'deft_box.py') Expected: @@ -2199,7 +2204,7 @@ Trying: Expecting nothing ok Trying: - a.show('meshfill') # Show all the existing meshfill graphics methods + a.show('meshfill') # Show all meshfill graphics methods Expecting: *******************Meshfill Names List********************** ... @@ -2210,19 +2215,19 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file Expecting nothing ok Trying: - slab = f('clt') # use the data file to create a cdms2 slab + slab = f('clt') # use data file to create a cdms2 slab Expecting nothing ok Trying: - mesh=a.getmeshfill() # Create instance of 'default' + m=a.getmeshfill() # Create instance of 'default' Expecting nothing ok Trying: - a.meshfill(slab,mesh) # Plot array using specified mesh and default template + a.meshfill(slab,m) # Plot with default mesh & template Expecting: ok @@ -2231,7 +2236,11 @@ Trying: Expecting nothing ok Trying: - a.meshfill(slab,mesh,'quick','a_polar_meshfill') # Plot slab with polar mesh, quick template + p='a_polar_meshfill' # will use this to plot +Expecting nothing +ok +Trying: + a.meshfill(slab,m,'quick', p) # polar mesh, quick template Expecting: ok @@ -2790,15 +2799,34 @@ Trying: Expecting nothing ok Trying: - a.setcontinentstype(3) + a.setcontinentstype(4) "Political Borders" +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5384, in vcs.Canvas.Canvas.setcontinentstype +Failed example: + a.setcontinentstype(4) "Political Borders" +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1 + a.setcontinentstype(4) "Political Borders" + ^ + SyntaxError: invalid syntax +Trying: + import cdms2 # We need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file Expecting nothing ok Trying: - array = [range(1, 11) for _ in range(1, 11)] + v = f('v') # use the data file to create a slab Expecting nothing ok Trying: - a.plot(array,'default','isofill','quick') + a.plot(v,'default','isofill','quick') # map with borders Expecting: ok @@ -3298,7 +3326,7 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -116 items passed all tests: +115 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill 2 tests in vcs.Canvas.Canvas.canvasid 5 tests in vcs.Canvas.Canvas.canvasinfo @@ -3348,7 +3376,7 @@ ok 4 tests in vcs.Canvas.Canvas.getcolormap 4 tests in vcs.Canvas.Canvas.getcolormapname 3 tests in vcs.Canvas.Canvas.getcontinentsline - 2 tests in vcs.Canvas.Canvas.getcontinentstype + 3 tests in vcs.Canvas.Canvas.getcontinentstype 4 tests in vcs.Canvas.Canvas.getdrawlogo 4 tests in vcs.Canvas.Canvas.getfillarea 7 tests in vcs.Canvas.Canvas.getfont @@ -3381,7 +3409,7 @@ ok 2 tests in vcs.Canvas.Canvas.listelements 9 tests in vcs.Canvas.Canvas.marker 4 tests in vcs.Canvas.Canvas.match_color - 9 tests in vcs.Canvas.Canvas.meshfill + 10 tests in vcs.Canvas.Canvas.meshfill 3 tests in vcs.Canvas.Canvas.objecthelp 3 tests in vcs.Canvas.Canvas.open 2 tests in vcs.Canvas.Canvas.orientation @@ -3404,7 +3432,6 @@ ok 11 tests in vcs.Canvas.Canvas.setcolorcell 5 tests in vcs.Canvas.Canvas.setcolormap 5 tests in vcs.Canvas.Canvas.setcontinentsline - 4 tests in vcs.Canvas.Canvas.setcontinentstype 6 tests in vcs.Canvas.Canvas.show 6 tests in vcs.Canvas.Canvas.svg 7 tests in vcs.Canvas.Canvas.switchfonts @@ -3416,13 +3443,14 @@ ok 8 tests in vcs.Canvas.Canvas.xyvsy 8 tests in vcs.Canvas.Canvas.yxvsx ********************************************************************** -6 items had failures: +7 items had failures: 1 of 3 in vcs.Canvas.Canvas.createtext 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram 1 of 4 in vcs.Canvas.Canvas.isinfile -691 tests in 205 items. -685 passed and 6 failed. -***Test Failed*** 6 failures. + 1 of 6 in vcs.Canvas.Canvas.setcontinentstype +695 tests in 205 items. +688 passed and 7 failed. +***Test Failed*** 7 failures. diff --git a/docs/doctest_info/reports/boxfill.report b/docs/doctest_info/reports/boxfill.report index 4cb3a635d..6e8f9b711 100644 --- a/docs/doctest_info/reports/boxfill.report +++ b/docs/doctest_info/reports/boxfill.report @@ -51,7 +51,7 @@ Trying: Expecting nothing ok Trying: - ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' + ex.xyscale(xat='linear', yat='linear') Expecting nothing ok 97 items had no tests: diff --git a/docs/doctest_info/reports/isofill.report b/docs/doctest_info/reports/isofill.report index 9640ca9cb..5e6967e82 100644 --- a/docs/doctest_info/reports/isofill.report +++ b/docs/doctest_info/reports/isofill.report @@ -31,11 +31,11 @@ Trying: Expecting nothing ok Trying: - ex=a.createisofill('xyscale_ex') # create a boxfill to work with + ex=a.createisofill('xyscale_ex') # create a isofill to work with Expecting nothing ok Trying: - ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' + ex.xyscale(xat='linear', yat='linear') Expecting nothing ok 83 items had no tests: diff --git a/docs/doctest_info/reports/isoline.report b/docs/doctest_info/reports/isoline.report index 8da20d257..06d8dd2b9 100644 --- a/docs/doctest_info/reports/isoline.report +++ b/docs/doctest_info/reports/isoline.report @@ -19,11 +19,11 @@ Trying: Expecting nothing ok Trying: - ex=a.createisoline('xyscale_ex') # create a boxfill to work with + ex=a.createisoline('xyscale_ex') # create a isoline to work with Expecting nothing ok Trying: - ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' + ex.xyscale(xat='linear', yat='linear') Expecting nothing ok 114 items had no tests: diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report index c2497aa61..50cf1beaa 100644 --- a/docs/doctest_info/reports/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -369,7 +369,7 @@ Expecting: ... *******************End Textcombined Names List********************** ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1438, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1293, in vcs.manageElements.createtext Failed example: vcs.show('textcombined') # show all available textcombined Expected: @@ -386,7 +386,7 @@ Trying: pass Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1442, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1297, in vcs.manageElements.createtext Failed example: try: # try to create a new textcombined, in case none exist vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') @@ -394,7 +394,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -560,14 +560,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1707, in vcs.manageElements.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1557, in vcs.manageElements.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -598,14 +598,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1665, in vcs.manageElements.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1517, in vcs.manageElements.get3d_scalar Failed example: a.plot(ex, slab1) # plot using specified 3d_scalar object Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -640,7 +640,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1748, in vcs.manageElements.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1596, in vcs.manageElements.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot using specified 3d_vector object Expected: @@ -649,7 +649,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -976,7 +976,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 292, in vcs.manageElements.gettaylordiagram +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 266, in vcs.manageElements.gettaylordiagram Failed example: a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Exception raised: @@ -985,9 +985,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1320, in taylordiagram + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1310, in taylordiagram return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3700, in __plot + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3650, in __plot t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot self.draw(canvas, data) diff --git a/docs/doctest_info/reports/meshfill.report b/docs/doctest_info/reports/meshfill.report index afc4f1977..2a66d170b 100644 --- a/docs/doctest_info/reports/meshfill.report +++ b/docs/doctest_info/reports/meshfill.report @@ -31,11 +31,11 @@ Trying: Expecting nothing ok Trying: - ex=a.createmeshfill('xyscale_ex') # create a boxfill to work with + ex=a.createmeshfill('xyscale_ex') # create a meshfill to work with Expecting nothing ok Trying: - ex.xyscale(xat='linear', yat='linear') # set xaxisconvert and yaxisconvert to 'linear' + ex.xyscale(xat='linear', yat='linear') Expecting nothing ok 89 items had no tests: diff --git a/docs/doctest_info/reports/queries.report b/docs/doctest_info/reports/queries.report index c88ccade5..24376d29b 100644 --- a/docs/doctest_info/reports/queries.report +++ b/docs/doctest_info/reports/queries.report @@ -298,33 +298,18 @@ Trying: Expecting nothing ok Trying: - import cdms2 # need this to make a slab for a boxfill plot + array=[range(10) for _ in range(10)] Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data + '/clt.nc') # open a variable file + dsp=a.plot(array) # plotting should return a displayplot object Expecting nothing ok Trying: - v = f('v') # create a slab from the variable file -Expecting nothing -ok -Trying: - dsp_plot=(a.getboxfill(), v) # plot a boxfill. Should return vcs.displayplot.Dp. -Expecting nothing -ok -Trying: - vcs.queries.isplot(dsp_plot) + vcs.queries.isplot(dsp) Expecting: 1 -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/queries.py", line 185, in vcs.queries.isplot -Failed example: - vcs.queries.isplot(dsp_plot) -Expected: - 1 -Got: - 0 +ok Trying: a=vcs.init() # Make a VCS Canvas object to work with: Expecting nothing @@ -444,7 +429,7 @@ Failed example: pass Expected nothing Got: - + Trying: a.show('textcombined') # Show all available textcombined Expecting: @@ -583,7 +568,7 @@ Expecting: ok 1 items had no tests: vcs.queries -26 items passed all tests: +27 items passed all tests: 2 tests in vcs.queries.graphicsmethodlist 7 tests in vcs.queries.graphicsmethodtype 4 tests in vcs.queries.is1d @@ -599,6 +584,7 @@ ok 4 tests in vcs.queries.isline 4 tests in vcs.queries.ismarker 4 tests in vcs.queries.ismeshfill + 4 tests in vcs.queries.isplot 4 tests in vcs.queries.isprojection 4 tests in vcs.queries.isscatter 4 tests in vcs.queries.issecondaryobject @@ -611,9 +597,8 @@ ok 4 tests in vcs.queries.isxyvsy 4 tests in vcs.queries.isyxvsx ********************************************************************** -2 items had failures: - 1 of 6 in vcs.queries.isplot +1 items had failures: 1 of 5 in vcs.queries.istextcombined -115 tests in 29 items. -113 passed and 2 failed. -***Test Failed*** 2 failures. +113 tests in 29 items. +112 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report index bf705ac10..4cf5d0ae5 100644 --- a/docs/doctest_info/reports/template.report +++ b/docs/doctest_info/reports/template.report @@ -17,7 +17,7 @@ Trying: ["sample A","type B","thing C"],True) Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1477, in vcs.template.P.drawLinesAndMarkersLegend +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1481, in vcs.template.P.drawLinesAndMarkersLegend Failed example: t.drawLinesAndMarkersLegend(x, ["red","blue","green"], ["solid","dash","dot"],[1,4,8], @@ -29,9 +29,9 @@ Exception raised: compileflags, 1) in test.globs File "", line 4, in ["sample A","type B","thing C"],True) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1522, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1526, in drawLinesAndMarkersLegend strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2690, in drawLinesAndMarkersLegend + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2666, in drawLinesAndMarkersLegend if scratched is not None and scratched[i] is not False: TypeError: 'bool' object has no attribute '__getitem__' Trying: @@ -54,7 +54,7 @@ Trying: t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1366, in vcs.template.P.moveto +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1371, in vcs.template.P.moveto Failed example: t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' Exception raised: @@ -63,7 +63,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate name, source = check_name_source(name, source, 'template') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -72,7 +72,7 @@ Trying: t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1367, in vcs.template.P.moveto +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1372, in vcs.template.P.moveto Failed example: t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 Exception raised: @@ -102,7 +102,7 @@ Trying: t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1264, in vcs.template.P.reset +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1271, in vcs.template.P.reset Failed example: t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' Exception raised: @@ -111,7 +111,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate name, source = check_name_source(name, source, 'template') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -120,7 +120,7 @@ Trying: t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1265, in vcs.template.P.reset +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1272, in vcs.template.P.reset Failed example: t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 Exception raised: @@ -134,7 +134,7 @@ Trying: t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1399, in vcs.template.P.scale +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1405, in vcs.template.P.scale Failed example: t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' Exception raised: @@ -143,7 +143,7 @@ Exception raised: compileflags, 1) in test.globs File "", line 1, in t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 113, in createtemplate + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate name, source = check_name_source(name, source, 'template') File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source raise vcsError("Error %s object named %s already exists" % (typ, name)) @@ -152,7 +152,7 @@ Trying: t.scale(0.5) # Halves the template size Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1400, in vcs.template.P.scale +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1406, in vcs.template.P.scale Failed example: t.scale(0.5) # Halves the template size Exception raised: @@ -166,7 +166,7 @@ Trying: t.scale(1.2) # Upsize everything to 20% more than the original size Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1401, in vcs.template.P.scale +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1407, in vcs.template.P.scale Failed example: t.scale(1.2) # Upsize everything to 20% more than the original size Exception raised: @@ -180,7 +180,7 @@ Trying: t.scale(2,'x') # Double the x axis Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1402, in vcs.template.P.scale +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1408, in vcs.template.P.scale Failed example: t.scale(2,'x') # Double the x axis Exception raised: diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report index 77dacb07a..c03976c4e 100644 --- a/docs/doctest_info/reports/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing diff --git a/docs/doctest_info/reports/utils.report b/docs/doctest_info/reports/utils.report index fcfe835ad..9a111e4ae 100644 --- a/docs/doctest_info/reports/utils.report +++ b/docs/doctest_info/reports/utils.report @@ -1,25 +1,21 @@ Trying: - import vcs -Expecting nothing -ok -Trying: - import os + import os, sys Expecting nothing ok Trying: - import sys + x=vcs.init() Expecting nothing ok Trying: - x=vcs.init() + x.open() Expecting nothing ok Trying: - x.open() + path=os.path.join(sys.prefix,"share","vcs","uvcdat.png") Expecting nothing ok Trying: - logo1 = vcs.utils.Logo(os.path.join(sys.prefix,"share","vcs","uvcdat.png")) + logo1=vcs.utils.Logo(path) Expecting nothing ok Trying: @@ -63,7 +59,11 @@ Trying: Expecting nothing ok Trying: - logo1 = vcs.utils.Logo(os.path.join(sys.prefix,"share/vcs/uvcdat.png")) + path=os.path.join(sys.prefix,"share/vcs/uvcdat.png") +Expecting nothing +ok +Trying: + logo1 = vcs.utils.Logo(path) Expecting nothing ok Trying: @@ -247,18 +247,18 @@ Trying: Expecting nothing ok Trying: - a.show('colormap') # Show all the existing colormap secondary methods + a.show('colormap') # Show all colormap secondary methods Expecting: *******************Colormap Names List********************** ... *******************End Colormap Names List********************** ok Trying: - cp=a.getcolormap() # cp instance of 'default' colormap secondary method + cp=a.getcolormap() # 'default' colormap Expecting nothing ok Trying: - cp2=a.getcolormap('rainbow') # cp2 instance of existing 'rainbow' colormap secondary method + cp2=a.getcolormap('rainbow') # 'rainbow' colormap Expecting nothing ok Trying: @@ -663,8 +663,8 @@ ok vcs.utils.scriptrun_scr vcs.utils.setTicksandLabels 26 items passed all tests: - 13 tests in vcs.utils.Logo - 11 tests in vcs.utils.Logo.plot + 12 tests in vcs.utils.Logo + 12 tests in vcs.utils.Logo.plot 4 tests in vcs.utils.creategraphicsmethod 2 tests in vcs.utils.download_sample_data_files 5 tests in vcs.utils.drawLinesAndMarkersLegend diff --git a/docs/doctest_info/reports/vcshelp.report b/docs/doctest_info/reports/vcshelp.report index 2e35033d4..879485b80 100644 --- a/docs/doctest_info/reports/vcshelp.report +++ b/docs/doctest_info/reports/vcshelp.report @@ -1,115 +1,69 @@ Trying: - fa=vcs.getfillarea() -Expecting nothing + vcs.help('fillareaobject') # show fillarea help +Expecting: + The Fillarea class ... ok Trying: - vcs.objecthelp(fa) -Expecting: - - The Fillarea class object... + vcs.help('getboxfill') +Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vcshelp.py", line 39, in vcs.vcshelp.objecthelp +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vcshelp.py", line 58, in vcs.vcshelp.help Failed example: - vcs.objecthelp(fa) -Expected: - - The Fillarea class object... + vcs.help('getboxfill') +Expected nothing Got: + VCS contains a list of graphics methods. This function will create a + boxfill class object from an existing VCS boxfill graphics method. If + no boxfill name is given, then default boxfill will be used. - The Fillarea class object allows the user to edit fillarea attributes, including - fillarea interior style, style index, and color index. - - This class is used to define an fillarea table entry used in VCS, or it - can be used to change some or all of the fillarea attributes in an - existing fillarea table entry. - - - .. describe:: Useful Functions: - - .. code-block:: python - - # VCS Canvas Constructor - a=vcs.init() - # Show predefined fillarea objects - a.show('fillarea') - # Updates the VCS Canvas at user's request - a.update() - - .. describe:: Create a fillarea object: - - .. code-block:: python - - #Create a VCS Canvas object - a=vcs.init() - - # Two ways to create a fillarea: - - # Copies content of 'def37' to 'new'ea: - fa=a.createfillarea('new','def37') - # Copies content of 'default' to 'new' - fa=a.createfillarea('new') - - .. describe:: Modify an existing fillarea: - - .. code-block:: python + .. note:: - fa=a.getfillarea('red') + VCS does not allow the modification of 'default' attribute sets. + However, a 'default' attribute set that has been copied under a + different name can be modified. (See the :py:func:`vcs.manageElements.createboxfill` function.) - * Overview of fillarea attributes: + :Example: - * List all the fillarea attribute values + .. doctest:: manageElements_get - .. code-block:: python + >>> a=vcs.init() + >>> vcs.listelements('boxfill') # Show all the existing boxfill graphics methods + [...] + >>> ex=vcs.getboxfill() # instance of 'default' boxfill graphics method + >>> import cdms2 # Need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + >>> slab1 = f('u') # use the data file to create a cdms2 slab + >>> a.boxfill(ex, slab1) # plot using specified boxfill object + + >>> ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method + >>> a.boxfill(ex2, slab1) # plot using specified boxfill object + - fa.list() - * There are three possibilities for setting the isofill style: + :param Gfb_name_src: String name of an existing boxfill VCS object + :type Gfb_name_src: :py:class:`str` - .. code-block:: python + :return: A pre-existing boxfill graphics method + :rtype: vcs.boxfill.Gfb - fa.style = 'solid' - fa.style = 'hatch' - fa.style = 'pattern' - - * Setting index, color, opacity: - - .. code-block:: python - - # Range from 1 to 20 - fa.index=1 - # Range from 1 to 256 - fa.color=100 - # Range from 0 to 100 - fa.opacity=100 - - * Setting the graphics priority viewport, worldcoordinate: - - .. code-block:: python - - fa.priority=1 - # FloatType [0,1]x[0,1] - fa.viewport=[0, 1.0, 0,1.0] - # FloatType [#,#]x[#,#] - fa.worldcoordinate=[0,1.0,0,1.0] - - * Setting x and y values: - - .. code-block:: python - - #List of FloatTypes - fa.x=[[0,.1,.2], [.3,.4,.5]] - # List of FloatTypes - fa.y=[[.5,.4,.3], [.2,.1,0]] - - -4 items had no tests: +Trying: + fa=vcs.getfillarea() +Expecting nothing +ok +Trying: + vcs.objecthelp(fa) # print fillarea class documentation +Expecting: + The Fillarea class ... +ok +3 items had no tests: vcs.vcshelp - vcs.vcshelp.help vcs.vcshelp.help__doc__ vcs.vcshelp.mode__doc__ +1 items passed all tests: + 2 tests in vcs.vcshelp.objecthelp ********************************************************************** 1 items had failures: - 1 of 2 in vcs.vcshelp.objecthelp -2 tests in 5 items. -1 passed and 1 failed. + 1 of 2 in vcs.vcshelp.help +4 tests in 5 items. +3 passed and 1 failed. ***Test Failed*** 1 failures. diff --git a/docs/doctest_info/scripts/deft_box.py b/docs/doctest_info/scripts/deft_box.py index 2cbc0212b..1ea9bda1e 100644 --- a/docs/doctest_info/scripts/deft_box.py +++ b/docs/doctest_info/scripts/deft_box.py @@ -46,3 +46,43 @@ __Gfb__default.colormap = 'None' +#----------Boxfill (Gfb) member (attribute) listings ---------- +gfb_list=v.listelements('boxfill') +if ('default' in gfb_list): + __Gfb__default = v.getboxfill('default') +else: + __Gfb__default = v.createboxfill('default') +__Gfb__default.projection = 'linear' +__Gfb__default.xticlabels1 = '*' +__Gfb__default.xticlabels2 = '*' +__Gfb__default.xmtics1 = '' +__Gfb__default.xmtics2 = '' +__Gfb__default.yticlabels1 = '*' +__Gfb__default.yticlabels2 = '*' +__Gfb__default.ymtics1 = '' +__Gfb__default.ymtics2 = '' +__Gfb__default.datawc_x1 = 1e+20 +__Gfb__default.datawc_y1 = 1e+20 +__Gfb__default.datawc_x2 = 1e+20 +__Gfb__default.datawc_y2 = 1e+20 +__Gfb__default.xaxisconvert = 'linear' +__Gfb__default.yaxisconvert = 'linear' +__Gfb__default.boxfill_type = 'linear' +__Gfb__default.level_1 = 1e+20 +__Gfb__default.level_2 = 1e+20 +__Gfb__default.levels = [1e+20, 1e+20] +__Gfb__default.color_1 = 0 +__Gfb__default.color_2 = 255 +__Gfb__default.fillareacolors = None +__Gfb__default.fillareastyle = 'solid' +__Gfb__default.fillareaindices = [1] +__Gfb__default.fillareaopacity = [] +__Gfb__default.legend = None +__Gfb__default.ext_1 = 'False' +__Gfb__default.ext_2 = 'False' +__Gfb__default.missing = (0.0, 0.0, 0.0, 100.0) +__Gfb__default.datawc_calendar = 135441 +__Gfb__default.datawc_timeunits = 'days since 2000' + +__Gfb__default.colormap = 'None' + diff --git a/vcs/Canvas.py b/vcs/Canvas.py index cb1e183c4..ecc18a08b 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -2,6 +2,17 @@ Canvas objects are the 'visualization' component of VCS. Canvases allow the user to take data and plot it on a visible window. This gives users an easy way to preview how changes to data representation in VCS will change the visualization of that data. + + .. _list: https://docs.python.org/2/library/functions.html#list + .. _tuple: https://docs.python.org/2/library/functions.html#tuple + .. _dict: https://docs.python.org/2/library/stdtypes.html#mapping-types-dict + .. _None: https://docs.python.org/2/library/constants.html?highlight=none#None + .. _str: https://docs.python.org/2/library/functions.html?highlight=str#str + .. _bool: https://docs.python.org/2/library/functions.html?highlight=bool#bool + .. _float: https://docs.python.org/2/library/functions.html?highlight=float#float + .. _int: https://docs.python.org/2/library/functions.html?highlight=float#int + .. _long: https://docs.python.org/2/library/functions.html?highlight=float#long + .. _file: https://docs.python.org/2/library/functions.html?highlight=open#file """ import warnings import numpy.ma @@ -1058,10 +1069,10 @@ def scriptobject(self, obj, script_filename=None, mode=None): >>> a.scriptobject(i,'ex_isoline2') # Save isoline object as a JSON object 'isoline2.json' :param script_filename: Name of the output script file. - :type script_filename: :py:class:`str` + :type script_filename: `str`_ :param mode: Mode is either "w" for replace or "a" for append. - :type mode: :py:class:`str` + :type mode: `str`_ :param obj: Any VCS primary class or secondary class object. :type obj: VCS object @@ -1776,39 +1787,39 @@ def drawline(self, name=None, ltype='solid', width=1, color=241, # noqa :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param ltype: One of "dash", "dash-dot", "solid", "dot", or "long-dash". - :type ltype: :py:class:`str` + :type ltype: `str`_ :param width: Thickness of the line to be drawn - :type width: :py:class:`int` + :type width: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or :py:class:`int` + :type color: `str`_ or `int`_ :param priority: The layer on which the line will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: :py:class:`list` + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: :py:class:`list` + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be floats between worldcoordinate[0] and worldcoordinate[1]. - :type x: :py:class:`list` + :type x: `list`_ :param y: List of lists of y coordinates. Values must be floats between worldcoordinate[2] and worldcoordinate[3]. - :type y: :py:class:`list` + :type y: `list`_ :param projection: Specify a geographic projection used to convert x/y from spherical coordinates into 2D coordinates. - :type projection: :py:class:`str` or :py:class:`vcs.projection.Proj` + :type projection: `str`_ or :py:class:`vcs.projection.Proj` :returns: A VCS line object :rtype: vcs.line.Tl @@ -1902,35 +1913,35 @@ def drawmarker(self, name=None, mtype='solid', size=1, color=241, :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param mtype: Marker type, i.e. 'dot', 'plus', 'star, etc. - :type mtype: :py:class:`str` + :type mtype: `str`_ :param size: Size of the marker to draw - :type size: :py:class:`int` + :type size: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or :py:class:`int` + :type color: `str`_ or `int`_ :param priority: The layer on which the marker will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: :py:class:`list` + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: :py:class:`list` + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be floats between worldcoordinate[0] and worldcoordinate[1]. - :type x: :py:class:`list` + :type x: `list`_ :param y: List of lists of y coordinates. Values must be floats between worldcoordinate[2] and worldcoordinate[3]. - :type y: :py:class:`list` + :type y: `list`_ :returns: A drawmarker object :rtype: vcs.marker.Tm @@ -2026,38 +2037,38 @@ def drawfillarea(self, name=None, style=1, index=1, color=241, :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param style: One of "hatch", "solid", or "pattern". - :type style: :py:class:`str` + :type style: `str`_ :param index: Specifies which `pattern `_ to fill the fillarea with. Accepts ints from 1-20. - :type index: :py:class:`int` + :type index: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or :py:class:`int` + :type color: `str`_ or `int`_ :param priority: The layer on which the fillarea will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: :py:class:`list` + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: :py:class:`list` + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be floats between worldcoordinate[0] and worldcoordinate[1]. - :type x: :py:class:`list` + :type x: `list`_ :param y: List of lists of y coordinates. Values must be floats between worldcoordinate[2] and worldcoordinate[3]. - :type y: :py:class:`list` + :type y: `list`_ :param bg: Boolean value. True => object drawn in background (not shown on canvas). False => object shown on canvas. @@ -2219,7 +2230,7 @@ def gettextextent(self, textobject): :type textobject: vcs.textcombined.Tc :returns: list of floats containing the coordinates of the text object's bounding box. - :rtype: list + :rtype: `list`_ """ if not vcs.istext(textobject): raise vcsError('You must pass a text object') @@ -2256,36 +2267,36 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, >>> tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) :param Tt_name: String name of a texttable object - :type Tt_name: :py:class:`str` + :type Tt_name: `str`_ :param To_name: String name of a textorientation object - :type To_name: :py:class:`str` + :type To_name: `str`_ :param index: Specifies which `pattern `_ to fill the fillarea with. Accepts ints from 1-20. - :type index: :py:class:`int` + :type index: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or :py:class:`int` + :type color: `str`_ or `int`_ :param priority: The layer on which the fillarea will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1. These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: :py:class:`list` + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: :py:class:`list` + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be floats between worldcoordinate[0] and worldcoordinate[1]. - :type x: :py:class:`list` + :type x: `list`_ :param y: List of lists of y coordinates. Values must be floats between worldcoordinate[2] and worldcoordinate[3]. - :type y: :py:class:`list` + :type y: `list`_ :param bg: Boolean value indicating whether to draw in the background. If True, object is drawn in background (not shown on canvas). @@ -3998,7 +4009,7 @@ def return_display_names(self, *args): :return: A list of the display names of images currently plotted on the canvas. - :rtype: :py:class:`list` + :rtype: `list`_ """ return self.display_names @@ -4021,7 +4032,7 @@ def remove_display_name(self, *args): [] :param args: Any number of display names to remove. - :type args: list of :py:class:`str` + :type args: list of `str`_ """ for a in args: if a in self.display_names: @@ -4153,9 +4164,9 @@ def change_display_graphic_method(self, display, type, name): :param display: Display to change. :param type: New graphics method type. :param name: Name of new graphics method. - :type display: :py:class:`str` or vcs.displayplot.Dp - :type name: :py:class:`str` - :type type: :py:class:`str` + :type display: `str`_ or vcs.displayplot.Dp + :type name: `str`_ + :type type: `str`_ """ if isinstance(display, (str, unicode)): @@ -4256,7 +4267,7 @@ def getcontinentstype(self, *args): 6 :returns An int between 0 and 6, or the path to a custom continentstype - :rtype: :py:class:`int` or system filepath + :rtype: `int`_ or system filepath """ try: return self._continents @@ -4280,10 +4291,10 @@ def pstogif(self, filename, *opt): >>> a.pstogif('filename.ps','p') # convert the postscript file to a gif file (p=portrait) :param filename: String name of the desired output file - :type filename: :py:class:`str` + :type filename: `str`_ :param opt: One of 'l' or 'p', indicating landscape or portrait mode, respectively. - :type opt: :py:class:`str` + :type opt: `str`_ """ from os import popen @@ -4362,20 +4373,20 @@ def landscape(self, width=-99, height=-99, x=-99, y=-99, clear=0): >>> a.landscape(width = 400, height = 337, x=100, y = 200, clear=1) # landscape with more settings :param width: Width of the canvas, in pixels - :type width: :py:class:`int` + :type width: `int`_ :param height: Height of the canvas, in pixels - :type height: :py:class:`int` + :type height: `int`_ :param x: Unused - :type x: :py:class:`int` + :type x: `int`_ :param y: Unused - :type y: :py:class:`int` + :type y: `int`_ :param clear: Indicates the canvas should be cleared (1), or should not be cleared (0), when orientation is changed. - :type clear: :py:class:`int` + :type clear: `int`_ """ if (self.orientation() == 'landscape'): return @@ -4420,11 +4431,11 @@ def listelements(self, *args): ['1d', '3d_dual_scalar', '3d_scalar', ...] :param args: A string containing the name of a VCS object type, or None - :type args: :py:class:`str` or None + :type args: `str`_ or `None`_ :returns: If args is None, returns a list of string names of all VCS class objects. If args is a string name of a VCS object - :rtype: list + :rtype: `list`_ """ f = vcs.listelements L = sorted(f(*args)) @@ -4436,7 +4447,7 @@ def updateorientation(self, *args): orientation accordingly. :param args: String with value 'landscape' or 'portrait' - :type args: :py:class:`str` + :type args: `str`_ .. attention:: @@ -4462,10 +4473,10 @@ def open(self, width=None, height=None, **kargs): >>> a.open(800,600) :param width: Integer representing the desired width of the opened window in pixels - :type width: :py:class:`int` + :type width: `int`_ :param height: Integer representing the desired height of the opened window in pixels - :type height: :py:class:`int` + :type height: `int`_ """ a = self.backend.open(width, height, **kargs) @@ -4511,10 +4522,10 @@ def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): >>> a.portrait(width = 337, height = 400, x=100, y = 200, clear=1) # portrait, with more specifications :param width: Width to set the canvas to (in pixels) - :type width: :py:class:`int` + :type width: `int`_ :param height: Height to set the canvas to (in pixels) - :type height: :py:class:`int` + :type height: `int`_ :param x: Unused. :type x: None @@ -4524,7 +4535,7 @@ def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): :param clear: 0: Do not clear the canvas when orientation is changed. 1: clear the canvas when orientation is changed. - :type clear: :py:class:`int` + :type clear: `int`_ """ if (self.orientation() == 'portrait'): return @@ -4604,19 +4615,19 @@ def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): True :param movie: Output video file name - :type movie: :py:class:`str` + :type movie: `str`_ :param files: String file name - :type files: :py:class:`str`, :py:class:`list`, or :py:class:`tuple` + :type files: `str`_, `list`_, or :py:class:`tuple` :param rate: Desired output framerate - :type rate: :py:class:`str` + :type rate: `str`_ :param options: Additional FFMPEG arguments - :type options: :py:class:`str` + :type options: `str`_ :returns: The output string generated by ffmpeg program - :rtype: :py:class:`str` + :rtype: `str`_ """ args = ["ffmpeg", "-y"] @@ -4728,7 +4739,7 @@ def setantialiasing(self, antialiasing): :param antialiasing: Integer from 0-64, representing the antialising rate (0 means no antialiasing). - :type antialiasing: :py:class:`int` + :type antialiasing: `int`_ """ self.backend.setantialiasing(antialiasing) @@ -4751,7 +4762,7 @@ def setbgoutputdimensions(self, width=None, height=None, units='inches'): :param units: The units of measurement to use for output. One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: :py:class:`str` + :type units: `str`_ """ if units not in [ 'inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']: @@ -4785,10 +4796,10 @@ def put_png_on_canvas( >>> a.put_png_on_canvas("bars.png") # put 'bars.png' on canvas :param file: Input image filename - :type file: :py:class:`str` + :type file: `str`_ :param zoom: scale factor - :type zoom: :py:class:`int` + :type zoom: `int`_ :param xOffset: Horizontal Offset :type xOffset: float @@ -4798,7 +4809,7 @@ def put_png_on_canvas( :param units: Specifies the units used for x and y Offsets. One of ['percent','pixels']. - :type units: :py:class:`str` + :type units: `str`_ :param fitToHeight: If True, fits the picture (before scaling) to the canvas full height, if False then use png original size. @@ -4829,7 +4840,7 @@ def png(self, file, width=None, height=None, >>> a.png('example') # Overwrite a png file :param file: Output image filename - :type file: :py:class:`str` + :type file: `str`_ :param width: Float representing the desired width of the output png, using the specified unit of measurement @@ -4841,7 +4852,7 @@ def png(self, file, width=None, height=None, :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Defaults to 'inches'. - :type units: :py:class:`str` + :type units: `str`_ :param draw_white_background: Boolean value indicating if the background should be white. Defaults to True. :type draw_white_background: bool @@ -4881,17 +4892,17 @@ def pdf(self, file, width=None, height=None, units='inches', >>> a.pdf('example', width=21, height=29.7, units='cm') # A4 :param file: Desired string name of the output file - :type file: :py:class:`str` + :type file: `str`_ :param width: Integer specifying the desired width of the output, measured in the chosen units - :type width: :py:class:`int` + :type width: `int`_ :param height: Integer specifying the desired height of the output, measured in the chosen units - :type height: :py:class:`int` + :type height: `int`_ :param units: Must be one of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Default is 'inches'. - :type units: :py:class:`str` + :type units: `str`_ :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -4938,7 +4949,7 @@ def svg(self, file, width=None, height=None, units='inches', :type height: float :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Deafults to 'inches'. - :type units: :py:class:`str` + :type units: `str`_ :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -5176,24 +5187,24 @@ def postscript(self, file, mode='r', orientation=None, width=None, height=None, >>> a.postscript('example', width=21, height=29.7, units='cm') # A4 :param file: String name of the desired output file. - :type file: :py:class:`str` + :type file: `str`_ :param mode: The mode in which to open the file. One of 'r' or 'a'. When mode is 'r', file will be opened in replace mode. When mode is 'a', file will be opened in append mode. - :type mode: :py:class:`str` + :type mode: `str`_ :param width: Desired width of the postscript output, in the specified unit of measurement. - :type width: :py:class:`int` + :type width: `int`_ :param height: Desired height of the postscript output, in the specified unit of measurement. - :type height: :py:class:`int` + :type height: `int`_ :param units: The units of measurement to use for output. One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: :py:class:`str` + :type units: `str`_ :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -5253,7 +5264,7 @@ def setcolormap(self, name): :param name: Name of the colormap to use - :type name: :py:class:`str` + :type name: `str`_ """ # Don't update the VCS segment if there is no Canvas. This condition # happens in the initalize function for VCDAT only. This will cause a @@ -5314,7 +5325,7 @@ def setcontinentsline(self, line="default"): >>> a.setcontinentsline("default") # Use default line :param line: Line to use for drawing continents. Can be a string name of a line, or a VCS line object - :type line: :py:class:`str` or :py:class:`vcs.line.Tl` + :type line: `str`_ or :py:class:`vcs.line.Tl` """ linename = VCS_validation_functions.checkLine(self, "continentsline", line) line = vcs.getline(linename) @@ -5378,7 +5389,7 @@ def setcontinentstype(self, value): :param value: Integer representing continent type, as specified in function description - :type value: :py:class:`int` + :type value: `int`_ """ continent_path = VCS_validation_functions.checkContinents(self, value) self._continents = value @@ -5457,10 +5468,10 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' >>> a.postscript('example', width=21, height=29.7, units='cm') # A4 :param file: String name of the desired output file - :type file: :py:class:`str` + :type file: `str`_ :param mode: The mode in which to open the file. One of 'r' or 'a'. - :type mode: :py:class:`str` + :type mode: `str`_ :param width: Width of the output image, in the unit of measurement specified :type width: float @@ -5470,7 +5481,7 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' :param units: The units of measurement to use for output. One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: :py:class:`str` + :type units: `str`_ """ ext = file.split(".")[-1] if ext.lower() != 'eps': @@ -5510,11 +5521,11 @@ def isinfile(self, GM, file=None): 1 :param GM: The graphics method to search for - :type GM: :py:class:`str` + :type GM: `str`_ :param file: String name of the file to search. If None, VCS will search initial.attributes. - :type file: :py:class:`str` + :type file: `str`_ :returns: 1 if the graphic method is stored in the file, nothing if it is not. """ @@ -5594,7 +5605,7 @@ def islandscape(self): ... a.portrait() # Set VCS's orientation to portrait mode :returns: Integer indicating VCS is in landscape mode (1), or not (0) - :rtype: :py:class:`int` + :rtype: `int`_ """ if (self.orientation() == 'landscape'): return 1 @@ -5631,7 +5642,7 @@ def getplot(self, Dp_name_src='default', template=None): :param Dp_name_src: String name of an existing display plot object - :type Dp_name_src: :py:class:`str` + :type Dp_name_src: `str`_ :param template: The displayplot template to inherit from :type template: @@ -5665,10 +5676,10 @@ def addfont(self, path, name=""): """Add a font to VCS. :param path: Path to the font file you wish to add (must be .ttf) - :type path: :py:class:`str` + :type path: `str`_ :param name: Name to use to represent the font. - :type name: :py:class:`str` + :type name: `str`_ """ if not os.path.exists(path): raise ValueError('Error - The font path does not exists') @@ -5730,11 +5741,11 @@ def getfont(self, font): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] :param font: The font name/number - :type font: :py:class:`int` or :py:class:`str` + :type font: `int`_ or `str`_ :returns: If font parameter was a string, will return the integer associated with that string. If font parameter was an integer, will return the string associated with that integer. - :rtype: :py:class:`int` or str + :rtype: `int`_ or str """ if isinstance(font, int): return self.getfontname(font) @@ -5760,10 +5771,10 @@ def switchfonts(self, font1, font2): True :param font1: The first font - :type font1: :py:class:`int` or str + :type font1: `int`_ or str :param font2: The second font - :type font2: :py:class:`int` or str + :type font2: `int`_ or str """ if isinstance(font1, str): index1 = self.getfont(font1) @@ -5791,10 +5802,10 @@ def copyfontto(self, font1, font2): """Copy 'font1' into 'font2'. :param font1: Name/number of font to copy - :type font1: :py:class:`str` or int + :type font1: `str`_ or int :param font2: Name/number of destination - :type font2: :py:class:`str` or :py:class:`int` + :type font2: `str`_ or `int`_ .. attention:: @@ -5826,7 +5837,7 @@ def setdefaultfont(self, font): """Sets the passed/def show font as the default font for vcs :param font: Font name or index to use as default - :type font: :py:class:`str` or :py:class:`int` + :type font: `str`_ or `int`_ .. attention:: @@ -5851,7 +5862,7 @@ def orientation(self, *args, **kargs): 'landscape' :returns: A string indicating the orientation of the canvas, i.e. 'landscape' or 'portrait' - :rtype: :py:class:`str` + :rtype: `str`_ """ return self.backend.orientation(*args, **kargs) diff --git a/vcs/boxfill.py b/vcs/boxfill.py index e5962b675..289292ae9 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -130,15 +130,13 @@ def process_src(nm, code): class Gfb(object): - __doc__ = """ - The boxfill graphics method (Gfb) displays a two-dimensional data array - by surrounding each data value by a colored grid box. + __doc__ = """The boxfill graphics method (Gfb) displays a two-dimensional + data array by surrounding each data value by a colored grid box. This class is used to define a boxfill table entry used in VCS, or it can be used to change some or all of the attributes in an existing boxfill table entry. - .. describe:: General use of a boxfill: .. code-block:: python @@ -374,8 +372,7 @@ class Gfb(object): """ % xmldocs.graphics_method_core # noqa def rename(self, newname): - """ - Renames the boxfill in the VCS name table. + """Renames the boxfill in the VCS name table. .. note:: diff --git a/vcs/colormap.py b/vcs/colormap.py index 267d956bf..aa125b398 100644 --- a/vcs/colormap.py +++ b/vcs/colormap.py @@ -1,5 +1,16 @@ """ # Colormap (Cp) module + + .. _list: https://docs.python.org/2/library/functions.html#list + .. _tuple: https://docs.python.org/2/library/functions.html#tuple + .. _dict: https://docs.python.org/2/library/stdtypes.html#mapping-types-dict + .. _None: https://docs.python.org/2/library/constants.html?highlight=none#None + .. _str: https://docs.python.org/2/library/functions.html?highlight=str#str + .. _bool: https://docs.python.org/2/library/functions.html?highlight=bool#bool + .. _float: https://docs.python.org/2/library/functions.html?highlight=float#float + .. _int: https://docs.python.org/2/library/functions.html?highlight=float#int + .. _long: https://docs.python.org/2/library/functions.html?highlight=float#long + .. _file: https://docs.python.org/2/library/functions.html?highlight=open#file """ ########################################################################## # # @@ -300,8 +311,7 @@ def __init__(self, Cp_name, Cp_name_src='default'): # Set a colorcell RGB def setcolorcell(self, index, red, green, blue, alpha=100.): - """ - Sets the R,G,B,A values of a colorcell + """Sets the R,G,B,A values of a colorcell :Example: @@ -312,19 +322,19 @@ def setcolorcell(self, index, red, green, blue, alpha=100.): >>> cmap.setcolorcell(40,80,95,1.0) # Set RGBA values :param index: Integer from 0-255. - :type index: int + :type index: `int`_ :param red: Integer from 0-255 representing the concentration of red in the colorcell. - :type red: int + :type red: `int`_ :param green: Integer from 0-255 representing the concentration of green in the colorcell. - :type green: int + :type green: `int`_ :param blue: Integer from 0-255 representing the concentration of blue in the colorcell. - :type blue: int + :type blue: `int`_ :param alpha: Float representing the percentage of opacity in the colorcell. - :type alpha: float + :type alpha: `float`_ """ self.index[index] = [red, green, blue, alpha] @@ -343,10 +353,10 @@ def getcolorcell(self, index): [26, 0, 33, 100] :param index: Index of a cell in the colormap. Must be an integer from 0-255. - :type index: int + :type index: `int`_ :returns: A list containing the red, green, blue, and alpha values of the colorcell at the given index. - :rtype: list + :rtype: `list`_ """ return self.index[index] diff --git a/vcs/queries.py b/vcs/queries.py index 9a8052807..1431185f0 100644 --- a/vcs/queries.py +++ b/vcs/queries.py @@ -20,6 +20,16 @@ ########################################################################## """ + .. _list: https://docs.python.org/2/library/functions.html#list + .. _tuple: https://docs.python.org/2/library/functions.html#tuple + .. _dict: https://docs.python.org/2/library/stdtypes.html#mapping-types-dict + .. _None: https://docs.python.org/2/library/constants.html?highlight=none#None + .. _str: https://docs.python.org/2/library/functions.html?highlight=str#str + .. _bool: https://docs.python.org/2/library/functions.html?highlight=bool#bool + .. _float: https://docs.python.org/2/library/functions.html?highlight=float#float + .. _int: https://docs.python.org/2/library/functions.html?highlight=float#int + .. _long: https://docs.python.org/2/library/functions.html?highlight=float#long + .. _file: https://docs.python.org/2/library/functions.html?highlight=open#file """ import boxfill import isofill @@ -45,8 +55,7 @@ def isgraphicsmethod(gobj): - """ - Indicates if the entered argument is one of the following graphics + """Indicates if the entered argument is one of the following graphics methods: boxfill, isofill, isoline, scatter, vector, xvsy, xyvsy, yxvsx. @@ -64,7 +73,7 @@ def isgraphicsmethod(gobj): :returns: Integer reperesenting whether gobj is one of the above graphics methods. 1 indicates true, 0 indicates false. - :rtype: int + :rtype: `int`_ """ import vcsaddons if (isinstance(gobj, boxfill.Gfb)): @@ -107,15 +116,14 @@ def graphicsmethodlist(): :returns: A list of available grapics methods (i.e., 'boxfill', 'isofill', 'isoline', 'meshfill', 'scatter', 'vector', 'xvsy', 'xyvsy', 'yxvsx', 'taylordiagram', '1d', '3d_scalar', '3d_dual_scalar', '3d_vector'). - :rtype: list + :rtype: `list`_ """ return ['boxfill', 'isofill', 'isoline', 'meshfill', 'scatter', 'vector', 'xvsy', 'xyvsy', 'yxvsx', 'taylordiagram', '1d', '3d_scalar', '3d_dual_scalar', '3d_vector'] def graphicsmethodtype(gobj): - """ - Check the type of a graphics object. + """Check the type of a graphics object. Returns None if the object is not a graphics method. @@ -140,7 +148,7 @@ def graphicsmethodtype(gobj): 'scatter', 'vector', 'xvsy', 'xyvsy', 'yxvsx', 'taylordiagram', '1d', '3d_scalar', '3d_dual_scalar', '3d_vector'. If gobj is not a graphics method object, raises an exception and prints a vcsError message. - :rtype: str or None + :rtype: `str`_ or `None`_ """ import vcsaddons if (isinstance(gobj, boxfill.Gfb)): @@ -170,8 +178,7 @@ def graphicsmethodtype(gobj): def isplot(pobj): - """ - Check to see if this object is a VCS secondary display plot. + """Check to see if this object is a VCS secondary display plot. :Example: @@ -187,7 +194,7 @@ def isplot(pobj): :type obj: VCS Object :returns: An integer indicating whether the object is a display plot (1), or not (0). - :rtype: int + :rtype: `int`_ """ if (isinstance(pobj, displayplot.Dp)): return 1 @@ -212,8 +219,7 @@ def istemplate(gobj): def issecondaryobject(sobj): - """ - Check to see if this object is a VCS secondary object + """Check to see if this object is a VCS secondary object .. note:: @@ -258,7 +264,7 @@ def issecondaryobject(sobj): :type obj: VCS Object :returns: An integer indicating whether the object is a projection graphics object (1), or not (0). - :rtype: int + :rtype: `int`_ """ if (isinstance(sobj, line.Tl)): return 1 diff --git a/vcs/template.py b/vcs/template.py index 816e11a38..6a8d9ecfa 100644 --- a/vcs/template.py +++ b/vcs/template.py @@ -2,6 +2,16 @@ # Adapted for numpy/ma/cdms2 by convertcdms.py # Template (P) module + .. _list: https://docs.python.org/2/library/functions.html#list + .. _tuple: https://docs.python.org/2/library/functions.html#tuple + .. _dict: https://docs.python.org/2/library/stdtypes.html#mapping-types-dict + .. _None: https://docs.python.org/2/library/constants.html?highlight=none#None + .. _str: https://docs.python.org/2/library/functions.html?highlight=str#str + .. _bool: https://docs.python.org/2/library/functions.html?highlight=bool#bool + .. _float: https://docs.python.org/2/library/functions.html?highlight=float#float + .. _int: https://docs.python.org/2/library/functions.html?highlight=float#int + .. _long: https://docs.python.org/2/library/functions.html?highlight=float#long + .. _file: https://docs.python.org/2/library/functions.html?highlight=open#file """ ############################################################################### # # @@ -139,8 +149,7 @@ def process_src(nm, code): ############################################################################# class P(object): - """ - The template primary method (P) determines the location of each picture + """The template primary method (P) determines the location of each picture segment, the space to be allocated to it, and related properties relevant to its display. @@ -1004,8 +1013,7 @@ def script(self, script_filename=None, mode=None): # Canvas def drawTicks(self, slab, gm, x, axis, number, vp, wc, bg=False, X=None, Y=None, **kargs): - """ - Draws the ticks for the axis x number number + """Draws the ticks for the axis x number number using the label passed by the graphic method vp and wc are from the actual canvas, they have been reset when they get here... @@ -1222,13 +1230,13 @@ def drawTicks(self, slab, gm, x, axis, number, return displays def blank(self, attribute=None): - """ - This function turns off elements of a template object. + """This function turns off elements of a template object. - :param attribute: String or list, indicating the elements of a template which should be turned off. - If attribute is left blank, or is None, all elements of the template will be turned off. - :type attribute: None, str, list + :param attribute: String or list, indicating the elements of a template + which should be turned off. If attribute is left blank, or is None, + all elements of the template will be turned off. + :type attribute: `None`_ or `str`_ or `list`_ """ if attribute is None: attribute = self.__slots__ @@ -1246,8 +1254,7 @@ def blank(self, attribute=None): pass def reset(self, sub_name, v1, v2, ov1=None, ov2=None): - """ - This function resets all the attributes having a + """This function resets all the attributes having a sub-attribute with the specified name. .. note:: @@ -1255,7 +1262,7 @@ def reset(self, sub_name, v1, v2, ov1=None, ov2=None): Respect how far from original position you are i.e. you move to x1,x2 from old_x1, old_x2 if your current x1 value is not == to old_x1_value, - then respect how far from it you were + then respect how far from it you were Example: @@ -1326,8 +1333,7 @@ def reset(self, sub_name, v1, v2, ov1=None, ov2=None): pass def move(self, p, axis): - """ - Move a template by p% along the axis 'x' or 'y'. + """Move a template by p% along the axis 'x' or 'y'. Positive values of p mean movement toward right/top Negative values of p mean movement toward left/bottom The reference point is t.data.x1/y1 @@ -1356,8 +1362,7 @@ def move(self, p, axis): self.reset(axis, v1, v2, ov1, ov2) def moveto(self, x, y): - """ - Move a template to point (x,y), adjusting all attributes so data.x1 = x, and data.y1 = y. + """Move a template to point (x,y), adjusting all attributes so data.x1 = x, and data.y1 = y. :Example: @@ -1366,10 +1371,12 @@ def moveto(self, x, y): >>> t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' >>> t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 - :param x: Float representing the new coordinate of the template's data.x1 attribute. + :param x: Float representing the new coordinate of the template's + data.x1 attribute. :type x: float - :param y: Float representing the new coordinate of the template's data.y1 attribute. + :param y: Float representing the new coordinate of the template's + data.y1 attribute. :type y: float """ # p/=100. @@ -1385,8 +1392,7 @@ def moveto(self, x, y): self.reset('y', v1, v2, ov1, ov2) def scale(self, scale, axis='xy', font=-1): - """ - Scale a template along the axis 'x' or 'y' by scale + """Scale a template along the axis 'x' or 'y' by scale Positive values of scale mean increase Negative values of scale mean decrease The reference point is t.data.x1/y1 @@ -1430,8 +1436,7 @@ def scale(self, scale, axis='xy', font=-1): self.scalefont(scale) def scalefont(self, scale): - """ - Scales the template font by scale. + """Scales the template font by scale. Example: @@ -1462,8 +1467,7 @@ def drawLinesAndMarkersLegend(self, canvas, linecolors, linetypes, linewidths, markercolors, markertypes, markersizes, strings, scratched=None, bg=False, render=True): - """ - Draws a legend with line/marker/text inside a template legend box + """Draws a legend with line/marker/text inside a template legend box Auto adjust text size to make it fit inside the box Auto arrange the elements to fill the box nicely @@ -1603,12 +1607,11 @@ def drawAttributes(self, x, slab, gm, bg=False, **kargs): def plot(self, x, slab, gm, bg=False, min=None, max=None, X=None, Y=None, **kargs): - """ - This plots the template stuff on the Canvas. + """This plots the template stuff on the Canvas. It needs a slab and a graphic method. :returns: A list containing all the displays used - :rtype: list + :rtype: `list`_ """ displays = [] @@ -1780,8 +1783,7 @@ def drawColorBar(self, colors, levels, legend=None, ext_1='n', ext_2='n', x=None, bg=False, priority=None, cmap=None, style=['solid'], index=[1], opacity=[], **kargs): - """ - This function, draws the colorbar, it needs: + """This function, draws the colorbar, it needs: colors : The colors to be plotted levels : The levels that each color represent legend : To overwrite, saying just draw box at @@ -2062,8 +2064,7 @@ def in_bounds(x): def ratio_linear_projection(self, lon1, lon2, lat1, lat2, Rwished=None, Rout=None, box_and_ticks=0, x=None): - """ - Computes ratio to shrink the data area of a template such that the + """Computes ratio to shrink the data area of a template such that the overall area has the least possible deformation in linear projection .. note:: @@ -2079,27 +2080,27 @@ def ratio_linear_projection(self, lon1, lon2, lat1, lat2, >>> t.ratio_linear_projection(-135,-50,20,50) # USA :param lon1: Start longitude for plot. - :type lon1: float or int + :type lon1: `float`_ or `int`_ :param lon2: End longitude for plot - :type lon2: float or int + :type lon2: `float`_ or `int`_ :param lat1: Start latitude for plot. - :type lat1: float or int + :type lat1: `float`_ or `int`_ :param lat2: End latitude for plot - :type lat2: float or int + :type lat2: `float`_ or `int`_ :param Rwished: Ratio y/x wished. If None, ratio will be determined automatically. - :type Rwished: float or int + :type Rwished: `float`_ or `int`_ :param Rout: Ratio of output (default is US Letter=11./8.5) Also you can pass a string: "A4","US LETTER", "X"/"SCREEN", the latest uses the window information box_and_ticks: Also redefine box and ticks to the new region. If None, Rout will be determined automatically. - :type Rout: float or int + :type Rout: `float`_ or `int`_ """ @@ -2130,8 +2131,7 @@ def ratio_linear_projection(self, lon1, lon2, lat1, lat2, return def ratio(self, Rwished, Rout=None, box_and_ticks=0, x=None): - """ - Computes ratio to shrink the data area of a template + """Computes ratio to shrink the data area of a template to have an y/x ratio of Rwished has the least possible deformation in linear projection @@ -2144,7 +2144,7 @@ def ratio(self, Rwished, Rout=None, box_and_ticks=0, x=None): :param Rwished: Ratio y/x wished. Rwished MUST be provided. - :type Rwished: float or int + :type Rwished: `float`_ or `int`_ :param Rout: Ratio of output (default is US Letter=11./8.5). Also you can pass a string: "A4","US LETTER", diff --git a/vcs/utils.py b/vcs/utils.py index 1d8b33b81..874f102c8 100644 --- a/vcs/utils.py +++ b/vcs/utils.py @@ -1,5 +1,4 @@ -""" -Utils contains functions and objects that provide VCS with useful utilities. +"""Utils contains functions and objects that provide VCS with useful utilities. .. _list: https://docs.python.org/2/library/functions.html#list .. _tuple: https://docs.python.org/2/library/functions.html#tuple @@ -67,8 +66,7 @@ def get_png_dims(fnm): - """ - Given the path to a png, return width, height of the png. + """Given the path to a png, return width, height of the png. :Example: @@ -101,8 +99,7 @@ def get_png_dims(fnm): class Logo(object): - """ - Creates a 'logo' object + """Creates a 'logo' object This also to draw a logo either from a text string or a picture (png) file. Picture will be shrunk to fit within the canvas if it's too big to fit @@ -111,26 +108,22 @@ class Logo(object): .. doctest:: utils_Logo - >>> import vcs - >>> import os - >>> import sys + >>> import os, sys >>> x=vcs.init() >>> x.open() - >>> logo1 = vcs.utils.Logo(os.path.join(sys.prefix,"share","vcs","uvcdat.png")) + >>> path=os.path.join(sys.prefix,"share","vcs","uvcdat.png") + >>> logo1=vcs.utils.Logo(path) >>> logo1.x=.7 >>> logo1.y=.8 - >>> logo2 = vcs.utils.Logo("My Test Logo") >>> logo2.x = .2 >>> logo2.y = .2 - >>> logo1.plot(x) >>> logo2.plot(x) """ def __init__(self, source=None, x=.93, y=.95, width=None, height=None): - """ - Initialize a new "logo" object to be plotted later on a canvas + """Initialize a new "logo" object to be plotted later on a canvas :param source: text string or path to png file representing the logo :type source: `str`_ @@ -173,8 +166,7 @@ def __init__(self, source=None, x=.93, y=.95, width=None, height=None): self.height = height def plot(self, canvas, bg=True): - """ - Plot the logo onto a given Canvas + """Plot the logo onto a given Canvas :Example: @@ -183,14 +175,13 @@ def plot(self, canvas, bg=True): >>> import os, sys >>> x=vcs.init() >>> x.open() - >>> logo1 = vcs.utils.Logo(os.path.join(sys.prefix,"share/vcs/uvcdat.png")) + >>> path=os.path.join(sys.prefix,"share/vcs/uvcdat.png") + >>> logo1 = vcs.utils.Logo(path) >>> logo1.x=.7 >>> logo1.y=.8 - >>> logo2 = vcs.utils.Logo("My Test Logo") >>> logo2.x = .2 >>> logo2.y = .2 - >>> logo1.plot(x) >>> logo2.plot(x) @@ -268,9 +259,8 @@ def process_range_from_old_scr(code, g): def dumpToDict(obj, skipped=[], must=[]): - """ - Takes a VCS object and serializes its properties and their associated values - in a Python `dict`_ . + """Takes a VCS object and serializes its properties and their associated + values in a Python `dict`_ . :Example: @@ -294,10 +284,13 @@ def dumpToDict(obj, skipped=[], must=[]): :type must: `list`_ :return: A tuple containing: + * a dictionary with mappings of the object's property names to the values associated with those property names. + * a dictionary with mappings of more complex properties' names to sets containing any associated property values. + :rtype: `tuple`_ """ dic = {} @@ -334,9 +327,8 @@ def dumpToDict(obj, skipped=[], must=[]): def dumpToJson(obj, fileout, skipped=["info", "member"], must=[], indent=indent, sort_keys=sort_keys): - """ - Uses :py:func:`vcs.utils.dumpToDict` and `json.dumps`_ to construct a JSON - representation of a VCS object's property values. + """Uses :py:func:`vcs.utils.dumpToDict` and `json.dumps`_ to construct a + JSON representation of a VCS object's property values. :Example: @@ -358,14 +350,17 @@ def dumpToJson(obj, fileout, skipped=["info", "member"], must=[], indent=indent, :type skipped: `list`_ :param must: A list of strings, associated with property names which must - be captured in the serialization. + be captured in the serialization. :type must: `list`_ :param indent: An integer representing whether to pretty-print the JSON. - If indent is a non-negative integer, JSON will be printed with proper - indentation levels. - If indent is None, 0, or negative, JSON will be printed in its most - compact form. + + * If indent is a non-negative integer, JSON will be printed with proper + indentation levels. + + * If indent is None, 0, or negative, JSON will be printed in its most + compact form. + :type indent: `int`_ or `None`_ :param sort_keys: Boolean value indicating whether output should be sorted @@ -431,8 +426,7 @@ def dumpToJson(obj, fileout, skipped=["info", "member"], must=[], indent=indent, def getfontname(number): - """ - Retrieve a font name for a given font index. + """Retrieve a font name for a given font index. :Example: @@ -452,8 +446,7 @@ def getfontname(number): def getfontnumber(name): - """ - Retrieve a font index for a given font name. + """Retrieve a font index for a given font name. :Example: @@ -520,8 +513,7 @@ def process_src_element(code): def listelements(typ=None): - """ - List the elements of a given VCS object type. + """List the elements of a given VCS object type. :Example: @@ -569,8 +561,7 @@ def listelements(typ=None): # # def show(*args): - """ - Show the list of VCS primary and secondary class objects. + """Show the list of VCS primary and secondary class objects. :Example: @@ -1120,8 +1111,7 @@ def __str__(self): def minmax(*data): - """ - Return the minimum and maximum of a series of array/list/tuples + """Return the minimum and maximum of a series of array/list/tuples (or combination of these) You can combine list/tuples/arrays pretty much any combination is allowed @@ -1141,7 +1131,7 @@ def minmax(*data): :type data: `list`_ :returns: A tuple in the form (min, max) - :rtype: tuple + :rtype: `tuple`_ """ mx = -1.E77 @@ -1170,8 +1160,7 @@ def myfunction(d, mx, mn): def mkevenlevels(n1, n2, nlev=10): - """ - Return a series of evenly spaced levels going from n1 to n2. + """Return a series of evenly spaced levels going from n1 to n2. By default 10 intervals will be produced. :Example: @@ -1185,17 +1174,17 @@ def mkevenlevels(n1, n2, nlev=10): >>> vcs.mkevenlevels(100,0,nlev=5) [100.0, 80.0, 60.0, 40.0, 20.0, 0.0] - :param n1: Beginning of range. Int or float. - :type n1: int, float + :param n1: Beginning of range. + :type n1: `int`_ or `float`_ :param n2: End of range. Int or float. - :type n2: int, float + :type n2: `int`_ or `float`_ :param nlev: Number of levels by which to split the given range. :type nlev: `int`_ :returns: List of floats, splitting range evenly between n1 and n2 - :rtype: list + :rtype: `list`_ """ import numpy.ma lev = numpy.ma.arange(nlev + 1, dtype=numpy.float) @@ -1206,8 +1195,7 @@ def mkevenlevels(n1, n2, nlev=10): def mkscale(n1, n2, nc=12, zero=1, ends=False): - """ - This function return a nice scale given a min and a max + """This function return a nice scale given a min and a max .. warning:: @@ -1233,27 +1221,27 @@ def mkscale(n1, n2, nc=12, zero=1, ends=False): [0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] :param n1: Minimum number in range. - :type n1: float + :type n1: `float`_ :param n2: Maximum number in range. - :type n2: float + :type n2: `float`_ :param nc: Maximum number of intervals - :type nc: int + :type nc: `int`_ :param zero: Integer flag to indicate how zero should be handled. Flags are as follows -1: zero MUST NOT be a contour 0: let the function decide # NOT IMPLEMENTED 1: zero CAN be a contour (default) 2: zero MUST be a contour - :type zero: int + :type zero: `int`_ :param end: Boolean value indicating whether n1 and n2 should be part of the returned labels. Defaults to False. - :type end: bool + :type end: `bool`_ :returns: List of floats split into nc intervals - :rtype: list + :rtype: `list`_ """ if n1 == n2: return [n1] @@ -1344,8 +1332,7 @@ def __split2contiguous(levels): def mklabels(vals, output='dict'): - """ - This function gets levels and output strings for nice display of the + """This function gets levels and output strings for nice display of the levels values. :Examples: @@ -1381,13 +1368,13 @@ def mklabels(vals, output='dict'): ['2E-5', '5E-5'] :param vals: List or tuple of float values - :type vals: `list`_, :py:class:`tuple` + :type vals: `list`_, `tuple`_ :param output: Specifies the desired output type. One of ['dict', 'list']. - :type output: :py:class:`str` + :type output: `str`_ :returns: Dictionary or list of labels for the given values. - :rtype: :py:class:`dict` or `list`_ + :rtype: `dict`_ or `list`_ """ import numpy.ma if isinstance(vals[0], list) or isinstance(vals[0], tuple): @@ -1488,8 +1475,7 @@ def mklabels(vals, output='dict'): def getcolors(levs, colors=None, split=1, white="white"): - """ - For isofill/boxfill purposes + """For isofill/boxfill purposes Given a list of levels this function returns the colors that would best spread a list of "user-defined" colors (default is 0 to 255, i.e 256 colors), always using the first and last color. @@ -1531,7 +1517,7 @@ def getcolors(levs, colors=None, split=1, white="white"): :param white: If split is on and an interval goes from <0 to >0 this color will be used within this interval. - :type white: `int`_ or `string`_ or `tuple`_ + :type white: `int`_ or `str`_ or `tuple`_ :returns: List of colors :rtype: `list`_ @@ -1646,8 +1632,7 @@ def getcolors(levs, colors=None, split=1, white="white"): def generate_time_labels(d1, d2, units, calendar=cdtime.DefaultCalendar): - """ - Generates a dictionary of time labels for an interval of time, + """Generates a dictionary of time labels for an interval of time, in a user defined units system. :Example: @@ -1668,7 +1653,7 @@ def generate_time_labels(d1, d2, units, calendar=cdtime.DefaultCalendar): :param d1: The beginning of the time interval to be labelled. Expects a cdtime object. Can also take int, long, or float, which will be used to create a cdtime object with the given units parameter. - :type d1: cdtime object, int, long, float + :type d1: cdtime object or `int`_ or `long`_ or `float`_ :param d2: The end of the time interval to be labelled. Expects a cdtime object. Can also take int, long, or float, @@ -1678,8 +1663,7 @@ def generate_time_labels(d1, d2, units, calendar=cdtime.DefaultCalendar): :param units: String with the format '[time_unit] since [date]'. :type units: `str`_ - :param calendar: A cdtime calendar, - :type calendar: + :param calendar: A cdtime calendar :returns: Dictionary of time labels over the given time interval :rtype: dict @@ -1812,8 +1796,7 @@ def prettifyAxisLabels(ticks, axis): def setTicksandLabels(gm, copy_gm, datawc_x1, datawc_x2, datawc_y1, datawc_y2, x=None, y=None): - """ - Sets the labels and ticks for a graphics method made in python + """Sets the labels and ticks for a graphics method made in python :param gm: A VCS graphics method to alter :type gm: VCS graphics method @@ -1969,8 +1952,7 @@ def setTicksandLabels(gm, copy_gm, datawc_x1, datawc_x2, def getcolormap(Cp_name_src='default'): - """ - VCS contains a list of secondary methods. This function will create a + """VCS contains a list of secondary methods. This function will create a colormap class object from an existing VCS colormap secondary method. If no colormap name is given, then colormap 'default' will be used. @@ -1985,12 +1967,12 @@ def getcolormap(Cp_name_src='default'): .. doctest:: utils_getcolormap >>> a=vcs.init() - >>> a.show('colormap') # Show all the existing colormap secondary methods + >>> a.show('colormap') # Show all colormap secondary methods *******************Colormap Names List********************** ... *******************End Colormap Names List********************** - >>> cp=a.getcolormap() # cp instance of 'default' colormap secondary method - >>> cp2=a.getcolormap('rainbow') # cp2 instance of existing 'rainbow' colormap secondary method + >>> cp=a.getcolormap() # 'default' colormap + >>> cp2=a.getcolormap('rainbow') # 'rainbow' colormap :param Cp_name_src: String name of an existing colormap VCS object @@ -2007,9 +1989,9 @@ def getcolormap(Cp_name_src='default'): def getcolorcell(cell, obj=None): - """ - Gets the colorcell of the provided object's colormap at the specified cell index. - If no object is provided, or if the provided object has no colormap, the default colormap is used. + """Gets the colorcell of the provided object's colormap at the specified + cell index. If no object is provided, or if the provided object has no + colormap, the default colormap is used. :Example: @@ -2024,7 +2006,7 @@ def getcolorcell(cell, obj=None): :param cell: An integer value indicating the index of the desired colorcell. :type cell: `int`_ - :param obj: Optional parameter containing the object to extract a colormap from. + :param obj: Optional parameter with the object to get a colormap from. :type obj: Any VCS object capable of containing a colormap :return: The RGBA values of the colormap at the specified cell index. @@ -2040,8 +2022,7 @@ def getcolorcell(cell, obj=None): def setcolorcell(obj, num, r, g, b, a=100): - """ - Set a individual color cell in the active colormap. If default is + """Set a individual color cell in the active colormap. If default is the active colormap, then return an error string. .. note:: @@ -2064,7 +2045,8 @@ def setcolorcell(obj, num, r, g, b, a=100): :param obj: String name of a colormap, or a VCS object :type obj: `str`_ or VCS object - :param num: Integer specifying which color cell to change. Must be from 0-239. + :param num: Integer specifying which color cell to change. + Must be from 0-239. :type num: `int`_ :param r: Integer specifying the red value for the colorcell @@ -2076,7 +2058,8 @@ def setcolorcell(obj, num, r, g, b, a=100): :param b: Integer specifying the blue value for the colorcell :type b: `int`_ - :param a: Integer specifying the opacity value for the colorcell. Must be from 0-100. + :param a: Integer specifying the opacity value for the colorcell. + Must be from 0-100. :type a: `int`_ """ @@ -2090,9 +2073,7 @@ def setcolorcell(obj, num, r, g, b, a=100): def match_color(color, colormap=None): - """ - Returns the color in the colormap that is - closest to the required color. + """Returns the color in the colormap that's closest to the specified color. :Example: @@ -2109,7 +2090,8 @@ def match_color(color, colormap=None): :param color: Either a string name, or a rgb value between 0 and 100. :type color: `str`_ or `int`_ - :param colormap: A VCS colormap object. If not specified, the default colormap is used. + :param colormap: A VCS colormap object. If not specified, the default + colormap is used. :type colormap: vcs.colormap.Cp :returns: Integer value representing a matching rgb color @@ -2145,8 +2127,7 @@ def match_color(color, colormap=None): def monotonic(x): - """ - Uses `numpy.diff `_ + """Uses `numpy.diff `_ to determine whether the data given by x is monotonic in nature. :Example: @@ -2185,8 +2166,7 @@ def monotonic(x): def getgraphicsmethod(type, name): - """ - Retrieves an existing graphics method, given by type and name. + """Retrieves an existing graphics method, given by type and name. :Example: @@ -2224,8 +2204,7 @@ def getgraphicsmethod(type, name): def creategraphicsmethod(gtype, gname='default', name=None): - """ - Creates a graphics method of the type given by gtype. + """Creates a graphics method of the type given by gtype. :Example: @@ -2301,8 +2280,7 @@ def getDataWcValue(v): def getworldcoordinates(gm, X, Y): - """ - Given a graphics method and two axes, calculates correct world coordinates. + """Given a graphics method and two axes, calculates correct world coordinates. :Example: @@ -2417,8 +2395,7 @@ def getworldcoordinates(gm, X, Y): def rgba_color(color, colormap): - """ - Try all of the various syntaxes of colors and return 0-100 RGBA values. + """Try all of the various syntaxes of colors and return 0-100 RGBA values. :Example: @@ -2479,8 +2456,7 @@ def png_read_metadata(path): def download_sample_data_files(path=None): - """ - Downloads sample data to be used with VCS. + """Downloads sample data to be used with VCS. Default download directory is vcs.sample_data, but if __path__ is provided then data will be downloaded to that path. @@ -2544,8 +2520,7 @@ def drawLinesAndMarkersLegend(canvas, templateLegend, linecolors, linetypes, linewidths, markercolors, markertypes, markersizes, strings, scratched=None, bg=False, render=True): - """ - Draws a legend with line/marker/text inside a template legend box + """Draws a legend with line/marker/text inside a template legend box Auto adjust text size to make it fit inside the box Auto arrange the elements to fill the box nicely @@ -2607,7 +2582,8 @@ def drawLinesAndMarkersLegend(canvas, templateLegend, Or foreground (False). :type bg: `bool`_ - :param render: do we render or not (so it less flashy) + :param render: Boolean value indicating whether or not to render the new + lines and markers. :type render: `bool`_ """ From 7447eda1ac18af7918d3b94a695a6da52318fbbd Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 20 Dec 2016 06:58:19 -0800 Subject: [PATCH 24/45] Fixing up template. Deleted old file in scripts/ --- docs/doctest_info/scripts/deft_box.py | 88 --------------------------- vcs/Canvas.py | 2 +- vcs/template.py | 51 ++++++++-------- 3 files changed, 27 insertions(+), 114 deletions(-) delete mode 100644 docs/doctest_info/scripts/deft_box.py diff --git a/docs/doctest_info/scripts/deft_box.py b/docs/doctest_info/scripts/deft_box.py deleted file mode 100644 index 1ea9bda1e..000000000 --- a/docs/doctest_info/scripts/deft_box.py +++ /dev/null @@ -1,88 +0,0 @@ -##################################### -# # -# Import and Initialize VCS # -# # -############################# -import vcs -v=vcs.init() - -#----------Boxfill (Gfb) member (attribute) listings ---------- -gfb_list=v.listelements('boxfill') -if ('default' in gfb_list): - __Gfb__default = v.getboxfill('default') -else: - __Gfb__default = v.createboxfill('default') -__Gfb__default.projection = 'linear' -__Gfb__default.xticlabels1 = '*' -__Gfb__default.xticlabels2 = '*' -__Gfb__default.xmtics1 = '' -__Gfb__default.xmtics2 = '' -__Gfb__default.yticlabels1 = '*' -__Gfb__default.yticlabels2 = '*' -__Gfb__default.ymtics1 = '' -__Gfb__default.ymtics2 = '' -__Gfb__default.datawc_x1 = 1e+20 -__Gfb__default.datawc_y1 = 1e+20 -__Gfb__default.datawc_x2 = 1e+20 -__Gfb__default.datawc_y2 = 1e+20 -__Gfb__default.xaxisconvert = 'linear' -__Gfb__default.yaxisconvert = 'linear' -__Gfb__default.boxfill_type = 'linear' -__Gfb__default.level_1 = 1e+20 -__Gfb__default.level_2 = 1e+20 -__Gfb__default.levels = [1e+20, 1e+20] -__Gfb__default.color_1 = 0 -__Gfb__default.color_2 = 255 -__Gfb__default.fillareacolors = None -__Gfb__default.fillareastyle = 'solid' -__Gfb__default.fillareaindices = [1] -__Gfb__default.fillareaopacity = [] -__Gfb__default.legend = None -__Gfb__default.ext_1 = 'False' -__Gfb__default.ext_2 = 'False' -__Gfb__default.missing = (0.0, 0.0, 0.0, 100.0) -__Gfb__default.datawc_calendar = 135441 -__Gfb__default.datawc_timeunits = 'days since 2000' - -__Gfb__default.colormap = 'None' - -#----------Boxfill (Gfb) member (attribute) listings ---------- -gfb_list=v.listelements('boxfill') -if ('default' in gfb_list): - __Gfb__default = v.getboxfill('default') -else: - __Gfb__default = v.createboxfill('default') -__Gfb__default.projection = 'linear' -__Gfb__default.xticlabels1 = '*' -__Gfb__default.xticlabels2 = '*' -__Gfb__default.xmtics1 = '' -__Gfb__default.xmtics2 = '' -__Gfb__default.yticlabels1 = '*' -__Gfb__default.yticlabels2 = '*' -__Gfb__default.ymtics1 = '' -__Gfb__default.ymtics2 = '' -__Gfb__default.datawc_x1 = 1e+20 -__Gfb__default.datawc_y1 = 1e+20 -__Gfb__default.datawc_x2 = 1e+20 -__Gfb__default.datawc_y2 = 1e+20 -__Gfb__default.xaxisconvert = 'linear' -__Gfb__default.yaxisconvert = 'linear' -__Gfb__default.boxfill_type = 'linear' -__Gfb__default.level_1 = 1e+20 -__Gfb__default.level_2 = 1e+20 -__Gfb__default.levels = [1e+20, 1e+20] -__Gfb__default.color_1 = 0 -__Gfb__default.color_2 = 255 -__Gfb__default.fillareacolors = None -__Gfb__default.fillareastyle = 'solid' -__Gfb__default.fillareaindices = [1] -__Gfb__default.fillareaopacity = [] -__Gfb__default.legend = None -__Gfb__default.ext_1 = 'False' -__Gfb__default.ext_2 = 'False' -__Gfb__default.missing = (0.0, 0.0, 0.0, 100.0) -__Gfb__default.datawc_calendar = 135441 -__Gfb__default.datawc_timeunits = 'days since 2000' - -__Gfb__default.colormap = 'None' - diff --git a/vcs/Canvas.py b/vcs/Canvas.py index ecc18a08b..43b8013f7 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -5381,7 +5381,7 @@ def setcontinentstype(self, value): .. doctest:: canvas_setcontinentstype >>> a=vcs.init() - >>> a.setcontinentstype(4) "Political Borders" + >>> a.setcontinentstype(4) # "Political Borders" >>> import cdms2 # We need cdms2 to create a slab >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file >>> v = f('v') # use the data file to create a slab diff --git a/vcs/template.py b/vcs/template.py index 6a8d9ecfa..5b3072d2c 100644 --- a/vcs/template.py +++ b/vcs/template.py @@ -1233,10 +1233,10 @@ def blank(self, attribute=None): """This function turns off elements of a template object. - :param attribute: String or list, indicating the elements of a template - which should be turned off. If attribute is left blank, or is None, - all elements of the template will be turned off. - :type attribute: `None`_ or `str`_ or `list`_ + :param attribute: String or list, indicating the elements of a template + which should be turned off. If attribute is left blank, or is None, + all elements of the template will be turned off. + :type attribute: `None`_ or `str`_ or `list`_ """ if attribute is None: attribute = self.__slots__ @@ -1260,7 +1260,7 @@ def reset(self, sub_name, v1, v2, ov1=None, ov2=None): .. note:: Respect how far from original position you are - i.e. you move to x1,x2 from old_x1, old_x2 + i.e. if you move to x1,x2 from old_x1, old_x2 if your current x1 value is not == to old_x1_value, then respect how far from it you were @@ -1342,14 +1342,16 @@ def move(self, p, axis): .. doctest:: template_move - >>> t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + >>> t=vcs.createtemplate('t_move') # inherits default template >>> t.move(0.2,'x') # Move everything right by 20% >>> t.move(0.2,'y') # Move everything up by 20% - :param p: Float indicating the percentage by which the template should move. i.e. 0.2 = 20%. + :param p: Float indicating the percentage by which the template should + move. i.e. 0.2 = 20%. :type p: float - :param axis: One of ['x', 'y']. The axis along which the template will move. + :param axis: The axis on which the template will move. + One of ['x', 'y']. :type axis: str """ if axis not in ['x', 'y']: @@ -1368,8 +1370,8 @@ def moveto(self, x, y): .. doctest:: template_moveto - >>> t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - >>> t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 + >>> t=vcs.createtemplate('t_move2') # inherits default template + >>> t.moveto(0.2, 0.2) # Move template so x1 and y1 are 0.2 :param x: Float representing the new coordinate of the template's data.x1 attribute. @@ -1393,18 +1395,17 @@ def moveto(self, x, y): def scale(self, scale, axis='xy', font=-1): """Scale a template along the axis 'x' or 'y' by scale - Positive values of scale mean increase - Negative values of scale mean decrease - The reference point is t.data.x1/y1 + Positive values of scale mean increase. + Negative values of scale mean decrease. + The reference point is the template's x1 and y1 data. :Example: .. doctest:: template_scale - - >>> t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + >>> t=vcs.createtemplate('t_scale') # inherits default template >>> t.scale(0.5) # Halves the template size - >>> t.scale(1.2) # Upsize everything to 20% more than the original size + >>> t.scale(1.2) # Increases size by 20% >>> t.scale(2,'x') # Double the x axis :param scale: Float representing the factor by which to scale the template. @@ -1414,8 +1415,8 @@ def scale(self, scale, axis='xy', font=-1): :type axis: str :param font: Integer flag indicating what should be done with the template's fonts. One of [-1, 0, 1]. - 0: means do not scale the fonts. 1: means scale the fonts. - -1: means do not scale the fonts unless axis='xy' + 0: means do not scale the fonts. 1: means scale the fonts. + -1: means do not scale the fonts unless axis='xy' :type font: int """ @@ -1438,12 +1439,12 @@ def scale(self, scale, axis='xy', font=-1): def scalefont(self, scale): """Scales the template font by scale. - Example: + :Example: + + .. doctest:: template_scalefont - Create template 'example1' which inherits from 'default' template - t = vcs.createtemplate('example1', 'default') - reduces the fonts size by 2 - t.scalefont(0.5) + >>> t=vcs.createtemplate('t_scfnt') # inherits default template + >>> t.scalefont(0.5) # reduces the fonts size by 2 :param scale: Float representing the factor by which to scale the template's font size. :type scale: float @@ -1509,8 +1510,8 @@ def drawLinesAndMarkersLegend(self, canvas, :type strings: list of string :param scratched: None (off) or list. list contains False where no scratch is needed - For scratched provide True or line type to use for scratch - color will match that of text + For scratched provide True or line type to use for scratch + color will match that of text :type scratched: None or list of bool :param bg: do we draw in background or foreground From 532a2bed50265ac36fff2135516249085ec6a2c0 Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 20 Dec 2016 15:07:48 -0800 Subject: [PATCH 25/45] Undocumented some internal functions to template. Added more template documentation. Working on documentation in various stages for other files. --- docs/API/template/templ.rst | 3 +- docs/API/template/template.rst | 3 +- vcs/boxfill.py | 2 +- vcs/isofill.py | 2 +- vcs/isoline.py | 2 +- vcs/line.py | 3 - vcs/meshfill.py | 2 +- vcs/template.py | 144 +++++++++++++++++++++++---------- vcs/unified1D.py | 2 +- vcs/xmldocs.py | 19 ++++- 10 files changed, 130 insertions(+), 52 deletions(-) diff --git a/docs/API/template/templ.rst b/docs/API/template/templ.rst index 3599b5b5b..702354e75 100644 --- a/docs/API/template/templ.rst +++ b/docs/API/template/templ.rst @@ -1,7 +1,8 @@ Templating ---------- -Templates define the layout of your visualization. The Template object is used to lay out labels, lines, tick marks, etc.; it uses the P* objects to do so. +Templates define the layout of your visualization. The Template object is used to lay out labels, lines, tick marks, etc.; +it uses the P* objects to do so. .. toctree:: diff --git a/docs/API/template/template.rst b/docs/API/template/template.rst index c31376e97..31a30f5fe 100644 --- a/docs/API/template/template.rst +++ b/docs/API/template/template.rst @@ -1,4 +1,5 @@ template -------- .. automodule:: vcs.template - :members: \ No newline at end of file + :members: + :exclude-members: plot, epsilon_gte, epsilon_lte \ No newline at end of file diff --git a/vcs/boxfill.py b/vcs/boxfill.py index 289292ae9..3e1ab22ca 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -982,7 +982,7 @@ def list(self): print "ext_1 = ", self.ext_1 print "ext_2 = ", self.ext_2 print "missing = ", self.missing - list.__doc__ = xmldocs.listdoc + list.__doc__ = xmldocs.listdoc % {"name": "boxfill", "parent": ""} ########################################################################### # # # Script out primary boxfill graphics method in VCS to a file. # diff --git a/vcs/isofill.py b/vcs/isofill.py index 38859ad34..256f0e8db 100755 --- a/vcs/isofill.py +++ b/vcs/isofill.py @@ -741,7 +741,7 @@ def list(self): print "fillareaopacity = ", self.fillareaopacity print "levels = ", self.levels print "legend = ", self.legend - list.__doc__ = xmldocs.listdoc + list.__doc__ = xmldocs.listdoc % {"name": "isofill", "parent": ""} # # diff --git a/vcs/isoline.py b/vcs/isoline.py index 6be6f3661..e704001c1 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -1056,7 +1056,7 @@ def list(self): print "scale = ", self.scale print "angle = ", self.angle print "spacing = ", self.spacing - list.__doc__ = xmldocs.listdoc + list.__doc__ = xmldocs.listdoc % {"name": "isoline", "parent": ""} ########################################################################## # # diff --git a/vcs/line.py b/vcs/line.py index cae3b1d6c..033eb01d5 100755 --- a/vcs/line.py +++ b/vcs/line.py @@ -406,9 +406,6 @@ def list(self): # # ########################################################################## def script(self, script_filename=None, mode=None): - """ - docstring moved to xmldocs -""" if (script_filename is None): raise ValueError( 'Error - Must provide an output script file name.') diff --git a/vcs/meshfill.py b/vcs/meshfill.py index 29d517678..a74575470 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -768,7 +768,7 @@ def list(self): print 'wrap =', self.wrap print 'colormap = ', self.colormap return - list.__doc__ = xmldocs.listdoc + list.__doc__ = xmldocs.listdoc % {"name": "meshfill", "parent": ""} ########################################################################## # # diff --git a/vcs/template.py b/vcs/template.py index 5b3072d2c..c5f3433b4 100644 --- a/vcs/template.py +++ b/vcs/template.py @@ -49,7 +49,7 @@ import cdutil from projection import round_projections from projection import elliptical_projections -from xmldocs import scriptdocs +from xmldocs import scriptdocs, listdoc # Following for class properties @@ -534,6 +534,12 @@ def __init__(self, Pic_name=None, Pic_name_src='default'): vcs.elements["template"][Pic_name] = self def list(self, single=None): + """ + %s + + :param single: String value indicating which properties to list + :type single: str + """ if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') @@ -756,6 +762,7 @@ def list(self, single=None): self.legend.list() elif (single == 'data'): self.data.list() + list.__doc__ = list.__doc__ % (listdoc % {"name": "template", "parent": ""}) ########################################################################### # # @@ -1232,7 +1239,6 @@ def drawTicks(self, slab, gm, x, axis, number, def blank(self, attribute=None): """This function turns off elements of a template object. - :param attribute: String or list, indicating the elements of a template which should be turned off. If attribute is left blank, or is None, all elements of the template will be turned off. @@ -1268,11 +1274,12 @@ def reset(self, sub_name, v1, v2, ov1=None, ov2=None): .. doctest:: template_reset - >>> t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - >>> t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 + >>> t=vcs.createtemplate('t_reset') # inherits from 'default' + >>> data, data2 = t.data.x1, t.data.x2 + >>> t.reset('x',0.15,0.5,data,data2) # Set x1 to 0.15, x2 to 0.5 :param sub_name: String indicating the name of the sub-attribute to be reset. - For example, sub-name='x' would cause the x1 ans x2 attributes to be set. + For example, sub_name='x' would cause the x1 ans x2 attributes to be set. :type sub_name: str :param v1: Float value to used to set the sub_name1 attribute. @@ -1281,10 +1288,12 @@ def reset(self, sub_name, v1, v2, ov1=None, ov2=None): :param v2: Float value used to set the sub_name2 attribute. :type v2: float - :param ov1: Float value of the old sub-name1 attribute value. Used to compute an offset ratio. + :param ov1: Float value of the old sub-name1 attribute value. + Used to compute an offset ratio. :type ov1: float - :param ov2: Float value of the old sub-name1 attribute value. Used to compute an offset ratio. + :param ov2: Float value of the old sub-name1 attribute value. + Used to compute an offset ratio. :type ov2: float """ @@ -1468,56 +1477,84 @@ def drawLinesAndMarkersLegend(self, canvas, linecolors, linetypes, linewidths, markercolors, markertypes, markersizes, strings, scratched=None, bg=False, render=True): - """Draws a legend with line/marker/text inside a template legend box - Auto adjust text size to make it fit inside the box - Auto arrange the elements to fill the box nicely + """Draws a legend with line/marker/text inside a template legend box. + Auto adjusts text size to make it fit inside the box. + Auto arranges the elements to fill the box nicely. :Example: .. doctest:: template_drawLinesAndMarkersLegend - >>> import vcs >>> x = vcs.init() >>> t = vcs.createtemplate() - >>> t.drawLinesAndMarkersLegend(x, - ... ["red","blue","green"], ["solid","dash","dot"],[1,4,8], - ... ["blue","green","red"], ["cross","square","dot"],[3,4,5], - ... ["sample A","type B","thing C"],True) + >>> l_colors=["red","blue","green"] + >>> l_types=["solid","dash","dot"] + >>> l_widths=[1,4,8] + >>> m_colors=["blue","green","red"] + >>> m_types=["cross","square","dot"] + >>> m_sizes=[3,4,5] + >>> strings=["sample A","type B","thing C"] + >>> scratch=[True,False,True] + >>> t.drawLinesAndMarkersLegend(x, l_colors, l_types, l_widths, + ... m_colors, m_types, m_sizes, strings, scratch) >>> x.png("sample") :param canvas: a VCS canvas object onto which to draw the legend :type canvas: vcs.Canvas.Canvas - :param linecolors: list containing the colors of each line to draw - :type linecolors: list of either colorInt, (r,g,b,opacity), or string color names + :param linecolors: A list containing the colors of each line to draw. + Colors are represented as either an int from 0-255, an rgba tuple, + or a string color name. + :type linecolors: `list`_ + + :param linetypes: A list containing the type of each line to draw. + Line types are represented as either integers or strings. + See :py:class:`vcs.line.Tl` for more information. + :type linetypes: `list`_ + + :param linewidths: A list containing floats each representing the + width of each line. + :type linewidths: `list`_ + + :param markercolors: A list of the markers colors to draw. + Colors are represented as either an int from 0-255, an rgba tuple, + or a string color name. + :type markercolors: `list`_ + + :param markertypes: A list of the marker types to draw. + Marker types are represented as either integers or strings. + See :py:class:`vcs.marker.Tm` for more information. + :type markertypes: `list`_ - :param linetypes: list containing the type of each line to draw - :type linetypes: list on int of line stype strings + :param markersizes: A list of floats representing marker sizes. + :type markersizes: `list`_ - :param linewidths: list containing each line width - :type linewidths: list of float + :param strings: A list of strings to draw next to each line/marker. + :type strings: `list`_ - :param markercolors: list of the markers colors to draw - :type markercolors: list of either colorInt, (r,g,b,opacity), or string color names + :param scratched: A list indicating which strings should be "scratched" + off in the template. - :param markertypes: list of the marker types to draw - :type markertypes: list of int or string of marker names + To "scratch" a string, the corresponding location in the scratched + list must contain either True or the line type to use for the + scratch. A value of False at a given index will leave the + corresponding index of strings untouched. - :param markersizes: list of the size of each marker to draw - :type markersizes: list of float + Size of the scratched list must be equal to the size of the strings + list. - :param strings: list of the string to draw next to each line/marker - :type strings: list of string + Scratch color will match that of text. - :param scratched: None (off) or list. list contains False where no scratch is needed - For scratched provide True or line type to use for scratch - color will match that of text - :type scratched: None or list of bool + If scratched is None, or is not provided, no strings will be + scratched. + :type scratched: `None`_ or `list`_ - :param bg: do we draw in background or foreground + :param bg: Boolean value indicating whether or not to draw in the + background. Defaults to False. :type bg: bool - :param render: do we render or not (so it less flashy) + :param render: Boolean value indicating whether or not to render. + Defaults to True. :type render: bool """ return vcs.utils.drawLinesAndMarkersLegend(canvas, @@ -1527,13 +1564,25 @@ def drawLinesAndMarkersLegend(self, canvas, strings, scratched, bg, render) def drawAttributes(self, x, slab, gm, bg=False, **kargs): - """Draws attribtes of slab onto a canvas + """Draws attributes of slab onto a canvas + + :Example: + + .. doctest:: templates_drawAttributes + + >>> a=vcs.init() + >>> import cdms2 # We need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file + >>> s = f('clt') # use the data file to create a slab + >>> t=a.gettemplate() + >>> b=a.getboxfill() # boxfill gm + >>> t.drawAttributes(a,s,b) # shows attributes of s on canvas :param x: vcs canvas onto which attributes will be drawn :type x: vcs.Canvas.Canvas :param slab: slab to get attributes from - :type slab: cdms2.tvariable.TransientVariable, numpy.ndarray + :type slab: cdms2.tvariable.TransientVariable or numpy.ndarray """ displays = [] # figures out the min and max and set them as atributes... @@ -1610,9 +1659,6 @@ def plot(self, x, slab, gm, bg=False, min=None, max=None, X=None, Y=None, **kargs): """This plots the template stuff on the Canvas. It needs a slab and a graphic method. - - :returns: A list containing all the displays used - :rtype: `list`_ """ displays = [] @@ -1784,7 +1830,9 @@ def drawColorBar(self, colors, levels, legend=None, ext_1='n', ext_2='n', x=None, bg=False, priority=None, cmap=None, style=['solid'], index=[1], opacity=[], **kargs): - """This function, draws the colorbar, it needs: + """ + This function, draws the colorbar, it needs: + colors : The colors to be plotted levels : The levels that each color represent legend : To overwrite, saying just draw box at @@ -1793,6 +1841,20 @@ def drawColorBar(self, colors, levels, legend=None, ext_1='n', x : the canvas where to plot it bg: background mode ? returns a list of displays used + :param colors: + :param levels: + :param legend: + :param ext_1: + :param ext_2: + :param x: + :param bg: + :param priority: + :param cmap: + :param style: + :param index: + :param opacity: + :param kargs: + :return: """ kargs["donotstoredisplay"] = True diff --git a/vcs/unified1D.py b/vcs/unified1D.py index 6246b3b20..3bc8c3a30 100644 --- a/vcs/unified1D.py +++ b/vcs/unified1D.py @@ -813,7 +813,7 @@ def list(self): print "markercolor = ", self.markercolor print "markersize = ", self.markersize print "flip = ", self.flip - list.__doc__ = xmldocs.listdoc + list.__doc__ = xmldocs.listdoc % {"name": "1d", "parent": "'default'"} ########################################################################### # # diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index f8830f8cb..240900c26 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -274,8 +274,24 @@ :param yat: Set value for y axis conversion. :type yat: str """ -listdoc = """ Lists the current values of object attributes""" +# for listdoc, plug in a dictionary where you use it +# Dict Keys: +# "name": String name to complete the call to vcs.get$OBJ_TYPE() +# "parent": String argument for calls to vcs.get$OBJ_TYPE() that require specification of an obj to inherit from. +# mainly used for get1d, but possible uses for text objects also exist (maybe others too). +# If providing a parent name, use either double quotes in a string literal, or a string literal in double +# quotes (i.e. '"parent"' or "'parent'"). Else, use an empty string. +listdoc = """Lists the current values of object attributes + + :Example: + + .. doctest:: listdoc + + >>> a=vcs.init() + >>> obj=a.get%(name)s(%(parent)s) # default + >>> obj.list() # print %(name)s attributes + """ def populate_docstrings(type_dict, target_dict, docstring, method): """ @@ -615,6 +631,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): # this will be used to populate all the docstrings in the same for loop (should better utilize locality) docstrings = {} +# for any of the doc templates, see the obj_details dict above for explanation of the keywords in the template. scriptdoc = """ Saves out a copy of the %(name)s %(type)s in JSON, or Python format to a designated file. From bbe545fc0b3fe4113feda6eba4a5809bd1132abf Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 27 Dec 2016 11:27:55 -0800 Subject: [PATCH 26/45] Updating logs. --- docs/doctest_info/doctest_timing | 4299 ----------------- docs/doctest_info/markdown/Canvas.md | 23 +- docs/doctest_info/markdown/boxfill.md | 45 +- docs/doctest_info/markdown/isofill.md | 40 +- docs/doctest_info/markdown/isoline.md | 45 +- docs/doctest_info/markdown/manageElements.md | 8 +- docs/doctest_info/markdown/meshfill.md | 42 +- docs/doctest_info/markdown/queries.md | 2 +- docs/doctest_info/markdown/template.md | 471 +- docs/doctest_info/markdown/textcombined.md | 2 +- docs/doctest_info/markdown/unified1D.md | 38 +- docs/doctest_info/reports/Canvas.report | 33 +- docs/doctest_info/reports/boxfill.report | 63 +- docs/doctest_info/reports/isofill.report | 58 +- docs/doctest_info/reports/isoline.report | 63 +- .../reports/manageElements.report | 8 +- docs/doctest_info/reports/meshfill.report | 60 +- docs/doctest_info/reports/queries.report | 2 +- docs/doctest_info/reports/template.report | 587 ++- docs/doctest_info/reports/textcombined.report | 2 +- docs/doctest_info/reports/unified1D.report | 56 +- docs/doctest_info/scripts/doctest_vcs.py | 2 +- vcs/xmldocs.py | 2 +- 23 files changed, 1272 insertions(+), 4679 deletions(-) delete mode 100644 docs/doctest_info/doctest_timing diff --git a/docs/doctest_info/doctest_timing b/docs/doctest_info/doctest_timing deleted file mode 100644 index 7592e220e..000000000 --- a/docs/doctest_info/doctest_timing +++ /dev/null @@ -1,4299 +0,0 @@ - 6818260 function calls (6728944 primitive calls) in 19.114 seconds - - Ordered by: standard name - - ncalls tottime percall cumtime percall filename:lineno(function) - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.030 0.030 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.039 0.039 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.031 0.031 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.005 0.005 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.006 0.006 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.007 0.007 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.008 0.008 :1() - 1 0.000 0.000 0.026 0.026 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 1.089 1.089 :1() - 1 0.000 0.000 0.002 0.002 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.015 0.015 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.712 0.712 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.015 0.015 :1() - 1 0.000 0.000 0.006 0.006 :1() - 1 0.000 0.000 0.002 0.002 :1() - 1 0.000 0.000 0.644 0.644 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.013 0.013 :1() - 1 0.000 0.000 0.002 0.002 :1() - 1 0.000 0.000 0.653 0.653 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.495 0.495 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.104 0.104 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.007 0.007 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.525 0.525 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.520 0.520 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.006 0.006 :1() - 1 0.000 0.000 0.005 0.005 :1() - 1 0.000 0.000 0.417 0.417 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 1.130 1.130 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.216 0.216 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.019 0.019 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.172 0.172 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.019 0.019 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.009 0.009 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.816 0.816 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.799 0.799 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.007 0.007 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.643 0.643 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.706 0.706 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.007 0.007 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.002 0.002 :1() - 1 0.000 0.000 0.755 0.755 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.006 0.006 :1() - 1 0.000 0.000 0.005 0.005 :1() - 1 0.000 0.000 1.168 1.168 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.011 0.011 :1() - 1 0.000 0.000 0.005 0.005 :1() - 1 0.000 0.000 0.850 0.850 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.630 0.630 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.178 0.178 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.006 0.006 :1() - 1 0.000 0.000 0.002 0.002 :1() - 1 0.000 0.000 0.002 0.002 :1() - 1 0.000 0.000 0.656 0.656 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.006 0.006 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.798 0.798 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.010 0.010 :1() - 1 0.000 0.000 0.004 0.004 :1() - 1 0.000 0.000 0.684 0.684 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.008 0.008 :1() - 1 0.000 0.000 0.003 0.003 :1() - 1 0.000 0.000 0.734 0.734 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.001 0.001 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1() - 1 0.000 0.000 0.000 0.000 :1(ArgInfo) - 1 0.000 0.000 0.000 0.000 :1(ArgSpec) - 1 0.000 0.000 0.000 0.000 :1(Arguments) - 1 0.000 0.000 0.000 0.000 :1(Attribute) - 1 0.000 0.000 0.000 0.000 :1(DefaultVerifyPaths) - 1 0.000 0.000 0.000 0.000 :1(Match) - 1 0.000 0.000 0.000 0.000 :1(Mismatch) - 1 0.000 0.000 0.000 0.000 :1(ModuleInfo) - 1 0.000 0.000 0.000 0.000 :1(ParseResult) - 1 0.000 0.000 0.000 0.000 :1(SplitResult) - 1 0.000 0.000 0.000 0.000 :1(TestResults) - 1 0.000 0.000 0.000 0.000 :1(Traceback) - 1 0.000 0.000 0.000 0.000 :1(_ASN1Object) - 73 0.000 0.000 0.000 0.000 :8(__new__) - 1 0.000 0.000 0.000 0.000 ASCII.py:2() - 1 0.000 0.000 0.000 0.000 Application.py:19(DV3DApp) - 3 0.000 0.000 0.000 0.000 Application.py:21(__init__) - 1 0.001 0.001 0.002 0.002 Application.py:5() - 3 0.000 0.000 2.245 0.748 Application.py:57(gminit) - 3 0.000 0.000 0.004 0.001 ButtonBarWidget.py:1015(initConfigState) - 9 0.001 0.000 0.290 0.032 ButtonBarWidget.py:1028(initializeConfiguration) - 12 0.000 0.000 0.000 0.000 ButtonBarWidget.py:1038(initializeChildren) - 610 0.000 0.000 0.000 0.000 ButtonBarWidget.py:105(updateWidgetState) - 268 0.089 0.000 0.250 0.001 ButtonBarWidget.py:119(createButtonRepresentation) - 344 0.003 0.000 0.007 0.000 ButtonBarWidget.py:140(setToggleProps) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:15(OriginPosition) - 32 0.000 0.000 0.004 0.000 ButtonBarWidget.py:163(setToggleState) - 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:174(refreshButtonState) - 3 0.000 0.000 0.117 0.039 ButtonBarWidget.py:180(setButtonState) - 51 0.000 0.000 0.119 0.002 ButtonBarWidget.py:191(broadcastState) - 90 0.000 0.000 0.000 0.000 ButtonBarWidget.py:194(place) - 90 0.000 0.000 0.000 0.000 ButtonBarWidget.py:198(size) - 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:201(On) - 12 0.000 0.000 0.000 0.000 ButtonBarWidget.py:206(Off) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:21(Orientation) - 12 0.000 0.000 0.000 0.000 ButtonBarWidget.py:217(deactivate) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:221(ButtonBarHandler) - 23 0.000 0.000 0.000 0.000 ButtonBarWidget.py:223(__init__) - 29 0.000 0.000 0.003 0.000 ButtonBarWidget.py:237(createButtonBarWidget) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:25(ProcessMode) - 162 0.000 0.000 0.000 0.000 ButtonBarWidget.py:258(getButtonBar) - 5 0.000 0.000 0.000 0.000 ButtonBarWidget.py:266(getButtonBars) - 13 0.000 0.000 0.000 0.000 ButtonBarWidget.py:269(findButton) - 3 0.000 0.000 0.001 0.000 ButtonBarWidget.py:275(repositionButtons) - 3 0.000 0.000 0.291 0.097 ButtonBarWidget.py:279(initializeConfigurations) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:314(ButtonBar) - 29 0.001 0.000 0.001 0.000 ButtonBarWidget.py:316(__init__) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:33(Button) - 82 0.000 0.000 0.000 0.000 ButtonBarWidget.py:334(getButton) - 32 0.000 0.000 0.000 0.000 ButtonBarWidget.py:344(updateWindowSize) - 90 0.000 0.000 0.001 0.000 ButtonBarWidget.py:347(placeButton) - 5 0.000 0.000 0.138 0.028 ButtonBarWidget.py:360(render) - 13 0.000 0.000 0.002 0.000 ButtonBarWidget.py:363(build) - 3 0.000 0.000 0.001 0.000 ButtonBarWidget.py:368(reposition) - 13 0.000 0.000 0.001 0.000 ButtonBarWidget.py:373(getScreenPosition) - 268 0.028 0.000 0.303 0.001 ButtonBarWidget.py:38(__init__) - 13 0.000 0.000 0.000 0.000 ButtonBarWidget.py:384(getBufferedPos) - 90 0.000 0.000 0.000 0.000 ButtonBarWidget.py:391(getOffsetScreenPosition) - 90 0.000 0.000 0.000 0.000 ButtonBarWidget.py:407(computeBounds) - 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:415(show) - 13 0.000 0.000 0.000 0.000 ButtonBarWidget.py:449(getRenderer) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:454(ControlBar) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:5() - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:501(ButtonBarWidget) - 29 0.000 0.000 0.002 0.000 ButtonBarWidget.py:503(__init__) - 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:522(show) - 8 0.000 0.000 0.000 0.000 ButtonBarWidget.py:526(isSliderVisible) - 30 0.000 0.000 0.000 0.000 ButtonBarWidget.py:529(setSliderVisibility) - 3 0.000 0.000 0.163 0.054 ButtonBarWidget.py:534(initializeState) - 2 0.000 0.000 0.000 0.000 ButtonBarWidget.py:543(sliceRoundRobin) - 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:554(resetInteractionButtons) - 54 0.000 0.000 0.279 0.005 ButtonBarWidget.py:567(processStateChangeEvent) - 180 0.002 0.000 0.248 0.001 ButtonBarWidget.py:595(addSliderButton) - 88 0.001 0.000 0.189 0.002 ButtonBarWidget.py:604(addConfigButton) - 268 0.002 0.000 0.314 0.001 ButtonBarWidget.py:613(addButton) - 88 0.000 0.000 0.080 0.001 ButtonBarWidget.py:624(addConfigurableFunction) - 180 0.001 0.000 0.034 0.000 ButtonBarWidget.py:629(addConfigurableSliderFunction) - 46 0.000 0.000 0.000 0.000 ButtonBarWidget.py:634(getConfigFunction) - 3 0.000 0.000 0.000 0.000 ButtonBarWidget.py:665(initializeSliderPosition) - 3 0.003 0.001 0.006 0.002 ButtonBarWidget.py:676(createSliderWidget) - 1 0.000 0.000 0.000 0.000 ButtonBarWidget.py:69(setVisibility) - 15 0.000 0.000 0.001 0.000 ButtonBarWidget.py:721(releaseSliders) - 5 0.000 0.000 0.001 0.000 ButtonBarWidget.py:725(positionSlider) - 878 0.000 0.000 0.000 0.000 ButtonBarWidget.py:75(getState) - 5 0.001 0.000 0.012 0.002 ButtonBarWidget.py:751(commandeerControl) - 39 0.000 0.000 0.005 0.000 ButtonBarWidget.py:78(setState) - 63 0.000 0.000 0.001 0.000 ButtonBarWidget.py:780(releaseSlider) - 15 0.000 0.000 0.001 0.000 ButtonBarWidget.py:887(reset) - 5 0.001 0.000 0.277 0.055 ButtonBarWidget.py:890(updateInteractionState) - 6 0.000 0.000 0.000 0.000 ButtonBarWidget.py:90(getFunctionMapKey) - 6 0.000 0.000 0.000 0.000 ButtonBarWidget.py:93(addFunctionKey) - 44 0.000 0.000 0.000 0.000 ButtonBarWidget.py:999(updateChildState) - 1 0.000 0.000 0.000 0.000 CDML.py:4() - 1 0.000 0.000 0.000 0.000 CDML.py:40(CDML) - 1 0.000 0.000 0.000 0.000 CDMLParser.py:19(CDMLParser) - 1 0.002 0.002 0.019 0.019 CDMLParser.py:3() - 1 0.010 0.010 0.084 0.084 Canvas.py:11() - 397 0.013 0.000 0.204 0.001 Canvas.py:110(_determine_arg_list) - 1 0.000 0.000 0.000 0.000 Canvas.py:1105(removeobject) - 169 0.001 0.000 0.015 0.000 Canvas.py:1155(check_name_source) - 352 0.001 0.000 3.756 0.011 Canvas.py:1159(createtemplate) - 795 0.001 0.000 0.005 0.000 Canvas.py:1163(gettemplate) - 678 0.001 0.000 0.003 0.000 Canvas.py:1171(getprojection) - 2 0.000 0.000 1.147 0.574 Canvas.py:1183(boxfill) - 1 0.000 0.000 1.168 1.168 Canvas.py:1246(taylordiagram) - 2 0.000 0.000 1.615 0.808 Canvas.py:1285(meshfill) - 2 0.000 0.000 1.045 0.522 Canvas.py:1378(isofill) - 1 0.000 0.000 0.001 0.001 Canvas.py:1419(createisoline) - 2 0.000 0.000 1.547 0.773 Canvas.py:1427(isoline) - 1 0.001 0.001 0.684 0.684 Canvas.py:1482(xyvsy) - 1 0.000 0.000 0.733 0.733 Canvas.py:1529(yxvsx) - 1 0.000 0.000 0.798 0.798 Canvas.py:1576(xvsy) - 1 0.000 0.000 0.656 0.656 Canvas.py:1629(vector) - 1 0.000 0.000 0.755 0.755 Canvas.py:1670(scatter) - 219 0.001 0.000 0.088 0.000 Canvas.py:1712(createline) - 10 0.000 0.000 0.000 0.000 Canvas.py:1720(getline) - 68 0.003 0.000 1.498 0.022 Canvas.py:1728(line) - 10 0.000 0.000 0.010 0.001 Canvas.py:1838(createmarker) - 2 0.000 0.000 0.190 0.095 Canvas.py:1854(marker) - 21 0.000 0.000 0.106 0.005 Canvas.py:1959(createfillarea) - 1 0.000 0.000 0.104 0.104 Canvas.py:1976(fillarea) - 17 0.000 0.000 0.000 0.000 Canvas.py:2098(gettexttable) - 17 0.000 0.000 0.000 0.000 Canvas.py:2111(gettextorientation) - 455 0.001 0.000 0.313 0.001 Canvas.py:2115(createtextcombined) - 218 0.008 0.000 2.813 0.013 Canvas.py:2140(textcombined) - 94/79 0.006 0.000 7.126 0.090 Canvas.py:2360(plot) - 169 0.343 0.002 0.354 0.002 Canvas.py:2617(__new_elts) - 397/27 0.080 0.000 16.109 0.597 Canvas.py:2624(__plot) - 200 0.000 0.000 0.001 0.000 Canvas.py:278(_process_keyword) - 1 0.000 0.000 0.000 0.000 Canvas.py:294(Canvas) - 397 0.002 0.000 0.003 0.000 Canvas.py:3494(set_convert_labels) - 42 0.000 0.000 0.000 0.000 Canvas.py:383(_setmode) - 350 0.000 0.000 0.000 0.000 Canvas.py:392(_getmode) - 41 0.000 0.000 0.001 0.000 Canvas.py:396(_setwinfo_id) - 41 0.000 0.000 0.000 0.000 Canvas.py:404(_setvarglist) - 24 0.000 0.000 0.000 0.000 Canvas.py:4166(canvasinfo) - 189 0.000 0.000 0.000 0.000 Canvas.py:4175(getcontinentstype) - 1143 0.001 0.000 0.001 0.000 Canvas.py:426(_getanimate) - 42 0.000 0.000 0.000 0.000 Canvas.py:430(_setpausetime) - 27 0.000 0.000 0.003 0.000 Canvas.py:4343(listelements) - 51 0.000 0.000 0.000 0.000 Canvas.py:438(_setviewport) - 10 0.000 0.000 0.000 0.000 Canvas.py:448(_getviewport) - 51 0.000 0.000 0.000 0.000 Canvas.py:452(_setworldcoordinate) - 10 0.000 0.000 0.000 0.000 Canvas.py:458(_getworldcoordinate) - 63 0.000 0.000 0.000 0.000 Canvas.py:462(_setisplottinggridded) - 169 0.000 0.000 0.000 0.000 Canvas.py:474(_getanimate_info) - 41 0.000 0.000 0.003 0.000 Canvas.py:5173(setcontinentsline) - 182 0.000 0.000 0.000 0.000 Canvas.py:5195(getcontinentsline) - 61 0.000 0.000 0.007 0.000 Canvas.py:5201(setcontinentstype) - 362 0.001 0.000 0.028 0.000 Canvas.py:5243(_continentspath) - 13 0.000 0.000 0.000 0.000 Canvas.py:5496(getcolormap) - 20 0.000 0.000 0.000 0.000 Canvas.py:559(savecontinentstype) - 1 0.000 0.000 0.000 0.000 Canvas.py:5657(orientation) - 20 0.001 0.000 0.025 0.001 Canvas.py:567(_reconstruct_tv) - 42 0.000 0.000 0.000 0.000 Canvas.py:5680(getcolormapname) - 80 0.000 0.000 0.009 0.000 Canvas.py:588() - 1 0.000 0.000 0.000 0.000 Canvas.py:62(SIGNAL) - 41 0.000 0.000 0.001 0.000 Canvas.py:64(__init__) - 41 0.003 0.000 0.017 0.000 Canvas.py:804(__init__) - 349 0.001 0.000 0.001 0.000 Canvas.py:986(initLogoDrawing) - 12 0.000 0.000 0.010 0.001 ColorMapManager.py:125(setAlphaRange) - 9 0.000 0.000 0.000 0.000 ColorMapManager.py:141(getDisplayLookupTable) - 3 0.000 0.000 0.000 0.000 ColorMapManager.py:144(getImageScale) - 12 0.000 0.000 0.000 0.000 ColorMapManager.py:147(setScale) - 12 0.000 0.000 0.000 0.000 ColorMapManager.py:152(setDisplayRange) - 24 0.008 0.000 0.015 0.001 ColorMapManager.py:163(set_lut) - 1 0.000 0.000 0.000 0.000 ColorMapManager.py:19(AlphaManager) - 10 0.000 0.000 0.000 0.000 ColorMapManager.py:21(__init__) - 24 0.000 0.000 0.015 0.001 ColorMapManager.py:240(load_lut_from_list) - 24 0.002 0.000 0.020 0.001 ColorMapManager.py:249(load_lut) - 24 0.000 0.000 0.000 0.000 ColorMapManager.py:264(load_array) - 24 0.000 0.000 0.000 0.000 ColorMapManager.py:29(setNumberOfColors) - 12 0.000 0.000 0.000 0.000 ColorMapManager.py:36(setAlphaRange) - 6144 0.004 0.000 0.004 0.000 ColorMapManager.py:49(getAlphaValue) - 1 0.000 0.000 0.257 0.257 ColorMapManager.py:5() - 1 0.000 0.000 0.000 0.000 ColorMapManager.py:72(ColorMapManager) - 10 0.000 0.000 0.000 0.000 ColorMapManager.py:74(__init__) - 9 0.009 0.001 0.010 0.001 ColorMapManager.py:95(createActor) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:112(Error) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:139(NoSectionError) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:147(DuplicateSectionError) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:155(NoOptionError) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:165(InterpolationError) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:174(InterpolationMissingOptionError) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:188(InterpolationSyntaxError) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:192(InterpolationDepthError) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:204(ParsingError) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:217(MissingSectionHeaderError) - 1 0.000 0.000 0.001 0.001 ConfigParser.py:231(RawConfigParser) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:558(_Chainmap) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:588(ConfigParser) - 1 0.000 0.000 0.000 0.000 ConfigParser.py:686(SafeConfigParser) - 1 0.000 0.000 0.002 0.002 ConfigParser.py:88() - 5 0.000 0.000 0.002 0.000 ConfigurationFunctions.py:1002(encodeToString) - 5 0.000 0.000 0.008 0.002 ConfigurationFunctions.py:1014(decodeFromString) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1025(InputSpecs) - 4 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1027(__init__) - 129 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1040(isFloat) - 4 0.000 0.000 0.026 0.007 ConfigurationFunctions.py:1062(initializeInput) - 45 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1067(input) - 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1126(getWorldCoord) - 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1174(getRangeBounds) - 9 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1179(getDataRangeBounds) - 6 0.000 0.000 0.005 0.001 ConfigurationFunctions.py:118(getMaxScalarValue) - 102 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1202(getDataValue) - 6 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1212(getDataValues) - 21 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1234(getImageValues) - 22 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1257(getMetadata) - 4 0.000 0.000 0.026 0.007 ConfigurationFunctions.py:1266(updateMetadata) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:131(PlotType) - 4 0.000 0.000 0.008 0.002 ConfigurationFunctions.py:1326(computeMetadata) - 18 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1352(addMetadata) - 18 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1362(getClassName) - 24 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:1365(bound) - 4 0.000 0.000 0.018 0.005 ConfigurationFunctions.py:1367(getRangeBounds) - 4 0.000 0.000 0.008 0.002 ConfigurationFunctions.py:1377(extractMetadata) - 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:151(getPointsLayout) - 12 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:158(isDesignated) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:174(SIGNAL) - 1672 0.012 0.000 0.110 0.000 ConfigurationFunctions.py:176(__init__) - 100/74 0.001 0.000 0.121 0.002 ConfigurationFunctions.py:181(__call__) - 539 0.005 0.000 0.014 0.000 ConfigurationFunctions.py:191(connect) - 195 0.001 0.000 0.001 0.000 ConfigurationFunctions.py:213(serialize_address) - 360 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:216(deserialize_address) - 360 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:221(get_parameter_name) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:230(ConfigManager) - 43 0.001 0.000 0.007 0.000 ConfigurationFunctions.py:233(__init__) - 684/438 0.005 0.000 0.090 0.000 ConfigurationFunctions.py:257(getParameter) - 8 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:28(get_scalar_value) - 291 0.002 0.000 0.114 0.000 ConfigurationFunctions.py:321(getConfigurableFunction) - 842 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:336(addParam) - 291 0.002 0.000 0.088 0.000 ConfigurationFunctions.py:349(addParameter) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:38(CDMSDataType) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:47(DataCache) - 10 0.005 0.001 0.332 0.033 ConfigurationFunctions.py:474(getParameterList) - 23 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:49(__init__) - 1 0.002 0.002 0.002 0.002 ConfigurationFunctions.py:5() - 6 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:53(getDatatypeString) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:535(ConfigParameter) - 661 0.007 0.000 0.085 0.000 ConfigurationFunctions.py:537(__init__) - 356 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:562(addChild) - 714 0.001 0.000 0.001 0.000 ConfigurationFunctions.py:590(addValueKey) - 419/295 0.001 0.000 0.004 0.000 ConfigurationFunctions.py:620(childUpdate) - 12 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:64(getBool) - 2714 0.006 0.000 0.010 0.000 ConfigurationFunctions.py:655(getValue) - 635/292 0.003 0.000 0.009 0.000 ConfigurationFunctions.py:663(getInitValue) - 714/295 0.004 0.000 0.008 0.000 ConfigurationFunctions.py:689(setValue) - 10 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:716(setValues) - 827 0.001 0.000 0.002 0.000 ConfigurationFunctions.py:72(makeList) - 9 0.000 0.000 0.002 0.000 ConfigurationFunctions.py:723(initValues) - 686 0.002 0.000 0.005 0.000 ConfigurationFunctions.py:732(getValues) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:778(WrappedList) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:802(ConfigurableFunction) - 291 0.004 0.000 0.103 0.000 ConfigurationFunctions.py:808(__init__) - 291 0.000 0.000 0.001 0.000 ConfigurationFunctions.py:843(getState) - 39 0.000 0.000 0.002 0.000 ConfigurationFunctions.py:846(setState) - 2 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:856(sameGroup) - 111 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:872(getValueLength) - 5 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:875(open) - 2 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:881(close) - 12 0.000 0.000 0.119 0.010 ConfigurationFunctions.py:884(processInteractionEvent) - 48 0.000 0.000 0.287 0.006 ConfigurationFunctions.py:888(init) - 1 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:931(ConfigurableSliderFunction) - 180 0.002 0.000 0.031 0.000 ConfigurationFunctions.py:933(__init__) - 180 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:951(getValueLength) - 18 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:957(setRangeBounds) - 5 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:960(getSliderBounds) - 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:969(setSliderBoundsToRelative) - 5 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:974(getTitle) - 7 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:980(getNewVtkDataArray) - 3 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:991(getFloatStr) - 12 0.000 0.000 0.000 0.000 ConfigurationFunctions.py:995(getStringDataArray) - 3 0.000 0.000 0.000 0.000 DV3DPlot.py:1010(processConfigurationToggle) - 23 0.000 0.000 0.002 0.000 DV3DPlot.py:1027(addInteractionButtons) - 1 0.000 0.000 0.000 0.000 DV3DPlot.py:103(TextDisplayMgr) - 107 0.001 0.000 0.003 0.000 DV3DPlot.py:1032(getInteractionButtons) - 61 0.002 0.000 0.010 0.000 DV3DPlot.py:1042(onWindowRenderEvent) - 3 0.000 0.000 0.000 0.000 DV3DPlot.py:105(__init__) - 3 0.000 0.000 0.006 0.002 DV3DPlot.py:1077(onRenderWindowResize) - 3 0.001 0.000 0.408 0.136 DV3DPlot.py:1117(addLogo) - 3 0.001 0.000 0.001 0.000 DV3DPlot.py:1141(createRenderWindow) - 9 0.001 0.000 0.003 0.000 DV3DPlot.py:117(getTextActor) - 24 0.000 0.000 0.000 0.000 DV3DPlot.py:1172(updateInteractionStyle) - 79 0.000 0.000 0.000 0.000 DV3DPlot.py:1179(enableRender) - 79/70 0.001 0.000 0.985 0.014 DV3DPlot.py:1182(render) - 66 0.002 0.000 0.012 0.000 DV3DPlot.py:1217(getColormapManager) - 12 0.001 0.000 0.133 0.011 DV3DPlot.py:1233(setColormap) - 18 0.000 0.000 0.000 0.000 DV3DPlot.py:1258(getMetadata) - 3 0.000 0.000 0.077 0.026 DV3DPlot.py:1275(start) - 3 0.000 0.000 0.002 0.001 DV3DPlot.py:1307(initCamera) - 3 0.000 0.000 0.000 0.000 DV3DPlot.py:1330(getCamera) - 3 0.000 0.000 0.000 0.000 DV3DPlot.py:1336(printCameraPos) - 18 0.000 0.000 0.001 0.000 DV3DPlot.py:1347(getColormapSpec) - 9 0.000 0.000 0.000 0.000 DV3DPlot.py:137(getProp) - 3 0.001 0.000 0.001 0.000 DV3DPlot.py:150(createTextActor) - 1 0.000 0.000 0.000 0.000 DV3DPlot.py:172(DV3DPlot) - 23 0.002 0.000 0.189 0.008 DV3DPlot.py:188(__init__) - 1 0.000 0.000 0.000 0.000 DV3DPlot.py:22(AnimationStepper) - 23 0.000 0.000 0.000 0.000 DV3DPlot.py:24(__init__) - 23 0.000 0.000 0.000 0.000 DV3DPlot.py:263(setAnimationStepper) - 5 0.001 0.000 0.006 0.001 DV3DPlot.py:287(processConfigParameterChange) - 5 0.000 0.000 0.005 0.001 DV3DPlot.py:298(getActiveConstituentNames) - 161 0.000 0.000 0.000 0.000 DV3DPlot.py:309(addKeyPressHandler) - 1 0.006 0.006 0.263 0.263 DV3DPlot.py:5() - 3 0.000 0.000 0.000 0.000 DV3DPlot.py:518(processShowColorbarCommand) - 3 0.000 0.000 0.281 0.094 DV3DPlot.py:537(initializePlots) - 3 0.002 0.001 0.053 0.018 DV3DPlot.py:546(processChooseColormapCommand) - 33 0.001 0.000 0.005 0.000 DV3DPlot.py:581(isConstituentConfigEnabled) - 3 0.000 0.000 0.000 0.000 DV3DPlot.py:610(processAnimationCommand) - 9 0.000 0.000 0.012 0.001 DV3DPlot.py:768(updateTextDisplay) - 9 0.000 0.000 0.003 0.000 DV3DPlot.py:780(getLabelActor) - 9 0.000 0.000 0.000 0.000 DV3DPlot.py:790(getLut) - 30 0.000 0.000 0.000 0.000 DV3DPlot.py:797(addObserver) - 1 0.000 0.000 0.000 0.000 DV3DPlot.py:80(SaveAnimation) - 3 0.006 0.002 0.415 0.138 DV3DPlot.py:801(createRenderer) - 3 0.000 0.000 0.000 0.000 DV3DPlot.py:870(updateInteractor) - 6 0.000 0.000 0.000 0.000 DV3DPlot.py:873(activateEvent) - 6 0.000 0.000 0.005 0.001 DV3DPlot.py:908(buildConfigurationButton) - 3 0.000 0.000 0.000 0.000 DV3DPlot.py:917(showConfigurationButton) - 3 0.000 0.000 0.090 0.030 DV3DPlot.py:921(buildPlotButtons) - 2 0.000 0.000 0.000 0.000 DV3DPlot.py:949(processSurfacePlotCommand) - 2 0.000 0.000 0.000 0.000 DV3DPlot.py:964(processVolumePlotCommand) - 3 0.000 0.000 0.090 0.030 DV3DPlot.py:982(fetchPlotButtons) - 8 0.000 0.000 0.000 0.000 DV3DPlot.py:989(getPlotButtonbar) - 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:141(vtkPointCloud) - 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:17(ScalarRangeType) - 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:21(PCProc) - 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:26(ExecutionDataPacket) - 1 0.003 0.003 0.003 0.003 DistributedPointCollections.py:5() - 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:506(vtkSubProcPointCloud) - 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:639(vtkLocalPointCloud) - 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:64(PointCollectionExecutionTarget) - 1 0.000 0.000 0.000 0.000 DistributedPointCollections.py:717(vtkPartitionedPointCloud) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:101(OptionalStructPointer) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:112(OptionalNamedConstant) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:126(ESMP_Initialize) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:1390(ESMP_LogSet) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:33(ESMP_Field) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:38(ESMP_InterfaceIntStruct) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:41(ESMP_InterfaceInt) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:50(ESMP_Mesh) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:53(ESMP_GridStruct) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:61(ESMP_Grid) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:72(ESMP_VM) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:77(OptionalNumpyArrayInt32) - 1 0.000 0.000 0.000 0.000 ESMP_API.py:89(OptionalNumpyArrayFloat64) - 1 0.001 0.001 0.002 0.002 ESMP_API.py:9() - 1 0.000 0.000 0.000 0.000 ESMP_Config.py:1() - 1 0.001 0.001 0.001 0.001 ESMP_Constants.py:10() - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:107(ESMP_FileFormat) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:151(ESMP_GridItem) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:178(ESMP_LogKind) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:204(ESMP_MeshElemType) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:238(ESMP_MeshLoc) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:258(ESMP_Region) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:283(ESMP_RegridMethod) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:324(ESMP_StaggerLoc2D) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:361(ESMP_StaggerLoc3D) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:414(ESMP_TypeKind) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:43(EnumException) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:445(ESMP_UnmappedAction) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:47(Enum) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:48(__metaclass__) - 1 0.000 0.000 0.000 0.000 ESMP_Constants.py:61(ESMP_CoordSys) - 1 0.002 0.002 0.052 0.052 ESMP_LoadESMF.py:10() - 1 0.000 0.000 0.000 0.000 ElementPath.py:237(_SelectorContext) - 1 0.000 0.000 0.002 0.002 ElementPath.py:59() - 1 0.000 0.000 0.000 0.000 ElementTree.py:104(_SimpleElementPath) - 1 0.000 0.000 0.000 0.000 ElementTree.py:1210(_IterParseIterator) - 1 0.000 0.000 0.000 0.000 ElementTree.py:1376(TreeBuilder) - 1 0.000 0.000 0.000 0.000 ElementTree.py:138(ParseError) - 1 0.000 0.000 0.000 0.000 ElementTree.py:1466(XMLParser) - 1 0.000 0.000 0.000 0.000 ElementTree.py:171(Element) - 1 0.000 0.000 0.000 0.000 ElementTree.py:580(QName) - 1 0.002 0.002 0.003 0.003 ElementTree.py:59() - 1 0.000 0.000 0.000 0.000 ElementTree.py:605(ElementTree) - 1 0.002 0.002 0.002 0.002 EzTemplate.py:1() - 1 0.000 0.000 0.000 0.000 Filler.py:1() - 1 0.000 0.000 0.000 0.000 Filler.py:2(StringConstructor) - 1 0.000 0.000 0.000 0.000 Filler.py:32(__init__) - 1 0.000 0.000 0.000 0.000 Filler.py:40(keys) - 3 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1004(ConvertPositionFromRelative) - 7 0.000 0.000 0.006 0.001 ImagePlaneWidget.py:1014(SetSlicePosition) - 3 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1119(GetSliceIndex) - 77 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1244(Modified) - 6 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1255(GetOrigin) - 63 0.001 0.000 0.001 0.000 ImagePlaneWidget.py:13(getUnscaledWorldExtent) - 3 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:131(HasThirdDimension) - 29 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1313(GetVector1) - 29 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1321(GetVector2) - 7 0.002 0.000 0.002 0.000 ImagePlaneWidget.py:1329(GeneratePlaneOutline) - 7 0.002 0.000 0.003 0.000 ImagePlaneWidget.py:1366(GenerateCursor) - 6 0.002 0.000 0.003 0.001 ImagePlaneWidget.py:1395(GenerateTexturePlane) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1421(ScalarSliceWidget) - 6 0.000 0.000 0.012 0.002 ImagePlaneWidget.py:1423(__init__) - 6 0.000 0.000 0.077 0.013 ImagePlaneWidget.py:1428(SetEnabled) - 6 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1461(VisibilityOff) - 4 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1466(VisibilityOn) - 48 0.000 0.000 0.001 0.000 ImagePlaneWidget.py:1487(SetLookupTable) - 60 0.001 0.000 0.001 0.000 ImagePlaneWidget.py:1491(SetResliceInterpolate) - 78 0.001 0.000 0.089 0.001 ImagePlaneWidget.py:1495(UpdateInputs) - 72 0.010 0.000 0.047 0.001 ImagePlaneWidget.py:1505(initTexturePlane) - 6 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1521(SetPicker) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1530(StreamlineSliceWidget) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:16(ImagePlaneWidget) - 7 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:161(GetPlaneProperty) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1675(VectorSliceWidget) - 1 0.000 0.000 0.001 0.001 ImagePlaneWidget.py:1677(__init__) - 2 0.000 0.000 0.009 0.005 ImagePlaneWidget.py:1702(UpdateCut) - 20 0.000 0.000 0.003 0.000 ImagePlaneWidget.py:1714(initGlyphMapper) - 9 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:173(SetUserControlledLookupTable) - 49 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:176(SetTextureInterpolate) - 1 0.000 0.000 0.002 0.002 ImagePlaneWidget.py:1778(createArrowSources) - 2 0.000 0.000 0.006 0.003 ImagePlaneWidget.py:179(SetPlaneOrientationToXAxes) - 20 0.000 0.000 0.015 0.001 ImagePlaneWidget.py:1799(UpdateInputs) - 2 0.000 0.000 0.009 0.005 ImagePlaneWidget.py:1805(ApplyGlyphDecimationFactor) - 2 0.000 0.000 0.009 0.005 ImagePlaneWidget.py:182(SetPlaneOrientationToYAxes) - 1 0.000 0.000 0.014 0.014 ImagePlaneWidget.py:1823(processGlyphScaleCommand) - 1 0.000 0.000 0.009 0.009 ImagePlaneWidget.py:1848(processGlyphDensityCommand) - 3 0.000 0.000 0.004 0.001 ImagePlaneWidget.py:185(SetPlaneOrientationToZAxes) - 2 0.000 0.000 0.014 0.007 ImagePlaneWidget.py:1877(updateScaling) - 2 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:188(MatchesBounds) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:1899(LICSliceWidget) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:2() - 10 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:202(SetRenderer) - 21/14 0.000 0.000 0.085 0.006 ImagePlaneWidget.py:208(ActivateEvent) - 7 0.000 0.000 0.085 0.012 ImagePlaneWidget.py:224(SetInteractor) - 7 0.000 0.000 0.085 0.012 ImagePlaneWidget.py:240(SetEnabled) - 7 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:260(VisibilityOff) - 5 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:265(VisibilityOn) - 7 0.003 0.000 0.010 0.001 ImagePlaneWidget.py:32(__init__) - 28 0.001 0.000 0.003 0.000 ImagePlaneWidget.py:320(BuildRepresentation) - 7 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:601(CreateDefaultProperties) - 14 0.001 0.000 0.097 0.007 ImagePlaneWidget.py:630(PlaceWidget) - 7 0.001 0.000 0.020 0.003 ImagePlaneWidget.py:676(SetPlaneOrientation) - 63 0.003 0.000 0.084 0.001 ImagePlaneWidget.py:747(SetInput) - 98 0.001 0.000 0.054 0.001 ImagePlaneWidget.py:779(UpdateInputs) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:793(updateTextDisplay) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:796(getPlaneHeightCoord) - 1 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:8(DisplayMode) - 36 0.004 0.000 0.036 0.001 ImagePlaneWidget.py:828(UpdatePlane) - 69 0.000 0.000 0.001 0.000 ImagePlaneWidget.py:953(SetResliceInterpolate) - 6 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:971(CreateDefaultLookupTable) - 56 0.000 0.000 0.000 0.000 ImagePlaneWidget.py:983(SetLookupTable) - 1 0.000 0.000 0.000 0.000 ListWidget.py:122(ColorbarListWidget) - 1 0.000 0.000 0.000 0.000 ListWidget.py:15(ListWidget) - 1 0.000 0.000 0.000 0.000 ListWidget.py:5() - 1 0.000 0.000 0.000 0.000 MV2.py:1() - 63 0.000 0.000 0.016 0.000 MV2.py:111(commonAxes) - 63 0.000 0.000 0.003 0.000 MV2.py:165(commonGrid) - 63 0.000 0.000 0.003 0.000 MV2.py:185(commonGrid1) - 1 0.000 0.000 0.000 0.000 MV2.py:213(var_binary_operation) - 20 0.000 0.000 0.000 0.000 MV2.py:214(__init__) - 63 0.001 0.000 0.080 0.001 MV2.py:221(__call__) - 26 0.000 0.000 0.000 0.000 MV2.py:303(_conv_axis_arg) - 172 0.000 0.000 0.018 0.000 MV2.py:33(_makeMaskedArg) - 1 0.000 0.000 0.000 0.000 MV2.py:4() - 26 0.001 0.000 0.075 0.003 MV2.py:400(average) - 34 0.000 0.000 0.004 0.000 MV2.py:43(_extractMetadata) - 4 0.000 0.000 0.006 0.001 MV2.py:525(masked_equal) - 4 0.000 0.000 0.007 0.002 MV2.py:620(transpose) - 1 0.000 0.000 0.000 0.000 MV2.py:634(_minimum_operation) - 1 0.000 0.000 0.000 0.000 MV2.py:636(__init__) - 6 0.000 0.000 0.001 0.000 MV2.py:642(__call__) - 1 0.000 0.000 0.000 0.000 MV2.py:69(var_unary_operation) - 1 0.000 0.000 0.000 0.000 MV2.py:690(_maximum_operation) - 1 0.000 0.000 0.000 0.000 MV2.py:692(__init__) - 6 0.000 0.000 0.001 0.000 MV2.py:698(__call__) - 22 0.000 0.000 0.000 0.000 MV2.py:70(__init__) - 1 0.000 0.000 0.000 0.000 MV2.py:82(var_unary_operation_with_axis) - 2 0.000 0.000 0.000 0.000 MV2.py:83(__init__) - 60 0.000 0.000 0.000 0.000 MV2.py:879(isMaskedVariable) - 63 0.000 0.000 0.016 0.000 MV2.py:96(commonDomain) - 3 0.000 0.000 0.156 0.052 MapManager.py:147(getBaseMapActor) - 3 0.000 0.000 0.000 0.000 MapManager.py:164(ComputeCornerPosition) - 6 0.000 0.000 0.000 0.000 MapManager.py:181(RollMap) - 1 0.000 0.000 0.000 0.000 MapManager.py:22(MapManager) - 3 0.000 0.000 0.000 0.000 MapManager.py:222(NormalizeMapLon) - 3 0.000 0.000 0.000 0.000 MapManager.py:24(__init__) - 3 0.000 0.000 0.000 0.000 MapManager.py:43(setMapOpacity) - 1 0.000 0.000 0.000 0.000 MapManager.py:5() - 3 0.000 0.000 0.000 0.000 MapManager.py:85(updateMapOpacity) - 3 0.001 0.000 0.156 0.052 MapManager.py:91(build) - 1 0.000 0.000 0.000 0.000 Multi.py:1() - 1 0.000 0.000 0.000 0.000 Multi.py:133(Multi) - 1 0.000 0.000 0.000 0.000 Multi.py:24(Spacing) - 1 0.000 0.000 0.000 0.000 Multi.py:46(Margins) - 1 0.000 0.000 0.000 0.000 Multi.py:87(Legend) - 1 0.000 0.000 0.000 0.000 MultiVarPointCollection.py:10(InterfaceType) - 1 0.000 0.000 0.000 0.000 MultiVarPointCollection.py:32(PlotType) - 1 0.000 0.000 0.000 0.000 MultiVarPointCollection.py:5() - 1 0.000 0.000 0.000 0.000 MultiVarPointCollection.py:58(MultiVarPointCollection) - 8 0.000 0.000 0.000 0.000 Pboxeslines.py:108(__init__) - 1 0.000 0.000 0.000 0.000 Pboxeslines.py:34(Pbl) - 1 0.000 0.000 0.000 0.000 Pboxeslines.py:4() - 1 0.000 0.000 0.000 0.000 Pdata.py:119(__init__) - 1 0.000 0.000 0.000 0.000 Pdata.py:28(Pds) - 1 0.000 0.000 0.000 0.000 Pdata.py:4() - 7 0.000 0.000 0.001 0.000 Pformat.py:122(__init__) - 2800 0.001 0.000 0.001 0.000 Pformat.py:171(_getformat) - 3094 0.003 0.000 0.012 0.000 Pformat.py:174(_setformat) - 1 0.000 0.000 0.000 0.000 Pformat.py:33(Pf) - 1 0.000 0.000 0.000 0.000 Pformat.py:4() - 1 0.000 0.000 0.000 0.000 Plegend.py:132(__init__) - 1 0.000 0.000 0.000 0.000 Plegend.py:34(Pls) - 1 0.000 0.000 0.000 0.000 Plegend.py:4() - 1 0.000 0.000 0.000 0.000 PointCloudViewer.py:113(ConfigMode) - 1 0.000 0.000 0.000 0.000 PointCloudViewer.py:119(Counter) - 1 0.000 0.000 0.000 0.000 PointCloudViewer.py:1411(QPointCollectionMgrThread) - 1 0.000 0.000 0.000 0.000 PointCloudViewer.py:151(CPCPlot) - 10 0.000 0.000 0.171 0.017 PointCloudViewer.py:153(__init__) - 1 0.002 0.002 0.006 0.006 PointCloudViewer.py:5() - 1 0.000 0.000 0.000 0.000 PointCollection.py:28(PointCollection) - 1 0.000 0.000 0.000 0.000 PointCollection.py:5() - 22 0.000 0.000 0.001 0.000 Ptext.py:120(__init__) - 1 0.000 0.000 0.000 0.000 Ptext.py:33(Pt) - 1 0.000 0.000 0.000 0.000 Ptext.py:4() - 2 0.000 0.000 0.000 0.000 Pxlabels.py:120(__init__) - 1 0.000 0.000 0.000 0.000 Pxlabels.py:33(Pxl) - 1 0.000 0.000 0.000 0.000 Pxlabels.py:4() - 4 0.000 0.000 0.000 0.000 Pxtickmarks.py:121(__init__) - 1 0.000 0.000 0.000 0.000 Pxtickmarks.py:34(Pxt) - 1 0.000 0.000 0.000 0.000 Pxtickmarks.py:4() - 2 0.000 0.000 0.000 0.000 Pylabels.py:120(__init__) - 1 0.000 0.000 0.000 0.000 Pylabels.py:33(Pyl) - 1 0.001 0.001 0.001 0.001 Pylabels.py:4() - 4 0.000 0.000 0.000 0.000 Pytickmarks.py:120(__init__) - 1 0.000 0.000 0.000 0.000 Pytickmarks.py:33(Pyt) - 1 0.000 0.000 0.000 0.000 Pytickmarks.py:4() - 13 0.001 0.000 0.185 0.014 RectilinearGridPlot.py:102(__init__) - 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1086(processToggleClippingCommand) - 3 0.000 0.000 0.015 0.005 RectilinearGridPlot.py:1214(generateCTF) - 12 0.000 0.000 0.211 0.018 RectilinearGridPlot.py:1228(setColormap) - 6 0.016 0.003 0.020 0.003 RectilinearGridPlot.py:1242(rebuildColorTransferFunction) - 3 0.000 0.000 0.002 0.001 RectilinearGridPlot.py:1276(generateOTF) - 12 0.001 0.000 0.003 0.000 RectilinearGridPlot.py:1288(getTransferFunctionPoints) - 84 0.001 0.000 0.002 0.000 RectilinearGridPlot.py:1360(getNewNode) - 6 0.000 0.000 0.004 0.001 RectilinearGridPlot.py:1369(updateOTF) - 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1438(setZScale) - 49 0.001 0.000 0.002 0.000 RectilinearGridPlot.py:1449(setInputZScale) - 3 0.000 0.000 0.037 0.012 RectilinearGridPlot.py:1468(initConstituentOpacities) - 12 0.000 0.000 0.083 0.007 RectilinearGridPlot.py:1476(updateOpacity) - 21 0.001 0.000 0.203 0.010 RectilinearGridPlot.py:1517(updatingColormap) - 31 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1525(getPlaneWidget) - 12 0.000 0.000 0.001 0.000 RectilinearGridPlot.py:1531(modifySlicePlaneVisibility) - 24 0.002 0.000 0.257 0.011 RectilinearGridPlot.py:1615(updateModule) - 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1652(getLayerColor) - 3 0.000 0.000 0.086 0.029 RectilinearGridPlot.py:1663(ProcessIPWAction) - 27 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:172(debug_log) - 3 0.000 0.000 0.037 0.012 RectilinearGridPlot.py:176(processOpacityScalingCommand) - 4 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:1779(setContourVisibility) - 3 0.000 0.000 0.058 0.019 RectilinearGridPlot.py:1812(initConstituentColormapScaling) - 9 0.000 0.000 0.057 0.006 RectilinearGridPlot.py:1821(scaleColormap) - 3 0.000 0.000 0.074 0.025 RectilinearGridPlot.py:212(processColorScaleCommand) - 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:279(setIsosurfaceLevel) - 1 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:28(TransferFunction) - 3 0.000 0.000 0.001 0.000 RectilinearGridPlot.py:285(processIsosurfaceValueCommand) - 3 0.000 0.000 0.003 0.001 RectilinearGridPlot.py:319(processThresholdRangeCommand) - 19 0.001 0.000 0.214 0.011 RectilinearGridPlot.py:347(processSlicingCommand) - 1 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:37(NodeData) - 84 0.001 0.000 0.001 0.000 RectilinearGridPlot.py:45(__init__) - 6 0.000 0.000 0.001 0.000 RectilinearGridPlot.py:466(initializeClipper) - 6 0.000 0.000 0.001 0.000 RectilinearGridPlot.py:475(activateEvent) - 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:480(getVolumeBounds) - 3 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:498(clipOff) - 1 0.006 0.006 0.013 0.013 RectilinearGridPlot.py:5() - 6 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:577(getSgnRangeBounds) - 18 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:60(setImageVectorData) - 9 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:623(onRender) - 84 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:75(getImagePosition) - 1 0.000 0.000 0.000 0.000 RectilinearGridPlot.py:85(RectGridPlot) - 3 0.002 0.001 0.689 0.230 RectilinearGridPlot.py:962(buildPipeline) - 1 0.000 0.000 0.000 0.000 Shapefile.py:1000(Editor) - 1 0.000 0.000 0.000 0.000 Shapefile.py:1118(shapeFileReader) - 3 0.000 0.000 0.000 0.000 Shapefile.py:1120(__init__) - 3 0.000 0.000 0.000 0.000 Shapefile.py:1127(setColors) - 3 0.000 0.000 0.000 0.000 Shapefile.py:1131(setWidth) - 3 0.141 0.047 0.248 0.083 Shapefile.py:1136(getPolyLines) - 1 0.000 0.000 0.000 0.000 Shapefile.py:1226(multiRoiShape) - 3 0.000 0.000 0.000 0.000 Shapefile.py:1228(__init__) - 3 0.000 0.000 0.010 0.003 Shapefile.py:1232(openFile) - 3 0.000 0.000 0.010 0.003 Shapefile.py:1242(read) - 1 0.000 0.000 0.000 0.000 Shapefile.py:179(_ShapeRecord) - 1 0.000 0.000 0.000 0.000 Shapefile.py:185(ShapefileException) - 1 0.000 0.000 0.000 0.000 Shapefile.py:189(Reader) - 3 0.000 0.000 0.004 0.001 Shapefile.py:207(__init__) - 3 0.000 0.000 0.004 0.001 Shapefile.py:242(load) - 405 0.001 0.000 0.001 0.000 Shapefile.py:267(__getFileObj) - 3 0.000 0.000 0.002 0.001 Shapefile.py:288(__shpHeader) - 402 0.052 0.000 0.075 0.000 Shapefile.py:306(__shape) - 3 0.001 0.000 0.076 0.025 Shapefile.py:400(shapes) - 15 0.000 0.000 0.000 0.000 Shapefile.py:41(b) - 3 0.000 0.000 0.001 0.000 Shapefile.py:417(__dbfHeaderLength) - 3 0.000 0.000 0.001 0.000 Shapefile.py:427(__dbfHeader) - 1 0.000 0.000 0.000 0.000 Shapefile.py:547(Writer) - 12 0.000 0.000 0.000 0.000 Shapefile.py:56(u) - 3 0.000 0.000 0.000 0.000 Shapefile.py:71(is_string) - 1 0.000 0.000 0.000 0.000 Shapefile.py:77(_Array) - 1 0.000 0.000 0.001 0.001 Shapefile.py:9() - 1 0.000 0.000 0.000 0.000 Shapefile.py:93(_Shape) - 402 0.000 0.000 0.000 0.000 Shapefile.py:94(__init__) - 1 0.000 0.000 0.000 0.000 SliceViewer.py:19(SlicePlot) - 1 0.000 0.000 0.000 0.000 SliceViewer.py:5() - 1511 0.002 0.000 0.003 0.000 StringIO.py:119(read) - 912 0.002 0.000 0.002 0.000 StringIO.py:139(readline) - 246 0.001 0.000 0.002 0.000 StringIO.py:187(truncate) - 903 0.003 0.000 0.004 0.000 StringIO.py:208(write) - 503 0.001 0.000 0.001 0.000 StringIO.py:258(getvalue) - 1 0.000 0.000 0.000 0.000 StringIO.py:30() - 4075 0.001 0.000 0.001 0.000 StringIO.py:38(_complain_ifclosed) - 1 0.000 0.000 0.000 0.000 StringIO.py:42(StringIO) - 17 0.000 0.000 0.000 0.000 StringIO.py:54(__init__) - 10 0.000 0.000 0.000 0.000 StringIO.py:81(close) - 1 0.000 0.000 0.000 0.000 StructuredDataset.py:154(CDMSDatasetRecord) - 7 0.000 0.000 0.000 0.000 StructuredDataset.py:19(getItem) - 1 0.000 0.000 0.000 0.000 StructuredDataset.py:35(MemoryLogger) - 1 0.000 0.000 0.000 0.000 StructuredDataset.py:36(__init__) - 20 0.000 0.000 0.000 0.000 StructuredDataset.py:45(log) - 1 0.000 0.000 0.001 0.001 StructuredDataset.py:478(CDMSDataset) - 3 0.000 0.000 0.000 0.000 StructuredDataset.py:482(__init__) - 1 0.000 0.000 0.001 0.001 StructuredDataset.py:5() - 5 0.000 0.000 0.000 0.000 StructuredDataset.py:500(setVariableRecord) - 3 0.000 0.000 0.000 0.000 StructuredDataset.py:506(getVarRecValues) - 4 0.000 0.000 0.000 0.000 StructuredDataset.py:512(setRoi) - 3 0.000 0.000 0.000 0.000 StructuredDataset.py:523(getTimeValues) - 5 0.000 0.000 0.000 0.000 StructuredDataset.py:570(addTransientVariable) - 9 0.000 0.000 0.000 0.000 StructuredDataset.py:577(getTransientVariable) - 4 0.000 0.000 0.000 0.000 StructuredDataset.py:580(getTransientVariableNames) - 6 0.000 0.000 0.000 0.000 StructuredDataset.py:592(__getitem__) - 4 0.000 0.000 0.036 0.009 StructuredDataset.py:649(getVarDataCube) - 4 0.000 0.000 0.035 0.009 StructuredDataset.py:681(getTransVarDataCube) - 1 0.000 0.000 0.000 0.000 StructuredDataset.py:834(SerializedInterfaceSpecs) - 1 0.000 0.000 0.000 0.000 StructuredDataset.py:895(StructuredFileReader) - 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:128(getRangeBounds) - 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:139(setMaxScalarValue) - 1 0.000 0.000 0.000 0.000 StructuredGridPlot.py:14(StructuredGridPlot) - 13 0.000 0.000 0.113 0.009 StructuredGridPlot.py:16(__init__) - 49 0.000 0.000 0.001 0.000 StructuredGridPlot.py:161(setInputZScale) - 9 0.000 0.000 0.000 0.000 StructuredGridPlot.py:174(getDataRangeBounds) - 46 0.001 0.000 0.004 0.000 StructuredGridPlot.py:193(input) - 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:203(isBuilt) - 3 0.000 0.000 0.001 0.000 StructuredGridPlot.py:206(initializeInputs) - 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:217(initMetadata) - 4 0.000 0.000 0.001 0.000 StructuredGridPlot.py:225(intiTime) - 3 0.000 0.000 1.340 0.447 StructuredGridPlot.py:235(execute) - 6 0.000 0.000 0.000 0.000 StructuredGridPlot.py:247(getScalarRange) - 5 0.000 0.000 0.000 0.000 StructuredGridPlot.py:251(basemapLinesVisibilityOn) - 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:256(basemapLinesVisibilityOff) - 3 0.004 0.001 0.252 0.084 StructuredGridPlot.py:261(createBasemapPolyline) - 6 0.000 0.000 0.322 0.054 StructuredGridPlot.py:286(setBasemapLineSpecs) - 3 0.000 0.000 0.288 0.096 StructuredGridPlot.py:305(setBasemapCoastlineLineSpecs) - 3 0.000 0.000 0.034 0.011 StructuredGridPlot.py:314(setBasemapCountriesLineSpecs) - 98 0.000 0.000 0.000 0.000 StructuredGridPlot.py:334(getInputSpec) - 102 0.000 0.000 0.000 0.000 StructuredGridPlot.py:338(getDataValue) - 6 0.000 0.000 0.000 0.000 StructuredGridPlot.py:347(getDataValues) - 21 0.000 0.000 0.000 0.000 StructuredGridPlot.py:355(getImageValues) - 3 0.000 0.000 0.297 0.099 StructuredGridPlot.py:369(initializeConfiguration) - 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:38(processBasemapOpacityCommand) - 3 0.000 0.000 0.156 0.052 StructuredGridPlot.py:398(buildBaseMap) - 1 0.003 0.003 0.006 0.006 StructuredGridPlot.py:5() - 3 0.000 0.000 0.000 0.000 StructuredGridPlot.py:61(processVerticalScalingCommand) - 3 0.000 0.000 2.197 0.732 StructuredGridPlot.py:637(gminit) - 9 0.000 0.000 0.012 0.001 StructuredGridPlot.py:660(updateTextDisplay) - 5 0.000 0.000 0.000 0.000 StructuredVariableReader.py:13(getVarName) - 57 0.000 0.000 0.000 0.000 StructuredVariableReader.py:149(getCachedImageData) - 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:152(setCachedImageData) - 7 0.000 0.000 0.000 0.000 StructuredVariableReader.py:18(getRoiSize) - 17 0.000 0.000 0.000 0.000 StructuredVariableReader.py:181(getCachedData) - 6 0.000 0.000 0.000 0.000 StructuredVariableReader.py:187(setCachedData) - 5 0.000 0.000 0.000 0.000 StructuredVariableReader.py:200(addCDMSVariable) - 3 0.000 0.000 0.001 0.000 StructuredVariableReader.py:206(designateAxes) - 1 0.000 0.000 0.000 0.000 StructuredVariableReader.py:22(OutputRecManager) - 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:232(setParameter) - 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:238(setupTimeAxis) - 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:26(__init__) - 3 0.000 0.000 0.082 0.027 StructuredVariableReader.py:280(execute) - 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:35(addOutputRec) - 3 0.000 0.000 0.080 0.027 StructuredVariableReader.py:392(generateOutput) - 49 0.000 0.000 0.000 0.000 StructuredVariableReader.py:431(output) - 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:440(outputSpec) - 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:443(nOutputs) - 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:47(getOutputRecs) - 1 0.002 0.002 0.003 0.003 StructuredVariableReader.py:5() - 1 0.000 0.000 0.000 0.000 StructuredVariableReader.py:51(OutputRec) - 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:53(__init__) - 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:531(levOrderingDownward) - 8 0.000 0.000 0.000 0.000 StructuredVariableReader.py:538(getFieldData) - 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:543(initializeMetadata) - 4 0.001 0.000 0.053 0.013 StructuredVariableReader.py:556(getImageData) - 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:65(getKey) - 6 0.000 0.000 0.000 0.000 StructuredVariableReader.py:77(getSelectedLevel) - 16 0.000 0.000 0.000 0.000 StructuredVariableReader.py:796(getAxisValues) - 4 0.000 0.000 0.000 0.000 StructuredVariableReader.py:80(updateSelections) - 16 0.000 0.000 0.000 0.000 StructuredVariableReader.py:819(getCoordType) - 5 0.000 0.000 0.001 0.000 StructuredVariableReader.py:835(getIntersectedRoi) - 1 0.000 0.000 0.000 0.000 StructuredVariableReader.py:86(StructuredDataReader) - 4 0.000 0.000 0.002 0.000 StructuredVariableReader.py:860(getGridSpecs) - 3 0.000 0.000 0.000 0.000 StructuredVariableReader.py:91(__init__) - 1616 0.001 0.000 0.001 0.000 UserDict.py:103(__contains__) - 3262 0.002 0.000 0.002 0.000 UserDict.py:34(__len__) - 889 0.001 0.000 0.001 0.000 UserDict.py:35(__getitem__) - 1 0.000 0.000 0.000 0.000 UserDict.py:4(__init__) - 2 0.000 0.000 0.000 0.000 UserDict.py:57(items) - 777 0.001 0.000 0.001 0.000 UserDict.py:91(get) - 1 0.000 0.000 0.000 0.000 UserList.py:1() - 7767 0.003 0.000 0.003 0.000 UserList.py:29(__contains__) - 1 0.000 0.000 0.000 0.000 UserList.py:5(UserList) - 10 0.000 0.000 0.000 0.000 UserList.py:6(__init__) - 21 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1011(checkLegend) - 42 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1068(checkExt) - 1059 0.004 0.000 0.008 0.000 VCS_validation_functions.py:1102(checkProjection) - 86 0.000 0.000 0.001 0.000 VCS_validation_functions.py:1126(checkTicks) - 652 0.001 0.000 0.003 0.000 VCS_validation_functions.py:1143(checkStringDictionary) - 24 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1175(DMS2deg) - 116 0.001 0.000 0.001 0.000 VCS_validation_functions.py:1189(checkProjParameters) - 72 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1222(checkCalendar) - 72 0.001 0.000 0.002 0.000 VCS_validation_functions.py:1245(checkTimeUnits) - 288 0.000 0.000 0.002 0.000 VCS_validation_functions.py:1263(checkDatawc) - 2035 0.027 0.000 0.043 0.000 VCS_validation_functions.py:1294(checkInStringsListInt) - 25 0.001 0.000 0.008 0.000 VCS_validation_functions.py:1336(checkProjType) - 7897 0.026 0.000 0.216 0.000 VCS_validation_functions.py:141(checkLine) - 4124 0.017 0.000 0.017 0.000 VCS_validation_functions.py:1578(getProjType) - 143379 0.144 0.000 0.211 0.000 VCS_validation_functions.py:165(isNumber) - 99 0.004 0.000 0.006 0.000 VCS_validation_functions.py:1663(setProjParameter) - 20904 0.006 0.000 0.006 0.000 VCS_validation_functions.py:1712(_getpriority) - 22552 0.020 0.000 0.175 0.000 VCS_validation_functions.py:1716(_setpriority) - 402 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1721(arrow) - 401 0.000 0.000 0.002 0.000 VCS_validation_functions.py:1727(arrow) - 499 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1732(offset) - 401 0.000 0.000 0.002 0.000 VCS_validation_functions.py:1738(offset) - 6361 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1743(x1) - 6839 0.005 0.000 0.035 0.000 VCS_validation_functions.py:1749(x1) - 6294 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1754(_getX2) - 6839 0.005 0.000 0.032 0.000 VCS_validation_functions.py:1758(_setX2) - 13545 0.004 0.000 0.004 0.000 VCS_validation_functions.py:1763(_getX) - 14420 0.011 0.000 0.069 0.000 VCS_validation_functions.py:1767(_setX) - 141330 0.171 0.000 0.633 0.000 VCS_validation_functions.py:177(checkNumber) - 6220 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1772(_getY1) - 6517 0.005 0.000 0.030 0.000 VCS_validation_functions.py:1776(_setY1) - 6085 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1781(_getY2) - 6517 0.005 0.000 0.033 0.000 VCS_validation_functions.py:1785(_setY2) - 12875 0.004 0.000 0.004 0.000 VCS_validation_functions.py:1790(_getY) - 13707 0.012 0.000 0.080 0.000 VCS_validation_functions.py:1794(_setY) - 13915 0.004 0.000 0.004 0.000 VCS_validation_functions.py:1799(_gettexttable) - 15028 0.014 0.000 1.037 0.000 VCS_validation_functions.py:1803(_settextable) - 13915 0.004 0.000 0.004 0.000 VCS_validation_functions.py:1808(_gettextorientation) - 15031 0.015 0.000 1.395 0.000 VCS_validation_functions.py:1812(_settexorientation) - 6904 0.002 0.000 0.002 0.000 VCS_validation_functions.py:1820(_getLine) - 7518 0.007 0.000 0.211 0.000 VCS_validation_functions.py:1824(_setLine) - 1621 0.001 0.000 0.001 0.000 VCS_validation_functions.py:1829(_getcolormap) - 923 0.001 0.000 0.001 0.000 VCS_validation_functions.py:1833(_setcolormap) - 146 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1852(levels) - 21 0.000 0.000 0.001 0.000 VCS_validation_functions.py:1858(levels) - 32 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1913(_getlegend) - 21 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1920(_setlegend) - 764 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1926(_getprojection) - 40 0.000 0.000 0.000 0.000 VCS_validation_functions.py:1930(_setprojection) - 21 0.000 0.000 0.002 0.000 VCS_validation_functions.py:1953(add_level_ext_1) - 1 0.001 0.001 0.262 0.262 VCS_validation_functions.py:2() - 21 0.000 0.000 0.002 0.000 VCS_validation_functions.py:2009(add_level_ext_2) - 26529 0.041 0.000 0.198 0.000 VCS_validation_functions.py:201(checkInt) - 44 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2043(ext_1) - 21 0.000 0.000 0.002 0.000 VCS_validation_functions.py:2049(ext_1) - 37 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2059(ext_2) - 21 0.000 0.000 0.002 0.000 VCS_validation_functions.py:2065(ext_2) - 2366 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2075(_getwc) - 24 0.000 0.000 0.001 0.000 VCS_validation_functions.py:2079(_setwc) - 2404 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2085(_getvp) - 23 0.000 0.000 0.001 0.000 VCS_validation_functions.py:2089(_setvp) - 15753 0.066 0.000 0.390 0.000 VCS_validation_functions.py:209(checkListOfNumbers) - 24 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2101(_getfillareaopacity) - 20 0.000 0.000 0.000 0.000 VCS_validation_functions.py:2115(_getfillareacolors) - 21 0.000 0.000 0.001 0.000 VCS_validation_functions.py:2119(_setfillareacolors) - 2 0.000 0.000 0.000 0.000 VCS_validation_functions.py:246(checkInStringList) - 556 0.002 0.000 0.004 0.000 VCS_validation_functions.py:258(checkFont) - 65 0.011 0.000 0.013 0.000 VCS_validation_functions.py:280(checkMarker) - 36 0.000 0.000 0.008 0.000 VCS_validation_functions.py:368(checkMarkersList) - 41 0.000 0.000 0.000 0.000 VCS_validation_functions.py:379(checkListElements) - 248364 0.211 0.000 0.450 0.000 VCS_validation_functions.py:409(checkName) - 4447 0.005 0.000 0.014 0.000 VCS_validation_functions.py:434(checkString) - 1625 0.003 0.000 0.007 0.000 VCS_validation_functions.py:464(checkFillAreaStyle) - 144 0.000 0.000 0.001 0.000 VCS_validation_functions.py:490(checkAxisConvert) - 8 0.000 0.000 0.000 0.000 VCS_validation_functions.py:507(checkBoxfillType) - 29 0.000 0.000 0.000 0.000 VCS_validation_functions.py:526(checkIntFloat) - 496 0.001 0.000 0.001 0.000 VCS_validation_functions.py:55(checkedRaise) - 21 0.000 0.000 0.000 0.000 VCS_validation_functions.py:558(checkFuzzyBoolean) - 31 0.000 0.000 0.000 0.000 VCS_validation_functions.py:581(checkTrueFalse) - 6 0.000 0.000 0.000 0.000 VCS_validation_functions.py:595(checkOnOff) - 2 0.000 0.000 0.000 0.000 VCS_validation_functions.py:651(checkYesNo) - 24 0.000 0.000 0.001 0.000 VCS_validation_functions.py:66(checkElements) - 7 0.000 0.000 0.000 0.000 VCS_validation_functions.py:698(checkWrap) - 1039 0.002 0.000 0.005 0.000 VCS_validation_functions.py:716(checkListTuple) - 7574 0.034 0.000 0.135 0.000 VCS_validation_functions.py:732(checkColor) - 487 0.006 0.000 0.093 0.000 VCS_validation_functions.py:766(checkColorList) - 29 0.000 0.000 0.000 0.000 VCS_validation_functions.py:781(checkIsolineLevels) - 1636 0.004 0.000 0.011 0.000 VCS_validation_functions.py:798(checkIndex) - 1 0.000 0.000 0.000 0.000 VCS_validation_functions.py:8(PPE) - 42 0.001 0.000 0.012 0.000 VCS_validation_functions.py:815(checkIndicesList) - 3675 0.002 0.000 0.011 0.000 VCS_validation_functions.py:826(checkOpacity) - 32 0.002 0.000 0.012 0.000 VCS_validation_functions.py:842(checkOpacitiesList) - 2 0.000 0.000 0.000 0.000 VCS_validation_functions.py:853(checkVectorType) - 2 0.000 0.000 0.000 0.000 VCS_validation_functions.py:872(checkVectorAlignment) - 1086 0.001 0.000 0.004 0.000 VCS_validation_functions.py:891(checkLineType) - 761 0.015 0.000 0.055 0.000 VCS_validation_functions.py:90(checkContinents) - 388 0.002 0.000 0.009 0.000 VCS_validation_functions.py:912(checkLineTypeList) - 15028 0.066 0.000 1.023 0.000 VCS_validation_functions.py:923(checkTextTable) - 15031 0.076 0.000 1.380 0.000 VCS_validation_functions.py:945(checkTextOrientation) - 4 0.000 0.000 0.000 0.000 VCS_validation_functions.py:968(checkTextsList) - 1 0.000 0.000 0.000 0.000 VTKAnimate.py:121(VTKAnimationPlayback) - 1 0.000 0.000 0.000 0.000 VTKAnimate.py:151(VTKAnimate) - 41 0.000 0.000 0.002 0.000 VTKAnimate.py:153(__init__) - 1 0.001 0.001 0.002 0.002 VTKAnimate.py:3() - 1 0.000 0.000 0.000 0.000 VTKAnimate.py:46(VTKAnimationCreate) - 1 0.002 0.002 0.013 0.013 VTKPlots.py:1() - 331 0.003 0.000 0.004 0.000 VTKPlots.py:1067(get3DPlot) - 41 0.000 0.000 0.002 0.000 VTKPlots.py:1256(Animate) - 346 0.006 0.000 0.074 0.000 VTKPlots.py:1304(createLogo) - 349 0.003 0.000 0.079 0.000 VTKPlots.py:1329(scaleLogo) - 174 0.008 0.000 0.024 0.000 VTKPlots.py:1336(fitToViewport) - 1 0.000 0.000 0.000 0.000 VTKPlots.py:17(VCSInteractorStyle) - 19 0.000 0.000 0.002 0.000 VTKPlots.py:19(__init__) - 350 0.003 0.000 0.007 0.000 VTKPlots.py:263(configureEvent) - 1 0.000 0.000 0.000 0.000 VTKPlots.py:30(VTKVCSBackend) - 41 0.001 0.000 0.001 0.000 VTKPlots.py:32(__init__) - 19 0.019 0.001 0.033 0.002 VTKPlots.py:357(createDefaultInteractor) - 349 0.002 0.000 0.061 0.000 VTKPlots.py:368(createRenWin) - 220 0.005 0.000 0.005 0.000 VTKPlots.py:402(createRenderer) - 25 0.000 0.000 0.000 0.000 VTKPlots.py:434(canvasinfo) - 1 0.000 0.000 0.000 0.000 VTKPlots.py:470(orientation) - 19 0.000 0.000 0.026 0.001 VTKPlots.py:504(initialSize) - 349/50 0.027 0.000 14.997 0.300 VTKPlots.py:567(plot) - 22 0.000 0.000 0.000 0.000 VTKPlots.py:697() - 748 0.004 0.000 0.013 0.000 VTKPlots.py:712(setLayer) - 3 0.001 0.000 2.248 0.749 VTKPlots.py:718(plot3D) - 13 0.007 0.001 0.193 0.015 VTKPlots.py:756(plotContinents) - 13 0.002 0.000 3.475 0.267 VTKPlots.py:816(renderTemplate) - 10 0.001 0.000 0.919 0.092 VTKPlots.py:933(renderColorBar) - 20 0.000 0.000 0.013 0.001 VTKPlots.py:947(cleanupData) - 6 0.000 0.000 0.034 0.006 VTKPlots.py:951(trimData1D) - 24 0.000 0.000 0.079 0.003 VTKPlots.py:959(trimData2D) - 1 0.000 0.000 0.000 0.000 ValidationFunctions.py:1() - 1 0.000 0.000 0.000 0.000 ValidationFunctions.py:2() - 2 0.000 0.000 0.000 0.000 __config__.py:3() - 1 0.000 0.000 0.000 0.000 __future__.py:48() - 1 0.000 0.000 0.000 0.000 __future__.py:74(_Feature) - 7 0.000 0.000 0.000 0.000 __future__.py:75(__init__) - 16 0.234 0.015 0.641 0.040 __init__.py:1() - 2 0.002 0.001 0.002 0.001 __init__.py:10() - 3 0.000 0.000 0.000 0.000 __init__.py:101(CFunctionType) - 1 0.015 0.015 0.339 0.339 __init__.py:106() - 10 0.001 0.000 0.047 0.005 __init__.py:109(cpu_count) - 14 0.000 0.000 0.000 0.000 __init__.py:144(_check_size) - 1 0.010 0.010 0.016 0.016 __init__.py:15() - 1 0.000 0.000 0.000 0.000 __init__.py:156(py_object) - 1 0.000 0.000 0.000 0.000 __init__.py:165(c_short) - 1 0.000 0.000 0.000 0.000 __init__.py:169(c_ushort) - 1 0.000 0.000 0.000 0.000 __init__.py:17() - 1 0.000 0.000 0.000 0.000 __init__.py:173(c_long) - 1 0.000 0.000 0.000 0.000 __init__.py:177(c_ulong) - 1 0.001 0.001 0.002 0.002 __init__.py:18() - 1 0.000 0.000 0.000 0.000 __init__.py:186(c_int) - 1 0.000 0.000 0.000 0.000 __init__.py:190(c_uint) - 1 0.000 0.000 0.000 0.000 __init__.py:194(c_float) - 1 0.000 0.000 0.000 0.000 __init__.py:198(c_double) - 4 0.070 0.018 0.552 0.138 __init__.py:2() - 1 0.000 0.000 0.000 0.000 __init__.py:20(import_module) - 1 0.000 0.000 0.000 0.000 __init__.py:202(c_longdouble) - 1 0.000 0.000 0.000 0.000 __init__.py:223(c_ubyte) - 1 0.000 0.000 0.000 0.000 __init__.py:230(c_byte) - 1 0.000 0.000 0.000 0.000 __init__.py:235(c_char) - 1 0.000 0.000 0.000 0.000 __init__.py:240(c_char_p) - 1 0.000 0.000 0.000 0.000 __init__.py:252(c_void_p) - 41 0.001 0.000 0.017 0.000 __init__.py:254(init) - 1 0.000 0.000 0.000 0.000 __init__.py:257(c_bool) - 2 0.000 0.000 0.042 0.021 __init__.py:258(load) - 1 0.000 0.000 0.000 0.000 __init__.py:262(_reset_cache) - 1 0.000 0.000 0.000 0.000 __init__.py:288(c_wchar_p) - 1 0.000 0.000 0.000 0.000 __init__.py:291(c_wchar) - 2 0.000 0.000 0.033 0.016 __init__.py:294(loads) - 4 0.030 0.008 0.501 0.125 __init__.py:3() - 1 0.000 0.000 0.000 0.000 __init__.py:329(CDLL) - 2 0.000 0.000 0.002 0.001 __init__.py:346(__init__) - 2 0.000 0.000 0.000 0.000 __init__.py:356(_FuncPtr) - 37 0.000 0.000 0.000 0.000 __init__.py:372(__getattr__) - 37 0.000 0.000 0.000 0.000 __init__.py:379(__getitem__) - 1 0.000 0.000 0.000 0.000 __init__.py:385(PyDLL) - 1 0.000 0.000 0.000 0.000 __init__.py:4() - 1 0.004 0.004 0.009 0.009 __init__.py:41() - 1 0.000 0.000 0.000 0.000 __init__.py:425(LibraryLoader) - 2 0.000 0.000 0.000 0.000 __init__.py:426(__init__) - 1 0.000 0.000 0.002 0.002 __init__.py:429(__getattr__) - 1 0.000 0.000 0.002 0.002 __init__.py:436(__getitem__) - 1 0.004 0.004 0.005 0.005 __init__.py:44() - 2 0.008 0.004 0.020 0.010 __init__.py:45() - 1 0.012 0.012 2.389 2.389 __init__.py:49() - 4 0.000 0.000 0.000 0.000 __init__.py:49(normalize_encoding) - 3 0.000 0.000 0.000 0.000 __init__.py:490(PYFUNCTYPE) - 3 0.000 0.000 0.000 0.000 __init__.py:491(CFunctionType) - 1 0.003 0.003 0.057 0.057 __init__.py:52() - 1 0.002 0.002 0.044 0.044 __init__.py:7() - 1 0.000 0.000 0.000 0.000 __init__.py:71(ProcessError) - 1 0.000 0.000 0.002 0.002 __init__.py:71(search_function) - 1 0.000 0.000 0.000 0.000 __init__.py:74(BufferTooShort) - 3 0.000 0.000 0.000 0.000 __init__.py:75(CFUNCTYPE) - 1 0.000 0.000 0.000 0.000 __init__.py:77(TimeoutError) - 1 0.000 0.000 0.000 0.000 __init__.py:80(AuthenticationError) - 1 0.009 0.009 0.010 0.010 __init__.py:88() - 1 0.000 0.000 0.000 0.000 __init__.py:9() - 1 0.002 0.002 0.007 0.007 __init__.py:99() - 1 0.000 0.000 0.000 0.000 __version__.py:1() - 48 0.001 0.000 0.002 0.000 _abcoll.py:548(update) - 5 0.000 0.000 0.000 0.000 _abcoll.py:98(__subclasshook__) - 1 0.000 0.000 0.000 0.000 _datasource.py:154(DataSource) - 1 0.000 0.000 0.000 0.000 _datasource.py:35() - 1 0.000 0.000 0.000 0.000 _datasource.py:50(_FileOpeners) - 1 0.000 0.000 0.000 0.000 _datasource.py:504(Repository) - 1 0.000 0.000 0.000 0.000 _datasource.py:74(__init__) - 1 0.000 0.000 0.000 0.000 _endian.py:1() - 1 0.000 0.000 0.000 0.000 _endian.py:23(_swapped_meta) - 1 0.000 0.000 0.000 0.000 _endian.py:46(BigEndianStructure) - 1 0.000 0.000 0.000 0.000 _globals.py:17() - 1 0.000 0.000 0.000 0.000 _globals.py:33(ModuleDeprecationWarning) - 1 0.000 0.000 0.000 0.000 _globals.py:45(VisibleDeprecationWarning) - 1 0.000 0.000 0.000 0.000 _globals.py:56(_NoValue) - 1 0.000 0.000 0.000 0.000 _import_tools.py:1() - 1 0.000 0.000 0.000 0.000 _import_tools.py:340(PackageLoaderDebug) - 1 0.000 0.000 0.000 0.000 _import_tools.py:9(PackageLoader) - 98 0.000 0.000 0.000 0.000 _inspect.py:133(strseq) - 38 0.000 0.000 0.000 0.000 _inspect.py:142(formatargspec) - 7 0.000 0.000 0.000 0.000 _inspect.py:144() - 5 0.000 0.000 0.000 0.000 _inspect.py:145() - 60 0.000 0.000 0.000 0.000 _inspect.py:146() - 43 0.000 0.000 0.000 0.000 _inspect.py:15(ismethod) - 43 0.000 0.000 0.000 0.000 _inspect.py:28(isfunction) - 38 0.000 0.000 0.000 0.000 _inspect.py:43(iscode) - 38 0.000 0.000 0.000 0.000 _inspect.py:67(getargs) - 1 0.000 0.000 0.000 0.000 _inspect.py:7() - 43 0.000 0.000 0.000 0.000 _inspect.py:98(getargspec) - 1 0.000 0.000 0.000 0.000 _internal.py:200(_getintp_ctype) - 1 0.000 0.000 0.000 0.000 _internal.py:219(_missing_ctypes) - 1 0.000 0.000 0.000 0.000 _internal.py:226(_ctypes) - 1 0.003 0.003 0.011 0.011 _internal.py:6() - 1 0.000 0.000 0.000 0.000 _internal.py:631(TooHardError) - 1 0.000 0.000 0.000 0.000 _iotools.py:154(LineSplitter) - 1 0.000 0.000 0.000 0.000 _iotools.py:250(NameValidator) - 1 0.000 0.000 0.000 0.000 _iotools.py:3() - 1 0.000 0.000 0.000 0.000 _iotools.py:444(ConverterError) - 1 0.000 0.000 0.000 0.000 _iotools.py:452(ConverterLockError) - 1 0.000 0.000 0.000 0.000 _iotools.py:460(ConversionWarning) - 1 0.000 0.000 0.000 0.000 _iotools.py:473(StringConverter) - 53 0.000 0.000 0.001 0.000 _methods.py:25(_amax) - 53 0.000 0.000 0.001 0.000 _methods.py:28(_amin) - 116 0.000 0.000 0.003 0.000 _methods.py:31(_sum) - 4222 0.003 0.000 0.021 0.000 _methods.py:37(_any) - 3043 0.002 0.000 0.014 0.000 _methods.py:40(_all) - 1 0.000 0.000 0.000 0.000 _methods.py:5() - 1 0.000 0.000 0.000 0.000 _osx_support.py:128(_supports_universal_builds) - 3 0.000 0.000 0.000 0.000 _osx_support.py:138() - 1 0.000 0.000 0.000 0.000 _osx_support.py:260(_override_all_archs) - 1 0.000 0.000 0.000 0.000 _osx_support.py:277(_check_for_unavailable_sdk) - 1 0.000 0.000 0.000 0.000 _osx_support.py:368(customize_config_vars) - 1 0.000 0.000 0.000 0.000 _osx_support.py:83(_get_system_version) - 1 0.000 0.000 0.000 0.000 _polybase.py:19(ABCPolyBase) - 1 0.000 0.000 0.000 0.000 _polybase.py:8() - 1 0.000 0.000 0.000 0.000 _version.py:18(NumpyVersion) - 1 0.000 0.000 0.000 0.000 _version.py:7() - 128 0.000 0.000 0.000 0.000 _weakrefset.py:16(__init__) - 128 0.000 0.000 0.000 0.000 _weakrefset.py:20(__enter__) - 128 0.000 0.000 0.001 0.000 _weakrefset.py:26(__exit__) - 1791 0.076 0.000 0.076 0.000 _weakrefset.py:36(__init__) - 128 0.000 0.000 0.000 0.000 _weakrefset.py:52(_commit_removals) - 158 0.001 0.000 0.003 0.000 _weakrefset.py:58(__iter__) - 141 0.000 0.000 0.000 0.000 _weakrefset.py:70(__contains__) - 45 0.000 0.000 0.000 0.000 _weakrefset.py:83(add) - 15 0.000 0.000 0.001 0.000 abc.py:105(register) - 51 0.000 0.000 0.001 0.000 abc.py:128(__instancecheck__) - 77/68 0.001 0.000 0.001 0.000 abc.py:148(__subclasscheck__) - 49 0.000 0.000 0.000 0.000 abc.py:15(abstractmethod) - 19 0.001 0.000 0.003 0.000 abc.py:86(__new__) - 75 0.000 0.000 0.001 0.000 abc.py:89() - 1 0.002 0.002 0.280 0.280 add_newdocs.py:10() - 1 0.000 0.000 0.001 0.001 animate_helper.py:1() - 1 0.000 0.000 0.000 0.000 animate_helper.py:22(animate_obj_old) - 41 0.000 0.000 0.000 0.000 animate_helper.py:36(__init__) - 1 0.000 0.000 0.000 0.000 animate_helper.py:585(RT) - 1 0.000 0.000 0.000 0.000 animate_helper.py:605(StoppableThread) - 1 0.000 0.000 0.000 0.000 animate_helper.py:629(AnimationCreateParams) - 41 0.000 0.000 0.000 0.000 animate_helper.py:631(__init__) - 1 0.000 0.000 0.000 0.000 animate_helper.py:637(AnimationCreate) - 1 0.000 0.000 0.000 0.000 animate_helper.py:678(AnimationPlaybackParams) - 41 0.000 0.000 0.000 0.000 animate_helper.py:680(__init__) - 1 0.000 0.000 0.000 0.000 animate_helper.py:724(AnimationPlayback) - 1 0.000 0.000 0.000 0.000 animate_helper.py:754(AnimationController) - 41 0.001 0.000 0.001 0.000 animate_helper.py:756(__init__) - 397 0.000 0.000 0.000 0.000 animate_helper.py:814(is_playing) - 1 0.000 0.000 0.000 0.000 argparse.py:1000(_VersionAction) - 1 0.000 0.000 0.000 0.000 argparse.py:1025(_SubParsersAction) - 1 0.000 0.000 0.000 0.000 argparse.py:1027(_ChoicesPseudoAction) - 1 0.000 0.000 0.000 0.000 argparse.py:1109(FileType) - 1 0.000 0.000 0.000 0.000 argparse.py:112(_AttributeHolder) - 1 0.000 0.000 0.000 0.000 argparse.py:1153(Namespace) - 1 0.000 0.000 0.000 0.000 argparse.py:1160(__init__) - 1 0.000 0.000 0.000 0.000 argparse.py:1180(_ActionsContainer) - 3 0.000 0.000 0.003 0.001 argparse.py:1182(__init__) - 34 0.000 0.000 0.000 0.000 argparse.py:1234(register) - 18 0.000 0.000 0.000 0.000 argparse.py:1238(_registry_get) - 8 0.000 0.000 0.001 0.000 argparse.py:1263(add_argument) - 2 0.000 0.000 0.000 0.000 argparse.py:1310(add_argument_group) - 8 0.000 0.000 0.000 0.000 argparse.py:1320(_add_action) - 1 0.000 0.000 0.000 0.000 argparse.py:1384(_get_positional_kwargs) - 7 0.000 0.000 0.000 0.000 argparse.py:1400(_get_optional_kwargs) - 8 0.000 0.000 0.000 0.000 argparse.py:1435(_pop_action_class) - 3 0.000 0.000 0.000 0.000 argparse.py:1439(_get_handler) - 8 0.000 0.000 0.000 0.000 argparse.py:1448(_check_conflict) - 1 0.000 0.000 0.000 0.000 argparse.py:147(HelpFormatter) - 1 0.000 0.000 0.000 0.000 argparse.py:1484(_ArgumentGroup) - 2 0.000 0.000 0.000 0.000 argparse.py:1486(__init__) - 8 0.000 0.000 0.000 0.000 argparse.py:1508(_add_action) - 1 0.000 0.000 0.000 0.000 argparse.py:1518(_MutuallyExclusiveGroup) - 1 0.000 0.000 0.000 0.000 argparse.py:1538(ArgumentParser) - 8 0.000 0.000 0.000 0.000 argparse.py:154(__init__) - 1 0.000 0.000 0.016 0.016 argparse.py:1556(__init__) - 8 0.000 0.000 0.000 0.000 argparse.py:1680(_add_action) - 1 0.000 0.000 0.000 0.000 argparse.py:1692(_get_positional_actions) - 1 0.000 0.000 0.001 0.001 argparse.py:1700(parse_args) - 1 0.000 0.000 0.001 0.001 argparse.py:1707(parse_known_args) - 1 0.000 0.000 0.001 0.001 argparse.py:1742(_parse_known_args) - 4 0.000 0.000 0.000 0.000 argparse.py:1789(take_action) - 3 0.000 0.000 0.000 0.000 argparse.py:1810(consume_optional) - 1 0.000 0.000 0.000 0.000 argparse.py:1887(consume_positionals) - 1 0.000 0.000 0.000 0.000 argparse.py:197(_Section) - 8 0.000 0.000 0.000 0.000 argparse.py:199(__init__) - 3 0.000 0.000 0.000 0.000 argparse.py:2020(_match_argument) - 1 0.000 0.000 0.000 0.000 argparse.py:2039(_match_arguments_partial) - 4 0.000 0.000 0.000 0.000 argparse.py:2055(_parse_optional) - 4 0.000 0.000 0.000 0.000 argparse.py:2156(_get_nargs_pattern) - 4 0.000 0.000 0.000 0.000 argparse.py:2200(_get_values) - 2 0.000 0.000 0.000 0.000 argparse.py:2252(_get_value) - 1 0.000 0.000 0.000 0.000 argparse.py:2277(_check_value) - 8 0.000 0.000 0.001 0.000 argparse.py:2326(_get_formatter) - 8 0.000 0.000 0.000 0.000 argparse.py:557(_metavar_formatter) - 8 0.000 0.000 0.000 0.000 argparse.py:566(format) - 8 0.000 0.000 0.000 0.000 argparse.py:573(_format_args) - 1 0.001 0.001 0.001 0.001 argparse.py:62() - 1 0.000 0.000 0.000 0.000 argparse.py:629(RawDescriptionHelpFormatter) - 1 0.000 0.000 0.000 0.000 argparse.py:640(RawTextHelpFormatter) - 1 0.000 0.000 0.000 0.000 argparse.py:651(ArgumentDefaultsHelpFormatter) - 1 0.000 0.000 0.000 0.000 argparse.py:685(ArgumentError) - 1 0.000 0.000 0.000 0.000 argparse.py:705(ArgumentTypeError) - 1 0.000 0.000 0.000 0.000 argparse.py:714(Action) - 8 0.000 0.000 0.000 0.000 argparse.py:765(__init__) - 1 0.000 0.000 0.000 0.000 argparse.py:805(_StoreAction) - 2 0.000 0.000 0.000 0.000 argparse.py:807(__init__) - 1 0.000 0.000 0.000 0.000 argparse.py:836(__call__) - 1 0.000 0.000 0.000 0.000 argparse.py:840(_StoreConstAction) - 5 0.000 0.000 0.000 0.000 argparse.py:842(__init__) - 3 0.000 0.000 0.000 0.000 argparse.py:859(__call__) - 1 0.000 0.000 0.000 0.000 argparse.py:863(_StoreTrueAction) - 5 0.000 0.000 0.000 0.000 argparse.py:865(__init__) - 1 0.000 0.000 0.000 0.000 argparse.py:880(_StoreFalseAction) - 1 0.000 0.000 0.000 0.000 argparse.py:897(_AppendAction) - 1 0.000 0.000 0.000 0.000 argparse.py:934(_AppendConstAction) - 18 0.000 0.000 0.000 0.000 argparse.py:95(_callable) - 1 0.000 0.000 0.000 0.000 argparse.py:960(_CountAction) - 1 0.000 0.000 0.000 0.000 argparse.py:981(_HelpAction) - 1 0.000 0.000 0.000 0.000 argparse.py:983(__init__) - 1 0.001 0.001 0.001 0.001 array_indexing_emulate.py:3() - 1 0.000 0.000 0.000 0.000 arrayindexing.py:2() - 1 0.000 0.000 0.000 0.000 arraypad.py:5() - 1 0.002 0.002 0.003 0.003 arrayprint.py:5() - 1 0.000 0.000 0.000 0.000 arrayprint.py:528(FloatFormat) - 1 0.000 0.000 0.000 0.000 arrayprint.py:634(IntegerFormat) - 1 0.000 0.000 0.000 0.000 arrayprint.py:654(LongFloatFormat) - 1 0.000 0.000 0.000 0.000 arrayprint.py:684(LongComplexFormat) - 1 0.000 0.000 0.000 0.000 arrayprint.py:695(ComplexFormat) - 1 0.000 0.000 0.000 0.000 arrayprint.py:712(DatetimeFormat) - 1 0.000 0.000 0.000 0.000 arrayprint.py:733(TimedeltaFormat) - 1 0.000 0.000 0.000 0.000 arraysetops.py:26() - 1 0.000 0.000 0.000 0.000 arrayterator.py:20(Arrayterator) - 1 0.000 0.000 0.000 0.000 arrayterator.py:9() - 1 0.000 0.000 0.000 0.000 ast.py:217(NodeVisitor) - 1 0.000 0.000 0.000 0.000 ast.py:254(NodeTransformer) - 1 0.000 0.000 0.000 0.000 ast.py:27() - 2 0.000 0.000 0.000 0.000 atexit.py:37(register) - 1 0.000 0.000 0.000 0.000 atexit.py:6() - 1 0.000 0.000 0.000 0.000 auxcoord.py:15(AbstractAuxAxis1D) - 1 0.000 0.000 0.000 0.000 auxcoord.py:48(DatasetAuxAxis1D) - 1 0.000 0.000 0.000 0.000 auxcoord.py:5() - 1 0.000 0.000 0.000 0.000 auxcoord.py:64(FileAuxAxis1D) - 1 0.000 0.000 0.000 0.000 auxcoord.py:79(TransientAuxAxis1D) - 26 0.000 0.000 0.000 0.000 avariable.py:115(getNumericCompatibility) - 594 0.005 0.000 0.019 0.000 avariable.py:1172(_process_specs) - 1 0.000 0.000 0.000 0.000 avariable.py:119(AbstractVariable) - 263 0.001 0.000 0.002 0.000 avariable.py:1218(_single_specs) - 1012 0.018 0.000 0.039 0.000 avariable.py:123(__init__) - 469 0.008 0.000 0.025 0.000 avariable.py:1235(specs2slices) - 103 0.002 0.000 0.016 0.000 avariable.py:1303(reg_specs2slices) - 20 0.000 0.000 0.000 0.000 avariable.py:1370(isEncoded) - 125 0.001 0.000 0.113 0.001 avariable.py:1419(__getitem__) - 138 0.000 0.000 0.144 0.001 avariable.py:1430(__getslice__) - 12 0.000 0.000 0.022 0.002 avariable.py:1455(__sub__) - 27 0.000 0.000 0.035 0.001 avariable.py:1461(__mul__) - 85 0.001 0.000 0.273 0.003 avariable.py:147(__call__) - 12 0.000 0.000 0.011 0.001 avariable.py:1500(__le__) - 12 0.000 0.000 0.012 0.001 avariable.py:1506(__ge__) - 123 0.001 0.000 0.002 0.000 avariable.py:1522(orderparse) - 85 0.001 0.000 0.008 0.000 avariable.py:1556(order2index) - 8287 0.011 0.000 0.039 0.000 avariable.py:166(rank) - 366 0.004 0.000 0.038 0.000 avariable.py:169(_returnArray) - 90 0.001 0.000 0.018 0.000 avariable.py:233(generateGridkey) - 90 0.000 0.000 0.005 0.000 avariable.py:301(generateRectGridkey) - 180 0.000 0.000 0.000 0.000 avariable.py:328(isAbstractCoordinate) - 139 0.001 0.000 0.002 0.000 avariable.py:332(setGrid) - 388 0.001 0.000 0.010 0.000 avariable.py:360(getAxisIndex) - 24 0.000 0.000 0.001 0.000 avariable.py:370(hasCellData) - 377 0.001 0.000 0.016 0.000 avariable.py:389(getAxisList) - 21 0.000 0.000 0.000 0.000 avariable.py:399(getAxisIds) - 1 0.008 0.008 0.111 0.111 avariable.py:4() - 40 0.000 0.000 0.000 0.000 avariable.py:404(getGrid) - 386 0.002 0.000 0.004 0.000 avariable.py:407(getMissing) - 24 0.000 0.000 0.001 0.000 avariable.py:457(getTime) - 16 0.000 0.000 0.002 0.000 avariable.py:479(getLevel) - 14 0.000 0.000 0.000 0.000 avariable.py:491(getLatitude) - 14 0.000 0.000 0.000 0.000 avariable.py:509(getLongitude) - 68 0.001 0.000 0.003 0.000 avariable.py:528(getOrder) - 366 0.014 0.000 0.488 0.001 avariable.py:559(subSlice) - 263 0.003 0.000 0.253 0.001 avariable.py:645(getSlice) - 103 0.003 0.000 0.263 0.003 avariable.py:726(subRegion) - 294 0.000 0.000 0.014 0.000 avariable.py:967(reorder) - 294 0.003 0.000 0.003 0.000 avariable.py:977(regrid) - 17 0.001 0.000 0.100 0.006 averager.py:116(area_weights) - 17 0.000 0.000 0.003 0.000 averager.py:16(_check_axisoptions) - 4 0.000 0.000 0.000 0.000 averager.py:28(__myGetAxisWeights) - 17 0.000 0.000 0.102 0.006 averager.py:295(__check_weightoptions) - 1 0.000 0.000 0.000 0.000 averager.py:3() - 1 0.000 0.000 0.000 0.000 averager.py:6(AveragerError) - 26 0.000 0.000 0.076 0.003 averager.py:643(average_engine) - 17 0.001 0.000 0.243 0.014 averager.py:674(averager) - 4 0.000 0.000 0.000 0.000 averager.py:7(__init__) - 20 0.000 0.000 0.000 0.000 axis.py:1006(getCalendar) - 51 0.000 0.000 0.001 0.000 axis.py:1016(setCalendar) - 50 0.000 0.000 0.000 0.000 axis.py:1032(getValue) - 16 0.000 0.000 0.000 0.000 axis.py:1038(_time2value) - 1606 0.001 0.000 0.001 0.000 axis.py:104(getAutoBounds) - 66 0.000 0.000 0.000 0.000 axis.py:1049(getModuloCycle) - 741 0.002 0.000 0.028 0.000 axis.py:108(createAxis) - 8 0.000 0.000 0.002 0.000 axis.py:1117(mapIntervalExt) - 528 0.014 0.000 0.146 0.000 axis.py:1308(subaxis) - 80 0.000 0.000 0.000 0.000 axis.py:1422(validateBounds) - 58 0.003 0.000 0.004 0.000 axis.py:1447(genGenericBounds) - 80 0.001 0.000 0.009 0.000 axis.py:1471(clone) - 825 0.000 0.000 0.000 0.000 axis.py:1531(isVirtual) - 1 0.000 0.000 0.000 0.000 axis.py:1545(Axis) - 48 0.000 0.000 0.000 0.000 axis.py:163(mapLinearIntersection) - 1 0.000 0.000 0.000 0.000 axis.py:1651(TransientAxis) - 1281 0.011 0.000 0.045 0.000 axis.py:1653(__init__) - 762 0.001 0.000 0.002 0.000 axis.py:1696(__getitem__) - 1386 0.001 0.000 0.001 0.000 axis.py:1699(__getslice__) - 7071 0.004 0.000 0.005 0.000 axis.py:1708(__len__) - 1243 0.003 0.000 0.012 0.000 axis.py:1711(getBounds) - 106 0.000 0.000 0.000 0.000 axis.py:1727(getExplicitBounds) - 1361 0.006 0.000 0.019 0.000 axis.py:1738(setBounds) - 1 0.000 0.000 0.000 0.000 axis.py:1770(TransientVirtualAxis) - 1 0.000 0.000 0.000 0.000 axis.py:1816(FileAxis) - 330 0.005 0.000 0.032 0.000 axis.py:1818(__init__) - 80 0.000 0.000 0.001 0.000 axis.py:1845(getData) - 3850 0.006 0.000 0.006 0.000 axis.py:1885(__getattr__) - 5255 0.009 0.000 0.016 0.000 axis.py:1893(__setattr__) - 320 0.001 0.000 0.003 0.000 axis.py:1930(__getitem__) - 1430 0.001 0.000 0.002 0.000 axis.py:1995(__len__) - 80 0.001 0.000 0.006 0.000 axis.py:2013(getBounds) - 80 0.000 0.000 0.000 0.000 axis.py:2029(getExplicitBounds) - 1 0.000 0.000 0.000 0.000 axis.py:21(AliasList) - 8 0.001 0.000 0.002 0.000 axis.py:211(mapLinearExt) - 1 0.000 0.000 0.000 0.000 axis.py:2121(FileVirtualAxis) - 377 0.001 0.000 0.011 0.000 axis.py:2146(axisMatchAxis) - 377 0.004 0.000 0.010 0.000 axis.py:2169(axisMatchIndex) - 5 0.000 0.000 0.000 0.000 axis.py:22(__init__) - 2902 0.009 0.000 0.016 0.000 axis.py:2297(axisMatches) - 1 0.000 0.000 0.000 0.000 axis.py:28(append) - 12 0.000 0.000 0.013 0.001 axis.py:597(allclose) - 1 0.003 0.003 0.004 0.004 axis.py:6() - 1 0.000 0.000 0.000 0.000 axis.py:605(AbstractAxis) - 1611 0.008 0.000 0.028 0.000 axis.py:606(__init__) - 190 0.000 0.000 0.001 0.000 axis.py:625(_getshape) - 180 0.000 0.000 0.001 0.000 axis.py:644(rank) - 246 0.000 0.000 0.003 0.000 axis.py:649(designateLatitude) - 2446 0.009 0.000 0.016 0.000 axis.py:657(isLatitude) - 58 0.000 0.000 0.001 0.000 axis.py:667(designateLevel) - 630 0.009 0.000 0.047 0.000 axis.py:675(isLevel) - 413 0.002 0.000 0.014 0.000 axis.py:694(designateLongitude) - 2347 0.007 0.000 0.012 0.000 axis.py:715(isLongitude) - 51 0.000 0.000 0.002 0.000 axis.py:725(designateTime) - 682 0.002 0.000 0.008 0.000 axis.py:743(isTime) - 7 0.000 0.000 0.000 0.000 axis.py:781(isForecast) - 7 0.000 0.000 0.000 0.000 axis.py:788(asComponentTime) - 36 0.000 0.000 0.000 0.000 axis.py:894(isCircularAxis) - 1667 0.003 0.000 0.009 0.000 axis.py:917(isCircular) - 22 0.000 0.000 0.000 0.000 axis.py:981(getBoundsForDualGrid) - 1 0.000 0.000 0.000 0.000 base64.py:3() - 1 0.000 0.000 0.000 0.000 bdb.py:1() - 1 0.000 0.000 0.000 0.000 bdb.py:10(BdbQuit) - 1 0.000 0.000 0.000 0.000 bdb.py:14(Bdb) - 71 0.000 0.000 0.000 0.000 bdb.py:176(_set_stopinfo) - 71 0.000 0.000 0.000 0.000 bdb.py:23(__init__) - 71 0.001 0.000 0.008 0.000 bdb.py:39(reset) - 1 0.000 0.000 0.000 0.000 bdb.py:449(Breakpoint) - 1 0.000 0.000 0.000 0.000 bdb.py:614(Tdb) - 1 0.000 0.000 0.000 0.000 behavior.py:1() - 1 0.000 0.000 0.000 0.000 behavior.py:1(Behavior) - 1 0.001 0.001 0.001 0.001 bindex.py:4() - 1 0.001 0.001 0.001 0.001 bisect.py:1() - 1 0.002 0.002 0.020 0.020 box.py:1() - 1 0.000 0.000 0.000 0.000 box.py:6(BoxEditor) - 1 0.000 0.000 0.000 0.000 boxfill.py:131(Gfb) - 1 0.003 0.003 0.265 0.265 boxfill.py:3() - 17 0.001 0.000 0.001 0.000 boxfill.py:484(__init__) - 16 0.000 0.000 0.000 0.000 boxfill.py:573(_getcalendar) - 8 0.000 0.000 0.000 0.000 boxfill.py:576(_setcalendar) - 16 0.000 0.000 0.000 0.000 boxfill.py:584(_gettimeunits) - 8 0.000 0.000 0.000 0.000 boxfill.py:587(_settimeunits) - 58 0.000 0.000 0.000 0.000 boxfill.py:595(_getboxfilltype) - 8 0.000 0.000 0.000 0.000 boxfill.py:598(_setboxfilltype) - 28 0.000 0.000 0.000 0.000 boxfill.py:606(_getlevel_1) - 8 0.000 0.000 0.000 0.000 boxfill.py:609(_setlevel_1) - 16 0.000 0.000 0.000 0.000 boxfill.py:614(_getlevel_2) - 8 0.000 0.000 0.000 0.000 boxfill.py:617(_setlevel_2) - 28 0.000 0.000 0.000 0.000 boxfill.py:622(_getcolor_1) - 8 0.000 0.000 0.000 0.000 boxfill.py:625(_setcolor_1) - 28 0.000 0.000 0.000 0.000 boxfill.py:630(_getcolor_2) - 8 0.000 0.000 0.000 0.000 boxfill.py:633(_setcolor_2) - 16 0.000 0.000 0.000 0.000 boxfill.py:642(_getfillareaindices) - 8 0.000 0.000 0.000 0.000 boxfill.py:645(_setfillareaindices) - 28 0.000 0.000 0.000 0.000 boxfill.py:654(_getfillareastyle) - 8 0.000 0.000 0.000 0.000 boxfill.py:657(_setfillareastyle) - 22 0.000 0.000 0.000 0.000 boxfill.py:670(_getmissing) - 8 0.000 0.000 0.000 0.000 boxfill.py:673(_setmissing) - 824 0.000 0.000 0.000 0.000 boxfill.py:680(_getname) - 22 0.000 0.000 0.000 0.000 boxfill.py:689(_getxaxisconvert) - 8 0.000 0.000 0.000 0.000 boxfill.py:692(_setxaxisconvert) - 22 0.000 0.000 0.000 0.000 boxfill.py:700(_getyaxisconvert) - 8 0.000 0.000 0.000 0.000 boxfill.py:703(_setyaxisconvert) - 40 0.000 0.000 0.000 0.000 boxfill.py:713(_getxticlabels1) - 13 0.000 0.000 0.000 0.000 boxfill.py:716(_setxticlabels1) - 46 0.000 0.000 0.000 0.000 boxfill.py:721(_getxticlabels2) - 14 0.000 0.000 0.000 0.000 boxfill.py:724(_setxticlabels2) - 46 0.000 0.000 0.000 0.000 boxfill.py:729(_getyticlabels1) - 13 0.000 0.000 0.000 0.000 boxfill.py:732(_setyticlabels1) - 51 0.000 0.000 0.000 0.000 boxfill.py:737(_getyticlabels2) - 14 0.000 0.000 0.000 0.000 boxfill.py:740(_setyticlabels2) - 34 0.000 0.000 0.000 0.000 boxfill.py:745(_getxmtics1) - 8 0.000 0.000 0.000 0.000 boxfill.py:748(_setxmtics1) - 40 0.000 0.000 0.000 0.000 boxfill.py:753(_getxmtics2) - 8 0.000 0.000 0.000 0.000 boxfill.py:756(_setxmtics2) - 39 0.000 0.000 0.000 0.000 boxfill.py:761(_getymtics1) - 8 0.000 0.000 0.000 0.000 boxfill.py:764(_setymtics1) - 45 0.000 0.000 0.000 0.000 boxfill.py:769(_getymtics2) - 8 0.000 0.000 0.000 0.000 boxfill.py:772(_setymtics2) - 58 0.000 0.000 0.000 0.000 boxfill.py:777(_getdatawc_x1) - 8 0.000 0.000 0.000 0.000 boxfill.py:780(_setdatawc_x1) - 58 0.000 0.000 0.000 0.000 boxfill.py:785(_getdatawc_x2) - 8 0.000 0.000 0.000 0.000 boxfill.py:788(_setdatawc_x2) - 58 0.000 0.000 0.000 0.000 boxfill.py:793(_getdatawc_y1) - 8 0.000 0.000 0.000 0.000 boxfill.py:796(_setdatawc_y1) - 58 0.000 0.000 0.000 0.000 boxfill.py:801(_getdatawc_y2) - 8 0.000 0.000 0.000 0.000 boxfill.py:804(_setdatawc_y2) - 6 0.000 0.000 0.008 0.001 boxfill.py:858(getlevels) - 6 0.000 0.000 0.061 0.010 boxfill.py:893(getlegendlabels) - 1 0.001 0.001 0.002 0.002 boxfillpipeline.py:1() - 6 0.000 0.000 0.000 0.000 boxfillpipeline.py:20(__init__) - 6 0.003 0.001 0.017 0.003 boxfillpipeline.py:206(_plotInternalBoxfill) - 6 0.000 0.000 0.033 0.005 boxfillpipeline.py:28(_updateScalarData) - 6 0.000 0.000 0.070 0.012 boxfillpipeline.py:38(_updateContourLevelsAndColors) - 6 0.000 0.000 0.070 0.012 boxfillpipeline.py:48(_updateContourLevelsAndColorsForBoxfill) - 6 0.001 0.000 2.488 0.415 boxfillpipeline.py:55(_plotInternal) - 1 0.000 0.000 0.000 0.000 boxfillpipeline.py:9(BoxfillPipeline) - 1 0.003 0.003 0.010 0.010 button.py:1() - 1 0.000 0.000 0.000 0.000 button.py:14(ButtonState) - 1 0.000 0.000 0.000 0.000 button.py:365(ToggleButton) - 1 0.000 0.000 0.000 0.000 button.py:39(Button) - 1 0.000 0.000 0.000 0.000 button.py:423(SliderButton) - 1 0.000 0.000 0.000 0.000 cache.py:215(Cache) - 1 0.002 0.002 0.005 0.005 cache.py:3() - 1 0.003 0.003 0.004 0.004 case.py:1() - 1 0.000 0.000 0.000 0.000 case.py:1018(FunctionTestCase) - 1 0.000 0.000 0.000 0.000 case.py:131(TestCase) - 1 0.000 0.000 0.000 0.000 case.py:25(SkipTest) - 1 0.000 0.000 0.000 0.000 case.py:34(_ExpectedFailure) - 1 0.000 0.000 0.000 0.000 case.py:45(_UnexpectedSuccess) - 7 0.000 0.000 0.000 0.000 case.py:607(_deprecate) - 1 0.000 0.000 0.000 0.000 case.py:98(_AssertRaisesContext) - 1 0.006 0.006 0.032 0.032 ccompiler.py:1() - 10 0.000 0.000 0.000 0.000 ccompiler.py:22(replace_method) - 1 0.000 0.000 0.000 0.000 ccompiler.py:23(CCompiler) - 1 0.005 0.005 0.011 0.011 ccompiler.py:4() - 1 0.000 0.000 0.000 0.000 cdat_info.py:12(get_drs_dirs) - 1 0.000 0.000 0.000 0.000 cdat_info.py:14(get_drs_libs) - 1 0.000 0.000 0.000 0.000 cdat_info.py:2() - 4 0.000 0.000 0.000 0.000 cdat_info.py:27(get_prefix) - 1 0.000 0.000 0.000 0.000 cdat_info.py:31(get_sampledata_path) - 43 0.000 0.000 0.000 0.000 cdat_info.py:39(runCheck) - 44 0.000 0.000 0.000 0.000 cdat_info.py:69(askAnonymous) - 44 0.003 0.000 0.042 0.001 cdat_info.py:96(pingPCMDIdb) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:115(CdmsNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:373(DatasetNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:424(VariableNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:454(AxisNode) - 1 0.001 0.001 0.002 0.002 cdmsNode.py:6() - 1 0.000 0.000 0.000 0.000 cdmsNode.py:723(LinearDataNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:79(NotMonotonicError) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:829(RectGridNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:851(XLinkNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:866(DocLinkNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:879(DomainNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:885(DomElemNode) - 1 0.000 0.000 0.000 0.000 cdmsNode.py:931(AttrNode) - 1 0.000 0.000 0.005 0.005 cdmsURLopener.py:1() - 1 0.000 0.000 0.000 0.000 cdmsURLopener.py:6(CDMSURLopener) - 1 0.002 0.002 0.006 0.006 cdmsobj.py:3() - 1 0.000 0.000 0.000 0.000 cdmsobj.py:442(CdmsObj) - 9094 0.080 0.000 0.098 0.000 cdmsobj.py:450(_listatts) - 2421 0.001 0.000 0.001 0.000 cdmsobj.py:458(_setatts) - 2871 0.010 0.000 0.023 0.000 cdmsobj.py:464(__init__) - 53238 0.014 0.000 0.014 0.000 cdmsobj.py:650(_getinternals) - 1 0.001 0.001 0.003 0.003 cdurllib.py:1() - 1 0.000 0.000 0.000 0.000 cdurllib.py:7(CDURLopener) - 1 0.000 0.000 0.000 0.000 cdurlparse.py:4() - 1 0.000 0.000 0.017 0.017 cdxmllib.py:1() - 1 0.000 0.000 0.000 0.000 cdxmllib.py:15(Error) - 1 0.000 0.000 0.000 0.000 cdxmllib.py:808(TestXMLParser) - 1 0.000 0.000 0.000 0.000 cdxmllib.py:91(XMLParser) - 1 0.000 0.000 0.000 0.000 chebyshev.py:2041(Chebyshev) - 1 0.000 0.000 0.000 0.000 chebyshev.py:87() - 1 0.000 0.000 0.000 0.000 clickable.py:1() - 1 0.000 0.000 0.000 0.000 clickable.py:4(ClickableMixin) - 1 0.000 0.000 0.000 0.000 cmd.py:46() - 1 0.000 0.000 0.000 0.000 cmd.py:55(Cmd) - 71 0.001 0.000 0.001 0.000 cmd.py:79(__init__) - 1 0.000 0.000 0.000 0.000 codecs.py:92(__new__) - 1 0.003 0.003 0.006 0.006 collections.py:11() - 40535 0.223 0.000 0.510 0.000 collections.py:117(keys) - 15 0.000 0.000 0.000 0.000 collections.py:121(values) - 13 0.009 0.001 0.011 0.001 collections.py:305(namedtuple) - 558 0.000 0.000 0.000 0.000 collections.py:349() - 66 0.000 0.000 0.000 0.000 collections.py:373() - 66 0.000 0.000 0.000 0.000 collections.py:375() - 1 0.000 0.000 0.000 0.000 collections.py:38(OrderedDict) - 1 0.000 0.000 0.000 0.000 collections.py:407(Counter) - 48 0.001 0.000 0.003 0.000 collections.py:50(__init__) - 829 0.002 0.000 0.002 0.000 collections.py:71(__setitem__) - 1136812 0.287 0.000 0.287 0.000 collections.py:90(__iter__) - 3178 0.013 0.000 0.019 0.000 colormap.py:158(__getitem__) - 1 0.000 0.000 0.000 0.000 colormap.py:171(Cp) - 10 0.000 0.000 0.000 0.000 colormap.py:237(getname) - 3262 0.002 0.000 0.007 0.000 colormap.py:248(getindex) - 41 0.016 0.000 0.019 0.000 colormap.py:253(setindex) - 44 0.001 0.000 0.168 0.004 colormap.py:273(__init__) - 1 0.000 0.000 0.000 0.000 colormap.py:3() - 1 0.000 0.000 0.000 0.000 colormap.py:42(RGB_Table) - 1 0.000 0.000 0.000 0.000 colormap.py:45(__init__) - 1 0.000 0.000 0.000 0.000 colorpicker.py:1() - 1 0.000 0.000 0.000 0.000 colorpicker.py:6(ColorPicker) - 2 0.000 0.000 0.000 0.000 colors.py:1() - 9 0.002 0.000 0.006 0.001 colors.py:654(str2rgb) - 1 0.000 0.000 0.000 0.000 common.py:1() - 1 0.000 0.000 0.000 0.000 compat.py:4() - 1 0.001 0.001 0.034 0.034 configurator.py:1() - 1 0.000 0.000 0.000 0.000 configurator.py:79(Configurator) - 1 0.000 0.000 0.000 0.000 contextlib.py:1() - 1 0.000 0.000 0.000 0.000 contextlib.py:132(closing) - 5 0.000 0.000 0.000 0.000 contextlib.py:54(contextmanager) - 1 0.000 0.000 0.000 0.000 contextlib.py:9(GeneratorContextManager) - 1 0.000 0.000 0.000 0.000 continents.py:1() - 1 0.000 0.000 0.000 0.000 continents.py:7(Guc) - 1 0.000 0.000 0.000 0.000 convention.py:1() - 1 0.000 0.000 0.000 0.000 convention.py:12(AliasList) - 5 0.000 0.000 0.000 0.000 convention.py:13(__init__) - 90 0.000 0.000 0.007 0.000 convention.py:143(getVarLatId) - 90 0.000 0.000 0.005 0.000 convention.py:167(getVarLonId) - 330 0.001 0.000 0.005 0.000 convention.py:191(axisIsLatitude) - 330 0.001 0.000 0.004 0.000 convention.py:201(axisIsLongitude) - 30 0.000 0.000 0.000 0.000 convention.py:229(getDatasetConvention) - 1 0.000 0.000 0.000 0.000 convention.py:28(AbstractConvention) - 240 0.001 0.000 0.001 0.000 convention.py:39(axisIsLatitude) - 240 0.000 0.000 0.001 0.000 convention.py:43(axisIsLongitude) - 90 0.001 0.000 0.006 0.000 convention.py:47(getVarLatId) - 90 0.001 0.000 0.005 0.000 convention.py:58(getVarLonId) - 1 0.000 0.000 0.000 0.000 convention.py:68(NUGConvention) - 3 0.000 0.000 0.000 0.000 convention.py:70(__init__) - 30 0.004 0.000 0.004 0.000 convention.py:73(getAxisIds) - 1 0.000 0.000 0.000 0.000 convention.py:85(COARDSConvention) - 2 0.000 0.000 0.000 0.000 convention.py:87(__init__) - 1 0.000 0.000 0.000 0.000 convention.py:90(CFConvention) - 1 0.000 0.000 0.000 0.000 convention.py:94(__init__) - 30 0.000 0.000 0.001 0.000 convention.py:97(getAxisAuxIds) - 1 0.000 0.000 0.000 0.000 coord.py:261(AbstractAxis2D) - 1 0.000 0.000 0.000 0.000 coord.py:295(DatasetAxis2D) - 1 0.000 0.000 0.000 0.000 coord.py:312(FileAxis2D) - 1 0.000 0.000 0.000 0.000 coord.py:327(TransientAxis2D) - 1 0.003 0.003 0.118 0.118 coord.py:6() - 1 0.000 0.000 0.000 0.000 coord.py:61(AbstractCoordinateAxis) - 184 0.000 0.000 0.000 0.000 copy.py:101(_copy_immutable) - 227 0.001 0.000 0.001 0.000 copy.py:113(_copy_with_constructor) - 66412/44 0.074 0.000 0.168 0.004 copy.py:145(deepcopy) - 11200 0.002 0.000 0.002 0.000 copy.py:198(_deepcopy_atomic) - 11017 0.033 0.000 0.085 0.000 copy.py:226(_deepcopy_list) - 2 0.000 0.000 0.000 0.000 copy.py:234(_deepcopy_tuple) - 89/44 0.009 0.000 0.166 0.004 copy.py:253(_deepcopy_dict) - 22369 0.016 0.000 0.021 0.000 copy.py:267(_keep_alive) - 43 0.000 0.000 0.166 0.004 copy.py:283(_deepcopy_inst) - 20402 0.206 0.000 3.386 0.000 copy.py:306(_reconstruct) - 22783 0.083 0.000 3.780 0.000 copy.py:66(copy) - 1 0.000 0.000 0.000 0.000 copy_reg.py:14(pickle) - 1 0.000 0.000 0.000 0.000 copy_reg.py:27(constructor) - 20402 0.014 0.000 0.022 0.000 copy_reg.py:92(__newobj__) - 9 0.000 0.000 0.000 0.000 copy_reg.py:95(_slotnames) - 1 0.000 0.000 0.000 0.000 core.py:1() - 1 0.000 0.000 0.000 0.000 core.py:1118(_DomainedBinaryOperation) - 43 0.000 0.000 0.001 0.000 core.py:113(get_object_signature) - 6 0.000 0.000 0.000 0.000 core.py:1139(__init__) - 13 0.001 0.000 0.003 0.000 core.py:1152(__call__) - 2111 0.001 0.000 0.001 0.000 core.py:1282(_recursive_make_descr) - 1 0.000 0.000 0.000 0.000 core.py:130(MAError) - 2111 0.004 0.000 0.006 0.000 core.py:1303(make_mask_descr) - 11002 0.006 0.000 0.023 0.000 core.py:1339(getmask) - 1 0.000 0.000 0.000 0.000 core.py:138(MaskError) - 2034 0.005 0.000 0.028 0.000 core.py:1403(getmaskarray) - 879 0.001 0.000 0.004 0.000 core.py:1526(make_mask) - 1999 0.003 0.000 0.011 0.000 core.py:1621(make_mask_none) - 829 0.003 0.000 0.006 0.000 core.py:1671(mask_or) - 673/493 0.002 0.000 0.008 0.000 core.py:178(default_fill_value) - 182 0.000 0.000 0.002 0.000 core.py:1793(_check_mask_axis) - 30 0.000 0.000 0.005 0.000 core.py:1805(masked_where) - 30 0.000 0.000 0.011 0.000 core.py:2052(masked_equal) - 1 0.001 0.001 0.005 0.005 core.py:21() - 20 0.002 0.000 0.005 0.000 core.py:2223(masked_values) - 20 0.001 0.000 0.006 0.000 core.py:2305(masked_invalid) - 1 0.000 0.000 0.000 0.000 core.py:2352(_MaskedPrintOption) - 1 0.000 0.000 0.000 0.000 core.py:2358(__init__) - 215 0.001 0.000 0.003 0.000 core.py:242(_recursive_extremum_fill_value) - 9 0.000 0.000 0.000 0.000 core.py:2521(_arraymethod) - 107 0.000 0.000 0.002 0.000 core.py:253(minimum_fill_value) - 4 0.000 0.000 0.001 0.000 core.py:2548(wrapped_method) - 1 0.000 0.000 0.000 0.000 core.py:2569(MaskedIterator) - 1 0.000 0.000 0.000 0.000 core.py:2683(MaskedArray) - 2221 0.032 0.000 0.213 0.000 core.py:2748(__new__) - 8512 0.073 0.000 0.144 0.000 core.py:2882(_update_from) - 6344 0.084 0.000 0.302 0.000 core.py:2908(__array_finalize__) - 482 0.004 0.000 0.039 0.000 core.py:2979(__array_wrap__) - 865 0.003 0.000 0.015 0.000 core.py:3029(view) - 452 0.004 0.000 0.030 0.000 core.py:3112(astype) - 1956 0.009 0.000 0.073 0.000 core.py:3151(__getitem__) - 108 0.000 0.000 0.002 0.000 core.py:316(maximum_fill_value) - 20 0.001 0.000 0.006 0.000 core.py:3220(__setitem__) -52368/50355 0.081 0.000 0.114 0.000 core.py:3308(__setattr__) - 20 0.000 0.000 0.007 0.000 core.py:3329(__setslice__) - 60 0.002 0.000 0.002 0.000 core.py:3339(__setmask__) - 457 0.000 0.000 0.000 0.000 core.py:3410(_get_mask) - 20 0.000 0.000 0.000 0.000 core.py:3476(unshare_mask) - 18285 0.024 0.000 0.024 0.000 core.py:3528(_get_data) - 5525 0.007 0.000 0.010 0.000 core.py:3550(get_fill_value) - 2788 0.006 0.000 0.019 0.000 core.py:3578(set_fill_value) - 379 0.002 0.000 0.009 0.000 core.py:3620(filled) - 778 0.002 0.000 0.004 0.000 core.py:3864(_delegate_binop) - 12 0.000 0.000 0.001 0.000 core.py:3955(__radd__) - 12 0.000 0.000 0.001 0.000 core.py:3964(__sub__) - 753 0.002 0.000 0.034 0.000 core.py:3980(__mul__) - 12 0.000 0.000 0.002 0.000 core.py:3986(__rmul__) - 1 0.000 0.000 0.000 0.000 core.py:4(VCSaddon) - 13 0.000 0.000 0.004 0.000 core.py:4004(__truediv__) - 1059 0.002 0.000 0.003 0.000 core.py:4176(__float__) - 26 0.000 0.000 0.000 0.000 core.py:4189(__int__) - 442 0.003 0.000 0.006 0.000 core.py:4270(count) - 171 0.002 0.000 0.020 0.000 core.py:4377(ravel) - 4554 0.013 0.000 0.027 0.000 core.py:440(_check_fill_value) - 2 0.000 0.000 0.000 0.000 core.py:4425(reshape) - 24 0.000 0.000 0.003 0.000 core.py:4622(all) - 56 0.000 0.000 0.005 0.000 core.py:4847(sum) - 4 0.000 0.000 0.001 0.000 core.py:5011(mean) - 51 0.001 0.000 0.009 0.000 core.py:5435(min) - 51 0.000 0.000 0.008 0.000 core.py:5537(max) - 6 0.000 0.000 0.000 0.000 core.py:5669(tolist) - 1 0.000 0.000 0.000 0.000 core.py:5902(mvoid) - 1320 0.003 0.000 0.007 0.000 core.py:599(filled) - 37 0.000 0.000 0.000 0.000 core.py:6048(isMaskedArray) - 1 0.000 0.000 0.000 0.000 core.py:6104(MaskedConstant) - 1 0.000 0.000 0.000 0.000 core.py:6111(__new__) - 1 0.000 0.000 0.000 0.000 core.py:6114(__array_finalize__) - 363 0.003 0.000 0.034 0.000 core.py:6139(array) - 1 0.000 0.000 0.000 0.000 core.py:6214(_extrema_operation) - 2056 0.006 0.000 0.264 0.000 core.py:6224(__call__) - 929 0.005 0.000 0.058 0.000 core.py:6230(reduce) - 1 0.000 0.000 0.000 0.000 core.py:6271(_minimum_operation) - 1 0.000 0.000 0.000 0.000 core.py:6275(__init__) - 1 0.000 0.000 0.000 0.000 core.py:6285(_maximum_operation) - 1 0.000 0.000 0.000 0.000 core.py:6289(__init__) - 6 0.000 0.000 0.001 0.000 core.py:6298(min) - 6 0.000 0.000 0.001 0.000 core.py:6310(max) - 1 0.000 0.000 0.000 0.000 core.py:6342(_frommethod) - 26 0.000 0.000 0.001 0.000 core.py:6353(__init__) - 26 0.000 0.000 0.001 0.000 core.py:6358(getdoc) - 652 0.003 0.000 0.033 0.000 core.py:6368(__call__) - 502 0.012 0.000 0.065 0.000 core.py:6424(power) - 193 0.001 0.000 0.001 0.000 core.py:645(get_masked_subclass) - 8163 0.021 0.000 0.031 0.000 core.py:672(getdata) - 4 0.000 0.000 0.001 0.000 core.py:6768(transpose) - 22 0.000 0.000 0.000 0.000 core.py:6808(reshape) - 26 0.000 0.000 0.000 0.000 core.py:6918(shape) - 157 0.000 0.000 0.001 0.000 core.py:6924(size) - 1127 0.027 0.000 0.149 0.000 core.py:6935(where) - 12 0.001 0.000 0.013 0.001 core.py:7411(allclose) - 52 0.000 0.000 0.014 0.000 core.py:7516(asarray) - 1 0.000 0.000 0.000 0.000 core.py:7764(_convert2ma) - 8 0.000 0.000 0.000 0.000 core.py:7777(__init__) - 8 0.000 0.000 0.000 0.000 core.py:7782(getdoc) - 6 0.000 0.000 0.000 0.000 core.py:7793(__call__) - 1 0.000 0.000 0.000 0.000 core.py:796(_DomainCheckInterval) - 3 0.000 0.000 0.000 0.000 core.py:805(__init__) - 1 0.000 0.000 0.000 0.000 core.py:818(_DomainTan) - 1 0.000 0.000 0.000 0.000 core.py:826(__init__) - 1 0.000 0.000 0.000 0.000 core.py:835(_DomainSafeDivide) - 6 0.000 0.000 0.000 0.000 core.py:841(__init__) - 13 0.000 0.000 0.000 0.000 core.py:844(__call__) - 1 0.000 0.000 0.000 0.000 core.py:855(_DomainGreater) - 3 0.000 0.000 0.000 0.000 core.py:861(__init__) - 303 0.001 0.000 0.001 0.000 core.py:865(__call__) - 1 0.000 0.000 0.000 0.000 core.py:870(_DomainGreaterEqual) - 2 0.000 0.000 0.000 0.000 core.py:876(__init__) - 1 0.000 0.000 0.000 0.000 core.py:885(_MaskedUnaryOperation) - 1 0.000 0.000 0.000 0.000 core.py:90(MaskedArrayFutureWarning) - 27 0.000 0.000 0.000 0.000 core.py:903(__init__) - 658 0.007 0.000 0.020 0.000 core.py:912(__call__) - 4 0.000 0.000 0.000 0.000 core.py:94(doc_note) - 1 0.000 0.000 0.000 0.000 core.py:961(_MaskedBinaryOperation) - 18 0.000 0.000 0.000 0.000 core.py:981(__init__) - 2009 0.025 0.000 0.102 0.000 core.py:996(__call__) - 1 0.000 0.000 0.000 0.000 create_landsea_mask.py:1() - 1 0.000 0.000 0.000 0.000 crossSection.py:3() - 1 0.000 0.000 0.000 0.000 crossSection.py:7(CrossSectionRegridder) - 1 0.000 0.000 0.000 0.000 ctypeslib.py:177(_ndptr) - 12 0.000 0.000 0.000 0.000 ctypeslib.py:219(ndpointer) - 12 0.000 0.000 0.000 0.000 ctypeslib.py:330(prep_simple) - 1 0.000 0.000 0.000 0.000 ctypeslib.py:51() - 1 0.001 0.001 0.049 0.049 ctypeslib.py:91(load_library) - 1 0.000 0.000 0.000 0.000 cudsinterface.py:11(cuDataset) - 30 0.000 0.000 0.000 0.000 cudsinterface.py:13(__init__) - 20 0.000 0.000 0.088 0.004 cudsinterface.py:16(__call__) - 1 0.000 0.000 0.000 0.000 cudsinterface.py:4() - 30 0.000 0.000 0.000 0.000 cudsinterface.py:55(default_variable) - 30 0.000 0.000 0.000 0.000 cudsinterface.py:59(cleardefault) - 1 0.000 0.000 0.000 0.000 data.py:1() - 1 0.000 0.000 0.000 0.000 data.py:6(DataEditor) - 1 0.002 0.002 0.003 0.003 database.py:1() - 1 0.000 0.000 0.000 0.000 database.py:110(AbstractDatabase) - 1 0.000 0.000 0.000 0.000 database.py:173(LDAPDatabase) - 1 0.000 0.000 0.000 0.000 database.py:403(AbstractSearchResult) - 1 0.000 0.000 0.000 0.000 database.py:414(LDAPSearchResult) - 1 0.000 0.000 0.000 0.000 database.py:488(AbstractResultEntry) - 1 0.000 0.000 0.000 0.000 database.py:518(LDAPResultEntry) - 1 0.000 0.000 0.000 0.000 dataset.py:1023(CdmsFile) - 30 0.007 0.000 0.127 0.004 dataset.py:1025(__init__) - 540 0.002 0.000 0.002 0.000 dataset.py:1208(__setattr__) - 15 0.001 0.000 0.003 0.000 dataset.py:1251(close) - 18 0.001 0.000 0.135 0.007 dataset.py:317(openDataset) - 1 0.012 0.012 0.186 0.186 dataset.py:4() - 1 0.000 0.000 0.000 0.000 dataset.py:528(Dataset) - 1 0.000 0.000 0.000 0.000 dataset.py:57(DuplicateAxisError) - 1 0.000 0.000 0.000 0.000 debug.py:1() - 1 0.000 0.000 0.000 0.000 decoder.py:17(_floatconstants) - 1 0.001 0.001 0.004 0.004 decoder.py:2() - 1 0.000 0.000 0.000 0.000 decoder.py:272(JSONDecoder) - 1 0.000 0.000 0.000 0.000 decoder.py:302(__init__) - 2 0.000 0.000 0.033 0.016 decoder.py:359(decode) - 2 0.033 0.016 0.033 0.016 decoder.py:370(raw_decode) - 1 0.002 0.002 0.026 0.026 decorators.py:15() - 1 0.000 0.000 0.000 0.000 defchararray.py:1669(chararray) - 1 0.000 0.000 0.000 0.000 defchararray.py:17() - 1 0.001 0.001 0.001 0.001 defmatrix.py:1() - 1 0.000 0.000 0.000 0.000 defmatrix.py:208(matrix) - 1 0.000 0.000 0.000 0.000 dep_util.py:5() - 1 0.000 0.000 0.000 0.000 difflib.py:1670(HtmlDiff) - 1 0.000 0.000 0.001 0.001 difflib.py:27() - 1 0.000 0.000 0.000 0.000 difflib.py:44(SequenceMatcher) - 1 0.000 0.000 0.000 0.000 difflib.py:764(Differ) - 1 0.000 0.000 0.000 0.000 dir_util.py:3() - 1 0.002 0.002 0.002 0.002 dis.py:1() - 7449 0.002 0.000 0.002 0.000 displayplot.py:123(_getname) - 169 0.000 0.000 0.001 0.000 displayplot.py:132(_setnewelements) - 169 0.000 0.000 0.000 0.000 displayplot.py:141(_getcontinents) - 338 0.001 0.000 0.023 0.000 displayplot.py:144(_setcontinents) - 169 0.000 0.000 0.000 0.000 displayplot.py:151(_getcontinents_line) - 338 0.001 0.000 0.011 0.000 displayplot.py:154(_setcontinents_line) - 169 0.000 0.000 0.000 0.000 displayplot.py:159(_getpriority) - 169 0.000 0.000 0.002 0.000 displayplot.py:162(_setpriority) - 169 0.000 0.000 0.000 0.000 displayplot.py:170(_getoff) - 169 0.001 0.000 0.004 0.000 displayplot.py:173(_setoff) - 169 0.000 0.000 0.000 0.000 displayplot.py:184(_getg_name) - 338 0.000 0.000 0.002 0.000 displayplot.py:187(_setg_name) - 169 0.000 0.000 0.000 0.000 displayplot.py:194(_getarray) - 338 0.000 0.000 0.000 0.000 displayplot.py:197(_setarray) - 169 0.000 0.000 0.000 0.000 displayplot.py:203(_gettemplate) - 338 0.001 0.000 0.002 0.000 displayplot.py:206(_settemplate) - 169 0.000 0.000 0.000 0.000 displayplot.py:213(_gettemplate_origin) - 338 0.000 0.000 0.002 0.000 displayplot.py:216(_settemplate_origin) - 338 0.000 0.000 0.000 0.000 displayplot.py:223(_getg_type) - 338 0.003 0.000 0.005 0.000 displayplot.py:226(_setg_type) - 262 0.000 0.000 0.000 0.000 displayplot.py:237(_get_backend) - 169 0.000 0.000 0.000 0.000 displayplot.py:240(_set_backend) - 170 0.006 0.000 0.043 0.000 displayplot.py:256(__init__) - 1 0.000 0.000 0.000 0.000 displayplot.py:30(Dp) - 1 0.000 0.000 0.000 0.000 displayplot.py:5() - 71 0.000 0.000 0.028 0.000 doctest.py:1017(_get_test) - 71 0.001 0.000 0.004 0.000 doctest.py:1054(_find_lineno) - 1 0.000 0.000 0.000 0.000 doctest.py:1106(DocTestRunner) - 1 0.000 0.000 0.000 0.000 doctest.py:1166(__init__) - 241 0.001 0.000 0.007 0.000 doctest.py:1202(report_start) - 234 0.000 0.000 0.001 0.000 doctest.py:1215(report_success) - 4 0.000 0.000 0.001 0.000 doctest.py:1223(report_failure) - 3 0.000 0.000 0.001 0.000 doctest.py:1230(report_unexpected_exception) - 7 0.000 0.000 0.000 0.000 doctest.py:1237(_failure_header) - 71 0.009 0.000 16.584 0.234 doctest.py:1257(__run) - 10 0.000 0.000 0.000 0.000 doctest.py:128(register_optionflag) - 71 0.000 0.000 0.000 0.000 doctest.py:1380(__record_outcome) - 38 0.000 0.000 0.046 0.001 doctest.py:1393(__patched_linecache_getlines) - 71 0.002 0.000 16.613 0.234 doctest.py:1404(run) - 1 0.000 0.000 0.000 0.000 doctest.py:1466(summarize) - 1 0.000 0.000 0.000 0.000 doctest.py:1536(OutputChecker) - 243 0.001 0.000 0.007 0.000 doctest.py:1544(check_output) - 4 0.000 0.000 0.000 0.000 doctest.py:1598(_do_a_fancy_diff) - 4 0.000 0.000 0.000 0.000 doctest.py:1621(output_difference) - 1 0.000 0.000 0.000 0.000 doctest.py:1669(DocTestFailure) - 1 0.000 0.000 0.000 0.000 doctest.py:1688(UnexpectedException) - 1 0.000 0.000 0.000 0.000 doctest.py:1707(DebugRunner) - 71 0.001 0.000 0.002 0.000 doctest.py:178(_extract_future_flags) - 1 0.001 0.001 16.649 16.649 doctest.py:1819(testmod) - 1 0.000 0.000 0.000 0.000 doctest.py:2077(Tester) - 1 0.000 0.000 0.000 0.000 doctest.py:2178(DocTestCase) - 362 0.001 0.000 0.005 0.000 doctest.py:225(_indent) - 1 0.000 0.000 0.000 0.000 doctest.py:2341(SkipDocTestCase) - 6 0.000 0.000 0.032 0.005 doctest.py:237(_exception_traceback) - 1 0.000 0.000 0.000 0.000 doctest.py:2431(DocFileCase) - 1 0.000 0.000 0.000 0.000 doctest.py:249(_SpoofOut) - 492 0.002 0.000 0.004 0.000 doctest.py:250(getvalue) - 246 0.001 0.000 0.004 0.000 doctest.py:263(truncate) - 1 0.000 0.000 0.000 0.000 doctest.py:2696(_TestClass) - 104 0.001 0.000 0.001 0.000 doctest.py:272(_ellipsis_match) - 1 0.000 0.000 0.000 0.000 doctest.py:355(_OutputRedirectingPdb) - 71 0.001 0.000 0.015 0.000 doctest.py:361(__init__) - 246 0.000 0.000 0.000 0.000 doctest.py:374(set_continue) - 1 0.000 0.000 0.000 0.000 doctest.py:427(Example) - 1 0.002 0.002 0.014 0.014 doctest.py:46() - 246 0.001 0.000 0.001 0.000 doctest.py:462(__init__) - 1 0.000 0.000 0.000 0.000 doctest.py:499(DocTest) - 71 0.000 0.000 0.001 0.000 doctest.py:523(__init__) - 341 0.001 0.000 0.001 0.000 doctest.py:565(__cmp__) - 1 0.000 0.000 0.005 0.005 doctest.py:575(DocTestParser) - 71 0.007 0.000 0.022 0.000 doctest.py:623(parse) - 71 0.000 0.000 0.023 0.000 doctest.py:662(get_doctest) - 71 0.000 0.000 0.022 0.000 doctest.py:674(get_examples) - 246 0.003 0.000 0.006 0.000 doctest.py:688(_parse_example) - 246 0.000 0.000 0.001 0.000 doctest.py:742(_find_options) - 71 0.001 0.000 0.005 0.000 doctest.py:772(_min_indent) - 246 0.001 0.000 0.001 0.000 doctest.py:780(_check_prompt_blank) - 492 0.000 0.000 0.001 0.000 doctest.py:794(_check_prefix) - 1 0.000 0.000 0.000 0.000 doctest.py:810(DocTestFinder) - 1 0.000 0.000 0.000 0.000 doctest.py:819(__init__) - 1 0.000 0.000 0.034 0.034 doctest.py:841(find) - 73 0.000 0.000 0.001 0.000 doctest.py:934(_from_module) - 73/1 0.001 0.000 0.030 0.030 doctest.py:954(_find) - 1 0.015 0.015 19.115 19.115 doctest_vcs.py:1() - 8 0.000 0.000 0.001 0.000 doctest_vcs.py:49(consume_entry) - 1 0.000 0.000 0.003 0.003 doctest_vcs.py:60(cleanup) - 1 0.002 0.002 0.028 0.028 doctest_vcs.py:8(log_stats) - 1 0.001 0.001 0.001 0.001 draggable.py:1() - 1 0.000 0.000 0.000 0.000 draggable.py:5(DraggableMixin) - 10 0.000 0.000 0.647 0.065 dv3d.py:119(__init__) - 1 0.000 0.000 0.000 0.000 dv3d.py:14(Gfdv3d) - 200 0.001 0.000 0.001 0.000 dv3d.py:178(add_property) - 3 0.000 0.000 0.000 0.000 dv3d.py:196(getPlotAttributes) - 10 0.003 0.000 0.598 0.060 dv3d.py:199(getParameterList) - 10 0.000 0.000 0.599 0.060 dv3d.py:206(addParameters) - 1 0.000 0.000 0.000 0.000 dv3d.py:234(Gf3Dvector) - 3 0.000 0.000 0.394 0.131 dv3d.py:236(__init__) - 1 0.000 0.000 0.000 0.000 dv3d.py:241(Gf3Dscalar) - 4 0.000 0.000 0.142 0.035 dv3d.py:243(__init__) - 1 0.000 0.000 0.000 0.000 dv3d.py:249(Gf3DDualScalar) - 3 0.000 0.000 0.111 0.037 dv3d.py:251(__init__) - 6 0.000 0.000 0.000 0.000 dv3d.py:27(_getname) - 3 0.000 0.000 0.000 0.000 dv3d.py:36(_getaxes) - 3 0.000 0.000 0.000 0.000 dv3d.py:44(_getNumCores) - 1 0.004 0.004 0.011 0.011 dv3d.py:5() - 1 0.000 0.000 0.000 0.000 encoder.py:101(__init__) - 1 0.000 0.000 0.001 0.001 encoder.py:2() - 1 0.000 0.000 0.000 0.000 encoder.py:70(JSONEncoder) - 3 0.000 0.000 0.000 0.000 error.py:1() - 1 0.000 0.000 0.000 0.000 error.py:1(RegridError) - 1 0.000 0.000 0.000 0.000 error.py:3(CDMSError) - 397 0.001 0.000 0.001 0.000 error.py:4(__init__) - 1 0.000 0.000 0.000 0.000 error.py:4(vcsError) - 1 0.000 0.000 0.000 0.000 error.py:6(__init__) - 3 0.000 0.000 0.000 0.000 error.py:9(__str__) - 1 0.000 0.000 0.000 0.000 errors.py:13(DistutilsError) - 1 0.000 0.000 0.000 0.000 errors.py:16(DistutilsModuleError) - 1 0.000 0.000 0.000 0.000 errors.py:20(DistutilsClassError) - 1 0.000 0.000 0.000 0.000 errors.py:26(DistutilsGetoptError) - 1 0.000 0.000 0.000 0.000 errors.py:29(DistutilsArgError) - 1 0.000 0.000 0.000 0.000 errors.py:33(DistutilsFileError) - 1 0.000 0.000 0.000 0.000 errors.py:38(DistutilsOptionError) - 1 0.000 0.000 0.000 0.000 errors.py:46(DistutilsSetupError) - 1 0.000 0.000 0.000 0.000 errors.py:50(DistutilsPlatformError) - 1 0.000 0.000 0.000 0.000 errors.py:55(DistutilsExecError) - 1 0.000 0.000 0.000 0.000 errors.py:59(DistutilsInternalError) - 1 0.000 0.000 0.000 0.000 errors.py:63(DistutilsTemplateError) - 1 0.000 0.000 0.000 0.000 errors.py:66(DistutilsByteCompileError) - 1 0.000 0.000 0.000 0.000 errors.py:70(CCompilerError) - 1 0.000 0.000 0.000 0.000 errors.py:73(PreprocessError) - 1 0.000 0.000 0.000 0.000 errors.py:76(CompileError) - 1 0.000 0.000 0.000 0.000 errors.py:79(LibError) - 1 0.000 0.000 0.000 0.000 errors.py:83(LinkError) - 1 0.000 0.000 0.000 0.000 errors.py:87(UnknownFileError) - 1 0.001 0.001 0.001 0.001 errors.py:9() - 1 0.000 0.000 0.000 0.000 esmf.py:12() - 1 0.000 0.000 0.000 0.000 esmf.py:139(EsmfStructGrid) - 1 0.000 0.000 0.000 0.000 esmf.py:311(EsmfStructField) - 1 0.000 0.000 0.000 0.000 esmf.py:35(EsmfUnstructGrid) - 1 0.000 0.000 0.000 0.000 esmf.py:441(EsmfRegrid) - 1 0.001 0.001 0.001 0.001 exec_command.py:52() - 1 0.000 0.000 0.000 0.000 extras.py:10() - 1 0.000 0.000 0.000 0.000 extras.py:1332(MAxisConcatenator) - 1 0.000 0.000 0.000 0.000 extras.py:1344(__init__) - 1 0.000 0.000 0.000 0.000 extras.py:1398(mr_class) - 1 0.000 0.000 0.000 0.000 extras.py:1414(__init__) - 1 0.000 0.000 0.000 0.000 extras.py:215(_fromnxfunction) - 9 0.000 0.000 0.000 0.000 extras.py:232(__init__) - 9 0.000 0.000 0.000 0.000 extras.py:236(getdoc) - 26 0.002 0.000 0.051 0.002 extras.py:465(average) - 1 0.001 0.001 0.001 0.001 fftpack.py:32() - 1 0.000 0.000 0.000 0.000 file_util.py:4() - 1 0.001 0.001 0.002 0.002 fillarea.py:1() - 1 0.000 0.000 0.000 0.000 fillarea.py:105(Tf) - 129704 0.023 0.000 0.023 0.000 fillarea.py:223(_getname) - 1614 0.001 0.000 0.002 0.000 fillarea.py:232(_getfillareacolors) - 42 0.000 0.000 0.051 0.001 fillarea.py:235(_setfillareacolors) - 3176 0.002 0.000 0.005 0.000 fillarea.py:250(_getfillareaopacity) - 32 0.000 0.000 0.012 0.000 fillarea.py:253(_setfillareaopacity) - 1614 0.001 0.000 0.002 0.000 fillarea.py:264(_getfillareaindices) - 42 0.000 0.000 0.013 0.000 fillarea.py:267(_setfillareaindices) - 1646 0.001 0.000 0.002 0.000 fillarea.py:280(_getfillareastyle) - 42 0.001 0.000 0.008 0.000 fillarea.py:283(_setfillareastyle) - 65 0.000 0.000 0.000 0.000 fillarea.py:296(_getpriority) - 63 0.000 0.000 0.001 0.000 fillarea.py:299(_setpriority) - 11384 0.007 0.000 0.011 0.000 fillarea.py:31(getmember) - 1635 0.001 0.000 0.002 0.000 fillarea.py:314(_getx) - 32 0.003 0.000 0.083 0.003 fillarea.py:317(_setx) - 1634 0.001 0.000 0.002 0.000 fillarea.py:339(_gety) - 32 0.003 0.000 0.082 0.003 fillarea.py:342(_sety) - 23 0.001 0.000 0.105 0.005 fillarea.py:369(__init__) - 1 0.000 0.000 0.000 0.000 fillarea.py:4() - 1 0.000 0.000 0.000 0.000 fillarea.py:7(FillEditor) - 1 0.001 0.001 0.001 0.001 fillareautils.py:1() - 4 0.000 0.000 0.000 0.000 fillareautils.py:11(make_patterned_polydata) - 1 0.000 0.000 0.000 0.000 filters.py:3() - 1 0.000 0.000 0.000 0.000 financial.py:10() - 1 0.000 0.000 0.000 0.000 fnmatch.py:11() - 6 0.000 0.000 0.001 0.000 fnmatch.py:45(filter) - 6 0.000 0.000 0.000 0.000 fnmatch.py:85(translate) - 1 0.000 0.000 0.000 0.000 font.py:1() - 1 0.000 0.000 0.000 0.000 font.py:4(FontEditor) - 1 0.000 0.000 0.000 0.000 forecast.py:108(forecasts) - 1 0.000 0.000 0.000 0.000 forecast.py:4() - 1 0.000 0.000 0.000 0.000 forecast.py:54(forecast) - 1 0.000 0.000 0.000 0.000 format.py:149() - 8 0.000 0.000 0.001 0.000 fromnumeric.py:1036(searchsorted) - 2 0.000 0.000 0.000 0.000 fromnumeric.py:127(reshape) - 39 0.000 0.000 0.000 0.000 fromnumeric.py:1383(ravel) - 1984 0.002 0.000 0.002 0.000 fromnumeric.py:1574(shape) - 36 0.000 0.000 0.001 0.000 fromnumeric.py:1884(alltrue) - 2036 0.003 0.000 0.012 0.000 fromnumeric.py:1900(any) - 2856 0.005 0.000 0.026 0.000 fromnumeric.py:1987(all) - 157 0.000 0.000 0.000 0.000 fromnumeric.py:2706(size) - 1 0.001 0.001 0.001 0.001 fromnumeric.py:3() - 2 0.000 0.000 0.000 0.000 fromnumeric.py:353(repeat) - 2 0.000 0.000 0.000 0.000 fromnumeric.py:506(transpose) - 2 0.002 0.001 0.002 0.001 function_base.py:1() - 136 0.002 0.000 0.051 0.000 function_base.py:1518(diff) - 1 0.000 0.000 0.000 0.000 function_base.py:2047(vectorize) - 273 0.001 0.000 0.002 0.000 function_base.py:3944(add_newdoc) - 8 0.000 0.000 0.000 0.000 functools.py:17(update_wrapper) - 8 0.000 0.000 0.000 0.000 functools.py:39(wraps) - 240 0.004 0.000 0.004 0.000 fvariable.py:136(_getShape) - 1485 0.003 0.000 0.005 0.000 fvariable.py:145(__setattr__) - 1 0.000 0.000 0.000 0.000 fvariable.py:22(FileVariable) - 90 0.003 0.000 0.029 0.000 fvariable.py:24(__init__) - 90 0.002 0.000 0.004 0.000 fvariable.py:39(initDomain) - 1 0.002 0.002 0.116 0.116 fvariable.py:4() - 360 0.001 0.000 0.003 0.000 fvariable.py:49(typecode) - 20 0.000 0.000 0.003 0.000 fvariable.py:70(expertSlice) - 871 0.005 0.000 0.021 0.000 genericpath.py:23(exists) - 2 0.000 0.000 0.000 0.000 genericpath.py:34(isfile) - 1 0.000 0.000 0.000 0.000 genericpath.py:46(isdir) - 19 0.000 0.000 0.000 0.000 genericpath.py:93(_splitext) - 1 0.000 0.000 0.000 0.000 gengrid.py:16(AbstractGenericGrid) - 1 0.000 0.000 0.000 0.000 gengrid.py:289(DatasetGenericGrid) - 1 0.000 0.000 0.000 0.000 gengrid.py:300(FileGenericGrid) - 1 0.000 0.000 0.000 0.000 gengrid.py:311(TransientGenericGrid) - 1 0.000 0.000 0.000 0.000 gengrid.py:4() - 2 0.000 0.000 0.023 0.012 getlimits.py:127(_init) - 24 0.000 0.000 0.000 0.000 getlimits.py:13(_frz) - 4 0.000 0.000 0.000 0.000 getlimits.py:148() - 2 0.000 0.000 0.000 0.000 getlimits.py:149() - 12 0.000 0.000 0.000 0.000 getlimits.py:150() - 10 0.000 0.000 0.000 0.000 getlimits.py:151() - 1 0.000 0.000 0.000 0.000 getlimits.py:195(iinfo) - 5 0.000 0.000 0.000 0.000 getlimits.py:245(__init__) - 1 0.000 0.000 0.000 0.000 getlimits.py:25(finfo) - 2 0.000 0.000 0.000 0.000 getlimits.py:270(max) - 1 0.000 0.000 0.000 0.000 getlimits.py:3() - 15985 0.013 0.000 0.038 0.000 getlimits.py:94(__new__) - 1 0.001 0.001 0.001 0.001 getpass.py:12() - 1 0.000 0.000 0.000 0.000 getpass.py:23(GetPassWarning) - 6 0.011 0.002 0.011 0.002 gettext.py:132(_expand_lang) - 3 0.000 0.000 0.013 0.004 gettext.py:424(find) - 3 0.000 0.000 0.013 0.004 gettext.py:464(translation) - 3 0.000 0.000 0.013 0.004 gettext.py:530(dgettext) - 3 0.000 0.000 0.013 0.004 gettext.py:568(gettext) - 2 0.000 0.000 0.000 0.000 git.py:1() - 1 0.000 0.000 0.000 0.000 glob.py:1() - 6 0.000 0.000 0.003 0.001 glob.py:18(glob) - 6 0.000 0.000 0.003 0.001 glob.py:29(iglob) - 6 0.000 0.000 0.003 0.000 glob.py:71(glob1) - 324 0.000 0.000 0.000 0.000 glob.py:82() - 6 0.000 0.000 0.000 0.000 glob.py:99(has_magic) - 1 0.000 0.000 0.000 0.000 grid.py:152(AbstractGrid) - 218 0.001 0.000 0.002 0.000 grid.py:154(__init__) - 14 0.000 0.000 0.000 0.000 grid.py:189(getAxisList) - 139 0.000 0.000 0.000 0.000 grid.py:199(checkAxes) - 1 0.000 0.000 0.000 0.000 grid.py:225(AbstractRectGrid) - 218 0.001 0.000 0.003 0.000 grid.py:231(__init__) - 28 0.000 0.000 0.000 0.000 grid.py:253(getAxis) - 18 0.000 0.000 0.012 0.001 grid.py:261(getBounds) - 75 0.000 0.000 0.000 0.000 grid.py:272(getLatitude) - 57 0.000 0.000 0.000 0.000 grid.py:275(getLongitude) - 218 0.000 0.000 0.000 0.000 grid.py:290(setType) - 128 0.000 0.000 0.012 0.000 grid.py:30(createRectGrid) - 17 0.001 0.000 0.012 0.001 grid.py:300(getWeights) - 18 0.001 0.000 0.007 0.000 grid.py:357(classify) - 1 0.000 0.000 0.000 0.000 grid.py:4() - 18 0.000 0.000 0.007 0.000 grid.py:435(classifyInFamily) - 18 0.001 0.000 0.012 0.001 grid.py:463(genBounds) - 2 0.000 0.000 0.001 0.001 grid.py:511(getMesh) - 1 0.000 0.000 0.000 0.000 grid.py:666(RectGrid) - 1 0.000 0.000 0.000 0.000 grid.py:702(FileRectGrid) - 90 0.001 0.000 0.002 0.000 grid.py:704(__init__) - 90 0.000 0.000 0.000 0.000 grid.py:734(setMask) - 1 0.000 0.000 0.000 0.000 grid.py:749(TransientRectGrid) - 128 0.001 0.000 0.011 0.000 grid.py:751(__init__) - 128 0.000 0.000 0.001 0.000 grid.py:776(setMask) - 1 0.000 0.000 0.000 0.000 group.py:1() - 1 0.000 0.000 0.000 0.000 group.py:23(GroupEditor) - 1 0.001 0.001 0.234 0.234 grower.py:3() - 1 0.003 0.003 0.003 0.003 gsHost.py:10() - 1 0.000 0.000 0.000 0.000 gsHost.py:37(Host) - 1 0.000 0.000 0.000 0.000 gsRegrid.py:300(Regrid) - 1 0.003 0.003 0.003 0.003 gsRegrid.py:8() - 1 0.000 0.000 0.000 0.000 gsStaticVariable.py:155(StaticFileVariable) - 1 0.000 0.000 0.000 0.000 gsStaticVariable.py:228(StaticTransientVariable) - 1 0.000 0.000 0.000 0.000 gsStaticVariable.py:8() - 1 0.000 0.000 0.000 0.000 gsStaticVariable.py:81(StaticVariable) - 1 0.000 0.000 0.000 0.000 gsTimeVariable.py:26(TimeAggregatedFileVariable) - 1 0.000 0.000 0.000 0.000 gsTimeVariable.py:272(TimeFileVariable) - 1 0.000 0.000 0.000 0.000 gsTimeVariable.py:374(TimeTransientVariable) - 1 0.000 0.000 0.000 0.000 gsTimeVariable.py:8() - 1 0.000 0.000 0.000 0.000 handle.py:1() - 1 0.000 0.000 0.000 0.000 handle.py:5(Handle) - 6 0.000 0.000 0.000 0.000 hashlib.py:100(__get_openssl_constructor) - 1 0.003 0.003 0.003 0.003 hashlib.py:56() - 1 0.003 0.003 0.003 0.003 heapq.py:31() - 1 0.000 0.000 0.000 0.000 helper.py:4() - 1 0.000 0.000 0.000 0.000 hermite.py:1815(Hermite) - 1 0.000 0.000 0.000 0.000 hermite.py:59() - 1 0.000 0.000 0.000 0.000 hermite_e.py:1812(HermiteE) - 1 0.000 0.000 0.000 0.000 hermite_e.py:59() - 1 0.000 0.000 0.000 0.000 hgrid.py:204(AbstractCurveGrid) - 1 0.000 0.000 0.000 0.000 hgrid.py:26(AbstractHorizontalGrid) - 1 0.001 0.001 0.002 0.002 hgrid.py:4() - 1 0.000 0.000 0.000 0.000 hgrid.py:709(DatasetCurveGrid) - 1 0.000 0.000 0.000 0.000 hgrid.py:720(FileCurveGrid) - 1 0.000 0.000 0.000 0.000 hgrid.py:731(TransientCurveGrid) - 1 0.001 0.001 0.001 0.001 histograms.py:1() - 1 0.000 0.000 0.000 0.000 histograms.py:9(Ghg) - 1 0.000 0.000 0.000 0.000 horizontal.py:23(Horizontal) - 1 0.000 0.000 0.000 0.000 horizontal.py:291(Regridder) - 1 0.001 0.001 0.001 0.001 horizontal.py:3() - 1 0.000 0.000 0.000 0.000 httplib.py:1153(HTTP) - 1 0.000 0.000 0.000 0.000 httplib.py:1249(HTTPSConnection) - 1 0.000 0.000 0.000 0.000 httplib.py:1282(HTTPS) - 1 0.000 0.000 0.000 0.000 httplib.py:1316(HTTPException) - 1 0.000 0.000 0.000 0.000 httplib.py:1321(NotConnected) - 1 0.000 0.000 0.000 0.000 httplib.py:1324(InvalidURL) - 1 0.000 0.000 0.000 0.000 httplib.py:1327(UnknownProtocol) - 1 0.000 0.000 0.000 0.000 httplib.py:1332(UnknownTransferEncoding) - 1 0.000 0.000 0.000 0.000 httplib.py:1335(UnimplementedFileMode) - 1 0.000 0.000 0.000 0.000 httplib.py:1338(IncompleteRead) - 1 0.000 0.000 0.000 0.000 httplib.py:1352(ImproperConnectionState) - 1 0.000 0.000 0.000 0.000 httplib.py:1355(CannotSendRequest) - 1 0.000 0.000 0.000 0.000 httplib.py:1358(CannotSendHeader) - 1 0.000 0.000 0.000 0.000 httplib.py:1361(ResponseNotReady) - 1 0.000 0.000 0.000 0.000 httplib.py:1364(BadStatusLine) - 1 0.000 0.000 0.000 0.000 httplib.py:1371(LineTooLong) - 1 0.000 0.000 0.000 0.000 httplib.py:1379(LineAndFileWrapper) - 1 0.000 0.000 0.000 0.000 httplib.py:255(HTTPMessage) - 1 0.000 0.000 0.000 0.000 httplib.py:369(HTTPResponse) - 1 0.003 0.003 0.007 0.007 httplib.py:67() - 1 0.000 0.000 0.000 0.000 httplib.py:725(HTTPConnection) - 1 0.002 0.002 0.008 0.008 image_utils.py:1() - 1 0.005 0.005 0.009 0.009 index_tricks.py:1() - 2 0.000 0.000 0.000 0.000 index_tricks.py:148(__init__) - 1 0.000 0.000 0.000 0.000 index_tricks.py:223(AxisConcatenator) - 3 0.000 0.000 0.000 0.000 index_tricks.py:242(__init__) - 1 0.000 0.000 0.000 0.000 index_tricks.py:352(RClass) - 1 0.000 0.000 0.000 0.000 index_tricks.py:447(__init__) - 1 0.000 0.000 0.000 0.000 index_tricks.py:452(CClass) - 1 0.000 0.000 0.000 0.000 index_tricks.py:470(__init__) - 1 0.000 0.000 0.000 0.000 index_tricks.py:475(ndenumerate) - 1 0.000 0.000 0.000 0.000 index_tricks.py:525(ndindex) - 1 0.000 0.000 0.000 0.000 index_tricks.py:603(IndexExpression) - 2 0.000 0.000 0.000 0.000 index_tricks.py:647(__init__) - 1 0.000 0.000 0.000 0.000 index_tricks.py:87(nd_grid) - 1 0.000 0.000 0.000 0.000 info.py:154() - 1 0.000 0.000 0.000 0.000 info.py:184() - 1 0.000 0.000 0.000 0.000 info.py:3() - 1 0.000 0.000 0.000 0.000 info.py:34() - 1 0.000 0.000 0.000 0.000 info.py:83() - 1 0.000 0.000 0.000 0.000 info.py:86() - 169 0.000 0.000 0.000 0.000 inspect.py:142(isfunction) - 71 0.000 0.000 0.000 0.000 inspect.py:181(istraceback) - 71 0.000 0.000 0.000 0.000 inspect.py:191(isframe) - 71 0.000 0.000 0.000 0.000 inspect.py:209(iscode) - 1 0.002 0.002 0.022 0.022 inspect.py:25() - 1 0.000 0.000 0.000 0.000 inspect.py:398(getfile) - 1 0.000 0.000 0.000 0.000 inspect.py:440(getsourcefile) - 147 0.000 0.000 0.000 0.000 inspect.py:472(getmodule) - 362 0.000 0.000 0.000 0.000 inspect.py:51(ismodule) - 168 0.000 0.000 0.000 0.000 inspect.py:59(isclass) - 1 0.000 0.000 0.000 0.000 inspect.py:630(EndOfBlock) - 1 0.000 0.000 0.000 0.000 inspect.py:632(BlockFinder) - 627 0.001 0.000 0.001 0.000 inspect.py:67(ismethod) - 1 0.000 0.000 0.000 0.000 install_vcs.py:10() - 1 0.000 0.000 0.000 0.000 install_vcs.py:10(_files) - 1 0.001 0.001 0.002 0.002 io.py:34() - 1 0.000 0.000 0.000 0.000 io.py:69(IOBase) - 1 0.000 0.000 0.000 0.000 io.py:73(RawIOBase) - 1 0.000 0.000 0.000 0.000 io.py:76(BufferedIOBase) - 1 0.000 0.000 0.000 0.000 io.py:79(TextIOBase) - 1 0.000 0.000 0.000 0.000 isofill.py:128(Gfi) - 1 0.000 0.000 0.000 0.000 isofill.py:3() - 905 0.000 0.000 0.000 0.000 isofill.py:374(_getname) - 8 0.000 0.000 0.000 0.000 isofill.py:385(_setcalendar) - 8 0.000 0.000 0.000 0.000 isofill.py:396(_settimeunits) - 2 0.000 0.000 0.000 0.000 isofill.py:404(_getxaxisconvert) - 8 0.000 0.000 0.000 0.000 isofill.py:407(_setxaxisconvert) - 2 0.000 0.000 0.000 0.000 isofill.py:415(_getyaxisconvert) - 8 0.000 0.000 0.000 0.000 isofill.py:418(_setyaxisconvert) - 4 0.000 0.000 0.000 0.000 isofill.py:435(_getfillareaindices) - 8 0.000 0.000 0.000 0.000 isofill.py:438(_setfillareaindices) - 6 0.000 0.000 0.000 0.000 isofill.py:447(_getfillareastyle) - 8 0.000 0.000 0.000 0.000 isofill.py:450(_setfillareastyle) - 2 0.000 0.000 0.000 0.000 isofill.py:463(_getmissing) - 8 0.000 0.000 0.000 0.000 isofill.py:466(_setmissing) - 8 0.000 0.000 0.000 0.000 isofill.py:475(_getxticlabels1) - 10 0.000 0.000 0.000 0.000 isofill.py:478(_setxticlabels1) - 10 0.000 0.000 0.000 0.000 isofill.py:486(_getxticlabels2) - 10 0.000 0.000 0.000 0.000 isofill.py:489(_setxticlabels2) - 10 0.000 0.000 0.000 0.000 isofill.py:497(_getyticlabels1) - 10 0.000 0.000 0.000 0.000 isofill.py:500(_setyticlabels1) - 12 0.000 0.000 0.000 0.000 isofill.py:508(_getyticlabels2) - 10 0.000 0.000 0.000 0.000 isofill.py:511(_setyticlabels2) - 6 0.000 0.000 0.000 0.000 isofill.py:519(_getxmtics1) - 8 0.000 0.000 0.000 0.000 isofill.py:522(_setxmtics1) - 8 0.000 0.000 0.000 0.000 isofill.py:530(_getxmtics2) - 8 0.000 0.000 0.000 0.000 isofill.py:533(_setxmtics2) - 8 0.000 0.000 0.000 0.000 isofill.py:541(_getymtics1) - 8 0.000 0.000 0.000 0.000 isofill.py:544(_setymtics1) - 10 0.000 0.000 0.000 0.000 isofill.py:552(_getymtics2) - 8 0.000 0.000 0.000 0.000 isofill.py:555(_setymtics2) - 14 0.000 0.000 0.000 0.000 isofill.py:563(_getdatawc_x1) - 8 0.000 0.000 0.000 0.000 isofill.py:566(_setdatawc_x1) - 14 0.000 0.000 0.000 0.000 isofill.py:571(_getdatawc_x2) - 8 0.000 0.000 0.000 0.000 isofill.py:574(_setdatawc_x2) - 14 0.000 0.000 0.000 0.000 isofill.py:579(_getdatawc_y1) - 8 0.000 0.000 0.000 0.000 isofill.py:582(_setdatawc_y1) - 14 0.000 0.000 0.000 0.000 isofill.py:587(_getdatawc_y2) - 8 0.000 0.000 0.000 0.000 isofill.py:590(_setdatawc_y2) - 13 0.000 0.000 0.001 0.000 isofill.py:597(__init__) - 1 0.000 0.000 0.000 0.000 isofillpipeline.py:1() - 2 0.000 0.000 0.000 0.000 isofillpipeline.py:13(__init__) - 2 0.000 0.000 0.005 0.003 isofillpipeline.py:17(_updateContourLevelsAndColors) - 2 0.001 0.000 0.597 0.298 isofillpipeline.py:20(_plotInternal) - 1 0.000 0.000 0.000 0.000 isofillpipeline.py:9(IsofillPipeline) - 1 0.000 0.000 0.000 0.000 isoline.py:196(Gi) - 1 0.000 0.000 0.000 0.000 isoline.py:3() - 2669 0.000 0.000 0.000 0.000 isoline.py:498(_getname) - 13 0.000 0.000 0.000 0.000 isoline.py:506(_getcalendar) - 21 0.000 0.000 0.000 0.000 isoline.py:509(_setcalendar) - 13 0.000 0.000 0.000 0.000 isoline.py:517(_gettimeunits) - 21 0.000 0.000 0.001 0.000 isoline.py:520(_settimeunits) - 15 0.000 0.000 0.000 0.000 isoline.py:528(_getxaxisconvert) - 21 0.000 0.000 0.000 0.000 isoline.py:531(_setxaxisconvert) - 15 0.000 0.000 0.000 0.000 isoline.py:539(_getyaxisconvert) - 21 0.000 0.000 0.000 0.000 isoline.py:542(_setyaxisconvert) - 15 0.000 0.000 0.000 0.000 isoline.py:550(_getlevels) - 29 0.000 0.000 0.000 0.000 isoline.py:553(_setlevels) - 207 0.000 0.000 0.000 0.000 isoline.py:562(_getprojection) - 21 0.000 0.000 0.000 0.000 isoline.py:565(_setprojection) - 21 0.000 0.000 0.000 0.000 isoline.py:573(_getxticlabels1) - 22 0.000 0.000 0.000 0.000 isoline.py:576(_setxticlabels1) - 23 0.000 0.000 0.000 0.000 isoline.py:584(_getxticlabels2) - 23 0.000 0.000 0.000 0.000 isoline.py:587(_setxticlabels2) - 23 0.000 0.000 0.000 0.000 isoline.py:595(_getyticlabels1) - 22 0.000 0.000 0.000 0.000 isoline.py:598(_setyticlabels1) - 24 0.000 0.000 0.000 0.000 isoline.py:606(_getyticlabels2) - 23 0.000 0.000 0.000 0.000 isoline.py:609(_setyticlabels2) - 19 0.000 0.000 0.000 0.000 isoline.py:617(_getxmtics1) - 21 0.000 0.000 0.000 0.000 isoline.py:620(_setxmtics1) - 21 0.000 0.000 0.000 0.000 isoline.py:628(_getxmtics2) - 21 0.000 0.000 0.000 0.000 isoline.py:631(_setxmtics2) - 20 0.000 0.000 0.000 0.000 isoline.py:639(_getymtics1) - 21 0.000 0.000 0.000 0.000 isoline.py:642(_setymtics1) - 22 0.000 0.000 0.000 0.000 isoline.py:650(_getymtics2) - 21 0.000 0.000 0.000 0.000 isoline.py:653(_setymtics2) - 27 0.000 0.000 0.000 0.000 isoline.py:661(_getdatawc_x1) - 21 0.000 0.000 0.000 0.000 isoline.py:664(_setdatawc_x1) - 27 0.000 0.000 0.000 0.000 isoline.py:669(_getdatawc_x2) - 21 0.000 0.000 0.000 0.000 isoline.py:672(_setdatawc_x2) - 27 0.000 0.000 0.000 0.000 isoline.py:677(_getdatawc_y1) - 21 0.000 0.000 0.000 0.000 isoline.py:680(_setdatawc_y1) - 27 0.000 0.000 0.000 0.000 isoline.py:685(_getdatawc_y2) - 21 0.000 0.000 0.000 0.000 isoline.py:688(_setdatawc_y2) - 15 0.000 0.000 0.000 0.000 isoline.py:693(_getlinewidths) - 21 0.000 0.000 0.000 0.000 isoline.py:696(_setlinewidths) - 15 0.000 0.000 0.000 0.000 isoline.py:707(_getlinecolors) - 21 0.000 0.000 0.001 0.000 isoline.py:710(_setlinecolors) - 15 0.000 0.000 0.000 0.000 isoline.py:719(_getlinetypes) - 13 0.000 0.000 0.000 0.000 isoline.py:722(_setlinetypes) - 15 0.000 0.000 0.000 0.000 isoline.py:784(_gettext) - 21 0.000 0.000 0.000 0.000 isoline.py:787(_settext) - 15 0.000 0.000 0.000 0.000 isoline.py:797(_gettextcolors) - 21 0.000 0.000 0.000 0.000 isoline.py:800(_settextcolors) - 19 0.000 0.000 0.000 0.000 isoline.py:809(_getlabel) - 21 0.000 0.000 0.000 0.000 isoline.py:812(_setlabel) - 14 0.000 0.000 0.000 0.000 isoline.py:820(_getlabelskipdistance) - 13 0.000 0.000 0.000 0.000 isoline.py:823(_setlabelskipdistance) - 13 0.000 0.000 0.000 0.000 isoline.py:831(_getlabelbackgroundcolors) - 13 0.000 0.000 0.000 0.000 isoline.py:834(_setlabelbackgroundcolors) - 13 0.000 0.000 0.000 0.000 isoline.py:845(_getlabelbackgroundopacities) - 13 0.000 0.000 0.000 0.000 isoline.py:848(_setlabelbackgroundopacities) - 13 0.000 0.000 0.000 0.000 isoline.py:859(_getspacing) - 21 0.000 0.000 0.000 0.000 isoline.py:862(_setspacing) - 13 0.000 0.000 0.000 0.000 isoline.py:872(_getangle) - 21 0.000 0.000 0.000 0.000 isoline.py:875(_setangle) - 13 0.000 0.000 0.000 0.000 isoline.py:886(_getscale) - 21 0.000 0.000 0.000 0.000 isoline.py:889(_setscale) - 13 0.000 0.000 0.000 0.000 isoline.py:899(_getclockwise) - 21 0.000 0.000 0.000 0.000 isoline.py:902(_setclockwise) - 14 0.000 0.000 0.006 0.000 isoline.py:909(__init__) - 1 0.000 0.000 0.000 0.000 isolinepipeline.py:1() - 2 0.000 0.000 0.000 0.000 isolinepipeline.py:13(__init__) - 6 0.000 0.000 0.000 0.000 isolinepipeline.py:17(extendAttribute) - 2 0.000 0.000 0.003 0.001 isolinepipeline.py:25(_updateContourLevelsAndColors) - 2 0.001 0.001 0.522 0.261 isolinepipeline.py:45(_plotInternal) - 1 0.000 0.000 0.000 0.000 isolinepipeline.py:9(IsolinePipeline) - 1 0.000 0.000 0.000 0.000 keyable.py:1() - 1 0.000 0.000 0.000 0.000 keyable.py:4(KeyableMixin) - 1 0.000 0.000 0.000 0.000 keyword.py:11() - 1 0.002 0.002 0.002 0.002 label.py:1() - 1 0.000 0.000 0.000 0.000 label.py:33(LabelEditor) - 1 0.000 0.000 0.000 0.000 laguerre.py:1765(Laguerre) - 1 0.000 0.000 0.001 0.001 laguerre.py:59() - 1 0.000 0.000 0.000 0.000 legend.py:1() - 1 0.000 0.000 0.000 0.000 legend.py:6(LegendEditor) - 1 0.000 0.000 0.000 0.000 legendre.py:1795(Legendre) - 1 0.000 0.000 0.000 0.000 legendre.py:83() - 1 0.000 0.000 0.000 0.000 libCFConfig.py:6() - 1 0.002 0.002 0.002 0.002 linalg.py:10() - 1 0.000 0.000 0.000 0.000 linalg.py:43(LinAlgError) - 1 0.000 0.000 0.000 0.000 linalg.py:76(_determine_error_states) - 2 0.000 0.000 0.000 0.000 line.py:1() - 87818 0.015 0.000 0.015 0.000 line.py:188(_getname) - 2052 0.001 0.000 0.001 0.000 line.py:196(_getfillareacolors) - 375 0.001 0.000 0.040 0.000 line.py:199(_setfillareacolors) - 1257 0.000 0.000 0.000 0.000 line.py:208(_gettype) - 375 0.001 0.000 0.010 0.000 line.py:211(_settype) - 1257 0.000 0.000 0.000 0.000 line.py:221(_getwidth) - 374 0.001 0.000 0.009 0.000 line.py:224(_setwidth) - 673 0.000 0.000 0.000 0.000 line.py:235(_getpriority) - 331 0.000 0.000 0.003 0.000 line.py:238(_setpriority) - 1570 0.000 0.000 0.000 0.000 line.py:246(_getprojection) - 336 0.000 0.000 0.003 0.000 line.py:249(_setprojection) - 451 0.000 0.000 0.000 0.000 line.py:256(_getwc) - 279 0.000 0.000 0.007 0.000 line.py:259(_setwc) - 774 0.000 0.000 0.000 0.000 line.py:267(_getvp) - 297 0.000 0.000 0.008 0.000 line.py:270(_setvp) - 1468 0.000 0.000 0.000 0.000 line.py:280(_getx) - 386 0.003 0.000 0.042 0.000 line.py:283(_setx) - 1458 0.000 0.000 0.000 0.000 line.py:306(_gety) - 386 0.002 0.000 0.042 0.000 line.py:309(_sety) - 238 0.007 0.000 0.079 0.000 line.py:337(__init__) - 1 0.000 0.000 0.000 0.000 line.py:4() - 1 0.000 0.000 0.000 0.000 line.py:4(Line) - 1 0.000 0.000 0.000 0.000 line.py:7(LineEditor) - 1 0.000 0.000 0.000 0.000 line.py:73(Tl) - 38 0.000 0.000 0.046 0.001 linecache.py:13(getline) - 33 0.000 0.000 0.047 0.001 linecache.py:33(getlines) - 107 0.001 0.000 0.007 0.000 linecache.py:47(checkcache) - 8 0.001 0.000 0.047 0.006 linecache.py:72(updatecache) - 1 0.001 0.001 0.001 0.001 loader.py:1() - 1 0.000 0.000 0.000 0.000 loader.py:38(TestLoader) - 3 0.000 0.000 0.000 0.000 locale.py:349(_replace_encoding) - 6 0.000 0.000 0.000 0.000 locale.py:365(normalize) - 1 0.000 0.000 0.000 0.000 log.py:1() - 1 0.000 0.000 0.000 0.000 log.py:14(Log) - 1 0.000 0.000 0.000 0.000 log.py:16(__init__) - 1 0.002 0.002 0.011 0.011 log.py:2() - 1 0.000 0.000 0.000 0.000 log.py:25(Log) - 1 0.000 0.000 0.000 0.000 log.py:56(set_threshold) - 1 0.000 0.000 0.000 0.000 log.py:71(set_verbosity) - 2 0.009 0.004 0.023 0.012 machar.py:116(_do_init) - 1 0.000 0.000 0.000 0.000 machar.py:17(MachAr) - 1 0.000 0.000 0.000 0.000 machar.py:7() - 2 0.000 0.000 0.023 0.012 machar.py:98(__init__) - 1 0.001 0.001 0.002 0.002 main.py:1() - 1 0.000 0.000 0.000 0.000 main.py:63(TestProgram) - 2 0.000 0.000 0.000 0.000 manageElements.py:105(createprojection) - 1 0.000 0.000 0.000 0.000 manageElements.py:1064(getfillarea) - 10 0.000 0.000 0.003 0.000 manageElements.py:1133(createtexttable) - 19 0.000 0.000 0.000 0.000 manageElements.py:1204(gettexttable) - 680 0.001 0.000 0.002 0.000 manageElements.py:124(getprojection) - 60 0.000 0.000 0.006 0.000 manageElements.py:1255(createtextorientation) - 19 0.000 0.000 0.000 0.000 manageElements.py:1275(gettextorientation) - 522 0.005 0.000 0.354 0.001 manageElements.py:1298(createtextcombined) - 1 0.000 0.000 0.000 0.000 manageElements.py:1407(gettextcombined) - 16 0.000 0.000 0.002 0.000 manageElements.py:145(createboxfill) - 1 0.000 0.000 0.000 0.000 manageElements.py:1521(get3d_scalar) - 2 0.000 0.000 0.075 0.037 manageElements.py:1543(create3d_scalar) - 1 0.000 0.000 0.000 0.000 manageElements.py:1561(get3d_dual_scalar) - 2 0.000 0.000 0.069 0.034 manageElements.py:1582(create3d_dual_scalar) - 1 0.000 0.000 0.000 0.000 manageElements.py:1601(get3d_vector) - 2 0.000 0.000 0.057 0.028 manageElements.py:1623(create3d_vector) - 43 0.000 0.000 0.169 0.004 manageElements.py:1648(createcolormap) - 15 0.000 0.000 0.000 0.000 manageElements.py:1667(getcolormap) - 1 0.000 0.000 0.000 0.000 manageElements.py:1687(removeG) - 1 0.000 0.000 0.000 0.000 manageElements.py:1710(removeGi) - 2 0.000 0.000 0.000 0.000 manageElements.py:173(getboxfill) - 1 0.000 0.000 0.000 0.000 manageElements.py:1790(removeobject) - 2 0.000 0.000 0.003 0.001 manageElements.py:201(createtaylordiagram) - 1 0.000 0.000 0.000 0.000 manageElements.py:231(gettaylordiagram) - 9 0.000 0.000 0.001 0.000 manageElements.py:255(createmeshfill) - 2 0.000 0.000 0.000 0.000 manageElements.py:273(getmeshfill) - 2080 0.036 0.000 0.178 0.000 manageElements.py:29(check_name_source) - 12 0.000 0.000 0.001 0.000 manageElements.py:295(createisofill) - 2 0.000 0.000 0.000 0.000 manageElements.py:322(getisofill) - 13 0.000 0.000 0.007 0.001 manageElements.py:351(createisoline) - 2 0.000 0.000 0.000 0.000 manageElements.py:378(getisoline) - 16 0.000 0.000 0.011 0.001 manageElements.py:406(create1d) - 4 0.000 0.000 0.000 0.000 manageElements.py:411(get1d) - 2 0.000 0.000 0.001 0.001 manageElements.py:421(createxyvsy) - 1 0.000 0.000 0.000 0.000 manageElements.py:458(getxyvsy) - 2 0.000 0.000 0.002 0.001 manageElements.py:484(createyxvsx) - 1 0.000 0.000 0.000 0.000 manageElements.py:519(getyxvsx) - 2 0.000 0.000 0.001 0.001 manageElements.py:544(createxvsy) - 1 0.000 0.000 0.000 0.000 manageElements.py:579(getxvsy) - 1 0.000 0.000 0.000 0.000 manageElements.py:6() - 2 0.000 0.000 0.001 0.000 manageElements.py:604(createvector) - 1 0.000 0.000 0.000 0.000 manageElements.py:622(getvector) - 2 0.000 0.000 0.002 0.001 manageElements.py:642(createscatter) - 400 0.003 0.000 4.045 0.010 manageElements.py:65(createtemplate) - 1 0.000 0.000 0.000 0.000 manageElements.py:678(getscatter) - 235 0.001 0.000 0.091 0.000 manageElements.py:703(createline) - 54 0.000 0.000 0.000 0.000 manageElements.py:793(getline) - 1235 0.004 0.000 0.005 0.000 manageElements.py:85(gettemplate) - 20 0.000 0.000 0.015 0.001 manageElements.py:861(createmarker) - 2 0.000 0.000 0.000 0.000 manageElements.py:927(getmarker) - 22 0.000 0.000 0.106 0.005 manageElements.py:996(createfillarea) - 1 0.000 0.000 0.000 0.000 manager.py:1() - 1 0.000 0.000 0.000 0.000 manager.py:6(InterfaceManager) - 1 0.000 0.000 0.000 0.000 marker.py:1() - 1 0.000 0.000 0.000 0.000 marker.py:108(Tm) - 1 0.000 0.000 0.000 0.000 marker.py:11(MarkerEditor) - 1 0.000 0.000 0.000 0.000 marker.py:24() - 7138 0.002 0.000 0.002 0.000 marker.py:241(_getname) - 32 0.000 0.000 0.000 0.000 marker.py:250(_getfillareacolors) - 36 0.000 0.000 0.002 0.000 marker.py:253(_setfillareacolors) - 32 0.000 0.000 0.000 0.000 marker.py:264(_gettype) - 36 0.000 0.000 0.008 0.000 marker.py:267(_settype) - 32 0.000 0.000 0.000 0.000 marker.py:278(_getsize) - 36 0.000 0.000 0.001 0.000 marker.py:281(_setsize) - 46 0.000 0.000 0.000 0.000 marker.py:294(_getpriority) - 38 0.000 0.000 0.000 0.000 marker.py:297(_setpriority) - 36 0.000 0.000 0.000 0.000 marker.py:306(_getprojection) - 20 0.000 0.000 0.000 0.000 marker.py:309(_setprojection) - 36 0.000 0.000 0.000 0.000 marker.py:317(_getwc) - 28 0.000 0.000 0.001 0.000 marker.py:320(_setwc) - 48 0.000 0.000 0.000 0.000 marker.py:329(_getvp) - 28 0.000 0.000 0.001 0.000 marker.py:332(_setvp) - 42 0.000 0.000 0.000 0.000 marker.py:343(_getx) - 32 0.000 0.000 0.004 0.000 marker.py:346(_setx) - 40 0.000 0.000 0.000 0.000 marker.py:371(_gety) - 32 0.000 0.000 0.004 0.000 marker.py:374(_sety) - 21 0.000 0.000 0.014 0.001 marker.py:399(__init__) - 1 0.000 0.000 0.000 0.000 memmap.py:1() - 1 0.000 0.000 0.000 0.000 memmap.py:20(memmap) - 1 0.000 0.000 0.000 0.000 meshfill.py:150(Gfm) - 1 0.000 0.000 0.001 0.001 meshfill.py:3() - 604 0.000 0.000 0.000 0.000 meshfill.py:380(_getname) - 2 0.000 0.000 0.000 0.000 meshfill.py:389(_getxaxisconvert) - 5 0.000 0.000 0.000 0.000 meshfill.py:392(_setxaxisconvert) - 2 0.000 0.000 0.000 0.000 meshfill.py:400(_getyaxisconvert) - 5 0.000 0.000 0.000 0.000 meshfill.py:403(_setyaxisconvert) - 4 0.000 0.000 0.000 0.000 meshfill.py:415(_getfillareaindices) - 5 0.000 0.000 0.000 0.000 meshfill.py:418(_setfillareaindices) - 8 0.000 0.000 0.000 0.000 meshfill.py:427(_getfillareastyle) - 5 0.000 0.000 0.000 0.000 meshfill.py:430(_setfillareastyle) - 2 0.000 0.000 0.000 0.000 meshfill.py:443(_getmissing) - 5 0.000 0.000 0.000 0.000 meshfill.py:446(_setmissing) - 2 0.000 0.000 0.000 0.000 meshfill.py:451(_getmesh) - 5 0.000 0.000 0.000 0.000 meshfill.py:454(_setmesh) - 196 0.000 0.000 0.000 0.000 meshfill.py:461(_getprojection) - 5 0.000 0.000 0.000 0.000 meshfill.py:464(_setprojection) - 8 0.000 0.000 0.000 0.000 meshfill.py:472(_getxticlabels1) - 7 0.000 0.000 0.000 0.000 meshfill.py:475(_setxticlabels1) - 10 0.000 0.000 0.000 0.000 meshfill.py:483(_getxticlabels2) - 7 0.000 0.000 0.000 0.000 meshfill.py:486(_setxticlabels2) - 10 0.000 0.000 0.000 0.000 meshfill.py:494(_getyticlabels1) - 7 0.000 0.000 0.000 0.000 meshfill.py:497(_setyticlabels1) - 12 0.000 0.000 0.000 0.000 meshfill.py:505(_getyticlabels2) - 7 0.000 0.000 0.000 0.000 meshfill.py:508(_setyticlabels2) - 6 0.000 0.000 0.000 0.000 meshfill.py:516(_getxmtics1) - 5 0.000 0.000 0.000 0.000 meshfill.py:519(_setxmtics1) - 8 0.000 0.000 0.000 0.000 meshfill.py:527(_getxmtics2) - 5 0.000 0.000 0.000 0.000 meshfill.py:530(_setxmtics2) - 8 0.000 0.000 0.000 0.000 meshfill.py:538(_getymtics1) - 5 0.000 0.000 0.000 0.000 meshfill.py:541(_setymtics1) - 10 0.000 0.000 0.000 0.000 meshfill.py:549(_getymtics2) - 5 0.000 0.000 0.000 0.000 meshfill.py:552(_setymtics2) - 14 0.000 0.000 0.000 0.000 meshfill.py:560(_getdatawc_x1) - 5 0.000 0.000 0.000 0.000 meshfill.py:563(_setdatawc_x1) - 14 0.000 0.000 0.000 0.000 meshfill.py:568(_getdatawc_x2) - 5 0.000 0.000 0.000 0.000 meshfill.py:571(_setdatawc_x2) - 14 0.000 0.000 0.000 0.000 meshfill.py:576(_getdatawc_y1) - 5 0.000 0.000 0.000 0.000 meshfill.py:579(_setdatawc_y1) - 14 0.000 0.000 0.000 0.000 meshfill.py:584(_getdatawc_y2) - 5 0.000 0.000 0.000 0.000 meshfill.py:587(_setdatawc_y2) - 5 0.000 0.000 0.000 0.000 meshfill.py:595(_setcalendar) - 5 0.000 0.000 0.000 0.000 meshfill.py:606(_settimeunits) - 4 0.000 0.000 0.000 0.000 meshfill.py:614(_getwrap) - 7 0.000 0.000 0.000 0.000 meshfill.py:617(_setwrap) - 10 0.000 0.000 0.000 0.000 meshfill.py:622(__init__) - 1 0.000 0.000 0.000 0.000 meshfillpipeline.py:1() - 1 0.000 0.000 0.000 0.000 meshfillpipeline.py:10(MeshfillPipeline) - 2 0.000 0.000 0.000 0.000 meshfillpipeline.py:14(__init__) - 2 0.000 0.000 0.010 0.005 meshfillpipeline.py:20(_updateScalarData) - 2 0.000 0.000 0.006 0.003 meshfillpipeline.py:26(_updateContourLevelsAndColors) - 4 0.000 0.000 0.001 0.000 meshfillpipeline.py:271(getPlottingBounds) - 2 0.004 0.002 0.762 0.381 meshfillpipeline.py:29(_plotInternal) - 1 0.002 0.002 0.002 0.002 mimetools.py:1() - 1 0.000 0.000 0.000 0.000 mimetools.py:20(Message) - 1 0.000 0.000 0.000 0.000 minmax.py:1() - 1 0.000 0.000 0.000 0.000 misc.py:2() - 1 0.003 0.003 0.009 0.009 misc_util.py:1() - 1 0.000 0.000 0.000 0.000 misc_util.py:314(terminal_has_colors) - 1 0.000 0.000 0.000 0.000 misc_util.py:56(InstallableLib) - 2 0.000 0.000 0.000 0.000 misc_util.py:613(get_shared_lib_extension) - 1 0.000 0.000 0.000 0.000 misc_util.py:696(Configuration) - 1 0.000 0.000 0.000 0.000 mvBaseWriter.py:10() - 1 0.000 0.000 0.000 0.000 mvBaseWriter.py:14(BaseWriter) - 1 0.000 0.000 0.000 0.000 mvCdmsRegrid.py:298(CdmsRegrid) - 1 0.001 0.001 0.088 0.088 mvCdmsRegrid.py:7() - 1 0.000 0.000 0.000 0.000 mvESMFRegrid.py:35(ESMFRegrid) - 1 0.002 0.002 0.002 0.002 mvESMFRegrid.py:8() - 1 0.000 0.000 0.000 0.000 mvGenericRegrid.py:39(GenericRegrid) - 1 0.001 0.001 0.006 0.006 mvGenericRegrid.py:8() - 1 0.000 0.000 0.000 0.000 mvLibCFRegrid.py:14(LibCFRegrid) - 1 0.002 0.002 0.002 0.002 mvLibCFRegrid.py:8() - 1 0.000 0.000 0.000 0.000 mvMultiArrayIter.py:10() - 1 0.000 0.000 0.000 0.000 mvMultiArrayIter.py:17(MultiArrayIter) - 1 0.000 0.000 0.000 0.000 mvSphereMesh.py:13(SphereMesh) - 1 0.000 0.000 0.000 0.000 mvSphereMesh.py:8() - 1 0.000 0.000 0.000 0.000 mvVTKSGWriter.py:14(VTKSGWriter) - 1 0.000 0.000 0.000 0.000 mvVTKSGWriter.py:8() - 1 0.000 0.000 0.000 0.000 mvVTKUGWriter.py:14(VTKUGWriter) - 1 0.000 0.000 0.000 0.000 mvVTKUGWriter.py:8() - 1 0.000 0.000 0.000 0.000 mvVsWriter.py:14(VsWriter) - 1 0.000 0.000 0.000 0.000 mvVsWriter.py:8() - 1 0.000 0.000 0.000 0.000 nanfunctions.py:19() - 1 0.000 0.000 0.000 0.000 nosetester.py:128(NoseTester) - 20 0.000 0.000 0.000 0.000 nosetester.py:170(__init__) - 20 0.000 0.000 0.000 0.000 nosetester.py:511(_numpy_tester) - 1 0.000 0.000 0.000 0.000 nosetester.py:6() - 1 0.001 0.001 0.004 0.004 npy_pkg_config.py:1() - 1 0.000 0.000 0.000 0.000 npy_pkg_config.py:153(VariableSet) - 1 0.000 0.000 0.000 0.000 npy_pkg_config.py:17(FormatError) - 1 0.000 0.000 0.000 0.000 npy_pkg_config.py:28(PkgNotFound) - 1 0.000 0.000 0.000 0.000 npy_pkg_config.py:81(LibraryInfo) - 1 0.005 0.005 0.006 0.006 npyio.py:1() - 1 0.000 0.000 0.000 0.000 npyio.py:40(BagObj) - 1 0.000 0.000 0.000 0.000 npyio.py:95(NpzFile) - 1 0.000 0.000 0.000 0.000 numbers.py:13(Number) - 1 0.000 0.000 0.000 0.000 numbers.py:169(Real) - 1 0.000 0.000 0.000 0.000 numbers.py:270(Rational) - 1 0.000 0.000 0.000 0.000 numbers.py:295(Integral) - 1 0.000 0.000 0.000 0.000 numbers.py:34(Complex) - 1 0.000 0.000 0.001 0.001 numbers.py:6() - 1 0.004 0.004 0.007 0.007 numeric.py:1() - 17 0.003 0.000 0.003 0.000 numeric.py:1015(outer) - 22 0.000 0.000 0.000 0.000 numeric.py:148(ones) - 2 0.000 0.000 0.000 0.000 numeric.py:1871(set_string_function) - 1727 0.002 0.000 0.003 0.000 numeric.py:2064(isscalar) - 664 0.003 0.000 0.057 0.000 numeric.py:2310(allclose) - 948 0.010 0.000 0.069 0.000 numeric.py:2375(isclose) - 948 0.016 0.000 0.037 0.000 numeric.py:2434(within_tol) - 9565 0.025 0.000 0.053 0.000 numeric.py:2576(seterr) - 9565 0.017 0.000 0.019 0.000 numeric.py:2676(geterr) - 1 0.000 0.000 0.000 0.000 numeric.py:2896(_unspecified) - 1 0.000 0.000 0.000 0.000 numeric.py:2900(errstate) - 3778 0.005 0.000 0.006 0.000 numeric.py:2963(__init__) - 3778 0.005 0.000 0.031 0.000 numeric.py:2967(__enter__) - 3778 0.005 0.000 0.023 0.000 numeric.py:2972(__exit__) - 1 0.000 0.000 0.000 0.000 numeric.py:2978(_setdef) - 3 0.000 0.000 0.000 0.000 numeric.py:365(extend_all) - 123 0.000 0.000 0.000 0.000 numeric.py:414(asarray) - 5129 0.004 0.000 0.006 0.000 numeric.py:484(asanyarray) - 2 0.000 0.000 0.001 0.001 numeric.py:535(ascontiguousarray) - 1 0.000 0.000 0.000 0.000 numeric.py:55(ComplexWarning) - 72 0.000 0.000 0.000 0.000 numerictypes.py:127(english_lower) - 40 0.000 0.000 0.000 0.000 numerictypes.py:154(english_upper) - 14 0.000 0.000 0.000 0.000 numerictypes.py:181(english_capitalize) - 21 0.000 0.000 0.000 0.000 numerictypes.py:216(_evalname) - 26 0.000 0.000 0.000 0.000 numerictypes.py:229(bitname) - 1 0.000 0.000 0.000 0.000 numerictypes.py:285(_add_types) - 1 0.000 0.000 0.000 0.000 numerictypes.py:301(_add_aliases) - 1 0.000 0.000 0.000 0.000 numerictypes.py:338(_add_integer_aliases) - 1 0.000 0.000 0.000 0.000 numerictypes.py:379(_set_up_aliases) - 1 0.000 0.000 0.000 0.000 numerictypes.py:428(_construct_char_code_lookup) - 30 0.000 0.000 0.000 0.000 numerictypes.py:443(_add_array_type) - 1 0.000 0.000 0.000 0.000 numerictypes.py:451(_set_array_types) - 2 0.000 0.000 0.000 0.000 numerictypes.py:553(_python_type) - 2048 0.011 0.000 0.018 0.000 numerictypes.py:603(obj2sctype) - 355 0.000 0.000 0.000 0.000 numerictypes.py:660(issubclass_) - 355 0.001 0.000 0.001 0.000 numerictypes.py:728(issubdtype) - 1 0.000 0.000 0.000 0.000 numerictypes.py:765(_typedict) - 215 0.001 0.000 0.002 0.000 numerictypes.py:774(__getitem__) - 1 0.000 0.000 0.000 0.000 numerictypes.py:781(_construct_lookups) - 1831 0.005 0.000 0.021 0.000 numerictypes.py:797(sctype2char) - 1 0.002 0.002 0.004 0.004 numerictypes.py:82() - 2254 0.019 0.000 0.021 0.000 numerictypes.py:942(_can_coerce_all) - 1 0.000 0.000 0.000 0.000 numerictypes.py:957(_register_types) - 1127 0.004 0.000 0.025 0.000 numerictypes.py:964(find_common_type) - 39 0.001 0.000 0.006 0.000 numpy_support.py:103(numpy_to_vtk) - 1 0.000 0.000 0.000 0.000 numpy_support.py:27() - 39 0.001 0.000 0.002 0.000 numpy_support.py:48(get_vtk_array_type) - 39 0.000 0.000 0.000 0.000 numpy_support.py:72(get_vtk_to_numpy_typemap) - 39 0.000 0.000 0.000 0.000 numpy_support.py:91(get_numpy_array_type) - 39 0.001 0.000 0.001 0.000 numpy_support.py:96(create_vtk_array) - 1 0.000 0.000 0.000 0.000 oneD.py:4() - 1 0.000 0.000 0.000 0.000 oneD.py:6(oneD) - 119 0.000 0.000 0.000 0.000 opcode.py:27(def_op) - 11 0.000 0.000 0.000 0.000 opcode.py:31(name_op) - 6 0.000 0.000 0.000 0.000 opcode.py:35(jrel_op) - 6 0.000 0.000 0.000 0.000 opcode.py:39(jabs_op) - 1 0.000 0.000 0.000 0.000 opcode.py:5() - 1 0.000 0.000 0.000 0.000 os.py:35(_get_exports_list) - 5 0.000 0.000 0.000 0.000 os.py:472(__setitem__) - 2 0.000 0.000 0.000 0.000 os.py:496(__delitem__) - 1 0.000 0.000 0.000 0.000 parallelCoordinates.py:1() - 1 0.000 0.000 0.000 0.000 parallelCoordinates.py:6(Gpc) - 1 0.001 0.001 0.001 0.001 patterns.py:1() - 1 0.000 0.000 0.000 0.000 patterns.py:100(VertStripe) - 1 0.000 0.000 0.000 0.000 patterns.py:110(HorizDash) - 1 0.000 0.000 0.000 0.000 patterns.py:121(VertDash) - 1 0.000 0.000 0.000 0.000 patterns.py:134(XDash) - 1 0.000 0.000 0.000 0.000 patterns.py:191(ThinDiagDownRight) - 1 0.000 0.000 0.000 0.000 patterns.py:201(ThickDiagRownRight) - 1 0.000 0.000 0.000 0.000 patterns.py:211(ThinDiagUpRight) - 1 0.000 0.000 0.000 0.000 patterns.py:221(ThickDiagUpRight) - 1 0.000 0.000 0.000 0.000 patterns.py:231(ThickThinVertStripe) - 1 0.000 0.000 0.000 0.000 patterns.py:242(ThickThinHorizStripe) - 1 0.000 0.000 0.000 0.000 patterns.py:253(LargeRectDot) - 1 0.000 0.000 0.000 0.000 patterns.py:264(Diamond) - 1 0.000 0.000 0.000 0.000 patterns.py:291(Bubble) - 1 0.000 0.000 0.000 0.000 patterns.py:314(Snake) - 1 0.000 0.000 0.000 0.000 patterns.py:329(EmptyCircle) - 1 0.000 0.000 0.000 0.000 patterns.py:4(Pattern) - 1 0.000 0.000 0.000 0.000 patterns.py:42(BottomLeftTri) - 1 0.000 0.000 0.000 0.000 patterns.py:54(TopRightTri) - 1 0.000 0.000 0.000 0.000 patterns.py:66(SmallRectDot) - 1 0.000 0.000 0.000 0.000 patterns.py:77(CheckerBoard) - 1 0.000 0.000 0.000 0.000 patterns.py:90(HorizStripe) - 71 0.000 0.000 0.008 0.000 pdb.py:107(reset) - 71 0.000 0.000 0.000 0.000 pdb.py:111(forget) - 1 0.000 0.000 0.000 0.000 pdb.py:18(Restart) - 1 0.005 0.005 0.005 0.005 pdb.py:3() - 1 0.000 0.000 0.000 0.000 pdb.py:59(Pdb) - 71 0.009 0.000 0.015 0.000 pdb.py:61(__init__) - 1 0.000 0.000 0.000 0.000 pickle.py:1267(_EmptyClass) - 1 0.000 0.000 0.000 0.000 pickle.py:171(Pickler) - 1 0.001 0.001 0.002 0.002 pickle.py:25() - 1 0.000 0.000 0.000 0.000 pickle.py:58(PickleError) - 1 0.000 0.000 0.000 0.000 pickle.py:62(PicklingError) - 1 0.000 0.000 0.000 0.000 pickle.py:69(UnpicklingError) - 1 0.000 0.000 0.000 0.000 pickle.py:82(_Stop) - 1 0.000 0.000 0.000 0.000 pickle.py:833(Unpickler) - 1 0.000 0.000 0.000 0.000 pipeline.py:1() - 17 0.000 0.000 0.000 0.000 pipeline.py:13(__init__) - 42 0.000 0.000 0.001 0.000 pipeline.py:28(getColorMap) - 1606 0.001 0.000 0.014 0.000 pipeline.py:39(getColorIndexOrRGBA) - 1 0.000 0.000 0.000 0.000 pipeline.py:5(Pipeline) - 1 0.000 0.000 0.000 0.000 pipeline1d.py:1() - 1 0.000 0.000 0.000 0.000 pipeline1d.py:17(Pipeline1D) - 4 0.000 0.000 0.000 0.000 pipeline1d.py:21(__init__) - 4 0.001 0.000 1.971 0.493 pipeline1d.py:24(plot) - 1 0.000 0.000 0.001 0.001 pipeline2d.py:1() - 4 0.000 0.000 0.011 0.003 pipeline2d.py:106(_updateContourLevelsAndColorsGeneric) - 1 0.000 0.000 0.000 0.000 pipeline2d.py:11(IPipeline2D) - 1 0.000 0.000 0.000 0.000 pipeline2d.py:167(Pipeline2D) - 13 0.000 0.000 0.000 0.000 pipeline2d.py:171(__init__) - 4 0.000 0.000 0.003 0.001 pipeline2d.py:190(_prepContours) - 13 0.003 0.000 5.574 0.429 pipeline2d.py:272(plot) - 5 0.000 0.000 0.036 0.007 pipeline2d.py:321(_updateScalarData) - 13 0.002 0.000 0.615 0.047 pipeline2d.py:326(_updateVTKDataSet) - 13 0.003 0.000 0.015 0.001 pipeline2d.py:343(_createPolyDataFilter) - 13 0.000 0.000 0.000 0.000 pipeline2d.py:384(_updateFromGenGridDict) - 13 0.000 0.000 0.004 0.000 pipeline2d.py:394(_createMaskedDataMapper) - 21 0.000 0.000 0.014 0.001 pipeline2d.py:407(getPlottingBounds) - 13 0.000 0.000 0.000 0.000 pipeline2d.py:62(__init__) - 1 0.000 0.000 0.000 0.000 pipelinefactory.py:1() - 349 0.052 0.000 0.061 0.000 pipelinefactory.py:4(createPipeline) - 1 0.000 0.000 0.000 0.000 point.py:1() - 1 0.000 0.000 0.000 0.000 point.py:5(PointEditor) - 1 0.000 0.000 0.000 0.000 polar.py:1() - 1 0.000 0.000 0.000 0.000 polar.py:139(Gpo) - 1 0.000 0.000 0.000 0.000 polynomial.py:1517(Polynomial) - 1 0.000 0.000 0.000 0.000 polynomial.py:22(RankWarning) - 1 0.001 0.001 0.005 0.005 polynomial.py:4() - 1 0.003 0.003 0.004 0.004 polynomial.py:55() - 1 0.000 0.000 0.000 0.000 polynomial.py:940(poly1d) - 1 0.000 0.000 0.000 0.000 polyutils.py:45() - 1 0.000 0.000 0.000 0.000 polyutils.py:58(RankWarning) - 1 0.000 0.000 0.000 0.000 polyutils.py:62(PolyError) - 1 0.000 0.000 0.000 0.000 polyutils.py:66(PolyDomainError) - 1 0.000 0.000 0.000 0.000 polyutils.py:79(PolyBase) - 1 0.000 0.000 0.000 0.000 posixpath.py:112(basename) - 33 0.000 0.000 0.000 0.000 posixpath.py:120(dirname) - 809 0.008 0.000 0.012 0.000 posixpath.py:251(expanduser) - 54 0.001 0.000 0.002 0.000 posixpath.py:329(normpath) - 37 0.000 0.000 0.001 0.000 posixpath.py:358(abspath) - 6 0.000 0.000 0.000 0.000 posixpath.py:44(normcase) - 38 0.000 0.000 0.000 0.000 posixpath.py:52(isabs) - 2077 0.009 0.000 0.013 0.000 posixpath.py:61(join) - 7 0.000 0.000 0.000 0.000 posixpath.py:82(split) - 19 0.000 0.000 0.000 0.000 posixpath.py:97(splitext) - 1 0.000 0.000 0.000 0.000 pprint.py:35() - 1 0.000 0.000 0.000 0.000 pprint.py:84(PrettyPrinter) - 1 0.000 0.000 0.000 0.000 pressure.py:3() - 1 0.000 0.000 0.000 0.000 pressure.py:7(PressureRegridder) - 1 0.000 0.000 0.000 0.000 priority.py:1() - 1 0.000 0.000 0.000 0.000 priority.py:4(PriorityEditor) - 1 0.000 0.000 0.000 0.000 process.py:285(AuthenticationString) - 1 0.000 0.000 0.000 0.000 process.py:299(_MainProcess) - 1 0.000 0.000 0.000 0.000 process.py:301(__init__) - 1 0.000 0.000 0.001 0.001 process.py:35() - 1 0.000 0.000 0.000 0.000 process.py:86(Process) - 1 0.000 0.000 0.000 0.000 projection.py:3() - 11 0.000 0.000 0.002 0.000 projection.py:387(__init__) - 1 0.000 0.000 0.000 0.000 projection.py:46(Proj) - 99 0.000 0.000 0.006 0.000 projection.py:744(checkPP) - 9 0.000 0.000 0.001 0.000 projection.py:751(_setsmajor) - 9 0.000 0.000 0.000 0.000 projection.py:758(_setsminor) - 15 0.000 0.000 0.001 0.000 projection.py:765(_setcentralmeridian) - 3 0.000 0.000 0.000 0.000 projection.py:772(_settruescale) - 18 0.000 0.000 0.001 0.000 projection.py:779(_setfalseeasting) - 18 0.000 0.000 0.001 0.000 projection.py:786(_setfalsenorthing) - 6 0.000 0.000 0.001 0.000 projection.py:800(_setoriginlatitude) - 9 0.000 0.000 0.000 0.000 projection.py:911(_setsphere) - 3 0.000 0.000 0.000 0.000 projection.py:918(_setcenterlongitude) - 3 0.000 0.000 0.000 0.000 projection.py:925(_setcenterlatitude) - 3 0.000 0.000 0.000 0.000 projection.py:932(_setstandardparallel1) - 3 0.000 0.000 0.000 0.000 projection.py:939(_setstandardparallel2) - 443 0.000 0.000 0.000 0.000 projection.py:978(_getname) - 25 0.000 0.000 0.008 0.000 projection.py:986(_settype) - 4124 0.006 0.000 0.023 0.000 projection.py:990(_gettype) - 142 0.000 0.000 0.000 0.000 projection.py:994(_getparameters) - 116 0.000 0.000 0.001 0.000 projection.py:997(_setparameters) - 1 0.000 0.000 0.000 0.000 py3k.py:4() - 1 0.000 0.000 0.002 0.002 py3k.py:71(sixu) - 17 0.000 0.000 0.000 0.000 queries.py:116(graphicsmethodtype) - 398 0.001 0.000 0.001 0.000 queries.py:208(istemplate) - 1 0.005 0.005 0.017 0.017 queries.py:23() - 27 0.000 0.000 0.000 0.000 queries.py:278(isprojection) - 1 0.000 0.000 0.000 0.000 queries.py:342(isisoline) - 483 0.001 0.000 0.001 0.000 queries.py:398(isline) - 377 0.001 0.000 0.001 0.000 queries.py:406(ismarker) - 2136 0.001 0.000 0.002 0.000 queries.py:414(isfillarea) - 251 0.000 0.000 0.000 0.000 queries.py:438(istextcombined) - 745 0.010 0.000 0.012 0.000 queries.py:47(isgraphicsmethod) - 1 0.000 0.000 0.001 0.001 random.py:100(seed) - 1793 0.009 0.000 0.009 0.000 random.py:175(randrange) - 1793 0.003 0.000 0.013 0.000 random.py:238(randint) - 1 0.003 0.003 0.007 0.007 random.py:40() - 1 0.000 0.000 0.000 0.000 random.py:655(WichmannHill) - 1 0.000 0.000 0.000 0.000 random.py:72(Random) - 1 0.000 0.000 0.000 0.000 random.py:805(SystemRandom) - 1 0.000 0.000 0.001 0.001 random.py:91(__init__) - 2687 0.005 0.000 0.015 0.000 re.py:138(match) - 1 0.000 0.000 0.000 0.000 re.py:143(search) - 574 0.001 0.000 0.008 0.000 re.py:148(sub) - 208 0.000 0.000 0.067 0.000 re.py:192(compile) - 135 0.001 0.000 0.001 0.000 re.py:208(escape) - 3470 0.012 0.000 0.077 0.000 re.py:230(_compile) - 1 0.000 0.000 0.000 0.000 records.py:215(record) - 1 0.000 0.000 0.000 0.000 records.py:298(recarray) - 1 0.000 0.000 0.000 0.000 records.py:36() - 1 0.000 0.000 0.000 0.000 records.py:83(format_parser) - 5 0.000 0.000 0.000 0.000 region.py:15(__init__) - 1 0.000 0.000 0.002 0.002 region.py:2() - 5 0.000 0.000 0.002 0.000 region.py:223(domain) - 1 0.000 0.000 0.000 0.000 region.py:4(DomainComponent) - 1 0.000 0.000 0.000 0.000 regression.py:5() - 1 0.000 0.000 0.000 0.000 repr.py:1() - 2 0.000 0.000 0.000 0.000 repr.py:10(__init__) - 1 0.000 0.000 0.000 0.000 repr.py:8(Repr) - 1 0.001 0.001 0.001 0.001 resize_box.py:1() - 1 0.000 0.000 0.000 0.000 resize_box.py:4(ResizeBox) - 1 0.006 0.006 0.022 0.022 restApi.py:1() - 1 0.000 0.000 0.000 0.000 restApi.py:11(esgfConnectionException) - 1 0.000 0.000 0.000 0.000 restApi.py:13(esgfDatasetException) - 1 0.000 0.000 0.000 0.000 restApi.py:15(esgfFilesException) - 1 0.000 0.000 0.000 0.000 restApi.py:24(FacetConnection) - 1 0.000 0.000 0.000 0.000 restApi.py:302(esgfDataset) - 1 0.000 0.000 0.000 0.000 restApi.py:523(esgfFiles) - 1 0.000 0.000 0.000 0.000 restApi.py:690(esgfFile) - 1 0.000 0.000 0.000 0.000 restApi.py:82(esgfConnection) - 1 0.002 0.002 0.003 0.003 result.py:1() - 3 0.000 0.000 0.000 0.000 result.py:14(failfast) - 1 0.000 0.000 0.000 0.000 result.py:26(TestResult) - 1 0.000 0.000 0.000 0.000 retrieve.py:100(WeightedGridMakerError) - 1 0.000 0.000 0.000 0.000 retrieve.py:103(GridAxis) - 1 0.000 0.000 0.000 0.000 retrieve.py:14(WeightsMakerError) - 1 0.000 0.000 0.000 0.000 retrieve.py:143(WeightedGridMaker) - 1 0.000 0.000 0.000 0.000 retrieve.py:18(WeightsMaker) - 1 0.002 0.002 0.002 0.002 retrieve.py:2() - 1 0.000 0.000 0.000 0.000 retrieve.py:253(VariableConditionerError) - 1 0.000 0.000 0.000 0.000 retrieve.py:256(VariableConditioner) - 1 0.000 0.000 0.000 0.000 retrieve.py:532(VariablesMatcherError) - 1 0.000 0.000 0.000 0.000 retrieve.py:535(VariablesMatcher) - 1 0.000 0.000 0.000 0.000 rfc822.py:501(AddrlistClass) - 1 0.000 0.000 0.000 0.000 rfc822.py:71() - 1 0.000 0.000 0.000 0.000 rfc822.py:775(AddressList) - 1 0.000 0.000 0.000 0.000 rfc822.py:85(Message) - 1 0.001 0.001 0.001 0.001 runner.py:1() - 1 0.000 0.000 0.000 0.000 runner.py:119(TextTestRunner) - 1 0.000 0.000 0.000 0.000 runner.py:12(_WritelnDecorator) - 1 0.000 0.000 0.000 0.000 runner.py:28(TextTestResult) - 1 0.000 0.000 0.000 0.000 salstat.py:16() - 1 0.001 0.001 0.002 0.002 scanner.py:2() - 1 0.000 0.000 0.000 0.000 scimath.py:17() - 1 0.000 0.000 0.000 0.000 scrip.py:10(ScripRegridder) - 1 0.000 0.000 0.000 0.000 scrip.py:136(BilinearRegridder) - 1 0.000 0.000 0.000 0.000 scrip.py:145(BicubicRegridder) - 1 0.000 0.000 0.000 0.000 scrip.py:236(DistwgtRegridder) - 1 0.001 0.001 0.001 0.001 scrip.py:3() - 1 0.000 0.000 0.000 0.000 scrip.py:94(ConservativeRegridder) - 85 0.001 0.000 0.271 0.003 selectors.py:134(unmodified_select) - 1 0.000 0.000 0.000 0.000 selectors.py:14(Selector) - 99/91 0.000 0.000 0.001 0.000 selectors.py:16(__init__) - 1 0.000 0.000 0.000 0.000 selectors.py:199(SelectorComponent) - 1 0.000 0.000 0.001 0.001 selectors.py:2() - 36 0.000 0.000 0.000 0.000 selectors.py:238(post) - 1 0.000 0.000 0.000 0.000 selectors.py:249(axisComponent) - 8 0.000 0.000 0.000 0.000 selectors.py:251(__init__) - 8 0.000 0.000 0.001 0.000 selectors.py:255(specify) - 1 0.000 0.000 0.000 0.000 selectors.py:271(coordinateComponent) - 8 0.000 0.000 0.000 0.000 selectors.py:274(__init__) - 1 0.000 0.000 0.000 0.000 selectors.py:286(requiredComponent) - 1 0.000 0.000 0.000 0.000 selectors.py:305(indexComponent) - 1 0.000 0.000 0.000 0.000 selectors.py:313(indexedComponent) - 93 0.000 0.000 0.000 0.000 selectors.py:33(components) - 1 0.000 0.000 0.000 0.000 selectors.py:331(positionalComponent) - 28 0.000 0.000 0.000 0.000 selectors.py:334(__init__) - 28 0.000 0.000 0.000 0.000 selectors.py:337(specify) - 4 0.000 0.000 0.000 0.000 selectors.py:355(longitude) - 4 0.000 0.000 0.000 0.000 selectors.py:364(latitude) - 143/91 0.001 0.000 0.001 0.000 selectors.py:37(refine) - 8 0.000 0.000 0.000 0.000 selectors.py:400(kwselect) - 1 0.000 0.000 0.000 0.000 selectors.py:9(SelectorError) - 1 0.000 0.000 0.000 0.000 selval.py:2() - 1 0.000 0.000 0.000 0.000 selval.py:5(PickComponent) - 1 0.000 0.000 0.000 0.000 sftbyrgn.py:4() - 2 0.000 0.000 0.000 0.000 shape_base.py:1() - 1 0.000 0.000 0.000 0.000 shelve.py:176(BsdDbShelf) - 1 0.000 0.000 0.000 0.000 shelve.py:218(DbfilenameShelf) - 1 0.000 0.000 0.000 0.000 shelve.py:57() - 1 0.000 0.000 0.000 0.000 shelve.py:75(_ClosedDict) - 1 0.000 0.000 0.000 0.000 shelve.py:85(Shelf) - 1 0.000 0.000 0.000 0.000 shlex.py:2() - 1 0.000 0.000 0.000 0.000 shlex.py:21(shlex) - 1 0.000 0.000 0.000 0.000 shutil.py:31(Error) - 1 0.000 0.000 0.000 0.000 shutil.py:34(SpecialFileError) - 1 0.000 0.000 0.000 0.000 shutil.py:38(ExecError) - 1 0.001 0.001 0.001 0.001 shutil.py:5() - 1 0.000 0.000 0.000 0.000 signals.py:1() - 1 0.000 0.000 0.000 0.000 signals.py:9(_InterruptHandler) - 1 0.000 0.000 0.000 0.000 site.py:344(__call__) - 1 0.000 0.000 0.000 0.000 slabinterface.py:11(Slab) - 1012 0.000 0.000 0.000 0.000 slabinterface.py:27(__init__) - 1 0.000 0.000 0.000 0.000 slabinterface.py:4() - 1 0.000 0.000 0.000 0.000 sliceut.py:2() - 1 0.000 0.000 0.000 0.000 slider.py:1() - 1 0.000 0.000 0.000 0.000 slider.py:5(Slider) - 1 0.000 0.000 0.000 0.000 socket.py:171(_closedsocket) - 1 0.000 0.000 0.000 0.000 socket.py:183(_socketobject) - 1 0.000 0.000 0.000 0.000 socket.py:239(_fileobject) - 1 0.004 0.004 0.004 0.004 socket.py:45() - 1 0.003 0.003 0.005 0.005 spawn.py:7() - 79 0.000 0.000 0.000 0.000 sre_compile.py:101(fixup) - 349 0.001 0.000 0.008 0.000 sre_compile.py:228(_compile_charset) - 349 0.004 0.000 0.006 0.000 sre_compile.py:256(_optimize_charset) - 129 0.001 0.000 0.002 0.000 sre_compile.py:411(_mk_bitmap) - 371 0.001 0.000 0.001 0.000 sre_compile.py:428(_simple) - 122 0.001 0.000 0.007 0.000 sre_compile.py:433(_compile_info) - 244 0.000 0.000 0.000 0.000 sre_compile.py:546(isstring) - 122 0.000 0.000 0.026 0.000 sre_compile.py:552(_code) - 122 0.001 0.000 0.064 0.001 sre_compile.py:567(compile) - 888/122 0.007 0.000 0.019 0.000 sre_compile.py:64(_compile) - 1816 0.001 0.000 0.001 0.000 sre_parse.py:137(__len__) - 47 0.000 0.000 0.000 0.000 sre_parse.py:139(__delitem__) - 3657 0.005 0.000 0.006 0.000 sre_parse.py:141(__getitem__) - 371 0.000 0.000 0.000 0.000 sre_parse.py:145(__setitem__) - 1499 0.001 0.000 0.001 0.000 sre_parse.py:149(append) - 1248/493 0.004 0.000 0.005 0.000 sre_parse.py:151(getwidth) - 122 0.000 0.000 0.001 0.000 sre_parse.py:189(__init__) - 5338 0.007 0.000 0.008 0.000 sre_parse.py:193(__next) - 2712 0.001 0.000 0.002 0.000 sre_parse.py:206(match) - 4433 0.003 0.000 0.009 0.000 sre_parse.py:212(get) - 3 0.000 0.000 0.000 0.000 sre_parse.py:216(tell) - 1 0.000 0.000 0.000 0.000 sre_parse.py:218(seek) - 210 0.000 0.000 0.000 0.000 sre_parse.py:221(isident) - 2 0.000 0.000 0.000 0.000 sre_parse.py:224(isdigit) - 40 0.000 0.000 0.000 0.000 sre_parse.py:227(isname) - 98 0.000 0.000 0.000 0.000 sre_parse.py:236(_class_escape) - 235 0.000 0.000 0.001 0.000 sre_parse.py:268(_escape) - 302/122 0.002 0.000 0.034 0.000 sre_parse.py:317(_parse_sub) - 447/128 0.012 0.000 0.033 0.000 sre_parse.py:395(_parse) - 122 0.000 0.000 0.000 0.000 sre_parse.py:67(__init__) - 122 0.001 0.000 0.036 0.000 sre_parse.py:706(parse) - 135 0.000 0.000 0.000 0.000 sre_parse.py:74(opengroup) - 135 0.000 0.000 0.000 0.000 sre_parse.py:85(closegroup) - 1 0.000 0.000 0.000 0.000 sre_parse.py:87(checkgroup) - 892 0.001 0.000 0.001 0.000 sre_parse.py:92(__init__) - 5 0.000 0.000 0.001 0.000 ssl.py:114(_import_symbols) - 1 0.000 0.000 0.000 0.000 ssl.py:129() - 1 0.000 0.000 0.000 0.000 ssl.py:184(CertificateError) - 1 0.000 0.000 0.000 0.000 ssl.py:300(_ASN1Object) - 2 0.000 0.000 0.000 0.000 ssl.py:305(__new__) - 1 0.000 0.000 0.000 0.000 ssl.py:321(Purpose) - 1 0.000 0.000 0.000 0.000 ssl.py:329(SSLContext) - 1 0.000 0.000 0.000 0.000 ssl.py:495(_get_https_context_factory) - 1 0.000 0.000 0.000 0.000 ssl.py:514(SSLSocket) - 1 0.000 0.000 0.003 0.003 ssl.py:88() - 1 0.000 0.000 0.000 0.000 stat.py:24(S_IFMT) - 1 0.000 0.000 0.000 0.000 stat.py:40(S_ISDIR) - 1 0.000 0.000 0.000 0.000 statistics.py:10(StatisticsError) - 1 0.002 0.002 0.003 0.003 statistics.py:2() - 1 0.000 0.000 0.000 0.000 statusbar.py:1() - 1 0.000 0.000 0.000 0.000 stride_tricks.py:15(DummyArray) - 1 0.000 0.000 0.000 0.000 stride_tricks.py:7() - 3020 0.002 0.000 0.003 0.000 string.py:222(lower) - 17 0.000 0.000 0.000 0.000 string.py:231(upper) - 19 0.000 0.000 0.000 0.000 string.py:250(strip) - 13 0.000 0.000 0.000 0.000 string.py:310(join) - 3444 0.002 0.000 0.003 0.000 string.py:513(replace) - 1 0.003 0.003 0.004 0.004 subprocess.py:387() - 1 0.000 0.000 0.000 0.000 subprocess.py:400(CalledProcessError) - 1 0.000 0.000 0.000 0.000 subprocess.py:648(Popen) - 1 0.000 0.000 0.000 0.000 suite.py:1() - 1 0.000 0.000 0.000 0.000 suite.py:16(BaseTestSuite) - 1 0.000 0.000 0.000 0.000 suite.py:252(_ErrorHolder) - 1 0.000 0.000 0.000 0.000 suite.py:299(_DebugResult) - 1 0.000 0.000 0.000 0.000 suite.py:78(TestSuite) - 1 0.000 0.000 0.002 0.002 sysconfig.py:10() - 1 0.000 0.000 0.000 0.000 sysconfig.py:395(_init_posix) - 2 0.000 0.000 0.000 0.000 sysconfig.py:440(get_config_vars) - 1 0.000 0.000 0.000 0.000 sysconfig.py:50(_python_build) - 1 0.000 0.000 0.002 0.002 taylor.py:1171(addMarker) - 1 0.000 0.000 0.008 0.008 taylor.py:1193(draw) - 2 0.000 0.000 0.000 0.000 taylor.py:121(__getstate__) - 16 0.005 0.000 0.009 0.001 taylor.py:1383(getArc) - 2 0.000 0.000 0.000 0.000 taylor.py:140(__setstate__) - 1 0.000 0.000 0.000 0.000 taylor.py:1423(setWorldCoordinate) - 1 0.000 0.000 0.000 0.000 taylor.py:144(__init__) - 1 0.003 0.003 1.153 1.153 taylor.py:1463(drawFrame) - 1 0.000 0.000 0.000 0.000 taylor.py:166(checklineconnectingtype) - 2322 0.004 0.000 0.005 0.000 taylor.py:1902(convert) - 1 0.000 0.000 1.165 1.165 taylor.py:1912(plot) - 5 0.000 0.000 0.000 0.000 taylor.py:196(_getstatus) - 3 0.000 0.000 0.000 0.000 taylor.py:199(_setstatus) - 1 0.000 0.000 0.000 0.000 taylor.py:2() - 5 0.000 0.000 0.000 0.000 taylor.py:207(_getline) - 3 0.000 0.000 0.000 0.000 taylor.py:210(_setline) - 5 0.000 0.000 0.000 0.000 taylor.py:218(_getid) - 3 0.000 0.000 0.000 0.000 taylor.py:221(_setid) - 5 0.000 0.000 0.000 0.000 taylor.py:229(_getid_color) - 3 0.000 0.000 0.000 0.000 taylor.py:232(_setid_color) - 5 0.000 0.000 0.000 0.000 taylor.py:240(_getid_size) - 3 0.000 0.000 0.000 0.000 taylor.py:243(_setid_size) - 5 0.000 0.000 0.000 0.000 taylor.py:255(_getid_font) - 3 0.000 0.000 0.000 0.000 taylor.py:258(_setid_font) - 5 0.000 0.000 0.000 0.000 taylor.py:270(_getsymbol) - 3 0.000 0.000 0.000 0.000 taylor.py:273(_setsymbol) - 5 0.000 0.000 0.000 0.000 taylor.py:281(_getcolor) - 3 0.000 0.000 0.000 0.000 taylor.py:284(_setcolor) - 5 0.000 0.000 0.000 0.000 taylor.py:292(_getsize) - 3 0.000 0.000 0.000 0.000 taylor.py:295(_setsize) - 5 0.000 0.000 0.000 0.000 taylor.py:306(_getxoffset) - 3 0.000 0.000 0.000 0.000 taylor.py:309(_setxoffset) - 5 0.000 0.000 0.000 0.000 taylor.py:318(_getyoffset) - 3 0.000 0.000 0.000 0.000 taylor.py:321(_setyoffset) - 5 0.000 0.000 0.000 0.000 taylor.py:330(_getline_color) - 3 0.000 0.000 0.000 0.000 taylor.py:333(_setline_color) - 5 0.000 0.000 0.000 0.000 taylor.py:341(_getline_size) - 3 0.000 0.000 0.000 0.000 taylor.py:344(_setline_size) - 5 0.000 0.000 0.000 0.000 taylor.py:354(_getline_type) - 3 0.000 0.000 0.000 0.000 taylor.py:357(_setline_type) - 27 0.003 0.000 0.024 0.001 taylor.py:36(createnewvcsobj) - 2 0.000 0.000 0.000 0.000 taylor.py:365(_getnumber) - 2 0.000 0.000 0.000 0.000 taylor.py:368(_setnumber) - 1 0.000 0.000 0.002 0.002 taylor.py:420(addMarker) - 14 0.000 0.000 0.000 0.000 taylor.py:513(eq) - 5 0.000 0.000 0.000 0.000 taylor.py:522(equalize) - 1 0.000 0.000 0.000 0.000 taylor.py:545(Gtd) - 3 0.000 0.000 0.003 0.001 taylor.py:608(__init__) - 233 0.000 0.000 0.000 0.000 taylor.py:669(_getname) - 3 0.000 0.000 0.000 0.000 taylor.py:678(_getmax) - 2 0.000 0.000 0.000 0.000 taylor.py:681(_setmax) - 38 0.000 0.000 0.000 0.000 taylor.py:691(_getquadrans) - 2 0.000 0.000 0.000 0.000 taylor.py:694(_setquadrans) - 3 0.000 0.000 0.000 0.000 taylor.py:705(_getskillvalues) - 2 0.000 0.000 0.000 0.000 taylor.py:708(_setskillvalues) - 2 0.000 0.000 0.000 0.000 taylor.py:729(_getskillcoefficient) - 2 0.000 0.000 0.000 0.000 taylor.py:732(_setskillcoefficient) - 34 0.000 0.000 0.000 0.000 taylor.py:741(_getdetail) - 2 0.000 0.000 0.000 0.000 taylor.py:744(_setdetail) - 5 0.000 0.000 0.000 0.000 taylor.py:754(_getreferencevalue) - 2 0.000 0.000 0.000 0.000 taylor.py:757(_setreferencevalue) - 2 0.000 0.000 0.000 0.000 taylor.py:767(_getskillcolor) - 2 0.000 0.000 0.002 0.001 taylor.py:770(_setskillcolor) - 9 0.000 0.000 0.000 0.000 taylor.py:776(_getMarker) - 2 0.000 0.000 0.000 0.000 taylor.py:779(_setMarker) - 2 0.000 0.000 0.000 0.000 taylor.py:786(_getarrowlength) - 2 0.000 0.000 0.000 0.000 taylor.py:789(_setarrowlength) - 2 0.000 0.000 0.000 0.000 taylor.py:799(_getarrowangle) - 2 0.000 0.000 0.000 0.000 taylor.py:802(_setarrowangle) - 2 0.000 0.000 0.000 0.000 taylor.py:814(_getarrowbase) - 2 0.000 0.000 0.000 0.000 taylor.py:817(_setarrowbase) - 2 0.000 0.000 0.000 0.000 taylor.py:828(_getskillDrawLabels) - 2 0.000 0.000 0.000 0.000 taylor.py:831(_setskillDrawLabels) - 1 0.000 0.000 0.000 0.000 taylor.py:84(TDMarker) - 3 0.000 0.000 0.000 0.000 taylor.py:840(_getxticlabels1) - 2 0.000 0.000 0.000 0.000 taylor.py:843(_setxticlabels1) - 3 0.000 0.000 0.000 0.000 taylor.py:851(_getxmtics1) - 2 0.000 0.000 0.000 0.000 taylor.py:854(_setxmtics1) - 3 0.000 0.000 0.000 0.000 taylor.py:862(_getyticlabels1) - 2 0.000 0.000 0.000 0.000 taylor.py:865(_setyticlabels1) - 3 0.000 0.000 0.000 0.000 taylor.py:873(_getymtics1) - 2 0.000 0.000 0.000 0.000 taylor.py:876(_setymtics1) - 3 0.000 0.000 0.000 0.000 taylor.py:884(_getcticlabels1) - 2 0.000 0.000 0.000 0.000 taylor.py:887(_setcticlabels1) - 3 0.000 0.000 0.000 0.000 taylor.py:895(_getcmtics1) - 2 0.000 0.000 0.000 0.000 taylor.py:898(_setcmtics1) - 1 0.000 0.000 0.000 0.000 taylor.py:938(drawSkill) - 1 0.000 0.000 0.000 0.000 tempfile.py:108(_RandomNameSequence) - 1 0.003 0.003 0.011 0.011 tempfile.py:18() - 1 0.000 0.000 0.000 0.000 tempfile.py:383(_TemporaryFileWrapper) - 1 0.000 0.000 0.000 0.000 tempfile.py:519(SpooledTemporaryFile) - 68 0.027 0.000 2.008 0.030 template.py:1005(drawTicks) - 23 0.008 0.000 0.027 0.001 template.py:1248(reset) - 23 0.000 0.000 0.027 0.001 template.py:1387(scale) - 1 0.000 0.000 0.000 0.000 template.py:140(P) - 17 0.005 0.000 2.138 0.126 template.py:1524(drawAttributes) - 17 0.005 0.000 4.948 0.291 template.py:1604(plot) - 10 0.013 0.001 0.918 0.092 template.py:1779(drawColorBar) - 99 0.000 0.000 0.002 0.000 template.py:2003(in_bounds) - 23 0.002 0.000 0.245 0.011 template.py:2117(ratio) - 23605 0.008 0.000 0.008 0.000 template.py:213(_getName) - 423 0.000 0.000 0.000 0.000 template.py:217(_getOrientation) - 400 0.001 0.000 0.007 0.000 template.py:220(_setOrientation) - 401 0.112 0.000 4.025 0.010 template.py:234(__init__) - 464 0.000 0.000 0.001 0.000 template.py:257() - 400 0.001 0.000 0.002 0.000 template.py:258() - 464 0.000 0.000 0.001 0.000 template.py:259() - 400 0.001 0.000 0.002 0.000 template.py:260() - 464 0.000 0.000 0.001 0.000 template.py:261() - 400 0.000 0.000 0.002 0.000 template.py:262() - 464 0.000 0.000 0.001 0.000 template.py:263() - 400 0.000 0.000 0.002 0.000 template.py:264() - 481 0.000 0.000 0.001 0.000 template.py:265() - 400 0.000 0.000 0.002 0.000 template.py:266() - 481 0.000 0.000 0.001 0.000 template.py:267() - 400 0.000 0.000 0.002 0.000 template.py:268() - 481 0.000 0.000 0.001 0.000 template.py:269() - 400 0.000 0.000 0.002 0.000 template.py:270() - 481 0.000 0.000 0.001 0.000 template.py:271() - 400 0.000 0.000 0.002 0.000 template.py:272() - 477 0.000 0.000 0.001 0.000 template.py:273() - 400 0.000 0.000 0.002 0.000 template.py:274() - 477 0.000 0.000 0.001 0.000 template.py:275() - 400 0.000 0.000 0.002 0.000 template.py:276() - 464 0.001 0.000 0.001 0.000 template.py:277() - 400 0.000 0.000 0.002 0.000 template.py:278() - 464 0.000 0.000 0.001 0.000 template.py:279() - 400 0.000 0.000 0.002 0.000 template.py:280() - 464 0.000 0.000 0.001 0.000 template.py:281() - 400 0.000 0.000 0.002 0.000 template.py:282() - 464 0.000 0.000 0.001 0.000 template.py:283() - 400 0.000 0.000 0.002 0.000 template.py:284() - 494 0.000 0.000 0.001 0.000 template.py:285() - 400 0.000 0.000 0.002 0.000 template.py:286() - 490 0.000 0.000 0.001 0.000 template.py:287() - 400 0.000 0.000 0.002 0.000 template.py:288() - 481 0.000 0.000 0.001 0.000 template.py:289() - 400 0.000 0.000 0.002 0.000 template.py:290() - 468 0.000 0.000 0.001 0.000 template.py:291() - 400 0.000 0.000 0.002 0.000 template.py:292() - 464 0.000 0.000 0.001 0.000 template.py:293() - 400 0.000 0.000 0.002 0.000 template.py:294() - 464 0.000 0.000 0.001 0.000 template.py:295() - 400 0.000 0.000 0.002 0.000 template.py:296() - 477 0.000 0.000 0.001 0.000 template.py:297() - 400 0.000 0.000 0.002 0.000 template.py:298() - 464 0.000 0.000 0.001 0.000 template.py:299() - 400 0.000 0.000 0.002 0.000 template.py:300() - 464 0.000 0.000 0.001 0.000 template.py:301() - 400 0.000 0.000 0.002 0.000 template.py:302() - 464 0.000 0.000 0.001 0.000 template.py:303() - 400 0.000 0.000 0.002 0.000 template.py:304() - 477 0.000 0.000 0.001 0.000 template.py:305() - 400 0.000 0.000 0.002 0.000 template.py:306() - 464 0.001 0.000 0.002 0.000 template.py:307() - 400 0.000 0.000 0.002 0.000 template.py:308() - 481 0.000 0.000 0.001 0.000 template.py:309() - 400 0.000 0.000 0.002 0.000 template.py:310() - 481 0.000 0.000 0.001 0.000 template.py:311() - 400 0.000 0.000 0.002 0.000 template.py:312() - 481 0.000 0.000 0.001 0.000 template.py:313() - 400 0.000 0.000 0.002 0.000 template.py:314() - 537 0.000 0.000 0.001 0.000 template.py:315() - 400 0.000 0.000 0.002 0.000 template.py:316() - 520 0.000 0.000 0.001 0.000 template.py:317() - 400 0.000 0.000 0.002 0.000 template.py:318() - 500 0.000 0.000 0.001 0.000 template.py:319() - 400 0.000 0.000 0.002 0.000 template.py:320() - 493 0.000 0.000 0.001 0.000 template.py:321() - 400 0.000 0.000 0.002 0.000 template.py:322() - 532 0.000 0.000 0.001 0.000 template.py:323() - 400 0.000 0.000 0.002 0.000 template.py:324() - 521 0.000 0.000 0.001 0.000 template.py:325() - 400 0.000 0.000 0.002 0.000 template.py:326() - 505 0.000 0.000 0.001 0.000 template.py:327() - 400 0.000 0.000 0.002 0.000 template.py:328() - 494 0.000 0.000 0.001 0.000 template.py:329() - 400 0.000 0.000 0.002 0.000 template.py:330() - 511 0.000 0.000 0.001 0.000 template.py:331() - 400 0.000 0.000 0.002 0.000 template.py:332() - 491 0.000 0.000 0.001 0.000 template.py:333() - 400 0.000 0.000 0.002 0.000 template.py:334() - 511 0.000 0.000 0.001 0.000 template.py:335() - 400 0.000 0.000 0.002 0.000 template.py:336() - 539 0.000 0.000 0.001 0.000 template.py:337() - 400 0.000 0.000 0.002 0.000 template.py:338() - 501 0.000 0.000 0.001 0.000 template.py:339() - 400 0.000 0.000 0.002 0.000 template.py:340() - 481 0.000 0.000 0.001 0.000 template.py:341() - 400 0.000 0.000 0.002 0.000 template.py:342() - 464 0.000 0.000 0.001 0.000 template.py:343() - 400 0.000 0.000 0.001 0.000 template.py:344() - 464 0.000 0.000 0.001 0.000 template.py:345() - 400 0.000 0.000 0.002 0.000 template.py:346() - 483 0.000 0.000 0.001 0.000 template.py:347() - 400 0.000 0.000 0.002 0.000 template.py:348() - 483 0.000 0.000 0.001 0.000 template.py:349() - 400 0.000 0.000 0.002 0.000 template.py:350() - 464 0.000 0.000 0.001 0.000 template.py:351() - 400 0.000 0.000 0.001 0.000 template.py:352() - 464 0.000 0.000 0.001 0.000 template.py:353() - 400 0.000 0.000 0.002 0.000 template.py:354() - 741 0.001 0.000 0.002 0.000 template.py:355() - 400 0.000 0.000 0.002 0.000 template.py:356() - 3384 0.002 0.000 0.007 0.000 template.py:357() - 400 0.000 0.000 0.002 0.000 template.py:358() - 27787 0.024 0.000 0.039 0.000 template.py:47(_getgen) - 1 0.008 0.008 0.045 0.045 template.py:5() - 20400 0.045 0.000 0.069 0.000 template.py:51(_setgen) - 15968 0.045 0.000 0.060 0.000 template.py:67(epsilon_lte) - 2 0.002 0.001 0.006 0.003 text.py:1() - 1 0.000 0.000 0.000 0.000 text.py:187(Label) - 1 0.000 0.000 0.000 0.000 text.py:21(TextEditor) - 1 0.001 0.001 0.001 0.001 textbox.py:1() - 1 0.000 0.000 0.000 0.000 textbox.py:17(Textbox) - 249 0.000 0.000 0.000 0.000 textcombined.py:233(_getTtname) - 249 0.000 0.000 0.000 0.000 textcombined.py:240(_getToname) - 17 0.000 0.000 0.001 0.000 textcombined.py:250(_setcolor) - 563 0.001 0.000 0.001 0.000 textcombined.py:268(_getpriority) - 321 0.001 0.000 0.004 0.000 textcombined.py:271(_setpriority) - 17 0.000 0.000 0.000 0.000 textcombined.py:278(_setfont) - 313 0.001 0.000 0.002 0.000 textcombined.py:285(_setstring) - 17 0.000 0.000 0.000 0.000 textcombined.py:292(_setspacing) - 17 0.000 0.000 0.001 0.000 textcombined.py:299(_setexpansion) - 1 0.000 0.000 0.000 0.000 textcombined.py:3() - 313 0.001 0.000 0.009 0.000 textcombined.py:306(_setx) - 313 0.000 0.000 0.008 0.000 textcombined.py:313(_sety) - 830 0.001 0.000 0.001 0.000 textcombined.py:317(_getviewport) - 20 0.000 0.000 0.001 0.000 textcombined.py:320(_setviewport) - 20 0.000 0.000 0.001 0.000 textcombined.py:327(_setworldcoordinate) - 430 0.001 0.000 0.001 0.000 textcombined.py:331(_getprojection) - 68 0.000 0.000 0.001 0.000 textcombined.py:334(_setprojection) - 17 0.000 0.000 0.000 0.000 textcombined.py:341(_setheight) - 1 0.000 0.000 0.000 0.000 textcombined.py:345(_getangle) - 31 0.000 0.000 0.000 0.000 textcombined.py:348(_setangle) - 17 0.000 0.000 0.000 0.000 textcombined.py:355(_setpath) - 30 0.000 0.000 0.001 0.000 textcombined.py:362(_sethalign) - 18 0.000 0.000 0.000 0.000 textcombined.py:369(_setvalign) - 521 0.008 0.000 0.224 0.000 textcombined.py:378(__init__) - 1 0.000 0.000 0.000 0.000 textcombined.py:45(Tc) - 12409 0.003 0.000 0.003 0.000 textorientation.py:171(_getname) - 1178 0.001 0.000 0.001 0.000 textorientation.py:179(_getheight) - 664 0.001 0.000 0.005 0.000 textorientation.py:182(_setheight) - 1179 0.001 0.000 0.001 0.000 textorientation.py:189(_getangle) - 680 0.001 0.000 0.007 0.000 textorientation.py:192(_setangle) - 602 0.000 0.000 0.000 0.000 textorientation.py:202(_getpath) - 664 0.001 0.000 0.016 0.000 textorientation.py:205(_setpath) - 1895 0.001 0.000 0.001 0.000 textorientation.py:214(_gethalign) - 681 0.001 0.000 0.012 0.000 textorientation.py:217(_sethalign) - 1821 0.001 0.000 0.001 0.000 textorientation.py:226(_getvalign) - 667 0.001 0.000 0.016 0.000 textorientation.py:229(_setvalign) - 586 0.014 0.000 0.070 0.000 textorientation.py:243(__init__) - 1 0.000 0.000 0.000 0.000 textorientation.py:3() - 1 0.000 0.000 0.000 0.000 textorientation.py:51(To) - 65608 0.012 0.000 0.012 0.000 texttable.py:215(_getname) - 1124 0.001 0.000 0.001 0.000 texttable.py:224(_getcolor) - 556 0.001 0.000 0.023 0.000 texttable.py:227(_setcolor) - 1683 0.001 0.000 0.001 0.000 texttable.py:233(_getbackgroundcolor) - 531 0.001 0.000 0.019 0.000 texttable.py:236(_setbackgroundcolor) - 1107 0.000 0.000 0.000 0.000 texttable.py:242(_getbackgroundopacity) - 531 0.001 0.000 0.003 0.000 texttable.py:245(_setbackgroundopacity) - 531 0.000 0.000 0.000 0.000 texttable.py:251(_getfillincolor) - 539 0.001 0.000 0.006 0.000 texttable.py:254(_setfillincolor) - 548 0.000 0.000 0.000 0.000 texttable.py:263(_getspacing) - 556 0.001 0.000 0.008 0.000 texttable.py:266(_setspacing) - 548 0.000 0.000 0.000 0.000 texttable.py:276(_getexpansion) - 556 0.001 0.000 0.006 0.000 texttable.py:279(_setexpansion) - 1124 0.001 0.000 0.001 0.000 texttable.py:288(_getfont) - 556 0.001 0.000 0.005 0.000 texttable.py:291(_setfont) - 775 0.001 0.000 0.001 0.000 texttable.py:295(_getstring) - 852 0.003 0.000 0.003 0.000 texttable.py:298(_setstring) - 1953 0.001 0.000 0.001 0.000 texttable.py:311(_getpriority) - 860 0.001 0.000 0.009 0.000 texttable.py:314(_setpriority) - 2035 0.001 0.000 0.001 0.000 texttable.py:322(_getprojection) - 607 0.001 0.000 0.006 0.000 texttable.py:325(_setprojection) - 1311 0.000 0.000 0.000 0.000 texttable.py:332(_getwc) - 559 0.001 0.000 0.016 0.000 texttable.py:335(_setwc) - 2141 0.001 0.000 0.001 0.000 texttable.py:343(_getvp) - 559 0.001 0.000 0.017 0.000 texttable.py:346(_setvp) - 775 0.000 0.000 0.000 0.000 texttable.py:356(_getx) - 852 0.002 0.000 0.014 0.000 texttable.py:359(_setx) - 775 0.000 0.000 0.000 0.000 texttable.py:383(_gety) - 852 0.001 0.000 0.013 0.000 texttable.py:386(_sety) - 1 0.000 0.000 0.000 0.000 texttable.py:4() - 532 0.024 0.000 0.153 0.000 texttable.py:415(__init__) - 1 0.000 0.000 0.000 0.000 texttable.py:79(Tt) - 1 0.004 0.004 0.011 0.011 threading.py:1() - 1 0.000 0.000 0.000 0.000 threading.py:1049(_Timer) - 1 0.000 0.000 0.000 0.000 threading.py:1079(_MainThread) - 1 0.000 0.000 0.000 0.000 threading.py:1081(__init__) - 1 0.000 0.000 0.000 0.000 threading.py:1088(_set_daemon) - 1 0.000 0.000 0.000 0.000 threading.py:1119(_DummyThread) - 44 0.000 0.000 0.000 0.000 threading.py:1143(currentThread) - 1 0.000 0.000 0.000 0.000 threading.py:125(_RLock) - 90 0.000 0.000 0.001 0.000 threading.py:242(Condition) - 1 0.000 0.000 0.000 0.000 threading.py:255(_Condition) - 90 0.001 0.000 0.001 0.000 threading.py:260(__init__) - 45 0.000 0.000 0.001 0.000 threading.py:285(__enter__) - 45 0.000 0.000 0.000 0.000 threading.py:288(__exit__) - 42 0.000 0.000 0.000 0.000 threading.py:294(_release_save) - 42 0.000 0.000 0.000 0.000 threading.py:297(_acquire_restore) - 43 0.000 0.000 0.000 0.000 threading.py:300(_is_owned) - 42 0.001 0.000 0.019 0.000 threading.py:309(wait) - 1 0.000 0.000 0.000 0.000 threading.py:373(notify) - 1 0.000 0.000 0.000 0.000 threading.py:400(notifyAll) - 1 0.000 0.000 0.000 0.000 threading.py:423(_Semaphore) - 1 0.000 0.000 0.000 0.000 threading.py:515(_BoundedSemaphore) - 45 0.000 0.000 0.001 0.000 threading.py:542(Event) - 1 0.000 0.000 0.000 0.000 threading.py:552(_Event) - 45 0.000 0.000 0.001 0.000 threading.py:561(__init__) - 1 0.000 0.000 0.000 0.000 threading.py:57(_Verbose) - 44 0.000 0.000 0.000 0.000 threading.py:570(isSet) - 1 0.000 0.000 0.000 0.000 threading.py:576(set) - 180 0.000 0.000 0.000 0.000 threading.py:59(__init__) - 44 0.001 0.000 0.021 0.000 threading.py:597(wait) - 44 0.000 0.000 0.000 0.000 threading.py:620(_newname) - 1 0.000 0.000 0.000 0.000 threading.py:631(Thread) - 87 0.000 0.000 0.000 0.000 threading.py:64(_note) - 45 0.001 0.000 0.003 0.000 threading.py:647(__init__) - 44 0.000 0.000 0.000 0.000 threading.py:700(_set_daemon) - 44 0.001 0.000 0.025 0.001 threading.py:717(start) - 1 0.000 0.000 0.000 0.000 threading.py:780(_set_ident) - 44 0.000 0.000 0.000 0.000 threading.py:999(daemon) - 1 0.000 0.000 0.000 0.000 times.py:1281(ASeason) - 1 0.000 0.000 0.000 0.000 times.py:1288(Seasons) - 19 0.000 0.000 0.000 0.000 times.py:1289(__init__) - 1 0.000 0.000 0.001 0.001 times.py:2() - 1 0.000 0.000 0.000 0.000 times.py:333(TimeSlicer) - 12 0.000 0.000 0.000 0.000 times.py:88(getMonthString) - 1 0.000 0.000 0.000 0.000 token.py:1() - 1 0.000 0.000 0.000 0.000 tokenize.py:146(TokenError) - 1 0.000 0.000 0.000 0.000 tokenize.py:148(StopTokenizing) - 1 0.000 0.000 0.000 0.000 tokenize.py:179(Untokenizer) - 1 0.001 0.001 0.012 0.012 tokenize.py:23() - 19 0.000 0.000 0.000 0.000 tokenize.py:45(group) - 1 0.000 0.000 0.000 0.000 tokenize.py:46(any) - 2 0.000 0.000 0.000 0.000 tokenize.py:47(maybe) - 1 0.000 0.000 0.000 0.000 toolbar.py:1() - 1 0.000 0.000 0.000 0.000 toolbar.py:4(Toolbar) - 6 0.000 0.000 0.032 0.005 traceback.py:110(print_exception) - 84 0.000 0.000 0.001 0.000 traceback.py:12(_print) - 9 0.000 0.000 0.000 0.000 traceback.py:147(format_exception_only) - 9 0.000 0.000 0.000 0.000 traceback.py:203(_format_final_exc_line) - 9 0.000 0.000 0.000 0.000 traceback.py:212(_some_str) - 6 0.000 0.000 0.032 0.005 traceback.py:46(print_tb) - 1743 0.004 0.000 0.150 0.000 tvariable.py:113(__array_finalize__) - 922 0.025 0.000 0.208 0.000 tvariable.py:145(__init__) - 58 0.000 0.000 0.000 0.000 tvariable.py:182() - 4591 0.004 0.000 0.010 0.000 tvariable.py:234(_getmissing) - 2762 0.009 0.000 0.038 0.000 tvariable.py:237(_setmissing) - 901 0.012 0.000 0.203 0.000 tvariable.py:245(__new__) - 346 0.001 0.000 0.066 0.000 tvariable.py:305(expertSlice) - 2777 0.015 0.000 0.093 0.000 tvariable.py:308(initDomain) - 494 0.002 0.000 0.005 0.000 tvariable.py:343(getDomain) - 3666 0.004 0.000 0.007 0.000 tvariable.py:349(getAxis) - 825 0.003 0.000 0.009 0.000 tvariable.py:360(setAxis) - 655 0.007 0.000 0.056 0.000 tvariable.py:377(copyAxis) - 733 0.005 0.000 0.026 0.000 tvariable.py:403(getGrid) - 346 0.000 0.000 0.000 0.000 tvariable.py:552(isEncoded) - 92 0.000 0.000 0.001 0.000 tvariable.py:556(__len__) - 1 0.000 0.000 0.000 0.000 tvariable.py:57(TransientVariable) - 10314 0.015 0.000 0.029 0.000 tvariable.py:62(_getShape) - 26 0.000 0.000 0.000 0.000 tvariable.py:67(iscontiguous) - 1 0.005 0.005 0.014 0.014 tvariable.py:8() - 922 0.001 0.000 0.001 0.000 tvariable.py:813(__getMPIType) - 431 0.003 0.000 0.191 0.000 tvariable.py:842(createVariable) - 26 0.000 0.000 0.000 0.000 tvariable.py:849(isVariable) - 423 0.005 0.000 0.178 0.000 tvariable.py:854(asVariable) - 2306 0.035 0.000 0.155 0.000 tvariable.py:86(_update_from) - 1 0.000 0.000 0.000 0.000 twodim_base.py:3() - 1 0.001 0.001 0.237 0.237 type_check.py:3() - 1 0.000 0.000 0.000 0.000 typeconv.py:1() - 360 0.001 0.000 0.001 0.000 typeconv.py:33(convtypecode2) - 1 0.000 0.000 0.000 0.000 typeconv.py:51(_oldtypecodes) - 1 0.001 0.001 0.001 0.001 udunits.py:1() - 1 0.001 0.001 0.005 0.005 udunits.py:13(_readUnits) - 567 0.002 0.000 0.021 0.000 udunits.py:155(__init__) - 545 0.002 0.000 0.014 0.000 udunits.py:177(to) - 4 0.000 0.000 0.005 0.001 udunits.py:193(available_units) - 4 0.000 0.000 0.005 0.001 udunits.py:197(known_units) - 545 0.000 0.000 0.000 0.000 udunits.py:206(_getunits) - 20 0.000 0.000 0.000 0.000 udunits.py:225(_getvalue) - 1 0.000 0.000 0.000 0.000 udunits.py:98(udunits) - 1 0.000 0.000 0.000 0.000 ufunclike.py:5() - 1 0.000 0.000 0.000 0.000 unicode_escape.py:13(Codec) - 1 0.000 0.000 0.000 0.000 unicode_escape.py:20(IncrementalEncoder) - 1 0.000 0.000 0.000 0.000 unicode_escape.py:24(IncrementalDecoder) - 1 0.000 0.000 0.000 0.000 unicode_escape.py:28(StreamWriter) - 1 0.000 0.000 0.000 0.000 unicode_escape.py:31(StreamReader) - 1 0.000 0.000 0.000 0.000 unicode_escape.py:36(getregentry) - 1 0.001 0.001 0.001 0.001 unicode_escape.py:8() - 1 0.000 0.000 0.000 0.000 unified1D.py:145(G1d) - 1 0.000 0.000 0.000 0.000 unified1D.py:3() - 2903 0.001 0.000 0.001 0.000 unified1D.py:385(_getname) - 20 0.000 0.000 0.000 0.000 unified1D.py:394(_getcalendar) - 28 0.000 0.000 0.000 0.000 unified1D.py:397(_setcalendar) - 20 0.000 0.000 0.000 0.000 unified1D.py:405(_gettimeunits) - 28 0.000 0.000 0.001 0.000 unified1D.py:408(_settimeunits) - 22 0.000 0.000 0.000 0.000 unified1D.py:416(_getxaxisconvert) - 28 0.000 0.000 0.000 0.000 unified1D.py:419(_setxaxisconvert) - 22 0.000 0.000 0.000 0.000 unified1D.py:427(_getyaxisconvert) - 28 0.000 0.000 0.000 0.000 unified1D.py:430(_setyaxisconvert) - 162 0.000 0.000 0.000 0.000 unified1D.py:438(_getprojection) - 28 0.000 0.000 0.000 0.000 unified1D.py:441(_setprojection) - 36 0.000 0.000 0.000 0.000 unified1D.py:449(_getxticlabels1) - 32 0.000 0.000 0.000 0.000 unified1D.py:452(_setxticlabels1) - 40 0.000 0.000 0.000 0.000 unified1D.py:460(_getxticlabels2) - 32 0.000 0.000 0.000 0.000 unified1D.py:463(_setxticlabels2) - 38 0.000 0.000 0.000 0.000 unified1D.py:471(_getyticlabels1) - 32 0.000 0.000 0.000 0.000 unified1D.py:474(_setyticlabels1) - 42 0.000 0.000 0.000 0.000 unified1D.py:482(_getyticlabels2) - 32 0.000 0.000 0.000 0.000 unified1D.py:485(_setyticlabels2) - 32 0.000 0.000 0.000 0.000 unified1D.py:493(_getxmtics1) - 28 0.000 0.000 0.000 0.000 unified1D.py:496(_setxmtics1) - 36 0.000 0.000 0.000 0.000 unified1D.py:504(_getxmtics2) - 28 0.000 0.000 0.000 0.000 unified1D.py:507(_setxmtics2) - 34 0.000 0.000 0.000 0.000 unified1D.py:515(_getymtics1) - 28 0.000 0.000 0.000 0.000 unified1D.py:518(_setymtics1) - 38 0.000 0.000 0.000 0.000 unified1D.py:526(_getymtics2) - 28 0.000 0.000 0.000 0.000 unified1D.py:529(_setymtics2) - 38 0.000 0.000 0.000 0.000 unified1D.py:537(_getdatawc_x1) - 28 0.000 0.000 0.000 0.000 unified1D.py:540(_setdatawc_x1) - 38 0.000 0.000 0.000 0.000 unified1D.py:545(_getdatawc_x2) - 28 0.000 0.000 0.000 0.000 unified1D.py:548(_setdatawc_x2) - 38 0.000 0.000 0.000 0.000 unified1D.py:553(_getdatawc_y1) - 28 0.000 0.000 0.000 0.000 unified1D.py:556(_setdatawc_y1) - 38 0.000 0.000 0.000 0.000 unified1D.py:561(_getdatawc_y2) - 28 0.000 0.000 0.000 0.000 unified1D.py:564(_setdatawc_y2) - 297 0.000 0.000 0.000 0.000 unified1D.py:569(_getlinewidth) - 30 0.000 0.000 0.000 0.000 unified1D.py:572(_setlinewidth) - 24 0.000 0.000 0.000 0.000 unified1D.py:583(_getlinecolor) - 28 0.000 0.000 0.001 0.000 unified1D.py:586(_setlinecolor) - 24 0.000 0.000 0.000 0.000 unified1D.py:595(_getlinetype) - 20 0.000 0.000 0.000 0.000 unified1D.py:598(_setlinetype) - 36 0.000 0.000 0.000 0.000 unified1D.py:627(_getmarker) - 28 0.000 0.000 0.006 0.000 unified1D.py:630(_setmarker) - 28 0.000 0.000 0.000 0.000 unified1D.py:636(_getmarkersize) - 28 0.000 0.000 0.000 0.000 unified1D.py:639(_setmarkersize) - 24 0.000 0.000 0.000 0.000 unified1D.py:650(_getmarkercolor) - 28 0.000 0.000 0.001 0.000 unified1D.py:653(_setmarkercolor) - 371 0.000 0.000 0.000 0.000 unified1D.py:662(_getflip) - 31 0.000 0.000 0.000 0.000 unified1D.py:665(_setflip) - 24 0.000 0.000 0.000 0.000 unified1D.py:670(_getsmooth) - 28 0.000 0.000 0.000 0.000 unified1D.py:673(_setsmooth) - 335 0.000 0.000 0.001 0.000 unified1D.py:683(_gtype) - 21 0.001 0.000 0.012 0.001 unified1D.py:691(__init__) - 1 0.000 0.000 0.000 0.000 unixccompiler.py:14() - 1 0.001 0.001 0.001 0.001 unixccompiler.py:4() - 1 0.000 0.000 0.000 0.000 unixccompiler.py:48(UnixCCompiler) - 1 0.000 0.000 0.000 0.000 urllib.py:1004(addinfo) - 1 0.000 0.000 0.000 0.000 urllib.py:1014(addinfourl) - 1 0.000 0.000 0.000 0.000 urllib.py:114(ContentTooShortError) - 1 0.000 0.000 0.000 0.000 urllib.py:120(URLopener) - 485 0.000 0.000 0.001 0.000 urllib.py:1217() - 1 0.000 0.000 0.005 0.005 urllib.py:133(__init__) - 1 0.000 0.000 0.000 0.000 urllib.py:1372(getproxies_environment) - 1 0.000 0.000 0.005 0.005 urllib.py:1492(getproxies_macosx_sysconf) - 1 0.000 0.000 0.005 0.005 urllib.py:1512(getproxies) - 1 0.007 0.007 0.019 0.019 urllib.py:23() - 1 0.000 0.000 0.000 0.000 urllib.py:616(FancyURLopener) - 1 0.000 0.000 0.005 0.005 urllib.py:619(__init__) - 1 0.000 0.000 0.000 0.000 urllib.py:862(ftpwrapper) - 1 0.000 0.000 0.000 0.000 urllib.py:955(addbase) - 1 0.000 0.000 0.000 0.000 urllib.py:984(addclosehook) - 1 0.000 0.000 0.000 0.000 urllib2.py:1085(HTTPDigestAuthHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:1103(ProxyDigestAuthHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:1115(AbstractHTTPHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:1225(HTTPHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:1233(HTTPSHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:1245(HTTPCookieProcessor) - 1 0.000 0.000 0.000 0.000 urllib2.py:1263(UnknownHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:1327(FileHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:1379(FTPHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:1439(CacheFTPHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:164(URLError) - 1 0.000 0.000 0.000 0.000 urllib2.py:177(HTTPError) - 1 0.000 0.000 0.000 0.000 urllib2.py:224(Request) - 1 0.000 0.000 0.000 0.000 urllib2.py:336(OpenerDirector) - 1 0.000 0.000 0.000 0.000 urllib2.py:518(BaseHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:537(HTTPErrorProcessor) - 1 0.000 0.000 0.000 0.000 urllib2.py:554(HTTPDefaultErrorHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:558(HTTPRedirectHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:735(ProxyHandler) - 1 0.003 0.003 0.012 0.012 urllib2.py:76() - 1 0.000 0.000 0.000 0.000 urllib2.py:778(HTTPPasswordMgr) - 1 0.000 0.000 0.000 0.000 urllib2.py:842(HTTPPasswordMgrWithDefaultRealm) - 1 0.000 0.000 0.001 0.001 urllib2.py:852(AbstractBasicAuthHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:902(HTTPBasicAuthHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:913(ProxyBasicAuthHandler) - 1 0.000 0.000 0.000 0.000 urllib2.py:942(AbstractDigestAuthHandler) - 1 0.000 0.000 0.000 0.000 urlparse.py:121(SplitResult) - 1 0.000 0.000 0.000 0.000 urlparse.py:129(ParseResult) - 15 0.000 0.000 0.000 0.000 urlparse.py:137(urlparse) - 15 0.000 0.000 0.000 0.000 urlparse.py:168(urlsplit) - 1 0.000 0.000 0.003 0.003 urlparse.py:29() - 485 0.000 0.000 0.001 0.000 urlparse.py:332() - 1 0.000 0.000 0.000 0.000 urlparse.py:73(ResultMixin) - 1 0.000 0.000 0.001 0.001 util.py:1() - 1 0.000 0.000 0.000 0.000 util.py:172(Finalize) - 1 0.000 0.000 0.000 0.000 util.py:336(ForkAwareThreadLock) - 1 0.000 0.000 0.000 0.000 util.py:346(ForkAwareLocal) - 1 0.000 0.000 0.000 0.000 util.py:35() - 1 0.000 0.000 0.000 0.000 util.py:5() - 1 0.000 0.000 0.001 0.001 utils.py:1() - 1 0.000 0.000 0.000 0.000 utils.py:1002(SafeEval) - 34 0.002 0.000 0.040 0.001 utils.py:1054(mkscale) - 3 0.000 0.000 0.000 0.000 utils.py:117(deprecate) - 26 0.012 0.000 0.256 0.010 utils.py:1192(mklabels) - 4 0.000 0.000 0.004 0.001 utils.py:1318(getcolors) - 1 0.000 0.000 0.000 0.000 utils.py:1580(WarningMessage) - 12 0.000 0.000 0.000 0.000 utils.py:1602(prettifyAxisLabels) - 1 0.000 0.000 0.000 0.000 utils.py:1612(WarningManager) - 21 0.001 0.000 0.143 0.007 utils.py:1641(setTicksandLabels) - 1 0.000 0.000 0.000 0.000 utils.py:1841(IgnoreException) - 1 0.000 0.000 0.000 0.000 utils.py:1881(clear_and_catch_warnings) - 136 0.002 0.000 0.081 0.001 utils.py:1978(monotonic) - 397 0.003 0.000 0.003 0.000 utils.py:1983(getgraphicsmethod) - 397 0.002 0.000 0.112 0.000 utils.py:1998(creategraphicsmethod) - 1 0.029 0.029 1.133 1.133 utils.py:2() - 284 0.001 0.000 0.002 0.000 utils.py:2039(getDataWcValue) - 71 0.006 0.000 0.282 0.004 utils.py:2046(getworldcoordinates) - 1606 0.002 0.000 0.013 0.000 utils.py:2147(rgba_color) - 150 0.000 0.000 0.000 0.000 utils.py:2181() - 556 0.001 0.000 0.001 0.000 utils.py:325(getfontname) - 1 0.000 0.000 0.000 0.000 utils.py:37(KnownFailureException) - 39971 0.134 0.000 2.513 0.000 utils.py:396(listelements) - 1 0.010 0.010 0.024 0.024 utils.py:4() - 22 0.001 0.000 0.004 0.000 utils.py:421(show) - 3 0.000 0.000 0.000 0.000 utils.py:51(_set_function_name) - 1 0.000 0.000 0.000 0.000 utils.py:56(_Deprecate) - 1 0.000 0.000 0.000 0.000 utils.py:68(Logo) - 3 0.000 0.000 0.000 0.000 utils.py:68(__init__) - 3 0.000 0.000 0.000 0.000 utils.py:73(__call__) - 1 0.001 0.001 0.685 0.685 utils.py:822(scriptrun) - 41 0.012 0.000 0.383 0.009 utils.py:883(loadTemplate) - 190 0.011 0.000 0.263 0.001 utils.py:896(loadVCSItem) - 1565 0.001 0.000 0.001 0.000 utils.py:952(getdotdirectory) - 1 0.000 0.000 0.000 0.000 utils.py:956(VCSUtilsError) - 248 0.001 0.000 0.261 0.001 utils.py:968(minmax) - 628/248 0.011 0.000 0.260 0.001 utils.py:999(myfunction) - 360 0.000 0.000 0.003 0.000 variable.py:108(_getdtype) - 400 0.000 0.000 0.000 0.000 variable.py:158(getAxis) - 360 0.000 0.000 0.000 0.000 variable.py:162(getDomain) - 1 0.000 0.000 0.000 0.000 variable.py:39(DatasetVariable) - 90 0.001 0.000 0.007 0.000 variable.py:41(__init__) - 1 0.002 0.002 0.113 0.113 variable.py:5() - 576 0.019 0.000 0.036 0.000 vcs2vtk.py:1155(prepTextProperty) - 244 0.148 0.001 0.205 0.001 vcs2vtk.py:1209(genTextActor) - 124 0.006 0.000 0.208 0.002 vcs2vtk.py:1263(prepPrimitive) - 10 0.001 0.000 0.001 0.000 vcs2vtk.py:1301(__build_pd__) - 11 0.109 0.010 0.275 0.025 vcs2vtk.py:1310(prepFillarea) - 4 0.000 0.000 0.001 0.000 vcs2vtk.py:1438(prepGlyph) - 4 0.000 0.000 0.000 0.000 vcs2vtk.py:1619(setMarkerColor) - 4 0.000 0.000 0.000 0.000 vcs2vtk.py:1635(scaleMarkerGlyph) - 6 0.001 0.000 0.009 0.002 vcs2vtk.py:1654(prepMarker) - 105 0.007 0.000 0.007 0.000 vcs2vtk.py:1692(__build_ld__) - 120 0.001 0.000 0.001 0.000 vcs2vtk.py:1704(stippleLine) - 107 0.162 0.002 0.322 0.003 vcs2vtk.py:1724(prepLine) - 22 0.000 0.000 0.001 0.000 vcs2vtk.py:178(getBoundsList) - 575 0.002 0.000 0.004 0.000 vcs2vtk.py:1820(getRendererCorners) - 575 0.002 0.000 0.006 0.000 vcs2vtk.py:1828(world2Renderer) - 1 0.000 0.000 0.000 0.000 vcs2vtk.py:1847(checkProjType) - 1 0.000 0.000 0.001 0.001 vcs2vtk.py:1897(generateVectorArray) - 16 0.000 0.000 0.003 0.000 vcs2vtk.py:1921(getPlottingBounds) - 38 0.000 0.000 0.000 0.000 vcs2vtk.py:1938(switchAndTranslate) - 23 0.000 0.000 0.006 0.000 vcs2vtk.py:1958(getWrappedBounds) - 1 0.002 0.002 0.009 0.009 vcs2vtk.py:2() - 13 0.143 0.011 0.214 0.016 vcs2vtk.py:218(setInfToValid) - 13 0.212 0.016 0.612 0.047 vcs2vtk.py:303(genGrid) - 13 0.036 0.003 0.069 0.005 vcs2vtk.py:578(prepContinents) - 65 0.001 0.000 0.046 0.001 vcs2vtk.py:59(applyAttributesFromVCStmpl) - 33 0.000 0.000 0.001 0.000 vcs2vtk.py:647(apply_proj_parameters) - 39 0.000 0.000 0.006 0.000 vcs2vtk.py:70(numpy_to_vtk_wrapper) - 188 0.002 0.000 0.035 0.000 vcs2vtk.py:727(project) - 26 0.005 0.000 0.183 0.007 vcs2vtk.py:929(doWrapData) - 13 0.000 0.000 0.003 0.000 vcs2vtk.py:96(putMaskOnVTKGrid) - 1 0.000 0.000 0.000 0.000 vcshelp.py:3() - 1 0.000 0.000 0.000 0.000 vector.py:148(Gv) - 1 0.000 0.000 0.000 0.000 vector.py:3() - 164 0.000 0.000 0.000 0.000 vector.py:367(_getname) - 2 0.000 0.000 0.000 0.000 vector.py:376(_getcalendar) - 2 0.000 0.000 0.000 0.000 vector.py:379(_setcalendar) - 2 0.000 0.000 0.000 0.000 vector.py:387(_gettimeunits) - 2 0.000 0.000 0.000 0.000 vector.py:390(_settimeunits) - 3 0.000 0.000 0.000 0.000 vector.py:398(_getxaxisconvert) - 2 0.000 0.000 0.000 0.000 vector.py:401(_setxaxisconvert) - 3 0.000 0.000 0.000 0.000 vector.py:409(_getyaxisconvert) - 2 0.000 0.000 0.000 0.000 vector.py:412(_setyaxisconvert) - 78 0.000 0.000 0.000 0.000 vector.py:420(_getprojection) - 2 0.000 0.000 0.000 0.000 vector.py:423(_setprojection) - 6 0.000 0.000 0.000 0.000 vector.py:431(_getxticlabels1) - 3 0.000 0.000 0.000 0.000 vector.py:434(_setxticlabels1) - 7 0.000 0.000 0.000 0.000 vector.py:442(_getxticlabels2) - 3 0.000 0.000 0.000 0.000 vector.py:445(_setxticlabels2) - 7 0.000 0.000 0.000 0.000 vector.py:453(_getyticlabels1) - 3 0.000 0.000 0.000 0.000 vector.py:456(_setyticlabels1) - 8 0.000 0.000 0.000 0.000 vector.py:464(_getyticlabels2) - 3 0.000 0.000 0.000 0.000 vector.py:467(_setyticlabels2) - 5 0.000 0.000 0.000 0.000 vector.py:475(_getxmtics1) - 2 0.000 0.000 0.000 0.000 vector.py:478(_setxmtics1) - 6 0.000 0.000 0.000 0.000 vector.py:486(_getxmtics2) - 2 0.000 0.000 0.000 0.000 vector.py:489(_setxmtics2) - 6 0.000 0.000 0.000 0.000 vector.py:497(_getymtics1) - 2 0.000 0.000 0.000 0.000 vector.py:500(_setymtics1) - 7 0.000 0.000 0.000 0.000 vector.py:508(_getymtics2) - 2 0.000 0.000 0.000 0.000 vector.py:511(_setymtics2) - 9 0.000 0.000 0.000 0.000 vector.py:519(_getdatawc_x1) - 2 0.000 0.000 0.000 0.000 vector.py:522(_setdatawc_x1) - 9 0.000 0.000 0.000 0.000 vector.py:527(_getdatawc_x2) - 2 0.000 0.000 0.000 0.000 vector.py:530(_setdatawc_x2) - 9 0.000 0.000 0.000 0.000 vector.py:535(_getdatawc_y1) - 2 0.000 0.000 0.000 0.000 vector.py:538(_setdatawc_y1) - 9 0.000 0.000 0.000 0.000 vector.py:543(_getdatawc_y2) - 2 0.000 0.000 0.000 0.000 vector.py:546(_setdatawc_y2) - 2 0.000 0.000 0.000 0.000 vector.py:551(_getreference) - 2 0.000 0.000 0.000 0.000 vector.py:554(_setreference) - 3 0.000 0.000 0.000 0.000 vector.py:559(_getscale) - 2 0.000 0.000 0.000 0.000 vector.py:562(_setscale) - 3 0.000 0.000 0.000 0.000 vector.py:567(_getlinewidth) - 2 0.000 0.000 0.000 0.000 vector.py:570(_setlinewidth) - 3 0.000 0.000 0.000 0.000 vector.py:581(_getlinecolor) - 2 0.000 0.000 0.000 0.000 vector.py:584(_setlinecolor) - 3 0.000 0.000 0.000 0.000 vector.py:593(_getlinetype) - 2 0.000 0.000 0.000 0.000 vector.py:596(_setlinetype) - 2 0.000 0.000 0.000 0.000 vector.py:625(_gettype) - 2 0.000 0.000 0.000 0.000 vector.py:628(_settype) - 2 0.000 0.000 0.000 0.000 vector.py:633(_getalignment) - 2 0.000 0.000 0.000 0.000 vector.py:636(_setalignment) - 11 0.000 0.000 0.000 0.000 vector.py:644(_getscaletype) - 2 0.000 0.000 0.000 0.000 vector.py:647(_setscaletype) - 2 0.000 0.000 0.000 0.000 vector.py:655(_getscalerange) - 2 0.000 0.000 0.000 0.000 vector.py:658(_setscalerange) - 3 0.000 0.000 0.001 0.000 vector.py:668(__init__) - 1 0.000 0.000 0.000 0.000 vectorpipeline.py:1() - 1 0.000 0.000 0.000 0.000 vectorpipeline.py:12(__init__) - 1 0.000 0.000 0.374 0.374 vectorpipeline.py:17(_plotInternal) - 1 0.000 0.000 0.000 0.000 vectorpipeline.py:241(_updateContourLevelsAndColors) - 1 0.000 0.000 0.000 0.000 vectorpipeline.py:8(VectorPipeline) - 1 0.000 0.000 0.000 0.000 version.py:228(LooseVersion) - 1 0.000 0.000 0.001 0.001 version.py:27() - 1 0.000 0.000 0.000 0.000 version.py:32(Version) - 1 0.000 0.000 0.000 0.000 version.py:5() - 1 0.000 0.000 0.001 0.001 version.py:63(StrictVersion) - 1 0.000 0.000 0.000 0.000 vertical.py:2() - 1 0.005 0.005 0.005 0.005 vtkChartsCore.py:1() - 1 0.003 0.003 0.003 0.003 vtkCommonColor.py:1() - 1 0.003 0.003 0.003 0.003 vtkCommonComputationalGeometry.py:1() - 1 0.014 0.014 0.014 0.014 vtkCommonCore.py:1() - 1 0.011 0.011 0.011 0.011 vtkCommonDataModel.py:1() - 1 0.006 0.006 0.006 0.006 vtkCommonExecutionModel.py:1() - 1 0.002 0.002 0.002 0.002 vtkCommonMath.py:1() - 1 0.001 0.001 0.001 0.001 vtkCommonMisc.py:1() - 1 0.002 0.002 0.002 0.002 vtkCommonSystem.py:1() - 1 0.002 0.002 0.002 0.002 vtkCommonTransforms.py:1() - 1 0.002 0.002 0.002 0.002 vtkFiltersAMR.py:1() - 1 0.006 0.006 0.006 0.006 vtkFiltersCore.py:1() - 1 0.003 0.003 0.003 0.003 vtkFiltersExtraction.py:1() - 1 0.003 0.003 0.003 0.003 vtkFiltersFlowPaths.py:1() - 1 0.005 0.005 0.005 0.005 vtkFiltersGeneral.py:1() - 1 0.003 0.003 0.003 0.003 vtkFiltersGeneric.py:1() - 1 0.003 0.003 0.003 0.003 vtkFiltersGeometry.py:1() - 1 0.004 0.004 0.004 0.004 vtkFiltersHybrid.py:1() - 1 0.004 0.004 0.004 0.004 vtkFiltersImaging.py:1() - 1 0.005 0.005 0.005 0.005 vtkFiltersModeling.py:1() - 1 0.003 0.003 0.003 0.003 vtkFiltersSMP.py:1() - 1 0.021 0.021 0.021 0.021 vtkFiltersSelection.py:1() - 1 0.003 0.003 0.003 0.003 vtkFiltersSources.py:1() - 1 0.002 0.002 0.002 0.002 vtkFiltersStatistics.py:1() - 1 0.004 0.004 0.004 0.004 vtkFiltersTexture.py:1() - 1 0.006 0.006 0.006 0.006 vtkGeovisCore.py:1() - 1 0.003 0.003 0.003 0.003 vtkIOCore.py:1() - 1 0.006 0.006 0.006 0.006 vtkIOExport.py:1() - 1 0.005 0.005 0.005 0.005 vtkIOExportOpenGL.py:1() - 1 0.010 0.010 0.010 0.010 vtkIOFFMPEG.py:1() - 1 0.004 0.004 0.004 0.004 vtkIOGeometry.py:1() - 1 0.006 0.006 0.006 0.006 vtkIOImage.py:1() - 1 0.005 0.005 0.005 0.005 vtkIOImport.py:1() - 1 0.004 0.004 0.004 0.004 vtkIOLegacy.py:1() - 1 0.005 0.005 0.005 0.005 vtkIOMovie.py:1() - 1 0.005 0.005 0.005 0.005 vtkIOXML.py:1() - 1 0.004 0.004 0.004 0.004 vtkIOXMLParser.py:1() - 1 0.005 0.005 0.005 0.005 vtkImagingColor.py:1() - 1 0.005 0.005 0.005 0.005 vtkImagingCore.py:1() - 1 0.002 0.002 0.002 0.002 vtkImagingFourier.py:1() - 1 0.003 0.003 0.003 0.003 vtkImagingGeneral.py:1() - 1 0.004 0.004 0.004 0.004 vtkImagingHybrid.py:1() - 1 0.005 0.005 0.005 0.005 vtkImagingMath.py:1() - 1 0.003 0.003 0.003 0.003 vtkImagingSources.py:1() - 1 0.006 0.006 0.006 0.006 vtkImagingStencil.py:1() - 1 0.003 0.003 0.003 0.003 vtkInfovisCore.py:1() - 1 0.005 0.005 0.005 0.005 vtkInfovisLayout.py:1() - 1 0.007 0.007 0.007 0.007 vtkInteractionImage.py:1() - 1 0.004 0.004 0.004 0.004 vtkInteractionStyle.py:1() - 1 0.011 0.011 0.011 0.011 vtkInteractionWidgets.py:1() - 1 0.003 0.003 0.003 0.003 vtkParallelCore.py:1() - 1 0.005 0.005 0.005 0.005 vtkPythonInterpreter.py:1() - 1 0.007 0.007 0.007 0.007 vtkRenderingAnnotation.py:1() - 1 0.004 0.004 0.004 0.004 vtkRenderingContext2D.py:1() - 1 0.007 0.007 0.007 0.007 vtkRenderingContextOpenGL.py:1() - 1 0.009 0.009 0.009 0.009 vtkRenderingCore.py:1() - 1 0.008 0.008 0.008 0.008 vtkRenderingFreeType.py:1() - 1 0.005 0.005 0.005 0.005 vtkRenderingGL2PS.py:1() - 1 0.007 0.007 0.007 0.007 vtkRenderingImage.py:1() - 1 0.007 0.007 0.007 0.007 vtkRenderingLIC.py:1() - 1 0.006 0.006 0.006 0.006 vtkRenderingLOD.py:1() - 1 0.005 0.005 0.005 0.005 vtkRenderingLabel.py:1() - 1 0.006 0.006 0.006 0.006 vtkRenderingMatplotlib.py:1() - 1 0.014 0.014 0.014 0.014 vtkRenderingOpenGL.py:1() - 1 0.007 0.007 0.007 0.007 vtkRenderingVolume.py:1() - 1 0.007 0.007 0.007 0.007 vtkRenderingVolumeOpenGL.py:1() - 1 0.000 0.000 0.000 0.000 vtkVariant.py:180(vtkVariantStrictWeakOrderKey) - 1 0.000 0.000 0.000 0.000 vtkVariant.py:3() - 1 0.006 0.006 0.006 0.006 vtkViewsContext2D.py:1() - 1 0.005 0.005 0.005 0.005 vtkViewsCore.py:1() - 1 0.009 0.009 0.009 0.009 vtkViewsGeovis.py:1() - 1 0.010 0.010 0.010 0.010 vtkViewsInfovis.py:1() - 1 0.010 0.010 0.010 0.010 vtkWebCore.py:1() - 1 0.008 0.008 0.008 0.008 vtkWebGLExporter.py:1() - 2 0.000 0.000 0.000 0.000 warnings.py:15(warnpy3k) - 2 0.000 0.000 0.015 0.008 warnings.py:25(_show_warning) - 3 0.000 0.000 0.000 0.000 warnings.py:340(__init__) - 3 0.000 0.000 0.000 0.000 warnings.py:361(__enter__) - 3 0.000 0.000 0.000 0.000 warnings.py:377(__exit__) - 2 0.000 0.000 0.015 0.008 warnings.py:40(formatwarning) - 5 0.000 0.000 0.001 0.000 warnings.py:67(filterwarnings) - 2 0.000 0.000 0.000 0.000 warnings.py:96(simplefilter) - 1714 0.023 0.000 0.023 0.000 weakref.py:297(__init__) - 539 0.004 0.000 0.004 0.000 weakref.py:329(__getitem__) - 539 0.002 0.000 0.002 0.000 weakref.py:335(__setitem__) - 539 0.003 0.000 0.003 0.000 weakref.py:367(__contains__) - 100 0.000 0.000 0.001 0.000 weakref.py:374(items) - 1 0.000 0.000 0.000 0.000 weakref.py:47(__init__) - 1 0.001 0.001 0.001 0.001 widget.py:1() - 1 0.000 0.000 0.000 0.000 widget.py:4(Widget) - 1 0.000 0.000 0.000 0.000 widget.py:78(WidgetReprShim) - 1 0.000 0.000 0.000 0.000 xmgrace.py:134(REGION) - 1 0.000 0.000 0.000 0.000 xmgrace.py:1463(DSET) - 1 0.005 0.005 0.005 0.005 xmgrace.py:2() - 1 0.000 0.000 0.000 0.000 xmgrace.py:2110(STRING) - 1 0.000 0.000 0.000 0.000 xmgrace.py:2226(LINE) - 1 0.000 0.000 0.000 0.000 xmgrace.py:227(GRAPH) - 1 0.000 0.000 0.000 0.000 xmgrace.py:2385(FILL) - 1 0.000 0.000 0.000 0.000 xmgrace.py:2414(BOX_ELLIPSE) - 1 0.000 0.000 0.000 0.000 xmgrace.py:2523(init) - 1 0.000 0.000 0.000 0.000 xmgrace.py:66(FONT) - 1 0.000 0.000 0.000 0.000 xmgrace.py:81(COLOR) - 4 0.001 0.000 0.001 0.000 xmldocs.py:239(populate_docstrings) - 1 0.000 0.000 0.001 0.001 xmldocs.py:84() - 1 0.000 0.000 0.000 0.000 yxvsxfill.py:1() - 1 0.000 0.000 0.000 0.000 yxvsxfill.py:4(Gyf) - 275 0.002 0.000 0.003 0.000 {__import__} - 33 0.000 0.000 0.000 0.000 {_ctypes.POINTER} - 2 0.002 0.001 0.002 0.001 {_ctypes.dlopen} - 1 0.000 0.000 0.000 0.000 {_ctypes.set_conversion_mode} - 50 0.000 0.000 0.000 0.000 {_ctypes.sizeof} - 313 0.001 0.000 0.003 0.000 {_functools.reduce} - 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_md5} - 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha1} - 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha224} - 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha256} - 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha384} - 1 0.000 0.000 0.000 0.000 {_hashlib.openssl_sha512} - 1 0.005 0.005 0.005 0.005 {_scproxy._get_proxies} - 122 0.000 0.000 0.000 0.000 {_sre.compile} - 202 0.000 0.000 0.000 0.000 {_sre.getlower} - 2 0.000 0.000 0.000 0.000 {_ssl.txt2obj} - 18 0.000 0.000 0.000 0.000 {_struct.calcsize} - 17822 0.005 0.000 0.005 0.000 {_struct.unpack} - 42 0.000 0.000 0.016 0.000 {_warnings.warn} - 33922 0.006 0.000 0.006 0.000 {abs} - 77 0.000 0.000 0.001 0.000 {all} - 30 0.000 0.000 0.000 0.000 {any} - 20 0.003 0.000 0.003 0.000 {apply} - 1 0.000 0.000 0.000 0.000 {binascii.hexlify} - 20515 0.009 0.000 0.009 0.000 {built-in method __new__ of type object at 0x10016cf18} - 15 0.001 0.000 0.001 0.000 {built-in method close} - 4 0.000 0.000 0.000 0.000 {built-in method cmp} - 5 0.002 0.000 0.008 0.002 {built-in method load} - 80 0.001 0.000 0.001 0.000 {built-in method readDimension} - 26 0.000 0.000 0.000 0.000 {built-in method tocomp} - 72 0.001 0.000 0.001 0.000 {built-in method torel} - 360 0.000 0.000 0.000 0.000 {built-in method typecode} - 5 0.000 0.000 0.000 0.000 {cPickle.Pickler} - 5 0.000 0.000 0.000 0.000 {cPickle.Unpickler} - 1 0.257 0.257 0.257 0.257 {cPickle.load} - 30 0.022 0.001 0.022 0.001 {cdms2.Cdunif.CdunifFile} - 1 0.000 0.000 0.000 0.000 {cdms2.Cdunif.CdunifSetNCFLAGS} - 74 0.000 0.000 0.000 0.000 {cdtime.comptime} - 395 0.002 0.000 0.002 0.000 {cdtime.reltime} - 72 0.000 0.000 0.000 0.000 {cdtime.s2c} - 1798 0.000 0.000 0.000 0.000 {chr} - 341 0.000 0.000 0.000 0.000 {cmp} - 246 0.012 0.000 0.012 0.000 {compile} - 31 0.002 0.000 0.002 0.000 {dir} - 1361 0.008 0.000 0.008 0.000 {eval} - 6 0.000 0.000 0.000 0.000 {filter} - 1 0.001 0.001 0.001 0.001 {function seed at 0x107d546e0} -208178/204391 0.154 0.000 0.165 0.000 {getattr} - 407 0.000 0.000 0.000 0.000 {globals} - 311796 0.249 0.000 0.296 0.000 {hasattr} - 121256 0.014 0.000 0.014 0.000 {id} - 1 0.000 0.000 0.000 0.000 {imp.get_suffixes} - 561871 0.187 0.000 0.188 0.000 {isinstance} -4479/4444 0.005 0.000 0.006 0.000 {issubclass} - 472 0.000 0.000 0.000 0.000 {iter} -212526/200112 0.038 0.000 0.047 0.000 {len} - 1 0.000 0.000 0.000 0.000 {locals} - 58 0.000 0.000 0.020 0.000 {map} - 1 0.000 0.000 0.000 0.000 {math.exp} - 297042 0.037 0.000 0.037 0.000 {math.isinf} - 2 0.000 0.000 0.000 0.000 {math.log10} - 2 0.000 0.000 0.000 0.000 {math.log} - 1 0.000 0.000 0.000 0.000 {math.sqrt} - 5819 0.003 0.000 0.003 0.000 {max} - 765 0.002 0.000 0.002 0.000 {method 'AddActor' of 'vtkRenderingCorePython.vtkRenderer' objects} - 18 0.000 0.000 0.000 0.000 {method 'AddArray' of 'vtkCommonDataModelPython.vtkFieldData' objects} - 34 0.001 0.000 0.001 0.000 {method 'AddInputData' of 'vtkFiltersCorePython.vtkAppendPolyData' objects} - 1 0.000 0.000 0.000 0.000 {method 'AddItem' of 'vtkRenderingCorePython.vtkTextPropertyCollection' objects} - 478 0.005 0.000 0.005 0.000 {method 'AddObserver' of 'vtkCommonCorePython.vtkObject' objects} - 6 0.000 0.000 0.000 0.000 {method 'AddPickList' of 'vtkRenderingCorePython.vtkAbstractPicker' objects} - 84 0.000 0.000 0.000 0.000 {method 'AddPoint' of 'vtkCommonDataModelPython.vtkPiecewiseFunction' objects} - 1536 0.003 0.000 0.003 0.000 {method 'AddRGBPoint' of 'vtkRenderingCorePython.vtkColorTransferFunction' objects} - 569 0.002 0.000 0.002 0.000 {method 'AddRenderer' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 39 0.000 0.000 0.000 0.000 {method 'AddViewProp' of 'vtkRenderingCorePython.vtkViewport' objects} - 14 0.000 0.000 0.000 0.000 {method 'Allocate' of 'vtkCommonDataModelPython.vtkCellArray' objects} - 13 0.003 0.000 0.003 0.000 {method 'AllocatePointGhostArray' of 'vtkCommonDataModelPython.vtkDataSet' objects} - 3 0.000 0.000 0.000 0.000 {method 'BoldOff' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 30 0.000 0.000 0.000 0.000 {method 'Build' of 'vtkCommonCorePython.vtkLookupTable' objects} - 2 0.000 0.000 0.000 0.000 {method 'ClippingOn' of 'vtkFiltersModelingPython.vtkBandedPolyDataContourFilter' objects} - 9 0.009 0.001 0.009 0.001 {method 'ComputeScaledFont' of 'vtkRenderingCorePython.vtkTextActor' objects} - 3 0.002 0.001 0.002 0.001 {method 'CopyComponent' of 'vtkCommonCorePython.vtkDataArray' objects} - 10 0.000 0.000 0.000 0.000 {method 'CopyStructure' of 'vtkCommonDataModelPython.vtkPolyData' objects} - 13 0.000 0.000 0.000 0.000 {method 'DeepCopy' of 'vtkCommonCorePython.vtkDataArray' objects} - 3 0.002 0.001 0.002 0.001 {method 'EnabledOn' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} - 14 0.000 0.000 0.000 0.000 {method 'EstimateSize' of 'vtkCommonDataModelPython.vtkCellArray' objects} - 13 0.000 0.000 0.000 0.000 {method 'ExtractBoundaryCellsOn' of 'vtkFiltersExtractionPython.vtkExtractPolyDataGeometry' objects} - 13 0.000 0.000 0.000 0.000 {method 'ExtractInsideOn' of 'vtkFiltersExtractionPython.vtkExtractPolyDataGeometry' objects} - 1 0.000 0.000 0.000 0.000 {method 'FilledOff' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} - 4 0.000 0.000 0.000 0.000 {method 'FilledOn' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} - 28 0.000 0.000 0.000 0.000 {method 'GetAbstractArray' of 'vtkCommonDataModelPython.vtkFieldData' objects} - 170 0.004 0.000 0.004 0.000 {method 'GetActiveCamera' of 'vtkRenderingCorePython.vtkRenderer' objects} - 29 0.000 0.000 0.000 0.000 {method 'GetArray' of 'vtkCommonDataModelPython.vtkFieldData' objects} - 6 0.000 0.000 0.000 0.000 {method 'GetArrayName' of 'vtkCommonDataModelPython.vtkFieldData' objects} - 39 0.003 0.000 0.003 0.000 {method 'GetBounds' of 'vtkCommonCorePython.vtkPoints' objects} - 51 0.013 0.000 0.013 0.000 {method 'GetBounds' of 'vtkCommonDataModelPython.vtkDataSet' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetCapProperty' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} - 196 0.001 0.000 0.001 0.000 {method 'GetCellData' of 'vtkCommonDataModelPython.vtkDataSet' objects} - 29 0.000 0.000 0.000 0.000 {method 'GetCenter' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 174 0.000 0.000 0.000 0.000 {method 'GetClippingPlanes' of 'vtkRenderingCorePython.vtkAbstractMapper' objects} - 13 0.000 0.000 0.000 0.000 {method 'GetComputedDisplayValue' of 'vtkRenderingCorePython.vtkCoordinate' objects} - 350 0.000 0.000 0.000 0.000 {method 'GetCurrentCursor' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 28 0.000 0.000 0.000 0.000 {method 'GetData' of 'vtkCommonCorePython.vtkPoints' objects} - 2 0.000 0.000 0.000 0.000 {method 'GetDataTypeSize' of 'vtkCommonCorePython.vtkAbstractArray' objects} - 5 0.000 0.000 0.000 0.000 {method 'GetDepthBufferSize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} - 334 0.000 0.000 0.000 0.000 {method 'GetDimensions' of 'vtkCommonDataModelPython.vtkImageData' objects} - 158 0.000 0.000 0.000 0.000 {method 'GetDistance' of 'vtkRenderingCorePython.vtkCamera' objects} - 112 0.000 0.000 0.000 0.000 {method 'GetExtent' of 'vtkCommonDataModelPython.vtkImageData' objects} - 13 0.000 0.000 0.000 0.000 {method 'GetFirstRenderer' of 'vtkRenderingCorePython.vtkRendererCollection' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetFocalPoint' of 'vtkRenderingCorePython.vtkCamera' objects} - 342 0.001 0.000 0.001 0.000 {method 'GetHoveringProperty' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} - 38 0.000 0.000 0.000 0.000 {method 'GetImageProperty' of 'vtkInteractionWidgetsPython.vtkLogoRepresentation' objects} - 46 0.000 0.000 0.000 0.000 {method 'GetInput' of 'vtkCommonExecutionModelPython.vtkImageAlgorithm' objects} - 7 0.000 0.000 0.000 0.000 {method 'GetInput' of 'vtkRenderingCorePython.vtkPolyDataMapper' objects} - 91 0.000 0.000 0.000 0.000 {method 'GetInput' of 'vtkRenderingCorePython.vtkTextActor' objects} - 29 0.000 0.000 0.000 0.000 {method 'GetInteractor' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 7 0.000 0.000 0.000 0.000 {method 'GetInteractorStyle' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} - 15 0.000 0.000 0.000 0.000 {method 'GetItemAsObject' of 'vtkCommonCorePython.vtkCollection' objects} - 251 0.002 0.000 0.002 0.000 {method 'GetMapper' of 'vtkRenderingCorePython.vtkActor' objects} - 1 0.000 0.000 0.000 0.000 {method 'GetMaxNorm' of 'vtkCommonCorePython.vtkDataArray' objects} - 1 0.000 0.000 0.000 0.000 {method 'GetName' of 'vtkCommonCorePython.vtkAbstractArray' objects} - 58 0.000 0.000 0.000 0.000 {method 'GetNormal' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 8 0.000 0.000 0.000 0.000 {method 'GetNumberOfArrays' of 'vtkCommonDataModelPython.vtkFieldData' objects} - 13 0.000 0.000 0.000 0.000 {method 'GetNumberOfCells' of 'vtkCommonDataModelPython.vtkPolyData' objects} - 9 0.000 0.000 0.000 0.000 {method 'GetNumberOfItems' of 'vtkCommonCorePython.vtkCollection' objects} - 748 0.000 0.000 0.000 0.000 {method 'GetNumberOfLayers' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 1091 0.000 0.000 0.000 0.000 {method 'GetNumberOfPoints' of 'vtkCommonCorePython.vtkPoints' objects} - 1 0.000 0.000 0.000 0.000 {method 'GetNumberOfProjections' of 'vtkGeovisCorePython.vtkGeoProjection' objects} - 6 0.000 0.000 0.000 0.000 {method 'GetNumberOfTableValues' of 'vtkCommonCorePython.vtkLookupTable' objects} - 32 0.000 0.000 0.000 0.000 {method 'GetNumberOfTuples' of 'vtkCommonCorePython.vtkAbstractArray' objects} - 9 0.000 0.000 0.000 0.000 {method 'GetNumberOfValues' of 'vtkCommonCorePython.vtkStringArray' objects} - 108 0.000 0.000 0.000 0.000 {method 'GetOrigin' of 'vtkCommonDataModelPython.vtkImageData' objects} - 161 0.000 0.000 0.000 0.000 {method 'GetOrigin' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 575 0.000 0.000 0.000 0.000 {method 'GetOrigin' of 'vtkRenderingCorePython.vtkViewport' objects} - 434 0.004 0.000 0.004 0.000 {method 'GetOutput' of 'vtkCommonExecutionModelPython.vtkImageAlgorithm' objects} - 100 0.001 0.000 0.001 0.000 {method 'GetOutput' of 'vtkCommonExecutionModelPython.vtkPolyDataAlgorithm' objects} - 136 0.001 0.000 0.001 0.000 {method 'GetOutputPort' of 'vtkCommonExecutionModelPython.vtkAlgorithm' objects} - 6 0.000 0.000 0.000 0.000 {method 'GetPlanes' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} - 148572 0.029 0.000 0.029 0.000 {method 'GetPoint' of 'vtkCommonCorePython.vtkPoints' objects} - 64 0.000 0.000 0.000 0.000 {method 'GetPoint1' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 8 0.000 0.000 0.000 0.000 {method 'GetPoint1Coordinate' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} - 64 0.000 0.000 0.000 0.000 {method 'GetPoint2' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 8 0.000 0.000 0.000 0.000 {method 'GetPoint2Coordinate' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} - 16 0.000 0.000 0.000 0.000 {method 'GetPointData' of 'vtkCommonDataModelPython.vtkDataSet' objects} - 33204 0.032 0.000 0.032 0.000 {method 'GetPointIds' of 'vtkCommonDataModelPython.vtkCell' objects} - 60 0.000 0.000 0.000 0.000 {method 'GetPoints' of 'vtkCommonDataModelPython.vtkPointSet' objects} - 1 0.000 0.000 0.000 0.000 {method 'GetPolyDataMapper' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetPosition' of 'vtkRenderingCorePython.vtkCamera' objects} - 6 0.000 0.000 0.000 0.000 {method 'GetPosition' of 'vtkRenderingCorePython.vtkProp3D' objects} - 5 0.000 0.000 0.000 0.000 {method 'GetPosition' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} - 18 0.000 0.000 0.000 0.000 {method 'GetPosition2Coordinate' of 'vtkRenderingCorePython.vtkActor2D' objects} - 18 0.000 0.000 0.000 0.000 {method 'GetPositionCoordinate' of 'vtkRenderingCorePython.vtkActor2D' objects} - 137 0.000 0.000 0.000 0.000 {method 'GetProjectionName' of 'vtkGeovisCorePython.vtkGeoProjection' objects} - 342 0.002 0.000 0.002 0.000 {method 'GetProperty' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} - 125 0.001 0.000 0.001 0.000 {method 'GetProperty' of 'vtkRenderingCorePython.vtkActor' objects} - 33 0.000 0.000 0.000 0.000 {method 'GetRenderWindow' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} - 253 0.001 0.000 0.001 0.000 {method 'GetRenderWindow' of 'vtkRenderingCorePython.vtkRenderer' objects} - 13 0.000 0.000 0.000 0.000 {method 'GetRenderers' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 10 0.000 0.000 0.000 0.000 {method 'GetRepresentation' of 'vtkInteractionWidgetsPython.vtkAbstractWidget' objects} - 63 0.001 0.000 0.001 0.000 {method 'GetScalarRange' of 'vtkCommonDataModelPython.vtkDataSet' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetScalarType' of 'vtkCommonDataModelPython.vtkImageData' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetScalarTypeAsString' of 'vtkCommonDataModelPython.vtkImageData' objects} - 4 0.000 0.000 0.000 0.000 {method 'GetScale' of 'vtkCommonTransformsPython.vtkTransform' objects} - 19 0.026 0.001 0.026 0.001 {method 'GetScreenSize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetSelectedProperty' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} - 575 0.001 0.000 0.001 0.000 {method 'GetSize' of 'vtkRenderingCorePython.vtkViewport' objects} - 827 0.002 0.000 0.002 0.000 {method 'GetSize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetSliderProperty' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} - 168 0.000 0.000 0.000 0.000 {method 'GetSpacing' of 'vtkCommonDataModelPython.vtkImageData' objects} - 24 0.000 0.000 0.000 0.000 {method 'GetTable' of 'vtkCommonCorePython.vtkLookupTable' objects} - 21 0.000 0.000 0.000 0.000 {method 'GetTableRange' of 'vtkCommonCorePython.vtkLookupTable' objects} - 1536 0.001 0.000 0.001 0.000 {method 'GetTableValue' of 'vtkCommonCorePython.vtkLookupTable' objects} - 578 0.003 0.000 0.003 0.000 {method 'GetTextProperty' of 'vtkRenderingCorePython.vtkTextActor' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetTubeProperty' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} - 8 0.000 0.000 0.000 0.000 {method 'GetUserTransform' of 'vtkRenderingCorePython.vtkProp3D' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetValue' of 'vtkCommonCorePython.vtkFloatArray' objects} - 11 0.000 0.000 0.000 0.000 {method 'GetValue' of 'vtkCommonCorePython.vtkStringArray' objects} - 30 0.000 0.000 0.000 0.000 {method 'GetValueRange' of 'vtkCommonCorePython.vtkLookupTable' objects} - 2 0.000 0.000 0.000 0.000 {method 'GetVectors' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 9 0.000 0.000 0.000 0.000 {method 'GetViewProps' of 'vtkRenderingCorePython.vtkViewport' objects} - 3 0.000 0.000 0.000 0.000 {method 'GetViewUp' of 'vtkRenderingCorePython.vtkCamera' objects} - 5 0.000 0.000 0.000 0.000 {method 'GetWindowCreated' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} - 307 0.000 0.000 0.000 0.000 {method 'Highlight' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} - 29 0.000 0.000 0.000 0.000 {method 'Identity' of 'vtkCommonMathPython.vtkMatrix4x4' objects} - 10 0.000 0.000 0.000 0.000 {method 'Identity' of 'vtkCommonTransformsPython.vtkTransform' objects} - 3 0.000 0.000 0.000 0.000 {method 'Initialize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindowInteractor' objects} - 3 0.000 0.000 0.000 0.000 {method 'InitializePickList' of 'vtkRenderingCorePython.vtkAbstractPicker' objects} - 13859 0.017 0.000 0.017 0.000 {method 'InsertNextCell' of 'vtkCommonDataModelPython.vtkCellArray' objects} - 15520 0.007 0.000 0.007 0.000 {method 'InsertNextCell' of 'vtkCommonDataModelPython.vtkUnstructuredGrid' objects} - 15468 0.004 0.000 0.004 0.000 {method 'InsertNextId' of 'vtkCommonCorePython.vtkIdList' objects} - 43219 0.014 0.000 0.014 0.000 {method 'InsertNextPoint' of 'vtkCommonCorePython.vtkPoints' objects} - 11545 0.004 0.000 0.004 0.000 {method 'InsertNextTypedTuple' of 'vtkCommonCorePython.vtkUnsignedCharArray' objects} - 11 0.000 0.000 0.000 0.000 {method 'InsertNextValue' of 'vtkCommonCorePython.vtkStringArray' objects} - 14 0.000 0.000 0.000 0.000 {method 'InsideOutOn' of 'vtkFiltersCorePython.vtkClipPolyData' objects} - 3 0.000 0.000 0.000 0.000 {method 'InsideOutOn' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} - 9 0.000 0.000 0.000 0.000 {method 'IsA' of 'vtkInteractionWidgetsPython.vtkLogoRepresentation' objects} - 6 0.000 0.000 0.000 0.000 {method 'IsA' of 'vtkRenderingCorePython.vtkTextActor' objects} - 3 0.000 0.000 0.000 0.000 {method 'ItalicOff' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 9 0.000 0.000 0.000 0.000 {method 'KeyPressActivationOff' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} - 3 0.000 0.000 0.000 0.000 {method 'MakeCurrent' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} - 6 0.000 0.000 0.000 0.000 {method 'MapColorScalarsThroughLookupTableOff' of 'vtkRenderingCorePython.vtkTexture' objects} - 267 0.000 0.000 0.000 0.000 {method 'Modified' of 'vtkCommonCorePython.vtkObject' objects} - 58 0.000 0.000 0.000 0.000 {method 'MultiplyPoint' of 'vtkCommonMathPython.vtkMatrix4x4' objects} - 5 0.000 0.000 0.000 0.000 {method 'NeedToRenderOn' of 'vtkInteractionWidgetsPython.vtkWidgetRepresentation' objects} - 1 0.000 0.000 0.000 0.000 {method 'NestedDisplayListsOff' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} - 13 0.000 0.000 0.000 0.000 {method 'NewInstance' of 'vtkCommonCorePython.vtkLongLongArray' objects} - 15 0.000 0.000 0.000 0.000 {method 'Off' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} - 25 0.000 0.000 0.000 0.000 {method 'On' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} - 1 0.000 0.000 0.000 0.000 {method 'OrientOn' of 'vtkFiltersCorePython.vtkGlyph3D' objects} - 1 0.000 0.000 0.000 0.000 {method 'OrientOn' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} - 158 0.000 0.000 0.000 0.000 {method 'ParallelProjectionOn' of 'vtkRenderingCorePython.vtkCamera' objects} - 6 0.000 0.000 0.000 0.000 {method 'PassAlphaToOutputOn' of 'vtkImagingCorePython.vtkImageMapToColors' objects} - 13 0.000 0.000 0.000 0.000 {method 'PassPointsOff' of 'vtkFiltersExtractionPython.vtkExtractPolyDataGeometry' objects} - 9 0.000 0.000 0.000 0.000 {method 'PickFromListOn' of 'vtkRenderingCorePython.vtkAbstractPicker' objects} - 20 0.000 0.000 0.000 0.000 {method 'PickableOff' of 'vtkRenderingCorePython.vtkProp' objects} - 16 0.000 0.000 0.000 0.000 {method 'PickableOn' of 'vtkRenderingCorePython.vtkProp' objects} - 6 0.000 0.000 0.000 0.000 {method 'PlaceWidget' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} - 90 0.000 0.000 0.000 0.000 {method 'PlaceWidget' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} - 19 0.000 0.000 0.000 0.000 {method 'ProportionalResizeOn' of 'vtkInteractionWidgetsPython.vtkBorderRepresentation' objects} - 6 0.000 0.000 0.000 0.000 {method 'RemoveAllPoints' of 'vtkCommonDataModelPython.vtkPiecewiseFunction' objects} - 6 0.000 0.000 0.000 0.000 {method 'RemoveAllPoints' of 'vtkRenderingCorePython.vtkColorTransferFunction' objects} - 5 0.000 0.000 0.000 0.000 {method 'RemoveArray' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 108/99 6.221 0.058 6.233 0.063 {method 'Render' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 9 0.107 0.012 0.107 0.012 {method 'Render' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} - 6 0.000 0.000 0.000 0.000 {method 'RepeatOff' of 'vtkRenderingCorePython.vtkTexture' objects} - 42 0.000 0.000 0.000 0.000 {method 'Reset' of 'vtkCommonCorePython.vtkIdList' objects} - 32 0.004 0.000 0.004 0.000 {method 'ResetCameraClippingRange' of 'vtkRenderingCorePython.vtkRenderer' objects} - 3 0.000 0.000 0.000 0.000 {method 'RotationEnabledOff' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} - 1 0.000 0.000 0.000 0.000 {method 'ScalarVisibilityOff' of 'vtkRenderingCorePython.vtkMapper' objects} - 1 0.000 0.000 0.000 0.000 {method 'ScalarVisibilityOn' of 'vtkRenderingCorePython.vtkMapper' objects} - 188 0.000 0.000 0.000 0.000 {method 'Scale' of 'vtkCommonTransformsPython.vtkTransform' objects} - 1 0.000 0.000 0.000 0.000 {method 'ScalingOn' of 'vtkFiltersCorePython.vtkGlyph3D' objects} - 1 0.000 0.000 0.000 0.000 {method 'ScalingOn' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} - 1 0.000 0.000 0.000 0.000 {method 'SelectColorArray' of 'vtkRenderingCorePython.vtkMapper' objects} - 3 0.000 0.000 0.000 0.000 {method 'SelectableOff' of 'vtkInteractionWidgetsPython.vtkBorderWidget' objects} - 52 0.000 0.000 0.000 0.000 {method 'SetActiveAttribute' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 4 0.000 0.000 0.000 0.000 {method 'SetActiveScalars' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetActiveVectors' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetAlphaBitPlanes' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 6 0.000 0.000 0.000 0.000 {method 'SetAlphaRange' of 'vtkCommonCorePython.vtkLookupTable' objects} - 28 0.000 0.000 0.000 0.000 {method 'SetAmbient' of 'vtkRenderingCorePython.vtkProperty' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetAnimationModeToAnimate' of 'vtkInteractionWidgetsPython.vtkSliderWidget' objects} - 229 0.000 0.000 0.000 0.000 {method 'SetBackground' of 'vtkRenderingCorePython.vtkViewport' objects} - 576 0.000 0.000 0.000 0.000 {method 'SetBackgroundColor' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 576 0.000 0.000 0.000 0.000 {method 'SetBackgroundOpacity' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 268 0.001 0.000 0.001 0.000 {method 'SetButtonTexture' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} - 29 0.000 0.000 0.000 0.000 {method 'SetCenter' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 33 0.000 0.000 0.000 0.000 {method 'SetCentralMeridian' of 'vtkGeovisCorePython.vtkGeoProjection' objects} - 14 0.000 0.000 0.000 0.000 {method 'SetClipFunction' of 'vtkFiltersCorePython.vtkClipPolyData' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetClipTolerance' of 'vtkFiltersModelingPython.vtkBandedPolyDataContourFilter' objects} - 49 0.000 0.000 0.000 0.000 {method 'SetColor' of 'vtkRenderingCorePython.vtkProperty' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetColor' of 'vtkRenderingCorePython.vtkProperty2D' objects} - 597 0.001 0.000 0.001 0.000 {method 'SetColor' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 35 0.000 0.000 0.000 0.000 {method 'SetCoordinateSystemToNormalizedDisplay' of 'vtkRenderingCorePython.vtkCoordinate' objects} - 18 0.000 0.000 0.000 0.000 {method 'SetCoordinateSystemToNormalizedViewport' of 'vtkRenderingCorePython.vtkCoordinate' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetCurrentRenderer' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetCutFunction' of 'vtkFiltersCorePython.vtkCutter' objects} - 13 0.000 0.000 0.000 0.000 {method 'SetData' of 'vtkCommonCorePython.vtkPoints' objects} - 33 0.000 0.000 0.000 0.000 {method 'SetDestinationProjection' of 'vtkGeovisCorePython.vtkGeoTransform' objects} - 11 0.000 0.000 0.000 0.000 {method 'SetDimensions' of 'vtkCommonDataModelPython.vtkStructuredGrid' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetDisplayLocationToBackground' of 'vtkRenderingCorePython.vtkProperty2D' objects} - 13 0.000 0.000 0.000 0.000 {method 'SetDraw' of 'vtkRenderingCorePython.vtkRenderer' objects} - 348 0.000 0.000 0.000 0.000 {method 'SetElement' of 'vtkCommonMathPython.vtkMatrix4x4' objects} - 7 0.001 0.000 0.001 0.000 {method 'SetEnabled' of 'vtkInteractionWidgetsPython.vtkAbstractWidget' objects} - 6 0.000 0.000 0.000 0.000 {method 'SetEnabled' of 'vtkInteractionWidgetsPython.vtkBoxWidget' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetEnabled' of 'vtkRenderingCorePython.vtkInteractorStyle' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetEndCapLength' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetEndCapWidth' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetExtent' of 'vtkCommonDataModelPython.vtkImageData' objects} - 290 0.000 0.000 0.000 0.000 {method 'SetFileName' of 'vtkIOImagePython.vtkImageReader2' objects} - 161 0.001 0.000 0.001 0.000 {method 'SetFocalPoint' of 'vtkRenderingCorePython.vtkCamera' objects} - 576 0.001 0.000 0.001 0.000 {method 'SetFontFamily' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 576 0.000 0.000 0.000 0.000 {method 'SetFontFile' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 597 0.000 0.000 0.000 0.000 {method 'SetFontSize' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetGenerateCutScalars' of 'vtkFiltersCorePython.vtkCutter' objects} - 13 0.000 0.000 0.000 0.000 {method 'SetGlobalIds' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetGlyphTypeToArrow' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} - 4 0.000 0.000 0.000 0.000 {method 'SetGlyphTypeToCircle' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetHandleSize' of 'vtkInteractionWidgetsPython.vtk3DWidget' objects} - 342 0.000 0.000 0.000 0.000 {method 'SetHoveringProperty' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} - 6 0.000 0.000 0.000 0.000 {method 'SetHueRange' of 'vtkCommonCorePython.vtkLookupTable' objects} - 37635 0.008 0.000 0.008 0.000 {method 'SetId' of 'vtkCommonCorePython.vtkIdList' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetImage' of 'vtkInteractionWidgetsPython.vtkLogoRepresentation' objects} - 13 0.000 0.000 0.000 0.000 {method 'SetImplicitFunction' of 'vtkFiltersExtractionPython.vtkExtractPolyDataGeometry' objects} - 584 0.001 0.000 0.001 0.000 {method 'SetInput' of 'vtkRenderingCorePython.vtkTextActor' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetInputArrayToProcess' of 'vtkCommonExecutionModelPython.vtkAlgorithm' objects} - 127 0.003 0.000 0.003 0.000 {method 'SetInputConnection' of 'vtkCommonExecutionModelPython.vtkAlgorithm' objects} - 243 0.003 0.000 0.003 0.000 {method 'SetInputData' of 'vtkCommonExecutionModelPython.vtkImageAlgorithm' objects} - 57 0.003 0.000 0.003 0.000 {method 'SetInputData' of 'vtkCommonExecutionModelPython.vtkPolyDataAlgorithm' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetInputData' of 'vtkRenderingCorePython.vtkImageActor' objects} - 157 0.010 0.000 0.010 0.000 {method 'SetInputData' of 'vtkRenderingCorePython.vtkPolyDataMapper' objects} - 283 0.000 0.000 0.000 0.000 {method 'SetInteractor' of 'vtkRenderingCorePython.vtkInteractorObserver' objects} - 46 0.011 0.000 0.011 0.000 {method 'SetInteractorStyle' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} - 66 0.000 0.000 0.000 0.000 {method 'SetInterpolate' of 'vtkRenderingCorePython.vtkTexture' objects} - 63 0.000 0.000 0.000 0.000 {method 'SetInterpolationModeToLinear' of 'vtkImagingCorePython.vtkImageReslice' objects} - 28 0.000 0.000 0.000 0.000 {method 'SetInterpolationToFlat' of 'vtkRenderingCorePython.vtkProperty' objects} - 315 0.000 0.000 0.000 0.000 {method 'SetJustificationToCentered' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 177 0.000 0.000 0.000 0.000 {method 'SetJustificationToLeft' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 87 0.000 0.000 0.000 0.000 {method 'SetJustificationToRight' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetLabelTextProperty' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetLabelVisibility' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} - 748 0.001 0.000 0.001 0.000 {method 'SetLayer' of 'vtkRenderingCorePython.vtkRenderer' objects} - 120 0.000 0.000 0.000 0.000 {method 'SetLineStipplePattern' of 'vtkRenderingCorePython.vtkProperty' objects} - 120 0.000 0.000 0.000 0.000 {method 'SetLineStippleRepeatFactor' of 'vtkRenderingCorePython.vtkProperty' objects} - 123 0.000 0.000 0.000 0.000 {method 'SetLineWidth' of 'vtkRenderingCorePython.vtkProperty' objects} - 123 0.000 0.000 0.000 0.000 {method 'SetLines' of 'vtkCommonDataModelPython.vtkPolyData' objects} - 72 0.000 0.000 0.000 0.000 {method 'SetLookupTable' of 'vtkImagingCorePython.vtkImageMapToColors' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetLookupTable' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} - 29 0.000 0.000 0.000 0.000 {method 'SetLookupTable' of 'vtkRenderingCorePython.vtkMapper' objects} - 54 0.000 0.000 0.000 0.000 {method 'SetLookupTable' of 'vtkRenderingCorePython.vtkTexture' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetManagesCursor' of 'vtkInteractionWidgetsPython.vtkAbstractWidget' objects} - 203 0.000 0.000 0.000 0.000 {method 'SetMapper' of 'vtkRenderingCorePython.vtkActor' objects} - 5 0.000 0.000 0.000 0.000 {method 'SetMaximumValue' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetMaximumWidthInPixels' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} - 5 0.005 0.001 0.005 0.001 {method 'SetMinimumValue' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetMultiSamples' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 163 0.000 0.000 0.000 0.000 {method 'SetName' of 'vtkCommonCorePython.vtkAbstractArray' objects} - 33 0.000 0.000 0.000 0.000 {method 'SetName' of 'vtkGeovisCorePython.vtkGeoProjection' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetNearClippingPlaneTolerance' of 'vtkRenderingCorePython.vtkRenderer' objects} - 30 0.000 0.000 0.000 0.000 {method 'SetNumberOfColors' of 'vtkCommonCorePython.vtkLookupTable' objects} - 162 0.000 0.000 0.000 0.000 {method 'SetNumberOfComponents' of 'vtkCommonCorePython.vtkAbstractArray' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetNumberOfContours' of 'vtkFiltersCorePython.vtkContourFilter' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetNumberOfContours' of 'vtkFiltersModelingPython.vtkBandedPolyDataContourFilter' objects} - 1855 0.001 0.000 0.001 0.000 {method 'SetNumberOfIds' of 'vtkCommonCorePython.vtkIdList' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetNumberOfLabels' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} - 748 0.003 0.000 0.008 0.000 {method 'SetNumberOfLayers' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 14 0.000 0.000 0.000 0.000 {method 'SetNumberOfPoints' of 'vtkCommonCorePython.vtkPoints' objects} - 268 0.000 0.000 0.000 0.000 {method 'SetNumberOfStates' of 'vtkInteractionWidgetsPython.vtkButtonRepresentation' objects} - 28 0.000 0.000 0.000 0.000 {method 'SetNumberOfTableValues' of 'vtkCommonCorePython.vtkLookupTable' objects} - 70 0.000 0.000 0.000 0.000 {method 'SetNumberOfTuples' of 'vtkCommonCorePython.vtkAbstractArray' objects} - 6 0.000 0.000 0.000 0.000 {method 'SetOpacity' of 'vtkRenderingCorePython.vtkImageActor' objects} - 17 0.000 0.000 0.000 0.000 {method 'SetOpacity' of 'vtkRenderingCorePython.vtkProperty' objects} - 715 0.000 0.000 0.000 0.000 {method 'SetOpacity' of 'vtkRenderingCorePython.vtkProperty2D' objects} - 579 0.000 0.000 0.000 0.000 {method 'SetOpacity' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 33 0.000 0.000 0.000 0.000 {method 'SetOptionalParameter' of 'vtkGeovisCorePython.vtkGeoProjection' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetOrientation' of 'vtkRenderingCorePython.vtkProp3D' objects} - 576 0.000 0.000 0.000 0.000 {method 'SetOrientation' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetOrigin' of 'vtkCommonDataModelPython.vtkImageData' objects} - 30 0.000 0.000 0.000 0.000 {method 'SetOrigin' of 'vtkCommonDataModelPython.vtkPlane' objects} - 28 0.000 0.000 0.000 0.000 {method 'SetOrigin' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetOrigin' of 'vtkRenderingCorePython.vtkProp3D' objects} - 29 0.000 0.000 0.000 0.000 {method 'SetOutputExtent' of 'vtkImagingCorePython.vtkImageReslice' objects} - 6 0.000 0.000 0.000 0.000 {method 'SetOutputFormatToRGBA' of 'vtkImagingCorePython.vtkImageMapToColors' objects} - 29 0.000 0.000 0.000 0.000 {method 'SetOutputOrigin' of 'vtkImagingCorePython.vtkImageReslice' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetOutputPointsPrecision' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} - 29 0.000 0.000 0.000 0.000 {method 'SetOutputSpacing' of 'vtkImagingCorePython.vtkImageReslice' objects} - 158 0.000 0.000 0.000 0.000 {method 'SetParallelScale' of 'vtkRenderingCorePython.vtkCamera' objects} - 13 0.000 0.000 0.000 0.000 {method 'SetPedigreeIds' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetPicker' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetPlaceFactor' of 'vtkInteractionWidgetsPython.vtk3DWidget' objects} - 268 0.000 0.000 0.000 0.000 {method 'SetPlaceFactor' of 'vtkInteractionWidgetsPython.vtkWidgetRepresentation' objects} - 168 0.000 0.000 0.000 0.000 {method 'SetPoint' of 'vtkCommonCorePython.vtkPoints' objects} - 28 0.000 0.000 0.000 0.000 {method 'SetPoint1' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 28 0.000 0.000 0.000 0.000 {method 'SetPoint2' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 306 0.000 0.000 0.000 0.000 {method 'SetPoints' of 'vtkCommonDataModelPython.vtkPointSet' objects} - 10 0.000 0.000 0.000 0.000 {method 'SetPolys' of 'vtkCommonDataModelPython.vtkPolyData' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetPosition' of 'vtkInteractionWidgetsPython.vtkBorderRepresentation' objects} - 584 0.000 0.000 0.000 0.000 {method 'SetPosition' of 'vtkRenderingCorePython.vtkActor2D' objects} - 161 0.001 0.000 0.001 0.000 {method 'SetPosition' of 'vtkRenderingCorePython.vtkCamera' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetPosition' of 'vtkRenderingCorePython.vtkProp3D' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetPosition2' of 'vtkInteractionWidgetsPython.vtkBorderRepresentation' objects} - 268 0.000 0.000 0.000 0.000 {method 'SetPriority' of 'vtkInteractionWidgetsPython.vtkAbstractWidget' objects} - 342 0.000 0.000 0.000 0.000 {method 'SetProperty' of 'vtkInteractionWidgetsPython.vtkTexturedButtonRepresentation2D' objects} - 23 0.000 0.000 0.000 0.000 {method 'SetProperty' of 'vtkRenderingCorePython.vtkActor' objects} - 6 0.000 0.000 0.000 0.000 {method 'SetQualityTo32Bit' of 'vtkRenderingCorePython.vtkTexture' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetRenderWindow' of 'vtkRenderingCorePython.vtkRenderWindowInteractor' objects} - 346 0.001 0.000 0.001 0.000 {method 'SetRenderer' of 'vtkInteractionWidgetsPython.vtkWidgetRepresentation' objects} - 268 0.000 0.000 0.000 0.000 {method 'SetRepresentation' of 'vtkInteractionWidgetsPython.vtkButtonWidget' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetRepresentation' of 'vtkInteractionWidgetsPython.vtkLogoWidget' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetRepresentation' of 'vtkInteractionWidgetsPython.vtkSliderWidget' objects} - 21 0.000 0.000 0.000 0.000 {method 'SetRepresentationToWireframe' of 'vtkRenderingCorePython.vtkProperty' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetResizable' of 'vtkInteractionWidgetsPython.vtkBorderWidget' objects} - 29 0.000 0.000 0.000 0.000 {method 'SetResliceAxes' of 'vtkImagingCorePython.vtkImageReslice' objects} - 14 0.000 0.000 0.000 0.000 {method 'SetResolveCoincidentTopologyToPolygonOffset' of 'vtkRenderingCorePython.vtkMapper' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetSampleRate' of 'vtkImagingCorePython.vtkExtractVOI' objects} - 6 0.000 0.000 0.000 0.000 {method 'SetSaturationRange' of 'vtkCommonCorePython.vtkLookupTable' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetScalarModeToUseCellData' of 'vtkRenderingCorePython.vtkMapper' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetScalarModeToUsePointData' of 'vtkRenderingCorePython.vtkMapper' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetScalarModeToUsePointFieldData' of 'vtkRenderingCorePython.vtkMapper' objects} - 28 0.000 0.000 0.000 0.000 {method 'SetScalarRange' of 'vtkRenderingCorePython.vtkMapper' objects} - 127 0.001 0.000 0.001 0.000 {method 'SetScalars' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 4 0.000 0.000 0.000 0.000 {method 'SetScale' of 'vtkFiltersSourcesPython.vtkGlyphSource2D' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetScale' of 'vtkRenderingCorePython.vtkProp3D' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetScaleFactor' of 'vtkFiltersCorePython.vtkGlyph3D' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetScaleFactor' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetScaleModeToScaleByMagnitude' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetScaleModeToScaleByVector' of 'vtkFiltersCorePython.vtkGlyph3D' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetShaftResolution' of 'vtkFiltersSourcesPython.vtkArrowSource' objects} - 22 0.000 0.000 0.000 0.000 {method 'SetSize' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetSkipDistance' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetSliderLength' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetSliderWidth' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetSourceConnection' of 'vtkFiltersCorePython.vtkGlyph3D' objects} - 10 0.000 0.000 0.000 0.000 {method 'SetSourceData' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} - 33 0.000 0.000 0.000 0.000 {method 'SetSourceProjection' of 'vtkGeovisCorePython.vtkGeoTransform' objects} - 17 0.000 0.000 0.000 0.000 {method 'SetSpacing' of 'vtkCommonDataModelPython.vtkImageData' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetStencilCapable' of 'vtkRenderingCorePython.vtkRenderWindow' objects} - 24 0.000 0.000 0.000 0.000 {method 'SetTable' of 'vtkCommonCorePython.vtkLookupTable' objects} - 24 0.000 0.000 0.000 0.000 {method 'SetTableRange' of 'vtkCommonCorePython.vtkLookupTable' objects} - 7736 0.002 0.000 0.002 0.000 {method 'SetTableValue' of 'vtkCommonCorePython.vtkLookupTable' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetTextProperties' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetTextPropertyMapping' of 'vtkRenderingCorePython.vtkLabeledContourMapper' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetTextScaleModeToProp' of 'vtkRenderingCorePython.vtkTextActor' objects} - 6 0.000 0.000 0.000 0.000 {method 'SetTexture' of 'vtkRenderingCorePython.vtkActor' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetTipResolution' of 'vtkFiltersSourcesPython.vtkArrowSource' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetTitle' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetTitleHeight' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 5 0.000 0.000 0.000 0.000 {method 'SetTitleText' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation2D' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetTitleTextProperty' of 'vtkRenderingAnnotationPython.vtkScalarBarActor' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetTolerance' of 'vtkRenderingCorePython.vtkPicker' objects} - 12 0.000 0.000 0.000 0.000 {method 'SetTransform' of 'vtkFiltersGeneralPython.vtkTransformPolyDataFilter' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetTubeWidth' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 10 0.000 0.000 0.000 0.000 {method 'SetTuple' of 'vtkCommonCorePython.vtkDataArray' objects} - 1572 0.001 0.000 0.001 0.000 {method 'SetTypedTuple' of 'vtkCommonCorePython.vtkUnsignedCharArray' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetUseCells' of 'vtkRenderingCorePython.vtkPointPicker' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetUseLookupTableScalarRange' of 'vtkRenderingCorePython.vtkMapper' objects} - 174 0.000 0.000 0.000 0.000 {method 'SetUserTransform' of 'vtkRenderingCorePython.vtkProp3D' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetVOI' of 'vtkImagingCorePython.vtkExtractVOI' objects} - 100880 0.014 0.000 0.014 0.000 {method 'SetValue' of 'vtkCommonCorePython.vtkIntArray' objects} - 20 0.000 0.000 0.000 0.000 {method 'SetValue' of 'vtkFiltersCorePython.vtkContourFilter' objects} - 20 0.000 0.000 0.000 0.000 {method 'SetValue' of 'vtkFiltersModelingPython.vtkBandedPolyDataContourFilter' objects} - 5 0.000 0.000 0.000 0.000 {method 'SetValue' of 'vtkInteractionWidgetsPython.vtkSliderRepresentation' objects} - 41 0.000 0.000 0.000 0.000 {method 'SetValue' of 'vtkRenderingCorePython.vtkCoordinate' objects} - 30 0.000 0.000 0.000 0.000 {method 'SetValueRange' of 'vtkCommonCorePython.vtkLookupTable' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetVectorModeToMagnitude' of 'vtkCommonCorePython.vtkScalarsToColors' objects} - 1 0.000 0.000 0.000 0.000 {method 'SetVectorModeToUseVector' of 'vtkFiltersCorePython.vtkGlyph3D' objects} - 2 0.000 0.000 0.000 0.000 {method 'SetVectors' of 'vtkCommonDataModelPython.vtkDataSetAttributes' objects} - 26 0.000 0.000 0.000 0.000 {method 'SetVerticalJustificationToBottom' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 553 0.000 0.000 0.000 0.000 {method 'SetVerticalJustificationToCentered' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 3 0.000 0.000 0.000 0.000 {method 'SetViewUp' of 'vtkRenderingCorePython.vtkCamera' objects} - 158 0.000 0.000 0.000 0.000 {method 'SetViewport' of 'vtkRenderingCorePython.vtkViewport' objects} - 9 0.000 0.000 0.000 0.000 {method 'SetVisibility' of 'vtkRenderingCorePython.vtkProp' objects} - 45 0.000 0.000 0.000 0.000 {method 'SetVoidArray' of 'vtkCommonCorePython.vtkAbstractArray' objects} - 19 0.000 0.000 0.000 0.000 {method 'SetWindowName' of 'vtkRenderingOpenGLPython.vtkCocoaRenderWindow' objects} - 4 0.000 0.000 0.000 0.000 {method 'SetWorldPoint' of 'vtkRenderingCorePython.vtkViewport' objects} - 27 0.000 0.000 0.000 0.000 {method 'SetXMax' of 'vtkCommonDataModelPython.vtkBox' objects} - 27 0.000 0.000 0.000 0.000 {method 'SetXMin' of 'vtkCommonDataModelPython.vtkBox' objects} - 7 0.000 0.000 0.000 0.000 {method 'SetXResolution' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 7 0.000 0.000 0.000 0.000 {method 'SetYResolution' of 'vtkFiltersSourcesPython.vtkPlaneSource' objects} - 3 0.000 0.000 0.000 0.000 {method 'ShadowOff' of 'vtkRenderingCorePython.vtkTextProperty' objects} - 1 0.000 0.000 0.000 0.000 {method 'SourceIndexingOff' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} - 23 0.000 0.000 0.000 0.000 {method 'ThresholdBetween' of 'vtkFiltersCorePython.vtkThreshold' objects} - 1 0.000 0.000 0.000 0.000 {method 'ThresholdByUpper' of 'vtkFiltersCorePython.vtkThreshold' objects} - 7 0.000 0.000 0.000 0.000 {method 'TransformInputSamplingOff' of 'vtkImagingCorePython.vtkImageReslice' objects} - 10 0.000 0.000 0.000 0.000 {method 'TransformPoints' of 'vtkCommonTransformsPython.vtkLinearTransform' objects} - 84 0.031 0.000 0.031 0.000 {method 'TransformPoints' of 'vtkGeovisCorePython.vtkGeoTransform' objects} - 8 0.000 0.000 0.000 0.000 {method 'Translate' of 'vtkCommonTransformsPython.vtkTransform' objects} - 29 0.000 0.000 0.000 0.000 {method 'Transpose' of 'vtkCommonMathPython.vtkMatrix4x4' objects} - 633 0.745 0.001 0.745 0.001 {method 'Update' of 'vtkCommonExecutionModelPython.vtkAlgorithm' objects} - 89 0.005 0.000 0.005 0.000 {method 'Update' of 'vtkRenderingCorePython.vtkPolyDataMapper' objects} - 1 0.000 0.000 0.000 0.000 {method 'UseSelectionIdsOff' of 'vtkRenderingCorePython.vtkGlyph3DMapper' objects} - 33 0.000 0.000 0.000 0.000 {method 'VisibilityOff' of 'vtkRenderingCorePython.vtkProp' objects} - 28 0.000 0.000 0.000 0.000 {method 'VisibilityOn' of 'vtkRenderingCorePython.vtkProp' objects} - 66 0.000 0.000 0.000 0.000 {method '__contains__' of 'frozenset' objects} - 14 0.000 0.000 0.000 0.000 {method '__deepcopy__' of 'numpy.generic' objects} - 4 0.000 0.000 0.000 0.000 {method '__deepcopy__' of 'numpy.ndarray' objects} - 45 0.000 0.000 0.000 0.000 {method '__enter__' of 'thread.lock' objects} - 45 0.000 0.000 0.000 0.000 {method '__exit__' of 'thread.lock' objects} - 20402 0.238 0.000 0.269 0.000 {method '__reduce_ex__' of 'object' objects} - 25 0.000 0.000 0.000 0.000 {method '__subclasses__' of 'type' objects} - 25 0.000 0.000 0.000 0.000 {method '__subclasshook__' of 'object' objects} - 169 0.018 0.000 0.018 0.000 {method 'acquire' of 'thread.lock' objects} - 1855 0.001 0.000 0.001 0.000 {method 'add' of 'set' objects} - 3043 0.003 0.000 0.017 0.000 {method 'all' of 'numpy.ndarray' objects} - 502 0.001 0.000 0.004 0.000 {method 'any' of 'numpy.generic' objects} - 3720 0.003 0.000 0.021 0.000 {method 'any' of 'numpy.ndarray' objects} - 228660 0.035 0.000 0.035 0.000 {method 'append' of 'list' objects} - 452 0.002 0.000 0.002 0.000 {method 'astype' of 'numpy.generic' objects} - 7050 0.009 0.000 0.009 0.000 {method 'astype' of 'numpy.ndarray' objects} - 44 0.000 0.000 0.000 0.000 {method 'capitalize' of 'str' objects} - 166 0.001 0.000 0.001 0.000 {method 'clear' of 'dict' objects} - 7 0.000 0.000 0.000 0.000 {method 'close' of 'file' objects} - 157 0.000 0.000 0.000 0.000 {method 'copy' of 'dict' objects} - 584 0.001 0.000 0.001 0.000 {method 'copy' of 'numpy.generic' objects} - 236 0.001 0.000 0.001 0.000 {method 'copy' of 'numpy.ndarray' objects} - 492 0.000 0.000 0.000 0.000 {method 'count' of 'str' objects} - 1317 0.001 0.000 0.001 0.000 {method 'count' of 'tuple' objects} - 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} - 5 0.002 0.000 0.002 0.000 {method 'dump' of 'cPickle.Pickler' objects} - 811 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} - 5131 0.002 0.000 0.002 0.000 {method 'endswith' of 'str' objects} - 71 0.001 0.000 0.001 0.000 {method 'expandtabs' of 'str' objects} - 224 0.000 0.000 0.000 0.000 {method 'extend' of 'list' objects} - 1251 0.001 0.000 0.001 0.000 {method 'find' of 'bytearray' objects} - 1729 0.001 0.000 0.001 0.000 {method 'find' of 'str' objects} - 71 0.004 0.000 0.004 0.000 {method 'findall' of '_sre.SRE_Pattern' objects} - 317 0.000 0.000 0.000 0.000 {method 'finditer' of '_sre.SRE_Pattern' objects} - 346 0.001 0.000 0.001 0.000 {method 'format' of 'str' objects} - 176687 0.035 0.000 0.035 0.000 {method 'get' of 'dict' objects} - 9 0.000 0.000 0.000 0.000 {method 'get' of 'dictproxy' objects} - 1314 0.000 0.000 0.000 0.000 {method 'group' of '_sre.SRE_Match' objects} - 1 0.000 0.000 0.000 0.000 {method 'groups' of '_sre.SRE_Match' objects} - 3 0.000 0.000 0.000 0.000 {method 'has_key' of 'dict' objects} - 34 0.000 0.000 0.000 0.000 {method 'index' of 'list' objects} - 10 0.000 0.000 0.000 0.000 {method 'index' of 'str' objects} - 1853 0.001 0.000 0.001 0.000 {method 'insert' of 'list' objects} - 6 0.000 0.000 0.000 0.000 {method 'intersection' of 'set' objects} - 492 0.000 0.000 0.000 0.000 {method 'isalnum' of 'str' objects} - 1 0.000 0.000 0.000 0.000 {method 'isatty' of 'file' objects} - 66 0.000 0.000 0.000 0.000 {method 'isdigit' of 'str' objects} - 346 0.001 0.000 0.001 0.000 {method 'item' of 'numpy.generic' objects} - 1720 0.001 0.000 0.001 0.000 {method 'item' of 'numpy.ndarray' objects} - 12458 0.010 0.000 0.010 0.000 {method 'items' of 'dict' objects} - 22842 0.006 0.000 0.006 0.000 {method 'iteritems' of 'dict' objects} - 1873 0.001 0.000 0.002 0.000 {method 'join' of 'str' objects} - 67228 0.148 0.000 0.148 0.000 {method 'keys' of 'dict' objects} - 255 0.000 0.000 0.000 0.000 {method 'ljust' of 'str' objects} - 17413 0.006 0.000 0.006 0.000 {method 'lower' of 'str' objects} - 13 0.000 0.000 0.000 0.000 {method 'lstrip' of 'str' objects} - 4753 0.004 0.000 0.004 0.000 {method 'match' of '_sre.SRE_Pattern' objects} - 53 0.000 0.000 0.001 0.000 {method 'max' of 'numpy.ndarray' objects} - 53 0.000 0.000 0.001 0.000 {method 'min' of 'numpy.ndarray' objects} - 39 0.000 0.000 0.000 0.000 {method 'mro' of 'type' objects} - 3799 0.001 0.000 0.001 0.000 {method 'pop' of 'dict' objects} - 801 0.001 0.000 0.001 0.000 {method 'pop' of 'list' objects} - 1793 0.001 0.000 0.001 0.000 {method 'random' of '_random.Random' objects} - 985 0.001 0.000 0.001 0.000 {method 'ravel' of 'numpy.ndarray' objects} - 17835 0.067 0.000 0.067 0.000 {method 'read' of 'file' objects} - 3719 0.021 0.000 0.021 0.000 {method 'readline' of 'file' objects} - 13 0.056 0.004 0.056 0.004 {method 'readlines' of 'file' objects} - 8529 0.039 0.000 0.052 0.000 {method 'reduce' of 'numpy.ufunc' objects} - 42 0.000 0.000 0.000 0.000 {method 'release' of 'thread.lock' objects} - 230 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} - 128 0.000 0.000 0.000 0.000 {method 'remove' of 'set' objects} - 2 0.000 0.000 0.000 0.000 {method 'repeat' of 'numpy.ndarray' objects} - 3503 0.001 0.000 0.001 0.000 {method 'replace' of 'str' objects} - 141 0.000 0.000 0.000 0.000 {method 'reshape' of 'numpy.ndarray' objects} - 2 0.000 0.000 0.000 0.000 {method 'resize' of 'numpy.ndarray' objects} - 6 0.000 0.000 0.000 0.000 {method 'reverse' of 'list' objects} - 79 0.000 0.000 0.000 0.000 {method 'rfind' of 'str' objects} - 801 0.001 0.000 0.001 0.000 {method 'rstrip' of 'str' objects} - 7 0.000 0.000 0.000 0.000 {method 'search' of '_sre.SRE_Pattern' objects} - 8 0.001 0.000 0.001 0.000 {method 'searchsorted' of 'numpy.ndarray' objects} - 411 0.002 0.000 0.002 0.000 {method 'seek' of 'file' objects} - 617 0.000 0.000 0.000 0.000 {method 'setdefault' of 'dict' objects} - 29 0.000 0.000 0.000 0.000 {method 'setter' of 'property' objects} - 5 0.001 0.000 0.002 0.000 {method 'sort' of 'list' objects} - 5417 0.006 0.000 0.006 0.000 {method 'split' of 'str' objects} - 6 0.000 0.000 0.000 0.000 {method 'splitlines' of 'str' objects} - 738 0.000 0.000 0.000 0.000 {method 'start' of '_sre.SRE_Match' objects} - 6630 0.004 0.000 0.004 0.000 {method 'startswith' of 'str' objects} - 13347 0.004 0.000 0.004 0.000 {method 'strip' of 'str' objects} - 574 0.004 0.000 0.004 0.000 {method 'sub' of '_sre.SRE_Pattern' objects} - 116 0.000 0.000 0.003 0.000 {method 'sum' of 'numpy.ndarray' objects} - 807 0.000 0.000 0.000 0.000 {method 'tell' of 'file' objects} - 76 0.000 0.000 0.000 0.000 {method 'title' of 'str' objects} - 38 0.002 0.000 0.002 0.000 {method 'tolist' of 'numpy.ndarray' objects} - 251 0.000 0.000 0.000 0.000 {method 'translate' of 'str' objects} - 10 0.000 0.000 0.000 0.000 {method 'transpose' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.000 0.000 {method 'union' of 'set' objects} - 40355 0.022 0.000 0.022 0.000 {method 'update' of 'dict' objects} - 17 0.000 0.000 0.000 0.000 {method 'upper' of 'str' objects} - 215 0.000 0.000 0.000 0.000 {method 'values' of 'dict' objects} - 126 0.001 0.000 0.011 0.000 {method 'view' of 'numpy.generic' objects} - 3190 0.006 0.000 0.143 0.000 {method 'view' of 'numpy.ndarray' objects} - 853 0.002 0.000 0.002 0.000 {method 'write' of 'file' objects} - 5451 0.002 0.000 0.002 0.000 {min} - 271 0.000 0.000 0.000 0.000 {numpy.core.multiarray.add_docstring} - 69 0.001 0.000 0.001 0.000 {numpy.core.multiarray.arange} - 31622 0.045 0.000 0.050 0.000 {numpy.core.multiarray.array} - 17 0.000 0.000 0.000 0.000 {numpy.core.multiarray.can_cast} - 84 0.005 0.000 0.005 0.000 {numpy.core.multiarray.concatenate} - 4640 0.010 0.000 0.010 0.000 {numpy.core.multiarray.copyto} - 1170 0.001 0.000 0.001 0.000 {numpy.core.multiarray.empty} - 986 0.002 0.000 0.002 0.000 {numpy.core.multiarray.result_type} - 2 0.000 0.000 0.000 0.000 {numpy.core.multiarray.set_string_function} - 1 0.000 0.000 0.000 0.000 {numpy.core.multiarray.set_typeDict} - 502 0.003 0.000 0.003 0.000 {numpy.core.multiarray.where} - 3230 0.004 0.000 0.004 0.000 {numpy.core.multiarray.zeros} - 19132 0.004 0.000 0.004 0.000 {numpy.core.umath.geterrobj} - 9566 0.006 0.000 0.006 0.000 {numpy.core.umath.seterrobj} - 180 0.008 0.000 0.008 0.000 {open} - 1706 0.000 0.000 0.000 0.000 {ord} - 1 0.000 0.000 0.000 0.000 {posix.access} - 16 0.002 0.000 0.002 0.000 {posix.getcwd} - 6 0.001 0.000 0.001 0.000 {posix.listdir} - 10 0.005 0.000 0.005 0.000 {posix.popen} - 5 0.000 0.000 0.000 0.000 {posix.putenv} - 1279 0.022 0.000 0.022 0.000 {posix.stat} - 1 0.000 0.000 0.000 0.000 {posix.sysconf} - 1 0.000 0.000 0.000 0.000 {posix.uname} - 2 0.000 0.000 0.000 0.000 {posix.unsetenv} - 2 0.000 0.000 0.000 0.000 {posix.urandom} - 42278 0.046 0.000 0.046 0.000 {range} - 72 0.007 0.000 0.007 0.000 {regrid2._regrid.gridattr} - 1 0.000 0.000 0.000 0.000 {reload} - 73 0.000 0.000 0.000 0.000 {repr} - 866 0.001 0.000 0.001 0.000 {round} -282579/282513 0.175 0.000 3.568 0.000 {setattr} - 40010 1.767 0.000 1.767 0.000 {sorted} - 3 0.000 0.000 0.000 0.000 {strop.maketrans} - 34 0.000 0.000 0.000 0.000 {sys._getframe} - 6 0.000 0.000 0.000 0.000 {sys.exc_info} - 2 0.000 0.000 0.000 0.000 {sys.getdlopenflags} - 20 0.000 0.000 0.000 0.000 {sys.getrefcount} - 2 0.000 0.000 0.000 0.000 {sys.setdlopenflags} - 135 0.000 0.000 0.000 0.000 {thread.allocate_lock} - 46 0.000 0.000 0.000 0.000 {thread.get_ident} - 44 0.004 0.000 0.004 0.000 {thread.start_new_thread} - 61 0.001 0.000 0.001 0.000 {time.sleep} - 545 0.012 0.000 0.012 0.000 {unidata.udunits_wrap.convert} - 1 0.018 0.018 0.018 0.018 {unidata.udunits_wrap.init} - 1587 0.001 0.000 0.001 0.000 {vars} - 3 0.000 0.000 0.000 0.000 {zip} - - diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index b6e2e060d..9b343c098 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -20,7 +20,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -32,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -46,7 +46,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.gettaylordiagram @@ -82,21 +82,6 @@ Expected: Got nothing ``` -vcs.Canvas.Canvas.setcontinentstype ------------------------------------ -```python -Failed example: - a.setcontinentstype(4) "Political Borders" -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1 - a.setcontinentstype(4) "Political Borders" - ^ - SyntaxError: invalid syntax -``` - Missing Doctests ---------------- :x:``` vcs.Canvas``` diff --git a/docs/doctest_info/markdown/boxfill.md b/docs/doctest_info/markdown/boxfill.md index 19d3c6762..1e0894779 100644 --- a/docs/doctest_info/markdown/boxfill.md +++ b/docs/doctest_info/markdown/boxfill.md @@ -1,3 +1,46 @@ +vcs.boxfill.Gfb.list +-------------------- +```python +Failed example: + obj.list() # print boxfill attributes +Expected nothing +Got: + ----------Boxfill (Gfb) member (attribute) listings ---------- + graphics method = Gfb + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + boxfill_type = linear + level_1 = 1e+20 + level_2 = 1e+20 + levels = [1e+20, 1e+20] + color_1 = 0 + color_2 = 255 + fillareacolors = None + fillareastyle = solid + fillareaindices = [1] + fillareaopacity = [] + legend = None + ext_1 = False + ext_2 = False + missing = (0.0, 0.0, 0.0, 100.0) +``` + Missing Doctests ---------------- :x:``` vcs.boxfill``` @@ -54,8 +97,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.levels``` -:x:``` vcs.boxfill.Gfb.list``` - :x:``` vcs.boxfill.Gfb.missing``` :x:``` vcs.boxfill.Gfb.name``` diff --git a/docs/doctest_info/markdown/isofill.md b/docs/doctest_info/markdown/isofill.md index 6413d6b64..1b36c4e38 100644 --- a/docs/doctest_info/markdown/isofill.md +++ b/docs/doctest_info/markdown/isofill.md @@ -1,3 +1,41 @@ +vcs.isofill.Gfi.list +-------------------- +```python +Failed example: + obj.list() # print isofill attributes +Expected nothing +Got: + ----------Isofill (Gfi) member (attribute) listings ---------- + graphics method = Gfi + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + missing = (0.0, 0.0, 0.0, 100.0) + ext_1 = False + ext_2 = False + fillareastyle = solid + fillareaindices = [1] + fillareacolors = [1] + fillareaopacity = [] + levels = ([1.0000000200408773e+20, 1.0000000200408773e+20],) + legend = None +``` + vcs.isofill.Gfi.script ---------------------- ```python @@ -56,8 +94,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi.levels``` -:x:``` vcs.isofill.Gfi.list``` - :x:``` vcs.isofill.Gfi.missing``` :x:``` vcs.isofill.Gfi.name``` diff --git a/docs/doctest_info/markdown/isoline.md b/docs/doctest_info/markdown/isoline.md index 7ad0846ea..a4812af0b 100644 --- a/docs/doctest_info/markdown/isoline.md +++ b/docs/doctest_info/markdown/isoline.md @@ -1,3 +1,46 @@ +vcs.isoline.Gi.list +------------------- +```python +Failed example: + obj.list() # print isoline attributes +Expected nothing +Got: + ----------Isoline (Gi) member (attribute) listings ---------- + graphics method = Gi + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + label = n + labelskipdistance = 0.0 + labelbackgroundcolors = None + labelbackgroundopacities = None + linetypes = ['solid'] + linecolors = [(0.0, 0.0, 0.0, 100.0)] + linewidths = [1.0] + text = None + textcolors = None + level = [[0.0, 1.0000000200408773e+20]] + clockwise = [0] + scale = [1.0] + angle = [35.0] + spacing = [1.0] +``` + Missing Doctests ---------------- :x:``` vcs.isoline``` @@ -44,8 +87,6 @@ Missing Doctests :x:``` vcs.isoline.Gi.linewidths``` -:x:``` vcs.isoline.Gi.list``` - :x:``` vcs.isoline.Gi.name``` :x:``` vcs.isoline.Gi.projection``` diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md index 8e5caa9f0..4b37152e7 100644 --- a/docs/doctest_info/markdown/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -22,7 +22,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar @@ -34,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -46,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -60,7 +60,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.gettaylordiagram diff --git a/docs/doctest_info/markdown/meshfill.md b/docs/doctest_info/markdown/meshfill.md index d3649988f..0aae06497 100644 --- a/docs/doctest_info/markdown/meshfill.md +++ b/docs/doctest_info/markdown/meshfill.md @@ -1,3 +1,43 @@ +vcs.meshfill.Gfm.list +--------------------- +```python +Failed example: + obj.list() # print meshfill attributes +Expected nothing +Got: + ---------- Meshfill (Gmf) member (attribute) listings --------- + graphics method = Gfm + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + levels = ([1.0000000200408773e+20, 1.0000000200408773e+20],) + fillareacolors = [1] + fillareastyle = solid + fillareaindices = None + legend = None + ext_1 = False + ext_2 = False + missing = (0.0, 0.0, 0.0, 100.0) + mesh = 0 + wrap = [0.0, 0.0] + colormap = None +``` + vcs.meshfill.Gfm.script ----------------------- ```python @@ -56,8 +96,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm.levels``` -:x:``` vcs.meshfill.Gfm.list``` - :x:``` vcs.meshfill.Gfm.mesh``` :x:``` vcs.meshfill.Gfm.missing``` diff --git a/docs/doctest_info/markdown/queries.md b/docs/doctest_info/markdown/queries.md index a7fa0fe80..2b8aa6df0 100644 --- a/docs/doctest_info/markdown/queries.md +++ b/docs/doctest_info/markdown/queries.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md index f8d872dac..3c84b60a8 100644 --- a/docs/doctest_info/markdown/template.md +++ b/docs/doctest_info/markdown/template.md @@ -1,146 +1,337 @@ -vcs.template.P.drawLinesAndMarkersLegend ----------------------------------------- +vcs.template.P.drawAttributes +----------------------------- ```python Failed example: - t.drawLinesAndMarkersLegend(x, - ["red","blue","green"], ["solid","dash","dot"],[1,4,8], - ["blue","green","red"], ["cross","square","dot"],[3,4,5], - ["sample A","type B","thing C"],True) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 4, in - ["sample A","type B","thing C"],True) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1526, in drawLinesAndMarkersLegend - strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2666, in drawLinesAndMarkersLegend - if scratched is not None and scratched[i] is not False: - TypeError: 'bool' object has no attribute '__getitem__' + t.drawAttributes(a,s,b) # shows attributes of s on canvas +Expected nothing +Got: + [, , , , ] ``` -vcs.template.P.moveto ---------------------- +vcs.template.P.list +------------------- ```python Failed example: - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate - name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error template object named example1 already exists -``` - -vcs.template.P.moveto ---------------------- -```python -Failed example: - t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 - NameError: name 't' is not defined -``` - -vcs.template.P.reset --------------------- -```python -Failed example: - t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate - name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error template object named example1 already exists -``` - -vcs.template.P.reset --------------------- -```python -Failed example: - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 - NameError: name 't' is not defined -``` - -vcs.template.P.scale --------------------- -```python -Failed example: - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate - name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error template object named example1 already exists -``` - -vcs.template.P.scale --------------------- -```python -Failed example: - t.scale(0.5) # Halves the template size -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(0.5) # Halves the template size - NameError: name 't' is not defined -``` - -vcs.template.P.scale --------------------- -```python -Failed example: - t.scale(1.2) # Upsize everything to 20% more than the original size -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(1.2) # Upsize everything to 20% more than the original size - NameError: name 't' is not defined -``` - -vcs.template.P.scale --------------------- -```python -Failed example: - t.scale(2,'x') # Double the x axis -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(2,'x') # Double the x axis - NameError: name 't' is not defined + obj.list() # print template attributes +Expected nothing +Got: + ----------Template (P) member (attribute) listings ---------- + method = P + name = default + orientation = 0 + member = file + priority = 1 + x = 0.0500000007451 + y = 0.0130000002682 + texttable = default + textorientation = default + member = function + priority = 1 + x = 0.0500000007451 + y = 0.0130000002682 + texttable = default + textorientation = default + member = logicalmask + priority = 1 + x = 0.0500000007451 + y = 0.0329999998212 + texttable = default + textorientation = default + member = transformation + priority = 1 + x = 0.0500000007451 + y = 0.0529999993742 + texttable = default + textorientation = default + member = source + priority = 1 + x = 0.0500000007451 + y = 0.941999971867 + texttable = default + textorientation = default + member = dataname + priority = 1 + x = 0.0500000007451 + y = 0.922999978065 + texttable = default + textorientation = default + member = title + priority = 1 + x = 0.15000000596 + y = 0.922999978065 + texttable = default + textorientation = default + member = units + priority = 1 + x = 0.670000016689 + y = 0.922999978065 + texttable = default + textorientation = default + member = crdate + priority = 1 + x = 0.75 + y = 0.922999978065 + texttable = default + textorientation = default + member = crtime + priority = 1 + x = 0.850000023842 + y = 0.922999978065 + texttable = default + textorientation = default + member = comment1 + priority = 1 + x = 0.10000000149 + y = 0.954999983311 + texttable = default + textorientation = default + member = comment2 + priority = 1 + x = 0.10000000149 + y = 0.975000023842 + texttable = default + textorientation = default + member = comment3 + priority = 1 + x = 0.10000000149 + y = 0.995000004768 + texttable = default + textorientation = default + member = comment4 + priority = 1 + x = 0.10000000149 + y = 0.999000012875 + texttable = default + textorientation = default + member = xname + priority = 1 + x = 0.5 + y = 0.21 + texttable = default + textorientation = defcenter + member = yname + priority = 1 + x = 0.006 + y = 0.56 + texttable = default + textorientation = defup + member = zname + priority = 0 + x = 0.0 + y = 0.995000004768 + texttable = default + textorientation = default + member = tname + priority = 1 + x = 0.0 + y = 0.995000004768 + texttable = default + textorientation = default + member = xunits + priority = 1 + x = 0.600000023842 + y = 0.277000010014 + texttable = default + textorientation = default + member = yunits + priority = 1 + x = 0.019999999553 + y = 0.658999979496 + texttable = default + textorientation = default + member = zunits + priority = 0 + x = 0.0 + y = 0.995000004768 + texttable = default + textorientation = default + member = tunits + priority = 0 + x = 0.0 + y = 0.995000004768 + texttable = default + textorientation = default + member = xvalue + priority = 1 + x = 0.800000011921 + y = 0.941999971867 + format = default + texttable = default + textorientation = default + member = yvalue + priority = 1 + x = 0.800000011921 + y = 0.922999978065 + format = default + texttable = default + textorientation = default + member = zvalue + priority = 1 + x = 0.800000011921 + y = 0.902999997139 + format = default + texttable = default + textorientation = default + member = tvalue + priority = 1 + x = 0.800000011921 + y = 0.883000016212 + format = default + texttable = default + textorientation = default + member = mean + priority = 1 + x = 0.0500000007451 + y = 0.899999976158 + format = default + texttable = default + textorientation = default + member = min + priority = 1 + x = 0.449999988079 + y = 0.899999976158 + format = default + texttable = default + textorientation = default + member = max + priority = 1 + x = 0.25 + y = 0.899999976158 + format = default + texttable = default + textorientation = default + member = xtic1 + priority = 1 + y1 = 0.259999990463 + y2 = 0.24699999392 + line = default + member = xtic2 + priority = 1 + y1 = 0.860000014305 + y2 = 0.871999979019 + line = default + member = xmintic1 + priority = 0 + y1 = 0.259999990463 + y2 = 0.256999999285 + line = default + member = xmintic2 + priority = 0 + y1 = 0.860000014305 + y2 = 0.860000014305 + line = default + member = ytic1 + priority = 1 + x1 = 0.0500000007451 + x2 = 0.0399999991059 + line = default + member = ytic2 + priority = 1 + x1 = 0.949999988079 + x2 = 0.959999978542 + line = default + member = ymintic1 + priority = 0 + x1 = 0.0500000007451 + x2 = 0.0450000017881 + line = default + member = ymintic2 + priority = 0 + x1 = 0.949999988079 + x2 = 0.954999983311 + line = default + member = xlabel1 + priority = 1 + y = 0.234999999404 + texttable = default + textorientation = defcenter + member = xlabel2 + priority = 0 + y = 0.870000004768 + texttable = default + textorientation = defcenter + member = ylabel1 + priority = 1 + x = 0.0399999991059 + texttable = default + textorientation = defright + member = ylabel2 + priority = 0 + x = 0.959999978542 + texttable = default + textorientation = default + member = box1 + priority = 1 + x1 = 0.0500000007451 + y1 = 0.259999990463 + x2 = 0.949999988079 + y2 = 0.860000014305 + line = default + member = box2 + priority = 0 + x1 = 0.0 + y1 = 0.300000011921 + x2 = 0.920000016689 + y2 = 0.879999995232 + line = default + member = box3 + priority = 0 + x1 = 0.0 + y1 = 0.319999992847 + x2 = 0.910000026226 + y2 = 0.860000014305 + line = default + member = box4 + priority = 0 + x1 = 0.0 + y1 = 0.0 + x2 = 0.0 + y2 = 0.0 + line = default + member = line1 + priority = 0 + x1 = 0.0500000007451 + y1 = 0.560000002384 + x2 = 0.949999988079 + y2 = 0.560000002384 + line = default + member = line2 + priority = 0 + x1 = 0.5 + y1 = 0.259999990463 + x2 = 0.5 + y2 = 0.860000014305 + line = default + member = line3 + priority = 0 + x1 = 0.0 + y1 = 0.52999997139 + x2 = 0.899999976158 + y2 = 0.52999997139 + line = default + member = line4 + priority = 0 + x1 = 0.0 + y1 = 0.990000009537 + x2 = 0.899999976158 + y2 = 0.990000009537 + line = default + member = legend + priority = 1 + x1 = 0.0500000007451 + y1 = 0.129999995232 + x2 = 0.949999988079 + y2 = 0.159999996424 + line = default + texttable = default + textorientation = defcenter + offset = 0.01 + member = data + priority = 1 + x1 = 0.0500000007451 + y1 = 0.259999990463 + x2 = 0.949999988079 + y2 = 0.860000014305 ``` Missing Doctests @@ -175,8 +366,6 @@ Missing Doctests :x:``` vcs.template.P.dataname``` -:x:``` vcs.template.P.drawAttributes``` - :x:``` vcs.template.P.drawColorBar``` :x:``` vcs.template.P.drawTicks``` @@ -195,8 +384,6 @@ Missing Doctests :x:``` vcs.template.P.line4``` -:x:``` vcs.template.P.list``` - :x:``` vcs.template.P.logicalmask``` :x:``` vcs.template.P.max``` @@ -211,8 +398,6 @@ Missing Doctests :x:``` vcs.template.P.plot``` -:x:``` vcs.template.P.scalefont``` - :x:``` vcs.template.P.source``` :x:``` vcs.template.P.title``` diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md index 582953576..2b553eb56 100644 --- a/docs/doctest_info/markdown/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script diff --git a/docs/doctest_info/markdown/unified1D.md b/docs/doctest_info/markdown/unified1D.md index eef3de363..467477aed 100644 --- a/docs/doctest_info/markdown/unified1D.md +++ b/docs/doctest_info/markdown/unified1D.md @@ -1,3 +1,39 @@ +vcs.unified1D.G1d.list +---------------------- +```python +Failed example: + obj.list() # print 1d attributes +Expected nothing +Got: + ----------Yxvsx (GYx) member (attribute) listings ---------- + graphics method = G1d + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + linetype = solid + linecolor = (0.0, 0.0, 0.0, 100.0) + linewidth = 1 + marker = dot + markercolor = (0.0, 0.0, 0.0, 100.0) + markersize = 1 + flip = False +``` + Missing Doctests ---------------- :x:``` vcs.unified1D``` @@ -32,8 +68,6 @@ Missing Doctests :x:``` vcs.unified1D.G1d.linewidth``` -:x:``` vcs.unified1D.G1d.list``` - :x:``` vcs.unified1D.G1d.marker``` :x:``` vcs.unified1D.G1d.markercolor``` diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index 0af9d11a6..5d9fbb672 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -584,7 +584,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -1073,7 +1073,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1111,7 +1111,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1155,7 +1155,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -2799,20 +2799,9 @@ Trying: Expecting nothing ok Trying: - a.setcontinentstype(4) "Political Borders" + a.setcontinentstype(4) # "Political Borders" Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5384, in vcs.Canvas.Canvas.setcontinentstype -Failed example: - a.setcontinentstype(4) "Political Borders" -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1 - a.setcontinentstype(4) "Political Borders" - ^ - SyntaxError: invalid syntax +ok Trying: import cdms2 # We need cdms2 to create a slab Expecting nothing @@ -3326,7 +3315,7 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -115 items passed all tests: +116 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill 2 tests in vcs.Canvas.Canvas.canvasid 5 tests in vcs.Canvas.Canvas.canvasinfo @@ -3432,6 +3421,7 @@ ok 11 tests in vcs.Canvas.Canvas.setcolorcell 5 tests in vcs.Canvas.Canvas.setcolormap 5 tests in vcs.Canvas.Canvas.setcontinentsline + 6 tests in vcs.Canvas.Canvas.setcontinentstype 6 tests in vcs.Canvas.Canvas.show 6 tests in vcs.Canvas.Canvas.svg 7 tests in vcs.Canvas.Canvas.switchfonts @@ -3443,14 +3433,13 @@ ok 8 tests in vcs.Canvas.Canvas.xyvsy 8 tests in vcs.Canvas.Canvas.yxvsx ********************************************************************** -7 items had failures: +6 items had failures: 1 of 3 in vcs.Canvas.Canvas.createtext 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram 1 of 4 in vcs.Canvas.Canvas.isinfile - 1 of 6 in vcs.Canvas.Canvas.setcontinentstype 695 tests in 205 items. -688 passed and 7 failed. -***Test Failed*** 7 failures. +689 passed and 6 failed. +***Test Failed*** 6 failures. diff --git a/docs/doctest_info/reports/boxfill.report b/docs/doctest_info/reports/boxfill.report index 6e8f9b711..dde4d4f61 100644 --- a/docs/doctest_info/reports/boxfill.report +++ b/docs/doctest_info/reports/boxfill.report @@ -1,3 +1,54 @@ +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.getboxfill() # default +Expecting nothing +ok +Trying: + obj.list() # print boxfill attributes +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/boxfill.py", line 993, in vcs.boxfill.Gfb.list +Failed example: + obj.list() # print boxfill attributes +Expected nothing +Got: + ----------Boxfill (Gfb) member (attribute) listings ---------- + graphics method = Gfb + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + boxfill_type = linear + level_1 = 1e+20 + level_2 = 1e+20 + levels = [1e+20, 1e+20] + color_1 = 0 + color_2 = 255 + fillareacolors = None + fillareastyle = solid + fillareaindices = [1] + fillareaopacity = [] + legend = None + ext_1 = False + ext_2 = False + missing = (0.0, 0.0, 0.0, 100.0) Trying: b=vcs.createboxfill() Expecting nothing @@ -54,7 +105,7 @@ Trying: ex.xyscale(xat='linear', yat='linear') Expecting nothing ok -97 items had no tests: +96 items had no tests: vcs.boxfill vcs.boxfill.Gfb vcs.boxfill.Gfb.__init__ @@ -133,7 +184,6 @@ ok vcs.boxfill.Gfb.level_1 vcs.boxfill.Gfb.level_2 vcs.boxfill.Gfb.levels - vcs.boxfill.Gfb.list vcs.boxfill.Gfb.missing vcs.boxfill.Gfb.name vcs.boxfill.Gfb.projection @@ -156,6 +206,9 @@ ok 6 tests in vcs.boxfill.Gfb.rename 4 tests in vcs.boxfill.Gfb.script 3 tests in vcs.boxfill.Gfb.xyscale -13 tests in 100 items. -13 passed and 0 failed. -Test passed. +********************************************************************** +1 items had failures: + 1 of 3 in vcs.boxfill.Gfb.list +16 tests in 100 items. +15 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/isofill.report b/docs/doctest_info/reports/isofill.report index 5e6967e82..c2f8761fa 100644 --- a/docs/doctest_info/reports/isofill.report +++ b/docs/doctest_info/reports/isofill.report @@ -1,3 +1,49 @@ +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.getisofill() # default +Expecting nothing +ok +Trying: + obj.list() # print isofill attributes +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 752, in vcs.isofill.Gfi.list +Failed example: + obj.list() # print isofill attributes +Expected nothing +Got: + ----------Isofill (Gfi) member (attribute) listings ---------- + graphics method = Gfi + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + missing = (0.0, 0.0, 0.0, 100.0) + ext_1 = False + ext_2 = False + fillareastyle = solid + fillareaindices = [1] + fillareacolors = [1] + fillareaopacity = [] + levels = ([1.0000000200408773e+20, 1.0000000200408773e+20],) + legend = None Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -38,7 +84,7 @@ Trying: ex.xyscale(xat='linear', yat='linear') Expecting nothing ok -83 items had no tests: +82 items had no tests: vcs.isofill vcs.isofill.Gfi vcs.isofill.Gfi.__init__ @@ -102,7 +148,6 @@ ok vcs.isofill.Gfi.fillareastyle vcs.isofill.Gfi.legend vcs.isofill.Gfi.levels - vcs.isofill.Gfi.list vcs.isofill.Gfi.missing vcs.isofill.Gfi.name vcs.isofill.Gfi.projection @@ -125,8 +170,9 @@ ok 1 items passed all tests: 3 tests in vcs.isofill.Gfi.xyscale ********************************************************************** -1 items had failures: +2 items had failures: + 1 of 3 in vcs.isofill.Gfi.list 1 of 4 in vcs.isofill.Gfi.script -7 tests in 85 items. -6 passed and 1 failed. -***Test Failed*** 1 failures. +10 tests in 85 items. +8 passed and 2 failed. +***Test Failed*** 2 failures. diff --git a/docs/doctest_info/reports/isoline.report b/docs/doctest_info/reports/isoline.report index 06d8dd2b9..1ac8148da 100644 --- a/docs/doctest_info/reports/isoline.report +++ b/docs/doctest_info/reports/isoline.report @@ -1,3 +1,54 @@ +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.getisoline() # default +Expecting nothing +ok +Trying: + obj.list() # print isoline attributes +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isoline.py", line 1067, in vcs.isoline.Gi.list +Failed example: + obj.list() # print isoline attributes +Expected nothing +Got: + ----------Isoline (Gi) member (attribute) listings ---------- + graphics method = Gi + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + label = n + labelskipdistance = 0.0 + labelbackgroundcolors = None + labelbackgroundopacities = None + linetypes = ['solid'] + linecolors = [(0.0, 0.0, 0.0, 100.0)] + linewidths = [1.0] + text = None + textcolors = None + level = [[0.0, 1.0000000200408773e+20]] + clockwise = [0] + scale = [1.0] + angle = [35.0] + spacing = [1.0] Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -26,7 +77,7 @@ Trying: ex.xyscale(xat='linear', yat='linear') Expecting nothing ok -114 items had no tests: +113 items had no tests: vcs.isoline vcs.isoline.Gi vcs.isoline.Gi.__init__ @@ -116,7 +167,6 @@ ok vcs.isoline.Gi.linecolors vcs.isoline.Gi.linetypes vcs.isoline.Gi.linewidths - vcs.isoline.Gi.list vcs.isoline.Gi.name vcs.isoline.Gi.projection vcs.isoline.Gi.scale @@ -144,6 +194,9 @@ ok 2 items passed all tests: 4 tests in vcs.isoline.Gi.script 3 tests in vcs.isoline.Gi.xyscale -7 tests in 116 items. -7 passed and 0 failed. -Test passed. +********************************************************************** +1 items had failures: + 1 of 3 in vcs.isoline.Gi.list +10 tests in 116 items. +9 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report index 50cf1beaa..501a2d6a7 100644 --- a/docs/doctest_info/reports/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -394,7 +394,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -567,7 +567,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -605,7 +605,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -649,7 +649,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/meshfill.report b/docs/doctest_info/reports/meshfill.report index 2a66d170b..6e3ecb20d 100644 --- a/docs/doctest_info/reports/meshfill.report +++ b/docs/doctest_info/reports/meshfill.report @@ -1,3 +1,51 @@ +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.getmeshfill() # default +Expecting nothing +ok +Trying: + obj.list() # print meshfill attributes +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 779, in vcs.meshfill.Gfm.list +Failed example: + obj.list() # print meshfill attributes +Expected nothing +Got: + ---------- Meshfill (Gmf) member (attribute) listings --------- + graphics method = Gfm + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + levels = ([1.0000000200408773e+20, 1.0000000200408773e+20],) + fillareacolors = [1] + fillareastyle = solid + fillareaindices = None + legend = None + ext_1 = False + ext_2 = False + missing = (0.0, 0.0, 0.0, 100.0) + mesh = 0 + wrap = [0.0, 0.0] + colormap = None Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -38,7 +86,7 @@ Trying: ex.xyscale(xat='linear', yat='linear') Expecting nothing ok -89 items had no tests: +88 items had no tests: vcs.meshfill vcs.meshfill.Gfm vcs.meshfill.Gfm.__init__ @@ -106,7 +154,6 @@ ok vcs.meshfill.Gfm.fillareastyle vcs.meshfill.Gfm.legend vcs.meshfill.Gfm.levels - vcs.meshfill.Gfm.list vcs.meshfill.Gfm.mesh vcs.meshfill.Gfm.missing vcs.meshfill.Gfm.name @@ -131,8 +178,9 @@ ok 1 items passed all tests: 3 tests in vcs.meshfill.Gfm.xyscale ********************************************************************** -1 items had failures: +2 items had failures: + 1 of 3 in vcs.meshfill.Gfm.list 1 of 4 in vcs.meshfill.Gfm.script -7 tests in 91 items. -6 passed and 1 failed. -***Test Failed*** 1 failures. +10 tests in 91 items. +8 passed and 2 failed. +***Test Failed*** 2 failures. diff --git a/docs/doctest_info/reports/queries.report b/docs/doctest_info/reports/queries.report index 24376d29b..92d521edc 100644 --- a/docs/doctest_info/reports/queries.report +++ b/docs/doctest_info/reports/queries.report @@ -429,7 +429,7 @@ Failed example: pass Expected nothing Got: - + Trying: a.show('textcombined') # Show all available textcombined Expecting: diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report index 4cf5d0ae5..28071f1cc 100644 --- a/docs/doctest_info/reports/template.report +++ b/docs/doctest_info/reports/template.report @@ -1,45 +1,422 @@ Trying: - import vcs + a=vcs.init() Expecting nothing ok Trying: - x = vcs.init() + import cdms2 # We need cdms2 to create a slab Expecting nothing ok Trying: - t = vcs.createtemplate() + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok +Trying: + s = f('clt') # use the data file to create a slab +Expecting nothing +ok +Trying: + t=a.gettemplate() +Expecting nothing +ok +Trying: + b=a.getboxfill() # boxfill gm Expecting nothing ok Trying: - t.drawLinesAndMarkersLegend(x, - ["red","blue","green"], ["solid","dash","dot"],[1,4,8], - ["blue","green","red"], ["cross","square","dot"],[3,4,5], - ["sample A","type B","thing C"],True) + t.drawAttributes(a,s,b) # shows attributes of s on canvas Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1481, in vcs.template.P.drawLinesAndMarkersLegend +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1579, in vcs.template.P.drawAttributes Failed example: - t.drawLinesAndMarkersLegend(x, - ["red","blue","green"], ["solid","dash","dot"],[1,4,8], - ["blue","green","red"], ["cross","square","dot"],[3,4,5], - ["sample A","type B","thing C"],True) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 4, in - ["sample A","type B","thing C"],True) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1526, in drawLinesAndMarkersLegend - strings, scratched, bg, render) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/utils.py", line 2666, in drawLinesAndMarkersLegend - if scratched is not None and scratched[i] is not False: - TypeError: 'bool' object has no attribute '__getitem__' + t.drawAttributes(a,s,b) # shows attributes of s on canvas +Expected nothing +Got: + [, , , , ] +Trying: + x = vcs.init() +Expecting nothing +ok +Trying: + t = vcs.createtemplate() +Expecting nothing +ok +Trying: + l_colors=["red","blue","green"] +Expecting nothing +ok +Trying: + l_types=["solid","dash","dot"] +Expecting nothing +ok +Trying: + l_widths=[1,4,8] +Expecting nothing +ok +Trying: + m_colors=["blue","green","red"] +Expecting nothing +ok +Trying: + m_types=["cross","square","dot"] +Expecting nothing +ok +Trying: + m_sizes=[3,4,5] +Expecting nothing +ok +Trying: + strings=["sample A","type B","thing C"] +Expecting nothing +ok +Trying: + scratch=[True,False,True] +Expecting nothing +ok +Trying: + t.drawLinesAndMarkersLegend(x, l_colors, l_types, l_widths, + m_colors, m_types, m_sizes, strings, scratch) +Expecting nothing +ok Trying: x.png("sample") Expecting nothing ok Trying: - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.gettemplate() # default +Expecting nothing +ok +Trying: + obj.list() # print template attributes +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 546, in vcs.template.P.list +Failed example: + obj.list() # print template attributes +Expected nothing +Got: + ----------Template (P) member (attribute) listings ---------- + method = P + name = default + orientation = 0 + member = file + priority = 1 + x = 0.0500000007451 + y = 0.0130000002682 + texttable = default + textorientation = default + member = function + priority = 1 + x = 0.0500000007451 + y = 0.0130000002682 + texttable = default + textorientation = default + member = logicalmask + priority = 1 + x = 0.0500000007451 + y = 0.0329999998212 + texttable = default + textorientation = default + member = transformation + priority = 1 + x = 0.0500000007451 + y = 0.0529999993742 + texttable = default + textorientation = default + member = source + priority = 1 + x = 0.0500000007451 + y = 0.941999971867 + texttable = default + textorientation = default + member = dataname + priority = 1 + x = 0.0500000007451 + y = 0.922999978065 + texttable = default + textorientation = default + member = title + priority = 1 + x = 0.15000000596 + y = 0.922999978065 + texttable = default + textorientation = default + member = units + priority = 1 + x = 0.670000016689 + y = 0.922999978065 + texttable = default + textorientation = default + member = crdate + priority = 1 + x = 0.75 + y = 0.922999978065 + texttable = default + textorientation = default + member = crtime + priority = 1 + x = 0.850000023842 + y = 0.922999978065 + texttable = default + textorientation = default + member = comment1 + priority = 1 + x = 0.10000000149 + y = 0.954999983311 + texttable = default + textorientation = default + member = comment2 + priority = 1 + x = 0.10000000149 + y = 0.975000023842 + texttable = default + textorientation = default + member = comment3 + priority = 1 + x = 0.10000000149 + y = 0.995000004768 + texttable = default + textorientation = default + member = comment4 + priority = 1 + x = 0.10000000149 + y = 0.999000012875 + texttable = default + textorientation = default + member = xname + priority = 1 + x = 0.5 + y = 0.21 + texttable = default + textorientation = defcenter + member = yname + priority = 1 + x = 0.006 + y = 0.56 + texttable = default + textorientation = defup + member = zname + priority = 0 + x = 0.0 + y = 0.995000004768 + texttable = default + textorientation = default + member = tname + priority = 1 + x = 0.0 + y = 0.995000004768 + texttable = default + textorientation = default + member = xunits + priority = 1 + x = 0.600000023842 + y = 0.277000010014 + texttable = default + textorientation = default + member = yunits + priority = 1 + x = 0.019999999553 + y = 0.658999979496 + texttable = default + textorientation = default + member = zunits + priority = 0 + x = 0.0 + y = 0.995000004768 + texttable = default + textorientation = default + member = tunits + priority = 0 + x = 0.0 + y = 0.995000004768 + texttable = default + textorientation = default + member = xvalue + priority = 1 + x = 0.800000011921 + y = 0.941999971867 + format = default + texttable = default + textorientation = default + member = yvalue + priority = 1 + x = 0.800000011921 + y = 0.922999978065 + format = default + texttable = default + textorientation = default + member = zvalue + priority = 1 + x = 0.800000011921 + y = 0.902999997139 + format = default + texttable = default + textorientation = default + member = tvalue + priority = 1 + x = 0.800000011921 + y = 0.883000016212 + format = default + texttable = default + textorientation = default + member = mean + priority = 1 + x = 0.0500000007451 + y = 0.899999976158 + format = default + texttable = default + textorientation = default + member = min + priority = 1 + x = 0.449999988079 + y = 0.899999976158 + format = default + texttable = default + textorientation = default + member = max + priority = 1 + x = 0.25 + y = 0.899999976158 + format = default + texttable = default + textorientation = default + member = xtic1 + priority = 1 + y1 = 0.259999990463 + y2 = 0.24699999392 + line = default + member = xtic2 + priority = 1 + y1 = 0.860000014305 + y2 = 0.871999979019 + line = default + member = xmintic1 + priority = 0 + y1 = 0.259999990463 + y2 = 0.256999999285 + line = default + member = xmintic2 + priority = 0 + y1 = 0.860000014305 + y2 = 0.860000014305 + line = default + member = ytic1 + priority = 1 + x1 = 0.0500000007451 + x2 = 0.0399999991059 + line = default + member = ytic2 + priority = 1 + x1 = 0.949999988079 + x2 = 0.959999978542 + line = default + member = ymintic1 + priority = 0 + x1 = 0.0500000007451 + x2 = 0.0450000017881 + line = default + member = ymintic2 + priority = 0 + x1 = 0.949999988079 + x2 = 0.954999983311 + line = default + member = xlabel1 + priority = 1 + y = 0.234999999404 + texttable = default + textorientation = defcenter + member = xlabel2 + priority = 0 + y = 0.870000004768 + texttable = default + textorientation = defcenter + member = ylabel1 + priority = 1 + x = 0.0399999991059 + texttable = default + textorientation = defright + member = ylabel2 + priority = 0 + x = 0.959999978542 + texttable = default + textorientation = default + member = box1 + priority = 1 + x1 = 0.0500000007451 + y1 = 0.259999990463 + x2 = 0.949999988079 + y2 = 0.860000014305 + line = default + member = box2 + priority = 0 + x1 = 0.0 + y1 = 0.300000011921 + x2 = 0.920000016689 + y2 = 0.879999995232 + line = default + member = box3 + priority = 0 + x1 = 0.0 + y1 = 0.319999992847 + x2 = 0.910000026226 + y2 = 0.860000014305 + line = default + member = box4 + priority = 0 + x1 = 0.0 + y1 = 0.0 + x2 = 0.0 + y2 = 0.0 + line = default + member = line1 + priority = 0 + x1 = 0.0500000007451 + y1 = 0.560000002384 + x2 = 0.949999988079 + y2 = 0.560000002384 + line = default + member = line2 + priority = 0 + x1 = 0.5 + y1 = 0.259999990463 + x2 = 0.5 + y2 = 0.860000014305 + line = default + member = line3 + priority = 0 + x1 = 0.0 + y1 = 0.52999997139 + x2 = 0.899999976158 + y2 = 0.52999997139 + line = default + member = line4 + priority = 0 + x1 = 0.0 + y1 = 0.990000009537 + x2 = 0.899999976158 + y2 = 0.990000009537 + line = default + member = legend + priority = 1 + x1 = 0.0500000007451 + y1 = 0.129999995232 + x2 = 0.949999988079 + y2 = 0.159999996424 + line = default + texttable = default + textorientation = defcenter + offset = 0.01 + member = data + priority = 1 + x1 = 0.0500000007451 + y1 = 0.259999990463 + x2 = 0.949999988079 + y2 = 0.860000014305 +Trying: + t=vcs.createtemplate('t_move') # inherits default template Expecting nothing ok Trying: @@ -51,37 +428,13 @@ Trying: Expecting nothing ok Trying: - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + t=vcs.createtemplate('t_move2') # inherits default template Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1371, in vcs.template.P.moveto -Failed example: - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate - name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error template object named example1 already exists -Trying: - t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 +ok +Trying: + t.moveto(0.2, 0.2) # Move template so x1 and y1 are 0.2 Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1372, in vcs.template.P.moveto -Failed example: - t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.moveto(0.2, 0.2) # Move everything so that data.x1= 0.2 and data.y1= 0.2 - NameError: name 't' is not defined +ok Trying: t=vcs.gettemplate() Expecting nothing @@ -99,97 +452,41 @@ Trying: Expecting nothing ok Trying: - t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' + t=vcs.createtemplate('t_reset') # inherits from 'default' Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1271, in vcs.template.P.reset -Failed example: - t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t = vcs.createtemplate('example1', 'default') # template 'example1' inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate - name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error template object named example1 already exists -Trying: - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 +ok +Trying: + data, data2 = t.data.x1, t.data.x2 Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1272, in vcs.template.P.reset -Failed example: - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.reset('x',0.15,0.5,t.data.x1,t.data.x2) # Set x1 value to 0.15 and x2 value to 0.5 - NameError: name 't' is not defined +ok Trying: - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' + t.reset('x',0.15,0.5,data,data2) # Set x1 to 0.15, x2 to 0.5 Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1405, in vcs.template.P.scale -Failed example: - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t = vcs.createtemplate('example1', 'default') # Create template 'example1', inherits from 'default' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 112, in createtemplate - name, source = check_name_source(name, source, 'template') - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 90, in check_name_source - raise vcsError("Error %s object named %s already exists" % (typ, name)) - vcsError: Error template object named example1 already exists +ok Trying: - t.scale(0.5) # Halves the template size + t=vcs.createtemplate('t_scale') # inherits default template Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1406, in vcs.template.P.scale -Failed example: +ok +Trying: t.scale(0.5) # Halves the template size -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(0.5) # Halves the template size - NameError: name 't' is not defined +Expecting nothing +ok Trying: - t.scale(1.2) # Upsize everything to 20% more than the original size + t.scale(1.2) # Increases size by 20% Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1407, in vcs.template.P.scale -Failed example: - t.scale(1.2) # Upsize everything to 20% more than the original size -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(1.2) # Upsize everything to 20% more than the original size - NameError: name 't' is not defined +ok Trying: t.scale(2,'x') # Double the x axis Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1408, in vcs.template.P.scale -Failed example: - t.scale(2,'x') # Double the x axis -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - t.scale(2,'x') # Double the x axis - NameError: name 't' is not defined +ok +Trying: + t=vcs.createtemplate('t_scfnt') # inherits default template +Expecting nothing +ok +Trying: + t.scalefont(0.5) # reduces the fonts size by 2 +Expecting nothing +ok Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -206,7 +503,7 @@ Trying: ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. Expecting nothing ok -71 items had no tests: +68 items had no tests: vcs.template vcs.template.P vcs.template.P.__init__ @@ -226,7 +523,6 @@ ok vcs.template.P.crtime vcs.template.P.data vcs.template.P.dataname - vcs.template.P.drawAttributes vcs.template.P.drawColorBar vcs.template.P.drawTicks vcs.template.P.file @@ -236,7 +532,6 @@ ok vcs.template.P.line2 vcs.template.P.line3 vcs.template.P.line4 - vcs.template.P.list vcs.template.P.logicalmask vcs.template.P.max vcs.template.P.mean @@ -244,7 +539,6 @@ ok vcs.template.P.name vcs.template.P.orientation vcs.template.P.plot - vcs.template.P.scalefont vcs.template.P.source vcs.template.P.title vcs.template.P.tname @@ -278,17 +572,20 @@ ok vcs.template.epsilon_gte vcs.template.epsilon_lte vcs.template.process_src -4 items passed all tests: +9 items passed all tests: + 12 tests in vcs.template.P.drawLinesAndMarkersLegend 3 tests in vcs.template.P.move + 2 tests in vcs.template.P.moveto 2 tests in vcs.template.P.ratio 2 tests in vcs.template.P.ratio_linear_projection + 3 tests in vcs.template.P.reset + 4 tests in vcs.template.P.scale + 2 tests in vcs.template.P.scalefont 4 tests in vcs.template.P.script ********************************************************************** -4 items had failures: - 1 of 5 in vcs.template.P.drawLinesAndMarkersLegend - 2 of 2 in vcs.template.P.moveto - 2 of 2 in vcs.template.P.reset - 4 of 4 in vcs.template.P.scale -24 tests in 79 items. -15 passed and 9 failed. -***Test Failed*** 9 failures. +2 items had failures: + 1 of 7 in vcs.template.P.drawAttributes + 1 of 3 in vcs.template.P.list +44 tests in 79 items. +42 passed and 2 failed. +***Test Failed*** 2 failures. diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report index c03976c4e..669e74660 100644 --- a/docs/doctest_info/reports/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing diff --git a/docs/doctest_info/reports/unified1D.report b/docs/doctest_info/reports/unified1D.report index eb1784c17..afbf9981b 100644 --- a/docs/doctest_info/reports/unified1D.report +++ b/docs/doctest_info/reports/unified1D.report @@ -1,3 +1,47 @@ +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.get1d('default') # default +Expecting nothing +ok +Trying: + obj.list() # print 1d attributes +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/unified1D.py", line 824, in vcs.unified1D.G1d.list +Failed example: + obj.list() # print 1d attributes +Expected nothing +Got: + ----------Yxvsx (GYx) member (attribute) listings ---------- + graphics method = G1d + name = default + projection = linear + xticlabels1 = * + xticlabels2 = * + xmtics1 = + xmtics2 = + yticlabels1 = * + yticlabels2 = * + ymtics1 = + ymtics2 = + datawc_x1 = 1e+20 + datawc_y1 = 1e+20 + datawc_x2 = 1e+20 + datawc_y2 = 1e+20 + datawc_timeunits = days since 2000 + datawc_calendar = 135441 + xaxisconvert = linear + yaxisconvert = linear + linetype = solid + linecolor = (0.0, 0.0, 0.0, 100.0) + linewidth = 1 + marker = dot + markercolor = (0.0, 0.0, 0.0, 100.0) + markersize = 1 + flip = False Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -14,7 +58,7 @@ Trying: ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. Expecting nothing ok -96 items had no tests: +95 items had no tests: vcs.unified1D vcs.unified1D.G1d vcs.unified1D.G1d.__init__ @@ -87,7 +131,6 @@ ok vcs.unified1D.G1d.linecolor vcs.unified1D.G1d.linetype vcs.unified1D.G1d.linewidth - vcs.unified1D.G1d.list vcs.unified1D.G1d.marker vcs.unified1D.G1d.markercolor vcs.unified1D.G1d.markersize @@ -113,6 +156,9 @@ ok vcs.unified1D.process_src 1 items passed all tests: 4 tests in vcs.unified1D.G1d.script -4 tests in 97 items. -4 passed and 0 failed. -Test passed. +********************************************************************** +1 items had failures: + 1 of 3 in vcs.unified1D.G1d.list +7 tests in 97 items. +6 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/scripts/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py index f0c8f7203..30d13af31 100644 --- a/docs/doctest_info/scripts/doctest_vcs.py +++ b/docs/doctest_info/scripts/doctest_vcs.py @@ -67,7 +67,7 @@ def consume_entry(readfile, writefile, endpoints, prepend="", append=""): def cleanup(): import glob, os gb = glob.glob - patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*", "*.png"] + patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*", "*.png", "deft_box.py"] files = [] for pattern in patterns: fnames = gb(pattern) diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 240900c26..a5e3f310b 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -265,7 +265,7 @@ .. doctest:: xyscale_%s >>> a=vcs.init() - >>> ex=a.create%s('xyscale_ex') # create a %s to work with + >>> ex=a.create%s('xyscale_ex') # create a %s object >>> ex.xyscale(xat='linear', yat='linear') :param xat: Set value for x axis conversion. From 87ffae37a795c7c61b19ec3661844c7fe228680b Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 27 Dec 2016 13:08:20 -0800 Subject: [PATCH 27/45] Fixed taylordiagram examples --- docs/doctest_info/markdown/Canvas.md | 31 ++----------- docs/doctest_info/reports/Canvas.report | 57 +++++------------------- docs/doctest_info/scripts/doctest_vcs.py | 2 +- vcs/xmldocs.py | 35 +++++++++++---- 4 files changed, 44 insertions(+), 81 deletions(-) diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index 9b343c098..06ebdd6bc 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -20,7 +20,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -32,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -46,30 +46,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.Canvas.Canvas.gettaylordiagram ----------------------------------- -```python -Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1310, in taylordiagram - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3650, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars + ``` vcs.Canvas.Canvas.isinfile diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index 5d9fbb672..e32b37530 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -584,12 +584,7 @@ Failed example: pass Expected nothing Got: - -Trying: - vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' -Expecting: - [...'EXAMPLE_tt:::EXAMPLE_tto'...] -ok + Trying: vcs.show('textorientation') # show all available textorientation Expecting: @@ -1073,7 +1068,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1111,7 +1106,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1155,7 +1150,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1612,42 +1607,14 @@ Trying: Expecting nothing ok Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] Expecting nothing ok Trying: a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Expecting: -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1304, in vcs.Canvas.Canvas.gettaylordiagram -Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1310, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3650, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars +ok Trying: a=vcs.init() Expecting nothing @@ -3315,7 +3282,7 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -116 items passed all tests: +117 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill 2 tests in vcs.Canvas.Canvas.canvasid 5 tests in vcs.Canvas.Canvas.canvasinfo @@ -3378,6 +3345,7 @@ ok 9 tests in vcs.Canvas.Canvas.getmeshfill 4 tests in vcs.Canvas.Canvas.getprojection 8 tests in vcs.Canvas.Canvas.getscatter + 5 tests in vcs.Canvas.Canvas.gettaylordiagram 4 tests in vcs.Canvas.Canvas.gettemplate 5 tests in vcs.Canvas.Canvas.gettextcombined 6 tests in vcs.Canvas.Canvas.gettextextent @@ -3433,13 +3401,12 @@ ok 8 tests in vcs.Canvas.Canvas.xyvsy 8 tests in vcs.Canvas.Canvas.yxvsx ********************************************************************** -6 items had failures: +5 items had failures: 1 of 3 in vcs.Canvas.Canvas.createtext 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector - 1 of 7 in vcs.Canvas.Canvas.gettaylordiagram 1 of 4 in vcs.Canvas.Canvas.isinfile -695 tests in 205 items. -689 passed and 6 failed. -***Test Failed*** 6 failures. +693 tests in 205 items. +688 passed and 5 failed. +***Test Failed*** 5 failures. diff --git a/docs/doctest_info/scripts/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py index 30d13af31..e2f84341f 100644 --- a/docs/doctest_info/scripts/doctest_vcs.py +++ b/docs/doctest_info/scripts/doctest_vcs.py @@ -45,7 +45,7 @@ def log_stats(module_name, verbose): print ("Done logging "+module_name+".md") -# note: will only consume the first full error +# note: will only consume the first full error (maybe) def consume_entry(readfile, writefile, endpoints, prepend="", append=""): more = True private = re.compile("_[_A-z0-9]+") diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index a5e3f310b..18e81cdb8 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -342,6 +342,10 @@ def populate_docstrings(type_dict, target_dict, docstring, method): sp_parent = 'default_'+obj_name+'_' d['sp_parent'] = "'%s'" % sp_parent d['parent'] = d['sp_parent'] + # From here to the end of the inner for loop is intended to be a section for specific use-cases for the + # template keywords. This section aims to take the 'method' parameter and use it to insert proper examples for + # keywords which fit that method. + # section for manageElements 'get' methods if method == 'get': example1 = """%(tc)s @@ -356,9 +360,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): # TODO: replace with something that can actually be plotted by taylordiagram() if obj_name is "taylordiagram": d['slabs'] = """ - >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file - >>> slab1 = f('u') # use the data file to create a cdms2 slab""" + >>> slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]]""" else: d['slabs'] = """ >>> import cdms2 # Need cdms2 to create a slab @@ -368,8 +370,8 @@ def populate_docstrings(type_dict, target_dict, docstring, method): if numslabs == 2: slab2 = """ >>> slab2 = f('v') # need 2 slabs, so get another""" - d['slabs'] = d['slabs'] + slab2 - d['args'] = d['args'] + ", slab2" + d['slabs'] += slab2 + d['args'] += ", slab2" # for vcs objects that have a self-named plotting function, i.e. fillarea() if type_dict[obj_type][obj_name]['callable']: plot = """%(slabs)s @@ -628,10 +630,26 @@ def populate_docstrings(type_dict, target_dict, docstring, method): } } # docstrings is a dictionary to store all docstring dictionaries and their associated docstrings -# this will be used to populate all the docstrings in the same for loop (should better utilize locality) +# this will be used to populate all the docstrings in the same for loop (should better utilize locality (maybe)) docstrings = {} -# for any of the doc templates, see the obj_details dict above for explanation of the keywords in the template. +# keywords in these docstring tmeplates relate somewhat to keys described in obj_details above. +# Population of these strings is taken care of in the populate_docstrings function. + +# For the sanity of future developers, I'll document the meaning of the keys I used and the convention I followed: +# Keys: +# 'name' : the name of the VCS object being referred to (boxfill, 1d, textorientation, etc.). This is used to talk +# about the object and to call the object's get/create functions in most cases. +# 'type' : the type of object we are dealing with. Mostly just 'secondary method' or 'graphics method'. +# 'sp_parent' : used if the object doesn't have a sensible default for its *get* function. Examples of objects which +# need this are the 1d family of objects and textcombined objects. If the object does have a sensible default, +# (e.g. getboxfill()) this key should be an empty string. When providing a string to 'sp_parent', it should be +# of format "'blah'" or '"blah"', and if multiple arguments are needed, they should be provided ('"blah", "blah"') +# 'tc' : no textcombined objects exist by default in VCS, so this key is for an entry that will create one when +# it is needed for an example. All other times, it will be an empty string. +# 'call' : the name to be used for a call to the object's *get* function. Only really used for textcombined, and only +# in the context of the script() function. All other cases, 'call' == 'name' +# 'ex(1|2)' : these should be filled in with code examples in doctest format. scriptdoc = """ Saves out a copy of the %(name)s %(type)s in JSON, or Python format to a designated file. @@ -656,7 +674,8 @@ def populate_docstrings(type_dict, target_dict, docstring, method): >>> ex.script('filename.py') # Append to a Python script named 'filename.py' >>> ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. - :param script_filename: Output name of the script file. If no extension is specified, a .json object is created. + :param script_filename: Output name of the script file. + If no extension is specified, a .json object is created. :type script_filename: str :param mode: Either 'w' for replace, or 'a' for append. Defaults to 'a', if not specified. From 37d2a40b7cb7de8f04b82cfb14868066ec9d11f5 Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 27 Dec 2016 15:21:56 -0800 Subject: [PATCH 28/45] Added example to mtics doc --- docs/doctest_info/markdown/Canvas.md | 8 +- docs/doctest_info/markdown/boxfill.md | 49 ------- docs/doctest_info/markdown/isofill.md | 44 ------- docs/doctest_info/markdown/isoline.md | 49 ------- docs/doctest_info/markdown/manageElements.md | 31 +---- docs/doctest_info/markdown/meshfill.md | 10 +- docs/doctest_info/markdown/queries.md | 2 +- docs/doctest_info/markdown/template.md | 6 +- docs/doctest_info/markdown/textcombined.md | 2 +- docs/doctest_info/markdown/unified1D.md | 42 ------ docs/doctest_info/reports/Canvas.report | 13 +- docs/doctest_info/reports/boxfill.report | 124 ++++++++++-------- docs/doctest_info/reports/isofill.report | 119 ++++++++++------- docs/doctest_info/reports/isoline.report | 124 ++++++++++-------- .../reports/manageElements.report | 52 ++------ docs/doctest_info/reports/meshfill.report | 81 ++++++++++-- docs/doctest_info/reports/queries.report | 2 +- docs/doctest_info/reports/template.report | 10 +- docs/doctest_info/reports/textcombined.report | 2 +- docs/doctest_info/reports/unified1D.report | 115 +++++++++------- vcs/boxfill.py | 8 +- vcs/isofill.py | 8 +- vcs/isoline.py | 8 +- vcs/meshfill.py | 8 +- vcs/unified1D.py | 6 +- vcs/xmldocs.py | 52 ++++++-- 26 files changed, 462 insertions(+), 513 deletions(-) diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index 06ebdd6bc..79b1eb945 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -20,7 +20,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -32,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -46,7 +46,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.isinfile diff --git a/docs/doctest_info/markdown/boxfill.md b/docs/doctest_info/markdown/boxfill.md index 1e0894779..c538dd8cb 100644 --- a/docs/doctest_info/markdown/boxfill.md +++ b/docs/doctest_info/markdown/boxfill.md @@ -1,46 +1,3 @@ -vcs.boxfill.Gfb.list --------------------- -```python -Failed example: - obj.list() # print boxfill attributes -Expected nothing -Got: - ----------Boxfill (Gfb) member (attribute) listings ---------- - graphics method = Gfb - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - boxfill_type = linear - level_1 = 1e+20 - level_2 = 1e+20 - levels = [1e+20, 1e+20] - color_1 = 0 - color_2 = 255 - fillareacolors = None - fillareastyle = solid - fillareaindices = [1] - fillareaopacity = [] - legend = None - ext_1 = False - ext_2 = False - missing = (0.0, 0.0, 0.0, 100.0) -``` - Missing Doctests ---------------- :x:``` vcs.boxfill``` @@ -57,8 +14,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.colors``` -:x:``` vcs.boxfill.Gfb.datawc``` - :x:``` vcs.boxfill.Gfb.datawc_calendar``` :x:``` vcs.boxfill.Gfb.datawc_timeunits``` @@ -105,8 +60,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.xaxisconvert``` -:x:``` vcs.boxfill.Gfb.xmtics``` - :x:``` vcs.boxfill.Gfb.xmtics1``` :x:``` vcs.boxfill.Gfb.xmtics2``` @@ -119,8 +72,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.yaxisconvert``` -:x:``` vcs.boxfill.Gfb.ymtics``` - :x:``` vcs.boxfill.Gfb.ymtics1``` :x:``` vcs.boxfill.Gfb.ymtics2``` diff --git a/docs/doctest_info/markdown/isofill.md b/docs/doctest_info/markdown/isofill.md index 1b36c4e38..cbda1d44d 100644 --- a/docs/doctest_info/markdown/isofill.md +++ b/docs/doctest_info/markdown/isofill.md @@ -1,41 +1,3 @@ -vcs.isofill.Gfi.list --------------------- -```python -Failed example: - obj.list() # print isofill attributes -Expected nothing -Got: - ----------Isofill (Gfi) member (attribute) listings ---------- - graphics method = Gfi - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - missing = (0.0, 0.0, 0.0, 100.0) - ext_1 = False - ext_2 = False - fillareastyle = solid - fillareaindices = [1] - fillareacolors = [1] - fillareaopacity = [] - levels = ([1.0000000200408773e+20, 1.0000000200408773e+20],) - legend = None -``` - vcs.isofill.Gfi.script ---------------------- ```python @@ -62,8 +24,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi.colors``` -:x:``` vcs.isofill.Gfi.datawc``` - :x:``` vcs.isofill.Gfi.datawc_calendar``` :x:``` vcs.isofill.Gfi.datawc_timeunits``` @@ -102,8 +62,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi.xaxisconvert``` -:x:``` vcs.isofill.Gfi.xmtics``` - :x:``` vcs.isofill.Gfi.xmtics1``` :x:``` vcs.isofill.Gfi.xmtics2``` @@ -116,8 +74,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi.yaxisconvert``` -:x:``` vcs.isofill.Gfi.ymtics``` - :x:``` vcs.isofill.Gfi.ymtics1``` :x:``` vcs.isofill.Gfi.ymtics2``` diff --git a/docs/doctest_info/markdown/isoline.md b/docs/doctest_info/markdown/isoline.md index a4812af0b..233c0fd96 100644 --- a/docs/doctest_info/markdown/isoline.md +++ b/docs/doctest_info/markdown/isoline.md @@ -1,46 +1,3 @@ -vcs.isoline.Gi.list -------------------- -```python -Failed example: - obj.list() # print isoline attributes -Expected nothing -Got: - ----------Isoline (Gi) member (attribute) listings ---------- - graphics method = Gi - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - label = n - labelskipdistance = 0.0 - labelbackgroundcolors = None - labelbackgroundopacities = None - linetypes = ['solid'] - linecolors = [(0.0, 0.0, 0.0, 100.0)] - linewidths = [1.0] - text = None - textcolors = None - level = [[0.0, 1.0000000200408773e+20]] - clockwise = [0] - scale = [1.0] - angle = [35.0] - spacing = [1.0] -``` - Missing Doctests ---------------- :x:``` vcs.isoline``` @@ -53,8 +10,6 @@ Missing Doctests :x:``` vcs.isoline.Gi.colormap``` -:x:``` vcs.isoline.Gi.datawc``` - :x:``` vcs.isoline.Gi.datawc_calendar``` :x:``` vcs.isoline.Gi.datawc_timeunits``` @@ -103,8 +58,6 @@ Missing Doctests :x:``` vcs.isoline.Gi.xaxisconvert``` -:x:``` vcs.isoline.Gi.xmtics``` - :x:``` vcs.isoline.Gi.xmtics1``` :x:``` vcs.isoline.Gi.xmtics2``` @@ -117,8 +70,6 @@ Missing Doctests :x:``` vcs.isoline.Gi.yaxisconvert``` -:x:``` vcs.isoline.Gi.ymtics``` - :x:``` vcs.isoline.Gi.ymtics1``` :x:``` vcs.isoline.Gi.ymtics2``` diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md index 4b37152e7..0b378cb40 100644 --- a/docs/doctest_info/markdown/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -22,7 +22,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar @@ -34,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -46,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -60,30 +60,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.manageElements.gettaylordiagram ------------------------------------ -```python -Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1310, in taylordiagram - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3650, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/meshfill.md b/docs/doctest_info/markdown/meshfill.md index 0aae06497..013e360b8 100644 --- a/docs/doctest_info/markdown/meshfill.md +++ b/docs/doctest_info/markdown/meshfill.md @@ -3,7 +3,9 @@ vcs.meshfill.Gfm.list ```python Failed example: obj.list() # print meshfill attributes -Expected nothing +Expected: + ----------...---------- + ... Got: ---------- Meshfill (Gmf) member (attribute) listings --------- graphics method = Gfm @@ -64,8 +66,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm.colors``` -:x:``` vcs.meshfill.Gfm.datawc``` - :x:``` vcs.meshfill.Gfm.datawc_calendar``` :x:``` vcs.meshfill.Gfm.datawc_timeunits``` @@ -108,8 +108,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm.xaxisconvert``` -:x:``` vcs.meshfill.Gfm.xmtics``` - :x:``` vcs.meshfill.Gfm.xmtics1``` :x:``` vcs.meshfill.Gfm.xmtics2``` @@ -122,8 +120,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm.yaxisconvert``` -:x:``` vcs.meshfill.Gfm.ymtics``` - :x:``` vcs.meshfill.Gfm.ymtics1``` :x:``` vcs.meshfill.Gfm.ymtics2``` diff --git a/docs/doctest_info/markdown/queries.md b/docs/doctest_info/markdown/queries.md index 2b8aa6df0..cee439479 100644 --- a/docs/doctest_info/markdown/queries.md +++ b/docs/doctest_info/markdown/queries.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md index 3c84b60a8..4e7ffa71e 100644 --- a/docs/doctest_info/markdown/template.md +++ b/docs/doctest_info/markdown/template.md @@ -5,7 +5,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] ``` vcs.template.P.list @@ -13,7 +13,9 @@ vcs.template.P.list ```python Failed example: obj.list() # print template attributes -Expected nothing +Expected: + ----------...---------- + ... Got: ----------Template (P) member (attribute) listings ---------- method = P diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md index 2b553eb56..0ccbf302d 100644 --- a/docs/doctest_info/markdown/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script diff --git a/docs/doctest_info/markdown/unified1D.md b/docs/doctest_info/markdown/unified1D.md index 467477aed..c7930d29f 100644 --- a/docs/doctest_info/markdown/unified1D.md +++ b/docs/doctest_info/markdown/unified1D.md @@ -1,39 +1,3 @@ -vcs.unified1D.G1d.list ----------------------- -```python -Failed example: - obj.list() # print 1d attributes -Expected nothing -Got: - ----------Yxvsx (GYx) member (attribute) listings ---------- - graphics method = G1d - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - linetype = solid - linecolor = (0.0, 0.0, 0.0, 100.0) - linewidth = 1 - marker = dot - markercolor = (0.0, 0.0, 0.0, 100.0) - markersize = 1 - flip = False -``` - Missing Doctests ---------------- :x:``` vcs.unified1D``` @@ -42,8 +6,6 @@ Missing Doctests :x:``` vcs.unified1D.G1d.colormap``` -:x:``` vcs.unified1D.G1d.datawc``` - :x:``` vcs.unified1D.G1d.datawc_calendar``` :x:``` vcs.unified1D.G1d.datawc_timeunits``` @@ -84,8 +46,6 @@ Missing Doctests :x:``` vcs.unified1D.G1d.xaxisconvert``` -:x:``` vcs.unified1D.G1d.xmtics``` - :x:``` vcs.unified1D.G1d.xmtics1``` :x:``` vcs.unified1D.G1d.xmtics2``` @@ -98,8 +58,6 @@ Missing Doctests :x:``` vcs.unified1D.G1d.yaxisconvert``` -:x:``` vcs.unified1D.G1d.ymtics``` - :x:``` vcs.unified1D.G1d.ymtics1``` :x:``` vcs.unified1D.G1d.ymtics2``` diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index e32b37530..3c2d246b9 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -584,7 +584,12 @@ Failed example: pass Expected nothing Got: - + +Trying: + vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' +Expecting: + [...'EXAMPLE_tt:::EXAMPLE_tto'...] +ok Trying: vcs.show('textorientation') # show all available textorientation Expecting: @@ -1068,7 +1073,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1106,7 +1111,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1150,7 +1155,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/boxfill.report b/docs/doctest_info/reports/boxfill.report index dde4d4f61..9f1c12d0d 100644 --- a/docs/doctest_info/reports/boxfill.report +++ b/docs/doctest_info/reports/boxfill.report @@ -3,52 +3,32 @@ Trying: Expecting nothing ok Trying: - obj=a.getboxfill() # default + ex=a.createboxfill('boxfill_dwc') Expecting nothing ok Trying: - obj.list() # print boxfill attributes + ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 +Expecting nothing +ok +Trying: + ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 +Expecting: + (0.0, 0.1, 1.0, 1.1) +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.getboxfill() # default Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/boxfill.py", line 993, in vcs.boxfill.Gfb.list -Failed example: +ok +Trying: obj.list() # print boxfill attributes -Expected nothing -Got: - ----------Boxfill (Gfb) member (attribute) listings ---------- - graphics method = Gfb - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - boxfill_type = linear - level_1 = 1e+20 - level_2 = 1e+20 - levels = [1e+20, 1e+20] - color_1 = 0 - color_2 = 255 - fillareacolors = None - fillareastyle = solid - fillareaindices = [1] - fillareaopacity = [] - legend = None - ext_1 = False - ext_2 = False - missing = (0.0, 0.0, 0.0, 100.0) +Expecting: + ----------...---------- + ... +ok Trying: b=vcs.createboxfill() Expecting nothing @@ -98,14 +78,54 @@ Trying: Expecting nothing ok Trying: - ex=a.createboxfill('xyscale_ex') # create a boxfill to work with + ex=vcs.createboxfill() +Expecting nothing +ok +Trying: + ex.xmtics("lon5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.xmintic1.priority = 1 # plotting will now show xmtics +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.createboxfill('boxfill_xys') # make a boxfill Expecting nothing ok Trying: ex.xyscale(xat='linear', yat='linear') Expecting nothing ok -96 items had no tests: +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=vcs.createboxfill() +Expecting nothing +ok +Trying: + ex.ymtics("lat5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.ymintic1.priority = 1 # plotting will now show ymtics +Expecting nothing +ok +93 items had no tests: vcs.boxfill vcs.boxfill.Gfb vcs.boxfill.Gfb.__init__ @@ -164,7 +184,6 @@ ok vcs.boxfill.Gfb.color_2 vcs.boxfill.Gfb.colormap vcs.boxfill.Gfb.colors - vcs.boxfill.Gfb.datawc vcs.boxfill.Gfb.datawc_calendar vcs.boxfill.Gfb.datawc_timeunits vcs.boxfill.Gfb.datawc_x1 @@ -188,27 +207,26 @@ ok vcs.boxfill.Gfb.name vcs.boxfill.Gfb.projection vcs.boxfill.Gfb.xaxisconvert - vcs.boxfill.Gfb.xmtics vcs.boxfill.Gfb.xmtics1 vcs.boxfill.Gfb.xmtics2 vcs.boxfill.Gfb.xticlabels vcs.boxfill.Gfb.xticlabels1 vcs.boxfill.Gfb.xticlabels2 vcs.boxfill.Gfb.yaxisconvert - vcs.boxfill.Gfb.ymtics vcs.boxfill.Gfb.ymtics1 vcs.boxfill.Gfb.ymtics2 vcs.boxfill.Gfb.yticlabels vcs.boxfill.Gfb.yticlabels1 vcs.boxfill.Gfb.yticlabels2 vcs.boxfill.process_src -3 items passed all tests: +7 items passed all tests: + 4 tests in vcs.boxfill.Gfb.datawc + 3 tests in vcs.boxfill.Gfb.list 6 tests in vcs.boxfill.Gfb.rename 4 tests in vcs.boxfill.Gfb.script + 5 tests in vcs.boxfill.Gfb.xmtics 3 tests in vcs.boxfill.Gfb.xyscale -********************************************************************** -1 items had failures: - 1 of 3 in vcs.boxfill.Gfb.list -16 tests in 100 items. -15 passed and 1 failed. -***Test Failed*** 1 failures. + 5 tests in vcs.boxfill.Gfb.ymtics +30 tests in 100 items. +30 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/reports/isofill.report b/docs/doctest_info/reports/isofill.report index c2f8761fa..aa195b351 100644 --- a/docs/doctest_info/reports/isofill.report +++ b/docs/doctest_info/reports/isofill.report @@ -3,47 +3,32 @@ Trying: Expecting nothing ok Trying: - obj=a.getisofill() # default + ex=a.createisofill('isofill_dwc') Expecting nothing ok Trying: - obj.list() # print isofill attributes + ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 752, in vcs.isofill.Gfi.list -Failed example: +ok +Trying: + ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 +Expecting: + (0.0, 0.1, 1.0, 1.1) +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.getisofill() # default +Expecting nothing +ok +Trying: obj.list() # print isofill attributes -Expected nothing -Got: - ----------Isofill (Gfi) member (attribute) listings ---------- - graphics method = Gfi - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - missing = (0.0, 0.0, 0.0, 100.0) - ext_1 = False - ext_2 = False - fillareastyle = solid - fillareaindices = [1] - fillareacolors = [1] - fillareaopacity = [] - levels = ([1.0000000200408773e+20, 1.0000000200408773e+20],) - legend = None +Expecting: + ----------...---------- + ... +ok Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -77,14 +62,54 @@ Trying: Expecting nothing ok Trying: - ex=a.createisofill('xyscale_ex') # create a isofill to work with + ex=vcs.createisofill() +Expecting nothing +ok +Trying: + ex.xmtics("lon5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.xmintic1.priority = 1 # plotting will now show xmtics +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.createisofill('isofill_xys') # make a isofill Expecting nothing ok Trying: ex.xyscale(xat='linear', yat='linear') Expecting nothing ok -82 items had no tests: +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=vcs.createisofill() +Expecting nothing +ok +Trying: + ex.ymtics("lat5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.ymintic1.priority = 1 # plotting will now show ymtics +Expecting nothing +ok +79 items had no tests: vcs.isofill vcs.isofill.Gfi vcs.isofill.Gfi.__init__ @@ -132,7 +157,6 @@ ok vcs.isofill.Gfi._setyticlabels2 vcs.isofill.Gfi.colormap vcs.isofill.Gfi.colors - vcs.isofill.Gfi.datawc vcs.isofill.Gfi.datawc_calendar vcs.isofill.Gfi.datawc_timeunits vcs.isofill.Gfi.datawc_x1 @@ -152,14 +176,12 @@ ok vcs.isofill.Gfi.name vcs.isofill.Gfi.projection vcs.isofill.Gfi.xaxisconvert - vcs.isofill.Gfi.xmtics vcs.isofill.Gfi.xmtics1 vcs.isofill.Gfi.xmtics2 vcs.isofill.Gfi.xticlabels vcs.isofill.Gfi.xticlabels1 vcs.isofill.Gfi.xticlabels2 vcs.isofill.Gfi.yaxisconvert - vcs.isofill.Gfi.ymtics vcs.isofill.Gfi.ymtics1 vcs.isofill.Gfi.ymtics2 vcs.isofill.Gfi.yticlabels @@ -167,12 +189,15 @@ ok vcs.isofill.Gfi.yticlabels2 vcs.isofill.load vcs.isofill.process_src -1 items passed all tests: +5 items passed all tests: + 4 tests in vcs.isofill.Gfi.datawc + 3 tests in vcs.isofill.Gfi.list + 5 tests in vcs.isofill.Gfi.xmtics 3 tests in vcs.isofill.Gfi.xyscale + 5 tests in vcs.isofill.Gfi.ymtics ********************************************************************** -2 items had failures: - 1 of 3 in vcs.isofill.Gfi.list +1 items had failures: 1 of 4 in vcs.isofill.Gfi.script -10 tests in 85 items. -8 passed and 2 failed. -***Test Failed*** 2 failures. +24 tests in 85 items. +23 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/isoline.report b/docs/doctest_info/reports/isoline.report index 1ac8148da..332654cf4 100644 --- a/docs/doctest_info/reports/isoline.report +++ b/docs/doctest_info/reports/isoline.report @@ -3,52 +3,32 @@ Trying: Expecting nothing ok Trying: - obj=a.getisoline() # default + ex=a.createisoline('isoline_dwc') Expecting nothing ok Trying: - obj.list() # print isoline attributes + ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 +Expecting nothing +ok +Trying: + ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 +Expecting: + (0.0, 0.1, 1.0, 1.1) +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.getisoline() # default Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isoline.py", line 1067, in vcs.isoline.Gi.list -Failed example: +ok +Trying: obj.list() # print isoline attributes -Expected nothing -Got: - ----------Isoline (Gi) member (attribute) listings ---------- - graphics method = Gi - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - label = n - labelskipdistance = 0.0 - labelbackgroundcolors = None - labelbackgroundopacities = None - linetypes = ['solid'] - linecolors = [(0.0, 0.0, 0.0, 100.0)] - linewidths = [1.0] - text = None - textcolors = None - level = [[0.0, 1.0000000200408773e+20]] - clockwise = [0] - scale = [1.0] - angle = [35.0] - spacing = [1.0] +Expecting: + ----------...---------- + ... +ok Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -70,14 +50,54 @@ Trying: Expecting nothing ok Trying: - ex=a.createisoline('xyscale_ex') # create a isoline to work with + ex=vcs.createisoline() +Expecting nothing +ok +Trying: + ex.xmtics("lon5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.xmintic1.priority = 1 # plotting will now show xmtics +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.createisoline('isoline_xys') # make a isoline Expecting nothing ok Trying: ex.xyscale(xat='linear', yat='linear') Expecting nothing ok -113 items had no tests: +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=vcs.createisoline() +Expecting nothing +ok +Trying: + ex.ymtics("lat5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.ymintic1.priority = 1 # plotting will now show ymtics +Expecting nothing +ok +110 items had no tests: vcs.isoline vcs.isoline.Gi vcs.isoline.Gi.__init__ @@ -150,7 +170,6 @@ ok vcs.isoline.Gi.angle vcs.isoline.Gi.clockwise vcs.isoline.Gi.colormap - vcs.isoline.Gi.datawc vcs.isoline.Gi.datawc_calendar vcs.isoline.Gi.datawc_timeunits vcs.isoline.Gi.datawc_x1 @@ -175,14 +194,12 @@ ok vcs.isoline.Gi.text vcs.isoline.Gi.textcolors vcs.isoline.Gi.xaxisconvert - vcs.isoline.Gi.xmtics vcs.isoline.Gi.xmtics1 vcs.isoline.Gi.xmtics2 vcs.isoline.Gi.xticlabels vcs.isoline.Gi.xticlabels1 vcs.isoline.Gi.xticlabels2 vcs.isoline.Gi.yaxisconvert - vcs.isoline.Gi.ymtics vcs.isoline.Gi.ymtics1 vcs.isoline.Gi.ymtics2 vcs.isoline.Gi.yticlabels @@ -191,12 +208,13 @@ ok vcs.isoline.get_att_from_sub vcs.isoline.load vcs.isoline.process_src -2 items passed all tests: +6 items passed all tests: + 4 tests in vcs.isoline.Gi.datawc + 3 tests in vcs.isoline.Gi.list 4 tests in vcs.isoline.Gi.script + 5 tests in vcs.isoline.Gi.xmtics 3 tests in vcs.isoline.Gi.xyscale -********************************************************************** -1 items had failures: - 1 of 3 in vcs.isoline.Gi.list -10 tests in 116 items. -9 passed and 1 failed. -***Test Failed*** 1 failures. + 5 tests in vcs.isoline.Gi.ymtics +24 tests in 116 items. +24 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report index 501a2d6a7..fae8b6760 100644 --- a/docs/doctest_info/reports/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -394,7 +394,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -567,7 +567,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -605,7 +605,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -649,7 +649,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -960,42 +960,14 @@ Trying: Expecting nothing ok Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] Expecting nothing ok Trying: a.taylordiagram(ex, slab1) # plot using specified taylordiagram object Expecting: -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 266, in vcs.manageElements.gettaylordiagram -Failed example: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1310, in taylordiagram - return self.__plot(arglist, parms) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 3650, in __plot - t.plot(arglist[0], canvas=self, template=arglist[2], **keyargs) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1967, in plot - self.draw(canvas, data) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/taylor.py", line 1207, in draw - d0 = float(data[i][0]) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/numpy/ma/core.py", line 4182, in __float__ - raise TypeError("Only length-1 arrays can be converted " - TypeError: Only length-1 arrays can be converted to Python scalars +ok Trying: a=vcs.init() Expecting nothing @@ -1267,7 +1239,7 @@ ok vcs.manageElements.removeTm vcs.manageElements.removeTo vcs.manageElements.removeTt -44 items passed all tests: +45 items passed all tests: 4 tests in vcs.manageElements.check_name_source 4 tests in vcs.manageElements.create1d 3 tests in vcs.manageElements.create3d_dual_scalar @@ -1302,6 +1274,7 @@ ok 9 tests in vcs.manageElements.getmeshfill 4 tests in vcs.manageElements.getprojection 8 tests in vcs.manageElements.getscatter + 5 tests in vcs.manageElements.gettaylordiagram 4 tests in vcs.manageElements.gettemplate 5 tests in vcs.manageElements.gettextcombined 4 tests in vcs.manageElements.gettextorientation @@ -1313,12 +1286,11 @@ ok 3 tests in vcs.manageElements.removeobject 7 tests in vcs.manageElements.setLineAttributes ********************************************************************** -5 items had failures: +4 items had failures: 2 of 3 in vcs.manageElements.createtext 1 of 8 in vcs.manageElements.get3d_dual_scalar 1 of 7 in vcs.manageElements.get3d_scalar 1 of 8 in vcs.manageElements.get3d_vector - 1 of 7 in vcs.manageElements.gettaylordiagram -253 tests in 71 items. -247 passed and 6 failed. -***Test Failed*** 6 failures. +251 tests in 71 items. +246 passed and 5 failed. +***Test Failed*** 5 failures. diff --git a/docs/doctest_info/reports/meshfill.report b/docs/doctest_info/reports/meshfill.report index 6e3ecb20d..a6ce3bbb0 100644 --- a/docs/doctest_info/reports/meshfill.report +++ b/docs/doctest_info/reports/meshfill.report @@ -2,18 +2,39 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + ex=a.createmeshfill('meshfill_dwc') +Expecting nothing +ok +Trying: + ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 +Expecting nothing +ok +Trying: + ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 +Expecting: + (0.0, 0.1, 1.0, 1.1) +ok +Trying: + a=vcs.init() +Expecting nothing +ok Trying: obj=a.getmeshfill() # default Expecting nothing ok Trying: obj.list() # print meshfill attributes -Expecting nothing +Expecting: + ----------...---------- + ... ********************************************************************** File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 779, in vcs.meshfill.Gfm.list Failed example: obj.list() # print meshfill attributes -Expected nothing +Expected: + ----------...---------- + ... Got: ---------- Meshfill (Gmf) member (attribute) listings --------- graphics method = Gfm @@ -79,14 +100,54 @@ Trying: Expecting nothing ok Trying: - ex=a.createmeshfill('xyscale_ex') # create a meshfill to work with + ex=vcs.createmeshfill() +Expecting nothing +ok +Trying: + ex.xmtics("lon5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.xmintic1.priority = 1 # plotting will now show xmtics +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.createmeshfill('meshfill_xys') # make a meshfill Expecting nothing ok Trying: ex.xyscale(xat='linear', yat='linear') Expecting nothing ok -88 items had no tests: +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=vcs.createmeshfill() +Expecting nothing +ok +Trying: + ex.ymtics("lat5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.ymintic1.priority = 1 # plotting will now show ymtics +Expecting nothing +ok +85 items had no tests: vcs.meshfill vcs.meshfill.Gfm vcs.meshfill.Gfm.__init__ @@ -138,7 +199,6 @@ ok vcs.meshfill.Gfm._setyticlabels2 vcs.meshfill.Gfm.colormap vcs.meshfill.Gfm.colors - vcs.meshfill.Gfm.datawc vcs.meshfill.Gfm.datawc_calendar vcs.meshfill.Gfm.datawc_timeunits vcs.meshfill.Gfm.datawc_x1 @@ -160,14 +220,12 @@ ok vcs.meshfill.Gfm.projection vcs.meshfill.Gfm.wrap vcs.meshfill.Gfm.xaxisconvert - vcs.meshfill.Gfm.xmtics vcs.meshfill.Gfm.xmtics1 vcs.meshfill.Gfm.xmtics2 vcs.meshfill.Gfm.xticlabels vcs.meshfill.Gfm.xticlabels1 vcs.meshfill.Gfm.xticlabels2 vcs.meshfill.Gfm.yaxisconvert - vcs.meshfill.Gfm.ymtics vcs.meshfill.Gfm.ymtics1 vcs.meshfill.Gfm.ymtics2 vcs.meshfill.Gfm.yticlabels @@ -175,12 +233,15 @@ ok vcs.meshfill.Gfm.yticlabels2 vcs.meshfill.load vcs.meshfill.process_src -1 items passed all tests: +4 items passed all tests: + 4 tests in vcs.meshfill.Gfm.datawc + 5 tests in vcs.meshfill.Gfm.xmtics 3 tests in vcs.meshfill.Gfm.xyscale + 5 tests in vcs.meshfill.Gfm.ymtics ********************************************************************** 2 items had failures: 1 of 3 in vcs.meshfill.Gfm.list 1 of 4 in vcs.meshfill.Gfm.script -10 tests in 91 items. -8 passed and 2 failed. +24 tests in 91 items. +22 passed and 2 failed. ***Test Failed*** 2 failures. diff --git a/docs/doctest_info/reports/queries.report b/docs/doctest_info/reports/queries.report index 92d521edc..698411acc 100644 --- a/docs/doctest_info/reports/queries.report +++ b/docs/doctest_info/reports/queries.report @@ -429,7 +429,7 @@ Failed example: pass Expected nothing Got: - + Trying: a.show('textcombined') # Show all available textcombined Expecting: diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report index 28071f1cc..b6dfbaf06 100644 --- a/docs/doctest_info/reports/template.report +++ b/docs/doctest_info/reports/template.report @@ -31,7 +31,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] Trying: x = vcs.init() Expecting nothing @@ -91,12 +91,16 @@ Expecting nothing ok Trying: obj.list() # print template attributes -Expecting nothing +Expecting: + ----------...---------- + ... ********************************************************************** File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 546, in vcs.template.P.list Failed example: obj.list() # print template attributes -Expected nothing +Expected: + ----------...---------- + ... Got: ----------Template (P) member (attribute) listings ---------- method = P diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report index 669e74660..9e51d8062 100644 --- a/docs/doctest_info/reports/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing diff --git a/docs/doctest_info/reports/unified1D.report b/docs/doctest_info/reports/unified1D.report index afbf9981b..908ea439b 100644 --- a/docs/doctest_info/reports/unified1D.report +++ b/docs/doctest_info/reports/unified1D.report @@ -3,45 +3,32 @@ Trying: Expecting nothing ok Trying: - obj=a.get1d('default') # default + ex=a.create1d('1d_dwc') Expecting nothing ok Trying: - obj.list() # print 1d attributes + ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 +Expecting nothing +ok +Trying: + ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 +Expecting: + (0.0, 0.1, 1.0, 1.1) +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + obj=a.get1d('default') # default Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/unified1D.py", line 824, in vcs.unified1D.G1d.list -Failed example: +ok +Trying: obj.list() # print 1d attributes -Expected nothing -Got: - ----------Yxvsx (GYx) member (attribute) listings ---------- - graphics method = G1d - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - linetype = solid - linecolor = (0.0, 0.0, 0.0, 100.0) - linewidth = 1 - marker = dot - markercolor = (0.0, 0.0, 0.0, 100.0) - markersize = 1 - flip = False +Expecting: + ----------...---------- + ... +ok Trying: a=vcs.init() # Make a Canvas object to work with Expecting nothing @@ -58,7 +45,47 @@ Trying: ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. Expecting nothing ok -95 items had no tests: +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=vcs.create1d() +Expecting nothing +ok +Trying: + ex.xmtics("lon5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.xmintic1.priority = 1 # plotting will now show xmtics +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=vcs.create1d() +Expecting nothing +ok +Trying: + ex.ymtics("lat5") # every 5 degrees +Expecting nothing +ok +Trying: + tmp=vcs.createtemplate() # custom template to plot minitics +Expecting nothing +ok +Trying: + tmp.ymintic1.priority = 1 # plotting will now show ymtics +Expecting nothing +ok +92 items had no tests: vcs.unified1D vcs.unified1D.G1d vcs.unified1D.G1d.__init__ @@ -118,7 +145,6 @@ ok vcs.unified1D.G1d._setyticlabels1 vcs.unified1D.G1d._setyticlabels2 vcs.unified1D.G1d.colormap - vcs.unified1D.G1d.datawc vcs.unified1D.G1d.datawc_calendar vcs.unified1D.G1d.datawc_timeunits vcs.unified1D.G1d.datawc_x1 @@ -139,14 +165,12 @@ ok vcs.unified1D.G1d.setLineAttributes vcs.unified1D.G1d.smooth vcs.unified1D.G1d.xaxisconvert - vcs.unified1D.G1d.xmtics vcs.unified1D.G1d.xmtics1 vcs.unified1D.G1d.xmtics2 vcs.unified1D.G1d.xticlabels vcs.unified1D.G1d.xticlabels1 vcs.unified1D.G1d.xticlabels2 vcs.unified1D.G1d.yaxisconvert - vcs.unified1D.G1d.ymtics vcs.unified1D.G1d.ymtics1 vcs.unified1D.G1d.ymtics2 vcs.unified1D.G1d.yticlabels @@ -154,11 +178,12 @@ ok vcs.unified1D.G1d.yticlabels2 vcs.unified1D.load vcs.unified1D.process_src -1 items passed all tests: +5 items passed all tests: + 4 tests in vcs.unified1D.G1d.datawc + 3 tests in vcs.unified1D.G1d.list 4 tests in vcs.unified1D.G1d.script -********************************************************************** -1 items had failures: - 1 of 3 in vcs.unified1D.G1d.list -7 tests in 97 items. -6 passed and 1 failed. -***Test Failed*** 1 failures. + 5 tests in vcs.unified1D.G1d.xmtics + 5 tests in vcs.unified1D.G1d.ymtics +21 tests in 97 items. +21 passed and 0 failed. +Test passed. diff --git a/vcs/boxfill.py b/vcs/boxfill.py index 3e1ab22ca..27c61caf7 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -843,7 +843,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc + xmtics.__doc__ = xmldocs.xmticsdoc % {"name" : "boxfill"} def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -853,7 +853,7 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc + ymtics.__doc__ = xmldocs.ymticsdoc % {"name" : "boxfill"} def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): """ @@ -863,12 +863,12 @@ def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc + datawc.__doc__ = xmldocs.datawcdoc % {"name": "boxfill"} def xyscale(self, xat='linear', yat='linear'): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('boxfill',) * 3) + xyscale.__doc__ = xmldocs.xyscaledoc % (('boxfill',) * 4) def getlevels(self, varmin, varmax): if self.boxfill_type == "custom": diff --git a/vcs/isofill.py b/vcs/isofill.py index 256f0e8db..66c30cd65 100755 --- a/vcs/isofill.py +++ b/vcs/isofill.py @@ -687,7 +687,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc + xmtics.__doc__ = xmldocs.xmticsdoc % {"name": "isofill"} def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -697,19 +697,19 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc + ymtics.__doc__ = xmldocs.ymticsdoc % {"name": "isofill"} def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc + datawc.__doc__ = xmldocs.datawcdoc % {"name": "isofill"} def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('isofill',) * 3) + xyscale.__doc__ = xmldocs.xyscaledoc % (('isofill',) * 4) def list(self): print "", "----------Isofill (Gfi) member (attribute) listings ----------" diff --git a/vcs/isoline.py b/vcs/isoline.py index e704001c1..31ca4b32a 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -995,7 +995,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc + xmtics.__doc__ = xmldocs.xmticsdoc % {"name": "isoline"} def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -1005,19 +1005,19 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc + ymtics.__doc__ = xmldocs.ymticsdoc % {"name": "isoline"} def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc + datawc.__doc__ = xmldocs.datawcdoc % {"name": "isoline"} def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('isoline',) * 3) + xyscale.__doc__ = xmldocs.xyscaledoc % (('isoline',) * 4) def list(self): if (self.name == '__removed_from_VCS__'): diff --git a/vcs/meshfill.py b/vcs/meshfill.py index a74575470..ac48e1863 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -704,7 +704,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc + xmtics.__doc__ = xmldocs.xmticsdoc % {"name": "meshfill"} def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -714,19 +714,19 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc + ymtics.__doc__ = xmldocs.ymticsdoc % {"name": "meshfill"} def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc + datawc.__doc__ = xmldocs.datawcdoc % {"name": "meshfill"} def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('meshfill',) * 3) + xyscale.__doc__ = xmldocs.xyscaledoc % (('meshfill',) * 4) ########################################################################## # # diff --git a/vcs/unified1D.py b/vcs/unified1D.py index 3bc8c3a30..6db91efd8 100644 --- a/vcs/unified1D.py +++ b/vcs/unified1D.py @@ -764,7 +764,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc + xmtics.__doc__ = xmldocs.xmticsdoc % {"name": "1d"} def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -774,14 +774,14 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc + ymtics.__doc__ = xmldocs.ymticsdoc % {"name": "1d"} def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc + datawc.__doc__ = xmldocs.datawcdoc % {"name": "1d"} def list(self): if (self.name == '__removed_from_VCS__'): diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 18e81cdb8..642cf9ca9 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -220,31 +220,59 @@ Sets the %sticlabels1 and %sticlabels2 values on the object :param %stl1: Sets the object's value for :py:attr:`%sticlabels1`. - Must be a str, or a dictionary object with float:str mappings. + Must be a str, or a dictionary object with float:str mappings. :type %stl1: {float:str} or str :param %stl2: Sets the object's value for :py:attr:`%sticlabels2`. - Must be a str, or a dictionary object with float:str mappings. + Must be a str, or a dictionary object with float:str mappings. :type %stl2: {float:str} or str """ xticlabelsdoc = ticlabelsdoc % (('x',) * 8) yticlabelsdoc = ticlabelsdoc % (('y',) * 8) mticsdoc = """ - Sets the %smtics1 and %smtics2 values on the object + Sets the %(x_y)smtics1 and %(x_y)smtics2 values on the object. - :param %smt1: Value for :py:attr:`%smtics1`. Must be a str, or a dictionary object with float:str mappings. - :type %smt1: {float:str} or str + .. note:: + + The mtics attributes are not inherently plotted by the default template. + The example below shows how to apply a custom template and enable it to + plot mtics. + + :Example: + + .. doctest:: %(name)s_%(x_y)smtics - :param %smt2: Value for :py:attr:`%smtics2`. Must be a str, or a dictionary object with float:str mappings. - :type %smt2: {float:str} or str + >>> a=vcs.init() + >>> ex=vcs.create%(name)s() + >>> ex.%(x_y)smtics("%(axis)s5") # every 5 degrees + >>> tmp=vcs.createtemplate() # custom template to plot minitics + >>> tmp.%(x_y)smintic1.priority = 1 # plotting will now show %(x_y)smtics + + :param %(x_y)smt1: Value for :py:attr:`%(x_y)smtics1`. + Must be a str, or a dictionary object with float:str mappings. + :type %(x_y)smt1: dict or str + + :param %(x_y)smt2: Value for :py:attr:`%(x_y)smtics2`. + Must be a str, or a dictionary object with float:str mappings. + :type %(x_y)smt2: dict or str """ -xmticsdoc = mticsdoc % (('x',) * 8) -ymticsdoc = mticsdoc % (('y',) * 8) +xmticsdoc = mticsdoc % {"x_y": "x", "axis": "lon", "name": "%(name)s"} +ymticsdoc = mticsdoc % {"x_y": "y", "axis": "lat", "name": "%(name)s"} datawcdoc = """ Sets the data world coordinates for object + :Example: + + .. doctest:: datawc_%(name)s + + >>> a=vcs.init() + >>> ex=a.create%(name)s('%(name)s_dwc') + >>> ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 + >>> ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 + (0.0, 0.1, 1.0, 1.1) + :param dsp1: Sets the :py:attr:`datawc_y1` property of the object. :type dsp1: float @@ -265,7 +293,7 @@ .. doctest:: xyscale_%s >>> a=vcs.init() - >>> ex=a.create%s('xyscale_ex') # create a %s object + >>> ex=a.create%s('%s_xys') # make a %s >>> ex.xyscale(xat='linear', yat='linear') :param xat: Set value for x axis conversion. @@ -291,6 +319,8 @@ >>> a=vcs.init() >>> obj=a.get%(name)s(%(parent)s) # default >>> obj.list() # print %(name)s attributes + ----------...---------- + ... """ def populate_docstrings(type_dict, target_dict, docstring, method): @@ -344,7 +374,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): d['parent'] = d['sp_parent'] # From here to the end of the inner for loop is intended to be a section for specific use-cases for the # template keywords. This section aims to take the 'method' parameter and use it to insert proper examples for - # keywords which fit that method. + # that method. # section for manageElements 'get' methods if method == 'get': From 51cea2a6313fc39159a4434aab9b6a17fea593dc Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 27 Dec 2016 16:38:56 -0800 Subject: [PATCH 29/45] Adding doctests to xmldocs: --- docs/doctest_info/markdown/Canvas.md | 8 +- docs/doctest_info/markdown/boxfill.md | 50 +++++-- docs/doctest_info/markdown/isofill.md | 50 +++++-- docs/doctest_info/markdown/isoline.md | 4 - docs/doctest_info/markdown/manageElements.md | 8 +- docs/doctest_info/markdown/meshfill.md | 50 +++++-- docs/doctest_info/markdown/queries.md | 2 +- docs/doctest_info/markdown/template.md | 4 +- docs/doctest_info/markdown/textcombined.md | 2 +- docs/doctest_info/markdown/unified1D.md | 4 - docs/doctest_info/reports/Canvas.report | 8 +- docs/doctest_info/reports/boxfill.report | 122 ++++++++++++++++-- docs/doctest_info/reports/isofill.report | 122 ++++++++++++++++-- docs/doctest_info/reports/isoline.report | 44 +++++-- .../reports/manageElements.report | 8 +- docs/doctest_info/reports/meshfill.report | 122 ++++++++++++++++-- docs/doctest_info/reports/queries.report | 2 +- docs/doctest_info/reports/template.report | 4 +- docs/doctest_info/reports/textcombined.report | 2 +- docs/doctest_info/reports/unified1D.report | 44 +++++-- vcs/boxfill.py | 14 +- vcs/colormap.py | 2 +- vcs/displayplot.py | 2 +- vcs/fillarea.py | 2 +- vcs/isofill.py | 10 +- vcs/isoline.py | 6 +- vcs/line.py | 2 +- vcs/marker.py | 2 +- vcs/meshfill.py | 8 +- vcs/png.py | 2 +- vcs/taylor.py | 2 +- vcs/template.py | 2 +- vcs/textcombined.py | 6 +- vcs/textorientation.py | 2 +- vcs/texttable.py | 2 +- vcs/unified1D.py | 6 +- vcs/vector.py | 2 +- vcs/xmldocs.py | 93 ++++++++++--- 38 files changed, 652 insertions(+), 173 deletions(-) diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index 79b1eb945..eb0664930 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -20,7 +20,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -32,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -46,7 +46,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.isinfile diff --git a/docs/doctest_info/markdown/boxfill.md b/docs/doctest_info/markdown/boxfill.md index c538dd8cb..7dffab638 100644 --- a/docs/doctest_info/markdown/boxfill.md +++ b/docs/doctest_info/markdown/boxfill.md @@ -1,3 +1,45 @@ +vcs.boxfill.Gfb.colors +---------------------- +```python +Failed example: + a.plot(ex, array) +Expected nothing +Got: + +``` + +vcs.boxfill.Gfb.exts +-------------------- +```python +Failed example: + ex.exts(True, True) # arrows on both ends +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.exts(True, True) # arrows on both ends + AttributeError: 'function' object has no attribute 'exts' +``` + +vcs.boxfill.Gfb.exts +-------------------- +```python +Failed example: + a.plot(ex, array) +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex, array) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot + arglist = _determine_arg_list(None, actual_args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list + type(args[i])) + vcsError: Unknown type of argument to plotting command. +``` + Missing Doctests ---------------- :x:``` vcs.boxfill``` @@ -12,8 +54,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.colormap``` -:x:``` vcs.boxfill.Gfb.colors``` - :x:``` vcs.boxfill.Gfb.datawc_calendar``` :x:``` vcs.boxfill.Gfb.datawc_timeunits``` @@ -30,8 +70,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.ext_2``` -:x:``` vcs.boxfill.Gfb.exts``` - :x:``` vcs.boxfill.Gfb.fillareacolors``` :x:``` vcs.boxfill.Gfb.fillareaindices``` @@ -64,8 +102,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.xmtics2``` -:x:``` vcs.boxfill.Gfb.xticlabels``` - :x:``` vcs.boxfill.Gfb.xticlabels1``` :x:``` vcs.boxfill.Gfb.xticlabels2``` @@ -76,8 +112,6 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.ymtics2``` -:x:``` vcs.boxfill.Gfb.yticlabels``` - :x:``` vcs.boxfill.Gfb.yticlabels1``` :x:``` vcs.boxfill.Gfb.yticlabels2``` diff --git a/docs/doctest_info/markdown/isofill.md b/docs/doctest_info/markdown/isofill.md index cbda1d44d..977e4013f 100644 --- a/docs/doctest_info/markdown/isofill.md +++ b/docs/doctest_info/markdown/isofill.md @@ -1,3 +1,45 @@ +vcs.isofill.Gfi.colors +---------------------- +```python +Failed example: + a.plot(ex, array) +Expected nothing +Got: + +``` + +vcs.isofill.Gfi.exts +-------------------- +```python +Failed example: + ex.exts(True, True) # arrows on both ends +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.exts(True, True) # arrows on both ends + AttributeError: 'function' object has no attribute 'exts' +``` + +vcs.isofill.Gfi.exts +-------------------- +```python +Failed example: + a.plot(ex, array) +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex, array) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot + arglist = _determine_arg_list(None, actual_args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list + type(args[i])) + vcsError: Unknown type of argument to plotting command. +``` + vcs.isofill.Gfi.script ---------------------- ```python @@ -22,8 +64,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi.colormap``` -:x:``` vcs.isofill.Gfi.colors``` - :x:``` vcs.isofill.Gfi.datawc_calendar``` :x:``` vcs.isofill.Gfi.datawc_timeunits``` @@ -40,8 +80,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi.ext_2``` -:x:``` vcs.isofill.Gfi.exts``` - :x:``` vcs.isofill.Gfi.fillareacolors``` :x:``` vcs.isofill.Gfi.fillareaindices``` @@ -66,8 +104,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi.xmtics2``` -:x:``` vcs.isofill.Gfi.xticlabels``` - :x:``` vcs.isofill.Gfi.xticlabels1``` :x:``` vcs.isofill.Gfi.xticlabels2``` @@ -78,8 +114,6 @@ Missing Doctests :x:``` vcs.isofill.Gfi.ymtics2``` -:x:``` vcs.isofill.Gfi.yticlabels``` - :x:``` vcs.isofill.Gfi.yticlabels1``` :x:``` vcs.isofill.Gfi.yticlabels2``` diff --git a/docs/doctest_info/markdown/isoline.md b/docs/doctest_info/markdown/isoline.md index 233c0fd96..eabc08d6c 100644 --- a/docs/doctest_info/markdown/isoline.md +++ b/docs/doctest_info/markdown/isoline.md @@ -62,8 +62,6 @@ Missing Doctests :x:``` vcs.isoline.Gi.xmtics2``` -:x:``` vcs.isoline.Gi.xticlabels``` - :x:``` vcs.isoline.Gi.xticlabels1``` :x:``` vcs.isoline.Gi.xticlabels2``` @@ -74,8 +72,6 @@ Missing Doctests :x:``` vcs.isoline.Gi.ymtics2``` -:x:``` vcs.isoline.Gi.yticlabels``` - :x:``` vcs.isoline.Gi.yticlabels1``` :x:``` vcs.isoline.Gi.yticlabels2``` diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md index 0b378cb40..d3e1eca71 100644 --- a/docs/doctest_info/markdown/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -22,7 +22,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar @@ -34,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -46,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -60,7 +60,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/meshfill.md b/docs/doctest_info/markdown/meshfill.md index 013e360b8..647dfee0d 100644 --- a/docs/doctest_info/markdown/meshfill.md +++ b/docs/doctest_info/markdown/meshfill.md @@ -1,3 +1,45 @@ +vcs.meshfill.Gfm.colors +----------------------- +```python +Failed example: + a.plot(ex, array, array) +Expected nothing +Got: + +``` + +vcs.meshfill.Gfm.exts +--------------------- +```python +Failed example: + ex.exts(True, True) # arrows on both ends +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.exts(True, True) # arrows on both ends + AttributeError: 'function' object has no attribute 'exts' +``` + +vcs.meshfill.Gfm.exts +--------------------- +```python +Failed example: + a.plot(ex, array, array) +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex, array, array) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot + arglist = _determine_arg_list(None, actual_args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list + type(args[i])) + vcsError: Unknown type of argument to plotting command. +``` + vcs.meshfill.Gfm.list --------------------- ```python @@ -64,8 +106,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm.colormap``` -:x:``` vcs.meshfill.Gfm.colors``` - :x:``` vcs.meshfill.Gfm.datawc_calendar``` :x:``` vcs.meshfill.Gfm.datawc_timeunits``` @@ -82,8 +122,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm.ext_2``` -:x:``` vcs.meshfill.Gfm.exts``` - :x:``` vcs.meshfill.Gfm.fillareacolors``` :x:``` vcs.meshfill.Gfm.fillareaindices``` @@ -112,8 +150,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm.xmtics2``` -:x:``` vcs.meshfill.Gfm.xticlabels``` - :x:``` vcs.meshfill.Gfm.xticlabels1``` :x:``` vcs.meshfill.Gfm.xticlabels2``` @@ -124,8 +160,6 @@ Missing Doctests :x:``` vcs.meshfill.Gfm.ymtics2``` -:x:``` vcs.meshfill.Gfm.yticlabels``` - :x:``` vcs.meshfill.Gfm.yticlabels1``` :x:``` vcs.meshfill.Gfm.yticlabels2``` diff --git a/docs/doctest_info/markdown/queries.md b/docs/doctest_info/markdown/queries.md index cee439479..6508f5a42 100644 --- a/docs/doctest_info/markdown/queries.md +++ b/docs/doctest_info/markdown/queries.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md index 4e7ffa71e..e695744a5 100644 --- a/docs/doctest_info/markdown/template.md +++ b/docs/doctest_info/markdown/template.md @@ -5,7 +5,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] ``` vcs.template.P.list @@ -17,7 +17,7 @@ Expected: ----------...---------- ... Got: - ----------Template (P) member (attribute) listings ---------- + ---------- Template (P) member (attribute) listings ---------- method = P name = default orientation = 0 diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md index 0ccbf302d..e5197f215 100644 --- a/docs/doctest_info/markdown/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script diff --git a/docs/doctest_info/markdown/unified1D.md b/docs/doctest_info/markdown/unified1D.md index c7930d29f..edd27f1c2 100644 --- a/docs/doctest_info/markdown/unified1D.md +++ b/docs/doctest_info/markdown/unified1D.md @@ -50,8 +50,6 @@ Missing Doctests :x:``` vcs.unified1D.G1d.xmtics2``` -:x:``` vcs.unified1D.G1d.xticlabels``` - :x:``` vcs.unified1D.G1d.xticlabels1``` :x:``` vcs.unified1D.G1d.xticlabels2``` @@ -62,8 +60,6 @@ Missing Doctests :x:``` vcs.unified1D.G1d.ymtics2``` -:x:``` vcs.unified1D.G1d.yticlabels``` - :x:``` vcs.unified1D.G1d.yticlabels1``` :x:``` vcs.unified1D.G1d.yticlabels2``` diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index 3c2d246b9..75d629cd2 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -584,7 +584,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -1073,7 +1073,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1111,7 +1111,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1155,7 +1155,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/boxfill.report b/docs/doctest_info/reports/boxfill.report index 9f1c12d0d..04a317b20 100644 --- a/docs/doctest_info/reports/boxfill.report +++ b/docs/doctest_info/reports/boxfill.report @@ -2,6 +2,32 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + ex=a.createboxfill() +Expecting nothing +ok +Trying: + ex.colors(0, 64) # use colorcells 0-64 of colormap +Expecting nothing +ok +Trying: + a.plot(ex, array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/boxfill.py", line 845, in vcs.boxfill.Gfb.colors +Failed example: + a.plot(ex, array) +Expected nothing +Got: + +Trying: + a=vcs.init() +Expecting nothing +ok Trying: ex=a.createboxfill('boxfill_dwc') Expecting nothing @@ -19,6 +45,50 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + ex=a.createboxfill +Expecting nothing +ok +Trying: + ex.exts(True, True) # arrows on both ends +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/boxfill.py", line 842, in vcs.boxfill.Gfb.exts +Failed example: + ex.exts(True, True) # arrows on both ends +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.exts(True, True) # arrows on both ends + AttributeError: 'function' object has no attribute 'exts' +Trying: + a.plot(ex, array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/boxfill.py", line 843, in vcs.boxfill.Gfb.exts +Failed example: + a.plot(ex, array) +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex, array) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot + arglist = _determine_arg_list(None, actual_args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list + type(args[i])) + vcsError: Unknown type of argument to plotting command. +Trying: + a=vcs.init() +Expecting nothing +ok Trying: obj=a.getboxfill() # default Expecting nothing @@ -82,7 +152,7 @@ Trying: Expecting nothing ok Trying: - ex.xmtics("lon5") # every 5 degrees + ex.xmtics("lon5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -90,7 +160,19 @@ Trying: Expecting nothing ok Trying: - tmp.xmintic1.priority = 1 # plotting will now show xmtics + tmp.xmintic1.priority = 1 # plotting shows xmtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.createboxfill() +Expecting nothing +ok +Trying: + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels Expecting nothing ok Trying: @@ -114,7 +196,7 @@ Trying: Expecting nothing ok Trying: - ex.ymtics("lat5") # every 5 degrees + ex.ymtics("lat5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -122,10 +204,22 @@ Trying: Expecting nothing ok Trying: - tmp.ymintic1.priority = 1 # plotting will now show ymtics + tmp.ymintic1.priority = 1 # plotting shows ymtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.createboxfill() +Expecting nothing +ok +Trying: + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels Expecting nothing ok -93 items had no tests: +89 items had no tests: vcs.boxfill vcs.boxfill.Gfb vcs.boxfill.Gfb.__init__ @@ -183,7 +277,6 @@ ok vcs.boxfill.Gfb.color_1 vcs.boxfill.Gfb.color_2 vcs.boxfill.Gfb.colormap - vcs.boxfill.Gfb.colors vcs.boxfill.Gfb.datawc_calendar vcs.boxfill.Gfb.datawc_timeunits vcs.boxfill.Gfb.datawc_x1 @@ -192,7 +285,6 @@ ok vcs.boxfill.Gfb.datawc_y2 vcs.boxfill.Gfb.ext_1 vcs.boxfill.Gfb.ext_2 - vcs.boxfill.Gfb.exts vcs.boxfill.Gfb.fillareacolors vcs.boxfill.Gfb.fillareaindices vcs.boxfill.Gfb.fillareaopacity @@ -209,24 +301,28 @@ ok vcs.boxfill.Gfb.xaxisconvert vcs.boxfill.Gfb.xmtics1 vcs.boxfill.Gfb.xmtics2 - vcs.boxfill.Gfb.xticlabels vcs.boxfill.Gfb.xticlabels1 vcs.boxfill.Gfb.xticlabels2 vcs.boxfill.Gfb.yaxisconvert vcs.boxfill.Gfb.ymtics1 vcs.boxfill.Gfb.ymtics2 - vcs.boxfill.Gfb.yticlabels vcs.boxfill.Gfb.yticlabels1 vcs.boxfill.Gfb.yticlabels2 vcs.boxfill.process_src -7 items passed all tests: +9 items passed all tests: 4 tests in vcs.boxfill.Gfb.datawc 3 tests in vcs.boxfill.Gfb.list 6 tests in vcs.boxfill.Gfb.rename 4 tests in vcs.boxfill.Gfb.script 5 tests in vcs.boxfill.Gfb.xmtics + 3 tests in vcs.boxfill.Gfb.xticlabels 3 tests in vcs.boxfill.Gfb.xyscale 5 tests in vcs.boxfill.Gfb.ymtics -30 tests in 100 items. -30 passed and 0 failed. -Test passed. + 3 tests in vcs.boxfill.Gfb.yticlabels +********************************************************************** +2 items had failures: + 1 of 5 in vcs.boxfill.Gfb.colors + 2 of 5 in vcs.boxfill.Gfb.exts +46 tests in 100 items. +43 passed and 3 failed. +***Test Failed*** 3 failures. diff --git a/docs/doctest_info/reports/isofill.report b/docs/doctest_info/reports/isofill.report index aa195b351..e6c317e89 100644 --- a/docs/doctest_info/reports/isofill.report +++ b/docs/doctest_info/reports/isofill.report @@ -2,6 +2,32 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + ex=a.createisofill() +Expecting nothing +ok +Trying: + ex.colors(0, 64) # use colorcells 0-64 of colormap +Expecting nothing +ok +Trying: + a.plot(ex, array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 689, in vcs.isofill.Gfi.colors +Failed example: + a.plot(ex, array) +Expected nothing +Got: + +Trying: + a=vcs.init() +Expecting nothing +ok Trying: ex=a.createisofill('isofill_dwc') Expecting nothing @@ -19,6 +45,50 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + ex=a.createisofill +Expecting nothing +ok +Trying: + ex.exts(True, True) # arrows on both ends +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 686, in vcs.isofill.Gfi.exts +Failed example: + ex.exts(True, True) # arrows on both ends +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.exts(True, True) # arrows on both ends + AttributeError: 'function' object has no attribute 'exts' +Trying: + a.plot(ex, array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 687, in vcs.isofill.Gfi.exts +Failed example: + a.plot(ex, array) +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex, array) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot + arglist = _determine_arg_list(None, actual_args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list + type(args[i])) + vcsError: Unknown type of argument to plotting command. +Trying: + a=vcs.init() +Expecting nothing +ok Trying: obj=a.getisofill() # default Expecting nothing @@ -66,7 +136,7 @@ Trying: Expecting nothing ok Trying: - ex.xmtics("lon5") # every 5 degrees + ex.xmtics("lon5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -74,7 +144,19 @@ Trying: Expecting nothing ok Trying: - tmp.xmintic1.priority = 1 # plotting will now show xmtics + tmp.xmintic1.priority = 1 # plotting shows xmtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.createisofill() +Expecting nothing +ok +Trying: + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels Expecting nothing ok Trying: @@ -98,7 +180,7 @@ Trying: Expecting nothing ok Trying: - ex.ymtics("lat5") # every 5 degrees + ex.ymtics("lat5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -106,10 +188,22 @@ Trying: Expecting nothing ok Trying: - tmp.ymintic1.priority = 1 # plotting will now show ymtics + tmp.ymintic1.priority = 1 # plotting shows ymtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.createisofill() +Expecting nothing +ok +Trying: + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels Expecting nothing ok -79 items had no tests: +75 items had no tests: vcs.isofill vcs.isofill.Gfi vcs.isofill.Gfi.__init__ @@ -156,7 +250,6 @@ ok vcs.isofill.Gfi._setyticlabels1 vcs.isofill.Gfi._setyticlabels2 vcs.isofill.Gfi.colormap - vcs.isofill.Gfi.colors vcs.isofill.Gfi.datawc_calendar vcs.isofill.Gfi.datawc_timeunits vcs.isofill.Gfi.datawc_x1 @@ -165,7 +258,6 @@ ok vcs.isofill.Gfi.datawc_y2 vcs.isofill.Gfi.ext_1 vcs.isofill.Gfi.ext_2 - vcs.isofill.Gfi.exts vcs.isofill.Gfi.fillareacolors vcs.isofill.Gfi.fillareaindices vcs.isofill.Gfi.fillareaopacity @@ -178,26 +270,28 @@ ok vcs.isofill.Gfi.xaxisconvert vcs.isofill.Gfi.xmtics1 vcs.isofill.Gfi.xmtics2 - vcs.isofill.Gfi.xticlabels vcs.isofill.Gfi.xticlabels1 vcs.isofill.Gfi.xticlabels2 vcs.isofill.Gfi.yaxisconvert vcs.isofill.Gfi.ymtics1 vcs.isofill.Gfi.ymtics2 - vcs.isofill.Gfi.yticlabels vcs.isofill.Gfi.yticlabels1 vcs.isofill.Gfi.yticlabels2 vcs.isofill.load vcs.isofill.process_src -5 items passed all tests: +7 items passed all tests: 4 tests in vcs.isofill.Gfi.datawc 3 tests in vcs.isofill.Gfi.list 5 tests in vcs.isofill.Gfi.xmtics + 3 tests in vcs.isofill.Gfi.xticlabels 3 tests in vcs.isofill.Gfi.xyscale 5 tests in vcs.isofill.Gfi.ymtics + 3 tests in vcs.isofill.Gfi.yticlabels ********************************************************************** -1 items had failures: +3 items had failures: + 1 of 5 in vcs.isofill.Gfi.colors + 2 of 5 in vcs.isofill.Gfi.exts 1 of 4 in vcs.isofill.Gfi.script -24 tests in 85 items. -23 passed and 1 failed. -***Test Failed*** 1 failures. +40 tests in 85 items. +36 passed and 4 failed. +***Test Failed*** 4 failures. diff --git a/docs/doctest_info/reports/isoline.report b/docs/doctest_info/reports/isoline.report index 332654cf4..67f98419d 100644 --- a/docs/doctest_info/reports/isoline.report +++ b/docs/doctest_info/reports/isoline.report @@ -54,7 +54,7 @@ Trying: Expecting nothing ok Trying: - ex.xmtics("lon5") # every 5 degrees + ex.xmtics("lon5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -62,7 +62,19 @@ Trying: Expecting nothing ok Trying: - tmp.xmintic1.priority = 1 # plotting will now show xmtics + tmp.xmintic1.priority = 1 # plotting shows xmtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.createisoline() +Expecting nothing +ok +Trying: + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels Expecting nothing ok Trying: @@ -86,7 +98,7 @@ Trying: Expecting nothing ok Trying: - ex.ymtics("lat5") # every 5 degrees + ex.ymtics("lat5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -94,10 +106,22 @@ Trying: Expecting nothing ok Trying: - tmp.ymintic1.priority = 1 # plotting will now show ymtics + tmp.ymintic1.priority = 1 # plotting shows ymtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.createisoline() +Expecting nothing +ok +Trying: + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels Expecting nothing ok -110 items had no tests: +108 items had no tests: vcs.isoline vcs.isoline.Gi vcs.isoline.Gi.__init__ @@ -196,25 +220,25 @@ ok vcs.isoline.Gi.xaxisconvert vcs.isoline.Gi.xmtics1 vcs.isoline.Gi.xmtics2 - vcs.isoline.Gi.xticlabels vcs.isoline.Gi.xticlabels1 vcs.isoline.Gi.xticlabels2 vcs.isoline.Gi.yaxisconvert vcs.isoline.Gi.ymtics1 vcs.isoline.Gi.ymtics2 - vcs.isoline.Gi.yticlabels vcs.isoline.Gi.yticlabels1 vcs.isoline.Gi.yticlabels2 vcs.isoline.get_att_from_sub vcs.isoline.load vcs.isoline.process_src -6 items passed all tests: +8 items passed all tests: 4 tests in vcs.isoline.Gi.datawc 3 tests in vcs.isoline.Gi.list 4 tests in vcs.isoline.Gi.script 5 tests in vcs.isoline.Gi.xmtics + 3 tests in vcs.isoline.Gi.xticlabels 3 tests in vcs.isoline.Gi.xyscale 5 tests in vcs.isoline.Gi.ymtics -24 tests in 116 items. -24 passed and 0 failed. + 3 tests in vcs.isoline.Gi.yticlabels +30 tests in 116 items. +30 passed and 0 failed. Test passed. diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report index fae8b6760..e717c545a 100644 --- a/docs/doctest_info/reports/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -394,7 +394,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -567,7 +567,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -605,7 +605,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -649,7 +649,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/meshfill.report b/docs/doctest_info/reports/meshfill.report index a6ce3bbb0..84dd75732 100644 --- a/docs/doctest_info/reports/meshfill.report +++ b/docs/doctest_info/reports/meshfill.report @@ -2,6 +2,32 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + ex=a.createmeshfill() +Expecting nothing +ok +Trying: + ex.colors(0, 64) # use colorcells 0-64 of colormap +Expecting nothing +ok +Trying: + a.plot(ex, array, array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 706, in vcs.meshfill.Gfm.colors +Failed example: + a.plot(ex, array, array) +Expected nothing +Got: + +Trying: + a=vcs.init() +Expecting nothing +ok Trying: ex=a.createmeshfill('meshfill_dwc') Expecting nothing @@ -19,6 +45,50 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + array=[range(10) for _ in range(10)] +Expecting nothing +ok +Trying: + ex=a.createmeshfill +Expecting nothing +ok +Trying: + ex.exts(True, True) # arrows on both ends +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 703, in vcs.meshfill.Gfm.exts +Failed example: + ex.exts(True, True) # arrows on both ends +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + ex.exts(True, True) # arrows on both ends + AttributeError: 'function' object has no attribute 'exts' +Trying: + a.plot(ex, array, array) +Expecting nothing +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 704, in vcs.meshfill.Gfm.exts +Failed example: + a.plot(ex, array, array) +Exception raised: + Traceback (most recent call last): + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run + compileflags, 1) in test.globs + File "", line 1, in + a.plot(ex, array, array) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot + arglist = _determine_arg_list(None, actual_args) + File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list + type(args[i])) + vcsError: Unknown type of argument to plotting command. +Trying: + a=vcs.init() +Expecting nothing +ok Trying: obj=a.getmeshfill() # default Expecting nothing @@ -104,7 +174,7 @@ Trying: Expecting nothing ok Trying: - ex.xmtics("lon5") # every 5 degrees + ex.xmtics("lon5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -112,7 +182,19 @@ Trying: Expecting nothing ok Trying: - tmp.xmintic1.priority = 1 # plotting will now show xmtics + tmp.xmintic1.priority = 1 # plotting shows xmtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.createmeshfill() +Expecting nothing +ok +Trying: + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels Expecting nothing ok Trying: @@ -136,7 +218,7 @@ Trying: Expecting nothing ok Trying: - ex.ymtics("lat5") # every 5 degrees + ex.ymtics("lat5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -144,10 +226,22 @@ Trying: Expecting nothing ok Trying: - tmp.ymintic1.priority = 1 # plotting will now show ymtics + tmp.ymintic1.priority = 1 # plotting shows ymtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.createmeshfill() +Expecting nothing +ok +Trying: + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels Expecting nothing ok -85 items had no tests: +81 items had no tests: vcs.meshfill vcs.meshfill.Gfm vcs.meshfill.Gfm.__init__ @@ -198,7 +292,6 @@ ok vcs.meshfill.Gfm._setyticlabels1 vcs.meshfill.Gfm._setyticlabels2 vcs.meshfill.Gfm.colormap - vcs.meshfill.Gfm.colors vcs.meshfill.Gfm.datawc_calendar vcs.meshfill.Gfm.datawc_timeunits vcs.meshfill.Gfm.datawc_x1 @@ -207,7 +300,6 @@ ok vcs.meshfill.Gfm.datawc_y2 vcs.meshfill.Gfm.ext_1 vcs.meshfill.Gfm.ext_2 - vcs.meshfill.Gfm.exts vcs.meshfill.Gfm.fillareacolors vcs.meshfill.Gfm.fillareaindices vcs.meshfill.Gfm.fillareaopacity @@ -222,26 +314,28 @@ ok vcs.meshfill.Gfm.xaxisconvert vcs.meshfill.Gfm.xmtics1 vcs.meshfill.Gfm.xmtics2 - vcs.meshfill.Gfm.xticlabels vcs.meshfill.Gfm.xticlabels1 vcs.meshfill.Gfm.xticlabels2 vcs.meshfill.Gfm.yaxisconvert vcs.meshfill.Gfm.ymtics1 vcs.meshfill.Gfm.ymtics2 - vcs.meshfill.Gfm.yticlabels vcs.meshfill.Gfm.yticlabels1 vcs.meshfill.Gfm.yticlabels2 vcs.meshfill.load vcs.meshfill.process_src -4 items passed all tests: +6 items passed all tests: 4 tests in vcs.meshfill.Gfm.datawc 5 tests in vcs.meshfill.Gfm.xmtics + 3 tests in vcs.meshfill.Gfm.xticlabels 3 tests in vcs.meshfill.Gfm.xyscale 5 tests in vcs.meshfill.Gfm.ymtics + 3 tests in vcs.meshfill.Gfm.yticlabels ********************************************************************** -2 items had failures: +4 items had failures: + 1 of 5 in vcs.meshfill.Gfm.colors + 2 of 5 in vcs.meshfill.Gfm.exts 1 of 3 in vcs.meshfill.Gfm.list 1 of 4 in vcs.meshfill.Gfm.script -24 tests in 91 items. -22 passed and 2 failed. -***Test Failed*** 2 failures. +40 tests in 91 items. +35 passed and 5 failed. +***Test Failed*** 5 failures. diff --git a/docs/doctest_info/reports/queries.report b/docs/doctest_info/reports/queries.report index 698411acc..e9459b401 100644 --- a/docs/doctest_info/reports/queries.report +++ b/docs/doctest_info/reports/queries.report @@ -429,7 +429,7 @@ Failed example: pass Expected nothing Got: - + Trying: a.show('textcombined') # Show all available textcombined Expecting: diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report index b6dfbaf06..6f9548495 100644 --- a/docs/doctest_info/reports/template.report +++ b/docs/doctest_info/reports/template.report @@ -31,7 +31,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] Trying: x = vcs.init() Expecting nothing @@ -102,7 +102,7 @@ Expected: ----------...---------- ... Got: - ----------Template (P) member (attribute) listings ---------- + ---------- Template (P) member (attribute) listings ---------- method = P name = default orientation = 0 diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report index 9e51d8062..2107c4bb8 100644 --- a/docs/doctest_info/reports/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing diff --git a/docs/doctest_info/reports/unified1D.report b/docs/doctest_info/reports/unified1D.report index 908ea439b..2057a8e1f 100644 --- a/docs/doctest_info/reports/unified1D.report +++ b/docs/doctest_info/reports/unified1D.report @@ -54,7 +54,7 @@ Trying: Expecting nothing ok Trying: - ex.xmtics("lon5") # every 5 degrees + ex.xmtics("lon5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -62,7 +62,19 @@ Trying: Expecting nothing ok Trying: - tmp.xmintic1.priority = 1 # plotting will now show xmtics + tmp.xmintic1.priority = 1 # plotting shows xmtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.create1d() +Expecting nothing +ok +Trying: + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels Expecting nothing ok Trying: @@ -74,7 +86,7 @@ Trying: Expecting nothing ok Trying: - ex.ymtics("lat5") # every 5 degrees + ex.ymtics("lat5") # minitick every 5 degrees Expecting nothing ok Trying: @@ -82,10 +94,22 @@ Trying: Expecting nothing ok Trying: - tmp.ymintic1.priority = 1 # plotting will now show ymtics + tmp.ymintic1.priority = 1 # plotting shows ymtics +Expecting nothing +ok +Trying: + a = vcs.init() +Expecting nothing +ok +Trying: + ex = a.create1d() +Expecting nothing +ok +Trying: + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels Expecting nothing ok -92 items had no tests: +90 items had no tests: vcs.unified1D vcs.unified1D.G1d vcs.unified1D.G1d.__init__ @@ -167,23 +191,23 @@ ok vcs.unified1D.G1d.xaxisconvert vcs.unified1D.G1d.xmtics1 vcs.unified1D.G1d.xmtics2 - vcs.unified1D.G1d.xticlabels vcs.unified1D.G1d.xticlabels1 vcs.unified1D.G1d.xticlabels2 vcs.unified1D.G1d.yaxisconvert vcs.unified1D.G1d.ymtics1 vcs.unified1D.G1d.ymtics2 - vcs.unified1D.G1d.yticlabels vcs.unified1D.G1d.yticlabels1 vcs.unified1D.G1d.yticlabels2 vcs.unified1D.load vcs.unified1D.process_src -5 items passed all tests: +7 items passed all tests: 4 tests in vcs.unified1D.G1d.datawc 3 tests in vcs.unified1D.G1d.list 4 tests in vcs.unified1D.G1d.script 5 tests in vcs.unified1D.G1d.xmtics + 3 tests in vcs.unified1D.G1d.xticlabels 5 tests in vcs.unified1D.G1d.ymtics -21 tests in 97 items. -21 passed and 0 failed. + 3 tests in vcs.unified1D.G1d.yticlabels +27 tests in 97 items. +27 passed and 0 failed. Test passed. diff --git a/vcs/boxfill.py b/vcs/boxfill.py index 27c61caf7..a73c788cd 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -329,12 +329,12 @@ class Gfb(object): .. py:attribute:: color_1 (float) Used in conjunction with boxfill_type linear/log10, - sets the legend's color range first value. + sets the first value of the legend's color range. .. py:attribute:: color_2 (float) Used in conjunction with boxfill_type linear/log10. - Sets the legend's color range lasst value. + Sets the last value of the legend's color range. .. py:attribute:: legend ({float:str}) @@ -824,12 +824,12 @@ def _setdatawc_y2(self, value): def colors(self, color1=0, color2=255): self.color_1 = color1 self.color_2 = color2 - colors.__doc__ = xmldocs.colorsdoc + colors.__doc__ = xmldocs.colorsdoc % {"name": "boxfill", "data": "array"} def exts(self, ext1='n', ext2='y'): self.ext_1 = ext1 self.ext_2 = ext2 - exts.__doc__ = xmldocs.extsdoc + exts.__doc__ = xmldocs.extsdoc % {"name": "boxfill", "data": "array"} # # Doesn't make sense to inherit. This would mean more coding in C. # I put this code back. @@ -838,7 +838,7 @@ def exts(self, ext1='n', ext2='y'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name" : "boxfill"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -848,7 +848,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name" : "boxfill"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 @@ -948,7 +948,7 @@ def getlegendlabels(self, levels): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Boxfill (Gfb) member (attribute) listings ----------" + print "", "---------- Boxfill (Gfb) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/colormap.py b/vcs/colormap.py index aa125b398..2511ad7b9 100644 --- a/vcs/colormap.py +++ b/vcs/colormap.py @@ -368,7 +368,7 @@ def getcolorcell(self, index): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Colormap (Cp) member (attribute) listings ----------" + print "", "---------- Colormap (Cp) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "index =", self.index diff --git a/vcs/displayplot.py b/vcs/displayplot.py index aca5b79d0..56c4b66f9 100755 --- a/vcs/displayplot.py +++ b/vcs/displayplot.py @@ -300,7 +300,7 @@ def __init__(self, Dp_name, Dp_name_src='default', parent=None): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Display Plot (Dp) member (attribute) listings ----------" + print "", "---------- Display Plot (Dp) member (attribute) listings ----------" print "Display plot method =", self.s_name print "name =", self.name print "off =", self.off diff --git a/vcs/fillarea.py b/vcs/fillarea.py index 2c0b62fa9..9ad76de16 100755 --- a/vcs/fillarea.py +++ b/vcs/fillarea.py @@ -425,7 +425,7 @@ def __init__(self, Tf_name=None, Tf_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Fillarea (Tf) member (attribute) listings ----------" + print "", "---------- Fillarea (Tf) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "style =", self.style diff --git a/vcs/isofill.py b/vcs/isofill.py index 66c30cd65..c8d8ae0ce 100755 --- a/vcs/isofill.py +++ b/vcs/isofill.py @@ -668,12 +668,12 @@ def __init__(self, Gfi_name, Gfi_name_src='default'): def colors(self, color1=16, color2=239): self.fillareacolors = range(color1, color2) - colors.__doc__ = xmldocs.colorsdoc + colors.__doc__ = xmldocs.colorsdoc % {"name": "isofill", "data": "array"} def exts(self, ext1='n', ext2='y'): self.ext_1 = ext1 self.ext_2 = ext2 - exts.__doc__ = xmldocs.extsdoc + exts.__doc__ = xmldocs.extsdoc % {"name": "isofill", "data": "array"} # # Doesn't make sense to inherit. This would mean more coding in C. # I put this code back. @@ -682,7 +682,7 @@ def exts(self, ext1='n', ext2='y'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "isofill"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -692,7 +692,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "isofill"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 @@ -712,7 +712,7 @@ def xyscale(self, xat='', yat=''): xyscale.__doc__ = xmldocs.xyscaledoc % (('isofill',) * 4) def list(self): - print "", "----------Isofill (Gfi) member (attribute) listings ----------" + print "", "---------- Isofill (Gfi) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/isoline.py b/vcs/isoline.py index 31ca4b32a..c6289f002 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -990,7 +990,7 @@ def xticlabels(self, xtl1='', xtl2=''): # specific_options_doc self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "isoline"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -1000,7 +1000,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "isoline"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 @@ -1022,7 +1022,7 @@ def xyscale(self, xat='', yat=''): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Isoline (Gi) member (attribute) listings ----------" + print "", "---------- Isoline (Gi) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/line.py b/vcs/line.py index 033eb01d5..5e9d5013a 100755 --- a/vcs/line.py +++ b/vcs/line.py @@ -386,7 +386,7 @@ def __init__(self, Tl_name, Tl_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Line (Tl) member (attribute) listings ----------" + print "", "---------- Line (Tl) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "type =", self.type diff --git a/vcs/marker.py b/vcs/marker.py index f2554b53f..ae93fd0a2 100755 --- a/vcs/marker.py +++ b/vcs/marker.py @@ -429,7 +429,7 @@ def __init__(self, Tm_name, Tm_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Marker (Tm) member (attribute) listings ----------" + print "", "---------- Marker (Tm) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "type =", self.type diff --git a/vcs/meshfill.py b/vcs/meshfill.py index ac48e1863..2d3439315 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -685,12 +685,12 @@ def __init__(self, Gfm_name, Gfm_name_src='default'): def colors(self, color1=16, color2=239): self.fillareacolors = range(color1, color2) - colors.__doc__ = xmldocs.colorsdoc + colors.__doc__ = xmldocs.colorsdoc % {"name": "meshfill", "data": "array, array"} def exts(self, ext1='n', ext2='y'): self.ext_1 = ext1 self.ext_2 = ext2 - exts.__doc__ = xmldocs.extsdoc + exts.__doc__ = xmldocs.extsdoc % {"name": "meshfill", "data": "array, array"} # # Doesn't make sense to inherit. This would mean more coding in C. @@ -699,7 +699,7 @@ def exts(self, ext1='n', ext2='y'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "meshfill"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -709,7 +709,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "meshfill"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 diff --git a/vcs/png.py b/vcs/png.py index ad6536b9a..6ebfc716d 100644 --- a/vcs/png.py +++ b/vcs/png.py @@ -339,7 +339,7 @@ def __init__( def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Fillarea (Tf) member (attribute) listings ----------" + print "", "---------- Fillarea (Tf) member (attribute) listings ----------" print 'Canvas Mode =', self.parent.mode print "secondary method =", self.s_name print "name =", self.name diff --git a/vcs/taylor.py b/vcs/taylor.py index c42331954..10183f865 100644 --- a/vcs/taylor.py +++ b/vcs/taylor.py @@ -1019,7 +1019,7 @@ def drawSkill(self, canvas, values, function=None): return canvas.plot(a, iso, tmpl, bg=self.bg) def list(self): - print ' ----------Taylordiagram (Gtd) member (attribute) listings ----------' + print ' ---------- Taylordiagram (Gtd) member (attribute) listings ----------' print 'graphic method = Gtd' print 'name =', self.name print 'detail =', self.detail diff --git a/vcs/template.py b/vcs/template.py index c5f3433b4..632bed0b1 100644 --- a/vcs/template.py +++ b/vcs/template.py @@ -544,7 +544,7 @@ def list(self, single=None): raise ValueError('This instance has been removed from VCS.') if (single is None): - print "----------Template (P) member " +\ + print "---------- Template (P) member " +\ "(attribute) listings ----------" print "method =", self.p_name print "name =", self.name diff --git a/vcs/textcombined.py b/vcs/textcombined.py index 544446b34..93001bab1 100644 --- a/vcs/textcombined.py +++ b/vcs/textcombined.py @@ -416,9 +416,9 @@ def list(self): if ((self.Tt_name == '__removed_from_VCS__') or (self.To_name == '__removed_from_VCS__')): raise ValueError('This instance has been removed from VCS.') - print "", "----------Text combined (Tc) member (attribute) listings ----------" + print "", "---------- Text combined (Tc) member (attribute) listings ----------" print "secondary method =", self.s_name - print "", "----------Text Table (Tt) member (attribute) listings ----------" + print "", "---------- Text Table (Tt) member (attribute) listings ----------" print "Tt_name =", self.Tt_name print "font =", self.font print "spacing =", self.spacing @@ -432,7 +432,7 @@ def list(self): print "x =", self.x print "y =", self.y print "projection =", self.projection - print "", "----------Text Orientation (To) member (attribute) listings ----------" + print "", "---------- Text Orientation (To) member (attribute) listings ----------" print "To_name =", self.To_name print "height =", self.height print "angle =", self.angle diff --git a/vcs/textorientation.py b/vcs/textorientation.py index 017765afe..f8b4e6423 100755 --- a/vcs/textorientation.py +++ b/vcs/textorientation.py @@ -285,7 +285,7 @@ def __init__(self, To_name, To_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Text Orientation (To) member (attribute) listings ----------" + print "", "---------- Text Orientation (To) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "height =", self.height diff --git a/vcs/texttable.py b/vcs/texttable.py index e032cea04..868562ac2 100755 --- a/vcs/texttable.py +++ b/vcs/texttable.py @@ -477,7 +477,7 @@ def __init__(self, Tt_name=None, Tt_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Text Table (Tt) member (attribute) listings ----------" + print "", "---------- Text Table (Tt) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "string =", self.string diff --git a/vcs/unified1D.py b/vcs/unified1D.py index 6db91efd8..9000bbb35 100644 --- a/vcs/unified1D.py +++ b/vcs/unified1D.py @@ -759,7 +759,7 @@ def __init__(self, name, name_src='default'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "1d"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -769,7 +769,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "1d"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 @@ -786,7 +786,7 @@ def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "----------Yxvsx (GYx) member (attribute) listings ----------" + print "", "---------- Yxvsx (GYx) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/vector.py b/vcs/vector.py index f108751a5..36cfc2622 100755 --- a/vcs/vector.py +++ b/vcs/vector.py @@ -774,7 +774,7 @@ def xyscale(self, xat='', yat=''): self.yaxisconvert = yat def list(self): - print "", "----------Vector (Gv) member (attribute) listings ----------" + print "", "---------- Vector (Gv) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 642cf9ca9..9d283cf49 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -200,35 +200,75 @@ colorsdoc = """ Sets the color_1 and color_2 properties of the object. - :param color1: Sets the :py:attr:`color_1` value on the object + .. note:: + + color_1 and color_2 control which parts of the colormap to use for the + plot. It defaults to the full range of the colormap (0-255), but if you + use fewer colors, it will break up your data into precisely that many + discrete colors. + + :Example: + + .. doctest:: %(name)s_colors + + >>> a=vcs.init() + >>> array=[range(10) for _ in range(10)] + >>> ex=a.create%(name)s() + >>> ex.colors(0, 64) # use colorcells 0-64 of colormap + >>> a.plot(ex, %(data)s) + + :param color1: Sets the :py:attr:`color_1` value on the object. :type color1: int - :param color2: Sets the :py:attr:`color_2` value on the object + :param color2: Sets the :py:attr:`color_2` value on the object. :type color2: int """ extsdoc = """ Sets the ext_1 and ext_2 values on the object. - :param ext1: Sets the :py:attr:`ext_1` value on the object. 'y' sets it to True, 'n' sets it to False. - :type ext1: str + :Example: + + .. doctest %(name)s_exts - :param ext2: Sets the :py:attr:`ext_2` value on the object. 'y' sets it to True, 'n' sets it to False. - :type ext2: str - """ + >>> a=vcs.init() + >>> array=[range(10) for _ in range(10)] + >>> ex=a.create%(name)s + >>> ex.exts(True, True) # arrows on both ends + >>> a.plot(ex, %(data)s) + + :param ext1: Sets the :py:attr:`ext_1` value on the object. + 'y' sets it to True, 'n' sets it to False. + True or False can be used in lieu of 'y' and 'n'. + :type ext1: str or bool + + :param ext2: Sets the :py:attr:`ext_2` value on the object. + 'y' sets it to True, 'n' sets it to False. + True or False can be used in lieu of 'y' and 'n'. + :type ext2: str or bool + """ ticlabelsdoc = """ - Sets the %sticlabels1 and %sticlabels2 values on the object + Sets the %(x_y)sticlabels1 and %(x_y)sticlabels2 values on the object + + :Example: + + .. doctest:: %(name)s_%(x_y)sticlabels - :param %stl1: Sets the object's value for :py:attr:`%sticlabels1`. + >>> a = vcs.init() + >>> ex = a.create%(name)s() + >>> ex.%(x_y)sticlabels(%(labels)s) # plot will show labels + + :param %(x_y)stl1: Sets the object's value for :py:attr:`%(x_y)sticlabels1`. Must be a str, or a dictionary object with float:str mappings. - :type %stl1: {float:str} or str + :type %(x_y)stl1: dict or str - :param %stl2: Sets the object's value for :py:attr:`%sticlabels2`. + :param %(x_y)stl2: Sets the object's value for :py:attr:`%(x_y)sticlabels2`. Must be a str, or a dictionary object with float:str mappings. - :type %stl2: {float:str} or str - """ -xticlabelsdoc = ticlabelsdoc % (('x',) * 8) -yticlabelsdoc = ticlabelsdoc % (('y',) * 8) + :type %(x_y)stl2: dict or str + """ +xticlabelsdoc = ticlabelsdoc % {"x_y": "x", "labels":'{0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}', + "name": "%(name)s"} +yticlabelsdoc = ticlabelsdoc % {"x_y": "y", "labels":'{0: "Eq.", 37.6819: "L", 55.7558: "M"}', "name": "%(name)s"} mticsdoc = """ Sets the %(x_y)smtics1 and %(x_y)smtics2 values on the object. @@ -237,7 +277,8 @@ The mtics attributes are not inherently plotted by the default template. The example below shows how to apply a custom template and enable it to - plot mtics. + plot mtics. To plot a the %(name)s after setting the mtics and template, + refer to :py:func:`vcs.Canvas.plot` or :py:func:`vcs.Canvas.%(name)s`. :Example: @@ -245,9 +286,9 @@ >>> a=vcs.init() >>> ex=vcs.create%(name)s() - >>> ex.%(x_y)smtics("%(axis)s5") # every 5 degrees + >>> ex.%(x_y)smtics("%(axis)s5") # minitick every 5 degrees >>> tmp=vcs.createtemplate() # custom template to plot minitics - >>> tmp.%(x_y)smintic1.priority = 1 # plotting will now show %(x_y)smtics + >>> tmp.%(x_y)smintic1.priority = 1 # plotting shows %(x_y)smtics :param %(x_y)smt1: Value for :py:attr:`%(x_y)smtics1`. Must be a str, or a dictionary object with float:str mappings. @@ -372,8 +413,8 @@ def populate_docstrings(type_dict, target_dict, docstring, method): sp_parent = 'default_'+obj_name+'_' d['sp_parent'] = "'%s'" % sp_parent d['parent'] = d['sp_parent'] - # From here to the end of the inner for loop is intended to be a section for specific use-cases for the - # template keywords. This section aims to take the 'method' parameter and use it to insert proper examples for + # From here to the end of the inner for loop is intended to be a section for specific use-cases for the template + # string keywords. This section aims to take the 'method' parameter and use it to insert proper examples for # that method. # section for manageElements 'get' methods @@ -919,6 +960,18 @@ def populate_docstrings(type_dict, target_dict, docstring, method): size of markers """ +color_one_two_doc = """ + .. py:attribute:: color_1 (float) + + Used in conjunction with boxfill_type linear/log10, + sets the first value of the legend's color range. + + .. py:attribute:: color_2 (float) + + Used in conjunction with boxfill_type linear/log10. + Sets the last value of the legend's color range. + """ + ############################################################################# # # # Graphics Method input section. # From bab6725d01e1fd10d554c1483a2b3c5e1029aca7 Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 27 Dec 2016 17:28:06 -0800 Subject: [PATCH 30/45] Fixed doctests for ticlabels, exts --- docs/doctest_info/markdown/Canvas.md | 8 +- docs/doctest_info/markdown/boxfill.md | 42 -------- docs/doctest_info/markdown/isofill.md | 42 -------- docs/doctest_info/markdown/manageElements.md | 8 +- docs/doctest_info/markdown/meshfill.md | 44 +-------- docs/doctest_info/markdown/queries.md | 2 +- docs/doctest_info/markdown/template.md | 4 +- docs/doctest_info/markdown/textcombined.md | 2 +- docs/doctest_info/reports/Canvas.report | 8 +- docs/doctest_info/reports/boxfill.report | 94 +++++++++--------- docs/doctest_info/reports/isofill.report | 94 +++++++++--------- docs/doctest_info/reports/isoline.report | 40 ++++++-- .../reports/manageElements.report | 8 +- docs/doctest_info/reports/meshfill.report | 96 +++++++++---------- docs/doctest_info/reports/queries.report | 2 +- docs/doctest_info/reports/template.report | 6 +- docs/doctest_info/reports/textcombined.report | 2 +- docs/doctest_info/reports/unified1D.report | 40 ++++++-- vcs/boxfill.py | 4 +- vcs/isofill.py | 4 +- vcs/isoline.py | 4 +- vcs/meshfill.py | 4 +- vcs/unified1D.py | 4 +- vcs/xmldocs.py | 17 +++- 24 files changed, 252 insertions(+), 327 deletions(-) diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index eb0664930..055f7d250 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -20,7 +20,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -32,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -46,7 +46,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.isinfile diff --git a/docs/doctest_info/markdown/boxfill.md b/docs/doctest_info/markdown/boxfill.md index 7dffab638..0b94332ab 100644 --- a/docs/doctest_info/markdown/boxfill.md +++ b/docs/doctest_info/markdown/boxfill.md @@ -1,45 +1,3 @@ -vcs.boxfill.Gfb.colors ----------------------- -```python -Failed example: - a.plot(ex, array) -Expected nothing -Got: - -``` - -vcs.boxfill.Gfb.exts --------------------- -```python -Failed example: - ex.exts(True, True) # arrows on both ends -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.exts(True, True) # arrows on both ends - AttributeError: 'function' object has no attribute 'exts' -``` - -vcs.boxfill.Gfb.exts --------------------- -```python -Failed example: - a.plot(ex, array) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex, array) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot - arglist = _determine_arg_list(None, actual_args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list - type(args[i])) - vcsError: Unknown type of argument to plotting command. -``` - Missing Doctests ---------------- :x:``` vcs.boxfill``` diff --git a/docs/doctest_info/markdown/isofill.md b/docs/doctest_info/markdown/isofill.md index 977e4013f..846f97747 100644 --- a/docs/doctest_info/markdown/isofill.md +++ b/docs/doctest_info/markdown/isofill.md @@ -1,45 +1,3 @@ -vcs.isofill.Gfi.colors ----------------------- -```python -Failed example: - a.plot(ex, array) -Expected nothing -Got: - -``` - -vcs.isofill.Gfi.exts --------------------- -```python -Failed example: - ex.exts(True, True) # arrows on both ends -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.exts(True, True) # arrows on both ends - AttributeError: 'function' object has no attribute 'exts' -``` - -vcs.isofill.Gfi.exts --------------------- -```python -Failed example: - a.plot(ex, array) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex, array) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot - arglist = _determine_arg_list(None, actual_args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list - type(args[i])) - vcsError: Unknown type of argument to plotting command. -``` - vcs.isofill.Gfi.script ---------------------- ```python diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md index d3e1eca71..40a8fa0d1 100644 --- a/docs/doctest_info/markdown/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -22,7 +22,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar @@ -34,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -46,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -60,7 +60,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/meshfill.md b/docs/doctest_info/markdown/meshfill.md index 647dfee0d..772fb0315 100644 --- a/docs/doctest_info/markdown/meshfill.md +++ b/docs/doctest_info/markdown/meshfill.md @@ -1,52 +1,10 @@ -vcs.meshfill.Gfm.colors ------------------------ -```python -Failed example: - a.plot(ex, array, array) -Expected nothing -Got: - -``` - -vcs.meshfill.Gfm.exts ---------------------- -```python -Failed example: - ex.exts(True, True) # arrows on both ends -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.exts(True, True) # arrows on both ends - AttributeError: 'function' object has no attribute 'exts' -``` - -vcs.meshfill.Gfm.exts ---------------------- -```python -Failed example: - a.plot(ex, array, array) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex, array, array) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot - arglist = _determine_arg_list(None, actual_args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list - type(args[i])) - vcsError: Unknown type of argument to plotting command. -``` - vcs.meshfill.Gfm.list --------------------- ```python Failed example: obj.list() # print meshfill attributes Expected: - ----------...---------- + ---------- ... ---------- ... Got: ---------- Meshfill (Gmf) member (attribute) listings --------- diff --git a/docs/doctest_info/markdown/queries.md b/docs/doctest_info/markdown/queries.md index 6508f5a42..4c218dd8f 100644 --- a/docs/doctest_info/markdown/queries.md +++ b/docs/doctest_info/markdown/queries.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md index e695744a5..adeb0cd3d 100644 --- a/docs/doctest_info/markdown/template.md +++ b/docs/doctest_info/markdown/template.md @@ -5,7 +5,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] ``` vcs.template.P.list @@ -14,7 +14,7 @@ vcs.template.P.list Failed example: obj.list() # print template attributes Expected: - ----------...---------- + ---------- ... ---------- ... Got: ---------- Template (P) member (attribute) listings ---------- diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md index e5197f215..5cde3fd8c 100644 --- a/docs/doctest_info/markdown/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index 75d629cd2..a4355e0b8 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -584,7 +584,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -1073,7 +1073,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1111,7 +1111,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1155,7 +1155,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/boxfill.report b/docs/doctest_info/reports/boxfill.report index 04a317b20..488ac0051 100644 --- a/docs/doctest_info/reports/boxfill.report +++ b/docs/doctest_info/reports/boxfill.report @@ -16,14 +16,9 @@ Expecting nothing ok Trying: a.plot(ex, array) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/boxfill.py", line 845, in vcs.boxfill.Gfb.colors -Failed example: - a.plot(ex, array) -Expected nothing -Got: - +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -50,41 +45,18 @@ Trying: Expecting nothing ok Trying: - ex=a.createboxfill + ex=a.createboxfill() Expecting nothing ok Trying: ex.exts(True, True) # arrows on both ends Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/boxfill.py", line 842, in vcs.boxfill.Gfb.exts -Failed example: - ex.exts(True, True) # arrows on both ends -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.exts(True, True) # arrows on both ends - AttributeError: 'function' object has no attribute 'exts' +ok Trying: a.plot(ex, array) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/boxfill.py", line 843, in vcs.boxfill.Gfb.exts -Failed example: - a.plot(ex, array) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex, array) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot - arglist = _determine_arg_list(None, actual_args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list - type(args[i])) - vcsError: Unknown type of argument to plotting command. +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -96,7 +68,7 @@ ok Trying: obj.list() # print boxfill attributes Expecting: - ----------...---------- + ---------- ... ---------- ... ok Trying: @@ -167,14 +139,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.createboxfill() Expecting nothing ok Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -211,14 +196,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.createboxfill() Expecting nothing ok Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok 89 items had no tests: vcs.boxfill vcs.boxfill.Gfb @@ -309,20 +307,18 @@ ok vcs.boxfill.Gfb.yticlabels1 vcs.boxfill.Gfb.yticlabels2 vcs.boxfill.process_src -9 items passed all tests: +11 items passed all tests: + 5 tests in vcs.boxfill.Gfb.colors 4 tests in vcs.boxfill.Gfb.datawc + 5 tests in vcs.boxfill.Gfb.exts 3 tests in vcs.boxfill.Gfb.list 6 tests in vcs.boxfill.Gfb.rename 4 tests in vcs.boxfill.Gfb.script 5 tests in vcs.boxfill.Gfb.xmtics - 3 tests in vcs.boxfill.Gfb.xticlabels + 6 tests in vcs.boxfill.Gfb.xticlabels 3 tests in vcs.boxfill.Gfb.xyscale 5 tests in vcs.boxfill.Gfb.ymtics - 3 tests in vcs.boxfill.Gfb.yticlabels -********************************************************************** -2 items had failures: - 1 of 5 in vcs.boxfill.Gfb.colors - 2 of 5 in vcs.boxfill.Gfb.exts -46 tests in 100 items. -43 passed and 3 failed. -***Test Failed*** 3 failures. + 6 tests in vcs.boxfill.Gfb.yticlabels +52 tests in 100 items. +52 passed and 0 failed. +Test passed. diff --git a/docs/doctest_info/reports/isofill.report b/docs/doctest_info/reports/isofill.report index e6c317e89..a586e38c1 100644 --- a/docs/doctest_info/reports/isofill.report +++ b/docs/doctest_info/reports/isofill.report @@ -16,14 +16,9 @@ Expecting nothing ok Trying: a.plot(ex, array) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 689, in vcs.isofill.Gfi.colors -Failed example: - a.plot(ex, array) -Expected nothing -Got: - +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -50,41 +45,18 @@ Trying: Expecting nothing ok Trying: - ex=a.createisofill + ex=a.createisofill() Expecting nothing ok Trying: ex.exts(True, True) # arrows on both ends Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 686, in vcs.isofill.Gfi.exts -Failed example: - ex.exts(True, True) # arrows on both ends -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.exts(True, True) # arrows on both ends - AttributeError: 'function' object has no attribute 'exts' +ok Trying: a.plot(ex, array) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 687, in vcs.isofill.Gfi.exts -Failed example: - a.plot(ex, array) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex, array) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot - arglist = _determine_arg_list(None, actual_args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list - type(args[i])) - vcsError: Unknown type of argument to plotting command. +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -96,7 +68,7 @@ ok Trying: obj.list() # print isofill attributes Expecting: - ----------...---------- + ---------- ... ---------- ... ok Trying: @@ -151,14 +123,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.createisofill() Expecting nothing ok Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -195,14 +180,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.createisofill() Expecting nothing ok Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok 75 items had no tests: vcs.isofill vcs.isofill.Gfi @@ -279,19 +277,19 @@ ok vcs.isofill.Gfi.yticlabels2 vcs.isofill.load vcs.isofill.process_src -7 items passed all tests: +9 items passed all tests: + 5 tests in vcs.isofill.Gfi.colors 4 tests in vcs.isofill.Gfi.datawc + 5 tests in vcs.isofill.Gfi.exts 3 tests in vcs.isofill.Gfi.list 5 tests in vcs.isofill.Gfi.xmtics - 3 tests in vcs.isofill.Gfi.xticlabels + 6 tests in vcs.isofill.Gfi.xticlabels 3 tests in vcs.isofill.Gfi.xyscale 5 tests in vcs.isofill.Gfi.ymtics - 3 tests in vcs.isofill.Gfi.yticlabels + 6 tests in vcs.isofill.Gfi.yticlabels ********************************************************************** -3 items had failures: - 1 of 5 in vcs.isofill.Gfi.colors - 2 of 5 in vcs.isofill.Gfi.exts +1 items had failures: 1 of 4 in vcs.isofill.Gfi.script -40 tests in 85 items. -36 passed and 4 failed. -***Test Failed*** 4 failures. +46 tests in 85 items. +45 passed and 1 failed. +***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/isoline.report b/docs/doctest_info/reports/isoline.report index 67f98419d..de6e16f76 100644 --- a/docs/doctest_info/reports/isoline.report +++ b/docs/doctest_info/reports/isoline.report @@ -26,7 +26,7 @@ ok Trying: obj.list() # print isoline attributes Expecting: - ----------...---------- + ---------- ... ---------- ... ok Trying: @@ -69,14 +69,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.createisoline() Expecting nothing ok Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -113,14 +126,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.createisoline() Expecting nothing ok Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok 108 items had no tests: vcs.isoline vcs.isoline.Gi @@ -235,10 +261,10 @@ ok 3 tests in vcs.isoline.Gi.list 4 tests in vcs.isoline.Gi.script 5 tests in vcs.isoline.Gi.xmtics - 3 tests in vcs.isoline.Gi.xticlabels + 6 tests in vcs.isoline.Gi.xticlabels 3 tests in vcs.isoline.Gi.xyscale 5 tests in vcs.isoline.Gi.ymtics - 3 tests in vcs.isoline.Gi.yticlabels -30 tests in 116 items. -30 passed and 0 failed. + 6 tests in vcs.isoline.Gi.yticlabels +36 tests in 116 items. +36 passed and 0 failed. Test passed. diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report index e717c545a..0a898a276 100644 --- a/docs/doctest_info/reports/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -394,7 +394,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -567,7 +567,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -605,7 +605,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -649,7 +649,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/meshfill.report b/docs/doctest_info/reports/meshfill.report index 84dd75732..01092fcb9 100644 --- a/docs/doctest_info/reports/meshfill.report +++ b/docs/doctest_info/reports/meshfill.report @@ -16,14 +16,9 @@ Expecting nothing ok Trying: a.plot(ex, array, array) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 706, in vcs.meshfill.Gfm.colors -Failed example: - a.plot(ex, array, array) -Expected nothing -Got: - +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -50,41 +45,18 @@ Trying: Expecting nothing ok Trying: - ex=a.createmeshfill + ex=a.createmeshfill() Expecting nothing ok Trying: ex.exts(True, True) # arrows on both ends Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 703, in vcs.meshfill.Gfm.exts -Failed example: - ex.exts(True, True) # arrows on both ends -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.exts(True, True) # arrows on both ends - AttributeError: 'function' object has no attribute 'exts' +ok Trying: a.plot(ex, array, array) -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 704, in vcs.meshfill.Gfm.exts -Failed example: - a.plot(ex, array, array) -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - a.plot(ex, array, array) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2570, in plot - arglist = _determine_arg_list(None, actual_args) - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 213, in _determine_arg_list - type(args[i])) - vcsError: Unknown type of argument to plotting command. +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -96,14 +68,14 @@ ok Trying: obj.list() # print meshfill attributes Expecting: - ----------...---------- + ---------- ... ---------- ... ********************************************************************** File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 779, in vcs.meshfill.Gfm.list Failed example: obj.list() # print meshfill attributes Expected: - ----------...---------- + ---------- ... ---------- ... Got: ---------- Meshfill (Gmf) member (attribute) listings --------- @@ -189,14 +161,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.createmeshfill() Expecting nothing ok Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -233,14 +218,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.createmeshfill() Expecting nothing ok Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok 81 items had no tests: vcs.meshfill vcs.meshfill.Gfm @@ -323,19 +321,19 @@ ok vcs.meshfill.Gfm.yticlabels2 vcs.meshfill.load vcs.meshfill.process_src -6 items passed all tests: +8 items passed all tests: + 5 tests in vcs.meshfill.Gfm.colors 4 tests in vcs.meshfill.Gfm.datawc + 5 tests in vcs.meshfill.Gfm.exts 5 tests in vcs.meshfill.Gfm.xmtics - 3 tests in vcs.meshfill.Gfm.xticlabels + 6 tests in vcs.meshfill.Gfm.xticlabels 3 tests in vcs.meshfill.Gfm.xyscale 5 tests in vcs.meshfill.Gfm.ymtics - 3 tests in vcs.meshfill.Gfm.yticlabels + 6 tests in vcs.meshfill.Gfm.yticlabels ********************************************************************** -4 items had failures: - 1 of 5 in vcs.meshfill.Gfm.colors - 2 of 5 in vcs.meshfill.Gfm.exts +2 items had failures: 1 of 3 in vcs.meshfill.Gfm.list 1 of 4 in vcs.meshfill.Gfm.script -40 tests in 91 items. -35 passed and 5 failed. -***Test Failed*** 5 failures. +46 tests in 91 items. +44 passed and 2 failed. +***Test Failed*** 2 failures. diff --git a/docs/doctest_info/reports/queries.report b/docs/doctest_info/reports/queries.report index e9459b401..8dd9a16b4 100644 --- a/docs/doctest_info/reports/queries.report +++ b/docs/doctest_info/reports/queries.report @@ -429,7 +429,7 @@ Failed example: pass Expected nothing Got: - + Trying: a.show('textcombined') # Show all available textcombined Expecting: diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report index 6f9548495..52fe9c028 100644 --- a/docs/doctest_info/reports/template.report +++ b/docs/doctest_info/reports/template.report @@ -31,7 +31,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] Trying: x = vcs.init() Expecting nothing @@ -92,14 +92,14 @@ ok Trying: obj.list() # print template attributes Expecting: - ----------...---------- + ---------- ... ---------- ... ********************************************************************** File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 546, in vcs.template.P.list Failed example: obj.list() # print template attributes Expected: - ----------...---------- + ---------- ... ---------- ... Got: ---------- Template (P) member (attribute) listings ---------- diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report index 2107c4bb8..8a6c11e9f 100644 --- a/docs/doctest_info/reports/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing diff --git a/docs/doctest_info/reports/unified1D.report b/docs/doctest_info/reports/unified1D.report index 2057a8e1f..bdc3ab0b7 100644 --- a/docs/doctest_info/reports/unified1D.report +++ b/docs/doctest_info/reports/unified1D.report @@ -26,7 +26,7 @@ ok Trying: obj.list() # print 1d attributes Expecting: - ----------...---------- + ---------- ... ---------- ... ok Trying: @@ -69,14 +69,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.create1d() Expecting nothing ok Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) # plot will show labels + ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -101,14 +114,27 @@ Trying: a = vcs.init() Expecting nothing ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file +Expecting nothing +ok Trying: ex = a.create1d() Expecting nothing ok Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) # plot will show labels + ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) Expecting nothing ok +Trying: + a.plot(ex, f('u')) # plot shows labels +Expecting: + +ok 90 items had no tests: vcs.unified1D vcs.unified1D.G1d @@ -205,9 +231,9 @@ ok 3 tests in vcs.unified1D.G1d.list 4 tests in vcs.unified1D.G1d.script 5 tests in vcs.unified1D.G1d.xmtics - 3 tests in vcs.unified1D.G1d.xticlabels + 6 tests in vcs.unified1D.G1d.xticlabels 5 tests in vcs.unified1D.G1d.ymtics - 3 tests in vcs.unified1D.G1d.yticlabels -27 tests in 97 items. -27 passed and 0 failed. + 6 tests in vcs.unified1D.G1d.yticlabels +33 tests in 97 items. +33 passed and 0 failed. Test passed. diff --git a/vcs/boxfill.py b/vcs/boxfill.py index a73c788cd..87f480c07 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -838,7 +838,7 @@ def exts(self, ext1='n', ext2='y'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name" : "boxfill"} + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name" : "boxfill", "data": "f('u')"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -848,7 +848,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name" : "boxfill"} + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name" : "boxfill", "data": "f('u')"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 diff --git a/vcs/isofill.py b/vcs/isofill.py index c8d8ae0ce..7ae31024a 100755 --- a/vcs/isofill.py +++ b/vcs/isofill.py @@ -682,7 +682,7 @@ def exts(self, ext1='n', ext2='y'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "isofill"} + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "isofill", "data": "f('u')"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -692,7 +692,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "isofill"} + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "isofill", "data": "f('u')"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 diff --git a/vcs/isoline.py b/vcs/isoline.py index c6289f002..f065ca852 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -990,7 +990,7 @@ def xticlabels(self, xtl1='', xtl2=''): # specific_options_doc self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "isoline"} + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "isoline", "data": "f('u')"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -1000,7 +1000,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "isoline"} + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "isoline", "data": "f('u')"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 diff --git a/vcs/meshfill.py b/vcs/meshfill.py index 2d3439315..763467286 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -699,7 +699,7 @@ def exts(self, ext1='n', ext2='y'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "meshfill"} + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "meshfill", "data": "f('u')"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -709,7 +709,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "meshfill"} + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "meshfill", "data": "f('u')"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 diff --git a/vcs/unified1D.py b/vcs/unified1D.py index 9000bbb35..38adc1dcc 100644 --- a/vcs/unified1D.py +++ b/vcs/unified1D.py @@ -759,7 +759,7 @@ def __init__(self, name, name_src='default'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "1d"} + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "1d", "data": "f('u')"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 @@ -769,7 +769,7 @@ def xmtics(self, xmt1='', xmt2=''): def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "1d"} + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "1d", "data": "f('u')"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 9d283cf49..21d05e3b5 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -216,6 +216,7 @@ >>> ex=a.create%(name)s() >>> ex.colors(0, 64) # use colorcells 0-64 of colormap >>> a.plot(ex, %(data)s) + :param color1: Sets the :py:attr:`color_1` value on the object. :type color1: int @@ -233,9 +234,10 @@ >>> a=vcs.init() >>> array=[range(10) for _ in range(10)] - >>> ex=a.create%(name)s + >>> ex=a.create%(name)s() >>> ex.exts(True, True) # arrows on both ends >>> a.plot(ex, %(data)s) + :param ext1: Sets the :py:attr:`ext_1` value on the object. 'y' sets it to True, 'n' sets it to False. @@ -255,8 +257,12 @@ .. doctest:: %(name)s_%(x_y)sticlabels >>> a = vcs.init() + >>> import cdms2 # Need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file >>> ex = a.create%(name)s() - >>> ex.%(x_y)sticlabels(%(labels)s) # plot will show labels + >>> ex.%(x_y)sticlabels(%(labels)s) + >>> a.plot(ex, %(data)s) # plot shows labels + :param %(x_y)stl1: Sets the object's value for :py:attr:`%(x_y)sticlabels1`. Must be a str, or a dictionary object with float:str mappings. @@ -267,8 +273,9 @@ :type %(x_y)stl2: dict or str """ xticlabelsdoc = ticlabelsdoc % {"x_y": "x", "labels":'{0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}', - "name": "%(name)s"} -yticlabelsdoc = ticlabelsdoc % {"x_y": "y", "labels":'{0: "Eq.", 37.6819: "L", 55.7558: "M"}', "name": "%(name)s"} + "name": "%(name)s", "data": "%(data)s"} +yticlabelsdoc = ticlabelsdoc % {"x_y": "y", "labels":'{0: "Eq.", 37.6819: "L", 55.7558: "M"}', "name": "%(name)s", + "data": "%(data)s"} mticsdoc = """ Sets the %(x_y)smtics1 and %(x_y)smtics2 values on the object. @@ -360,7 +367,7 @@ >>> a=vcs.init() >>> obj=a.get%(name)s(%(parent)s) # default >>> obj.list() # print %(name)s attributes - ----------...---------- + ---------- ... ---------- ... """ From 711abb6db537b0134a05de5fe4e0aeed98307473 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 28 Dec 2016 10:35:38 -0800 Subject: [PATCH 31/45] Refactored doctest_vcs.py and re-ran tests. --- docs/doctest_info/markdown/Canvas.md | 8 ++-- docs/doctest_info/markdown/manageElements.md | 8 ++-- docs/doctest_info/markdown/template.md | 2 +- docs/doctest_info/markdown/textcombined.md | 2 +- docs/doctest_info/reports/Canvas.report | 8 ++-- .../reports/manageElements.report | 8 ++-- docs/doctest_info/reports/template.report | 2 +- docs/doctest_info/reports/textcombined.report | 2 +- docs/doctest_info/scripts/doctest_vcs.py | 38 ++++++++++++++----- 9 files changed, 49 insertions(+), 29 deletions(-) diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index 055f7d250..5c6d7bcea 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -20,7 +20,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -32,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -46,7 +46,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.isinfile diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md index 40a8fa0d1..b70091938 100644 --- a/docs/doctest_info/markdown/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -22,7 +22,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar @@ -34,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -46,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -60,7 +60,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md index adeb0cd3d..2769b6516 100644 --- a/docs/doctest_info/markdown/template.md +++ b/docs/doctest_info/markdown/template.md @@ -5,7 +5,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] ``` vcs.template.P.list diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md index 5cde3fd8c..ec7e950a6 100644 --- a/docs/doctest_info/markdown/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index a4355e0b8..c68f7f37d 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -584,7 +584,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -1073,7 +1073,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1111,7 +1111,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1155,7 +1155,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report index 0a898a276..3a8d00d29 100644 --- a/docs/doctest_info/reports/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -394,7 +394,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' Expecting: @@ -567,7 +567,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -605,7 +605,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -649,7 +649,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report index 52fe9c028..9aa7d7ba7 100644 --- a/docs/doctest_info/reports/template.report +++ b/docs/doctest_info/reports/template.report @@ -31,7 +31,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] Trying: x = vcs.init() Expecting nothing diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report index 8a6c11e9f..75d8db246 100644 --- a/docs/doctest_info/reports/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined Expecting nothing diff --git a/docs/doctest_info/scripts/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py index e2f84341f..b9da04425 100644 --- a/docs/doctest_info/scripts/doctest_vcs.py +++ b/docs/doctest_info/scripts/doctest_vcs.py @@ -1,7 +1,19 @@ import doctest, argparse, importlib, re -def log_stats(module_name, verbose): +def log_stats(module_name): + """Parses a .report file for the given module and writes the doctest errors to a .md file. + The .md file will be named to match the module_name. + If the report was generated using the --verbose or -v flag, the .md file will also contain a list of locations + within the module where therea re no doctests. + + The .report file is assumed to exist in ../reports/ directory. + + :param module_name: String name of the module for which the .report file will be parsed. + If no .report file exists for that module, this function exits with a SystemError. + :param verbose: Boolean to indicate whether the parsed report was produced using the verbose flag. + :return: + """ # open .results file to read, and .md file to log try: results = open("../reports/" + module_name + ".report", "r+") @@ -18,11 +30,8 @@ def log_stats(module_name, verbose): err_header = re.compile('File "') err_indicator = re.compile('\*\*\*\*') line = results.readline() - if verbose: - err_endpoints = [trying, no_tests] - missing_endpoints = [passing_header, tests_in_items, err_indicator] - else: - err_endpoints = [err_indicator,] + err_endpoints = [trying, no_tests, err_indicator] + missing_endpoints = [passing_header, tests_in_items, err_indicator] while line != '': if re.match(err_header, line): where = line.split()[-1] @@ -47,6 +56,15 @@ def log_stats(module_name, verbose): # note: will only consume the first full error (maybe) def consume_entry(readfile, writefile, endpoints, prepend="", append=""): + """Consumes a log entry from readfile up to one of a list of possible endpoints. + Writes each line in the entry to writefile. + + :param readfile: File to read from + :param writefile: File to write to + :param endpoints: List of compiled regular expressions which are the possible points at which a log entry can end. + :param prepend: A string to prepend to the line from readfile before outputting to writefile + :param append: A string to append to the line from readfile before outputting to writefile + """ more = True private = re.compile("_[_A-z0-9]+") line = readfile.readline() @@ -65,6 +83,9 @@ def consume_entry(readfile, writefile, endpoints, prepend="", append=""): def cleanup(): + """Cleanup for the doctests. If some files aren't being deleted after testing, add their glob signature to the + paterns list. + """ import glob, os gb = glob.glob patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*", "*.png", "deft_box.py"] @@ -96,7 +117,6 @@ def cleanup(): args = parser.parse_args() if not args.LO: - import vcs if args.log and not args.report: args.report = True options=doctest.ELLIPSIS @@ -107,7 +127,7 @@ def cleanup(): doctest.testmod(m, optionflags=options, report=args.report, verbose=args.verbose) cleanup() if args.log: - log_stats(args.module, args.verbose) + log_stats(args.module) else: - log_stats(args.module, args.verbose) + log_stats(args.module) exit() From 14bed4eab5c97ea02eba656e8a17220fa6657626 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 28 Dec 2016 13:14:30 -0800 Subject: [PATCH 32/45] Working on extracting repetetive params to xmldocs. --- vcs/Canvas.py | 361 ++++++++++++++---------------------------- vcs/line.py | 61 +++---- vcs/manageElements.py | 16 +- vcs/xmldocs.py | 81 ++++++++++ 4 files changed, 238 insertions(+), 281 deletions(-) diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 43b8013f7..25f33ae89 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -483,12 +483,7 @@ def start(self, *args, **kargs): self.interact(*args, **kargs) def interact(self, *args, **kargs): - """Puts the canvas into interactive mode. - - :param args: - :param kargs: - :return: - """ + """Puts the canvas into interactive mode.""" self.configure() self.backend.interact(*args, **kargs) @@ -1037,7 +1032,7 @@ def update(self, *args, **kargs): def scriptobject(self, obj, script_filename=None, mode=None): """Save individual attributes sets (i.e., individual primary class - objects and/or secondary class objects). These attribute sets + objects and/or secondary objects). These attribute sets are saved in the user's current directory in one of two formats: Python script, or a Javascript Object. @@ -1074,7 +1069,7 @@ def scriptobject(self, obj, script_filename=None, mode=None): :param mode: Mode is either "w" for replace or "a" for append. :type mode: `str`_ - :param obj: Any VCS primary class or secondary class object. + :param obj: Any VCS primary class or secondary object. :type obj: VCS object """ if istemplate(obj): @@ -1158,7 +1153,8 @@ def clean_auto_generated_objects(self, type=None): True - :param type: Type of objects to remove. By default, will remove everything. + :param type: Type of objects to remove. By default, will remove + all object types. :type type: None, str, list/tuple (of str) """ @@ -1221,8 +1217,8 @@ def getboxfill(self, Gfb_name_src='default'): def boxfill(self, *args, **parms): """Generate a boxfill plot given the data, boxfill graphics method, and - template. If no boxfill class object is given, then the 'default' boxfill - graphics method is used. Similarly, if no template class object is given, + template. If no boxfill object is given, then the 'default' boxfill + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. :Example: @@ -1281,8 +1277,8 @@ def gettaylordiagram(self, Gtd_name_src='default'): def taylordiagram(self, *args, **parms): """Generate a taylordiagram plot given the data, taylordiagram graphics method, and - template. If no taylordiagram class object is given, then the 'default' taylordiagram - graphics method is used. Similarly, if no template class object is given, + template. If no taylordiagram object is given, then the 'default' taylordiagram + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. :Example: @@ -1319,8 +1315,8 @@ def getmeshfill(self, Gfm_name_src='default'): def meshfill(self, *args, **parms): # noqa """Generate a meshfill plot given the data, the mesh, a meshfill graphics method, and - a template. If no meshfill class object is given, then the 'default' meshfill - graphics method is used. Similarly, if no template class object is given, + a template. If no meshfill object is given, then the 'default' meshfill + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. Format: @@ -1412,8 +1408,8 @@ def getisofill(self, Gfi_name_src='default'): def isofill(self, *args, **parms): """Generate a isofill plot given the data, isofill graphics method, and - template. If no isofill class object is given, then the 'default' isofill - graphics method is used. Similarly, if no template class object is given, + template. If no isofill object is given, then the 'default' isofill + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. :Example: @@ -1457,8 +1453,8 @@ def getisoline(self, Gi_name_src='default'): def isoline(self, *args, **parms): """Generate a isoline plot given the data, isoline graphics method, and - template. If no isoline class object is given, then the 'default' isoline - graphics method is used. Similarly, if no template class object is given, + template. If no isoline object is given, then the 'default' isoline + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. :Example: @@ -1508,8 +1504,8 @@ def getxyvsy(self, GXy_name_src='default'): def xyvsy(self, *args, **parms): """Generate a Xyvsy plot given the data, Xyvsy graphics method, and - template. If no Xyvsy class object is given, then the 'default' Xyvsy - graphics method is used. Similarly, if no template class object is given, + template. If no Xyvsy object is given, then the 'default' Xyvsy + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. :Example: @@ -1551,8 +1547,8 @@ def getyxvsx(self, GYx_name_src='default'): def yxvsx(self, *args, **parms): """Generate a Yxvsx plot given the data, Yxvsx graphics method, and - template. If no Yxvsx class object is given, then the 'default' Yxvsx - graphics method is used. Simerly, if no template class object is given, + template. If no Yxvsx object is given, then the 'default' Yxvsx + graphics method is used. Simerly, if no template object is given, then the 'default' template is used. :Example: @@ -1594,8 +1590,8 @@ def getxvsy(self, GXY_name_src='default'): def xvsy(self, *args, **parms): """Generate a XvsY plot given the data, XvsY graphics method, and - template. If no XvsY class object is given, then the 'default' XvsY - graphics method is used. Similarly, if no template class object is given, + template. If no XvsY object is given, then the 'default' XvsY + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. :Example: @@ -1643,8 +1639,8 @@ def getvector(self, Gv_name_src='default'): def vector(self, *args, **parms): """Generate a vector plot given the data, vector graphics method, and - template. If no vector class object is given, then the 'default' vector - graphics method is used. Similarly, if no template class object is given, + template. If no vector object is given, then the 'default' vector + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. :Example: @@ -1683,8 +1679,8 @@ def getscatter(self, GSp_name_src='default'): def scatter(self, *args, **parms): """Generate a scatter plot given the data, scatter graphics method, and - template. If no scatter class object is given, then the 'default' scatter - graphics method is used. Similarly, if no template class object is given, + template. If no scatter object is given, then the 'default' scatter + graphics method is used. Similarly, if no template object is given, then the 'default' template is used. :Example: @@ -1786,8 +1782,7 @@ def drawline(self, name=None, ltype='solid', width=1, color=241, # noqa >>> a.line(ln) # Plot using specified line object - :param name: Name of created object - :type name: `str`_ + %s :param ltype: One of "dash", "dash-dot", "solid", "dot", or "long-dash". :type ltype: `str`_ @@ -1795,31 +1790,12 @@ def drawline(self, name=None, ltype='solid', width=1, color=241, # noqa :param width: Thickness of the line to be drawn :type width: `int`_ - :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: `str`_ or `int`_ - - :param priority: The layer on which the line will be drawn. - :type priority: `int`_ - - :param viewport: 4 floats between 0 and 1. - These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: `list`_ - - :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: `list`_ - - :param x: List of lists of x coordinates. - Values must be floats between worldcoordinate[0] and worldcoordinate[1]. - :type x: `list`_ - - :param y: List of lists of y coordinates. - Values must be floats between worldcoordinate[2] and worldcoordinate[3]. - :type y: `list`_ - - :param projection: Specify a geographic projection used to convert x/y - from spherical coordinates into 2D coordinates. - :type projection: `str`_ or :py:class:`vcs.projection.Proj` + %s + %s + %s + %s + %s + %s :returns: A VCS line object :rtype: vcs.line.Tl @@ -1844,6 +1820,8 @@ def drawline(self, name=None, ltype='solid', width=1, color=241, # noqa self.line(ln, bg=bg) return ln + drawline.__doc__ = drawline.__doc__ % (xmldocs.name, xmldocs.color, xmldocs.priority, xmldocs.viewport, + xmldocs.worldcoordinate, xmldocs.x_y_coords, xmldocs.projection) def createmarker(self, name=None, source='default', mtype=None, # noqa size=None, color=None, priority=1, @@ -1912,8 +1890,7 @@ def drawmarker(self, name=None, mtype='solid', size=1, color=241, >>> a.marker(mrk) # Plot using specified marker object - :param name: Name of created object - :type name: `str`_ + %s :param mtype: Marker type, i.e. 'dot', 'plus', 'star, etc. :type mtype: `str`_ @@ -1921,27 +1898,12 @@ def drawmarker(self, name=None, mtype='solid', size=1, color=241, :param size: Size of the marker to draw :type size: `int`_ - :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: `str`_ or `int`_ - - :param priority: The layer on which the marker will be drawn. - :type priority: `int`_ - - :param viewport: 4 floats between 0 and 1. - These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: `list`_ - - :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: `list`_ - - :param x: List of lists of x coordinates. - Values must be floats between worldcoordinate[0] and worldcoordinate[1]. - :type x: `list`_ - - :param y: List of lists of y coordinates. - Values must be floats between worldcoordinate[2] and worldcoordinate[3]. - :type y: `list`_ + %s + %s + %s + %s + %s + %s :returns: A drawmarker object :rtype: vcs.marker.Tm @@ -1966,6 +1928,9 @@ def drawmarker(self, name=None, mtype='solid', size=1, color=241, return mrk + drawmarker.__doc__ = drawmarker.__doc__ % (xmldocs.name, xmldocs.color, xmldocs.priority, xmldocs.viewport, + xmldocs.worldcoordinate, xmldocs.x_y_coords, xmldocs.bg) + def createfillarea(self, name=None, source='default', style=None, index=None, color=None, priority=1, viewport=None, worldcoordinate=None, @@ -2036,46 +2001,28 @@ def drawfillarea(self, name=None, style=1, index=1, color=241, >>> a.fillarea(fa) # Plot using specified fillarea object - :param name: Name of created object - :type name: `str`_ + %s :param style: One of "hatch", "solid", or "pattern". :type style: `str`_ - :param index: Specifies which `pattern `_ - to fill the fillarea with. Accepts ints from 1-20. + :param index: Specifies which `pattern`_ to fill the fillarea with. + Accepts ints from 1-20. :type index: `int`_ - :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - - :type color: `str`_ or `int`_ - - :param priority: The layer on which the fillarea will be drawn. - :type priority: `int`_ - - :param viewport: 4 floats between 0 and 1. - These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: `list`_ - - :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: `list`_ - - :param x: List of lists of x coordinates. - Values must be floats between worldcoordinate[0] and worldcoordinate[1]. - :type x: `list`_ - - :param y: List of lists of y coordinates. - Values must be floats between worldcoordinate[2] and worldcoordinate[3]. - :type y: `list`_ + %s + %s + %s + %s + %s + %s - :param bg: Boolean value. True => object drawn in background (not shown on canvas). - False => object shown on canvas. - :type bg: bool :returns: A fillarea object :rtype: vcs.fillarea.Tf + + .. _pattern: http://uvcdat.llnl.gov/gallery/fullsize/pattern_chart.png """ if (name is None) or (not isinstance(name, str)): raise vcsError('Must provide string name for the fillarea.') @@ -2097,6 +2044,9 @@ def drawfillarea(self, name=None, style=1, index=1, color=241, return fa + drawfillarea.__doc__ = drawfillarea.__doc__ % (xmldocs.name, xmldocs.color, xmldocs.priority, xmldocs.viewport, + xmldocs.worldcoordinate, xmldocs.x_y_coords, xmldocs.bg) + def createtexttable(self, name=None, source='default', font=None, spacing=None, expansion=None, color=None, priority=None, viewport=None, worldcoordinate=None, @@ -2272,36 +2222,14 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, :param To_name: String name of a textorientation object :type To_name: `str`_ - :param index: Specifies which `pattern `_ - to fill the fillarea with. Accepts ints from 1-20. - :type index: `int`_ - - :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: `str`_ or `int`_ + :param string: String to put onto the new textcombined + :type string: `str`_ - :param priority: The layer on which the fillarea will be drawn. - :type priority: `int`_ - - :param viewport: 4 floats between 0 and 1. - These specify the area that the X/Y values are mapped to inside of the canvas - :type viewport: `list`_ - - :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: `list`_ - - :param x: List of lists of x coordinates. - Values must be floats between worldcoordinate[0] and worldcoordinate[1]. - :type x: `list`_ - - :param y: List of lists of y coordinates. - Values must be floats between worldcoordinate[2] and worldcoordinate[3]. - :type y: `list`_ - - :param bg: Boolean value indicating whether to draw in the background. - If True, object is drawn in background (not shown on canvas). - If False, object is drawn on canvas. - :type bg: bool + %s + %s + %s + %s + %s :returns: A texttable object :rtype: vcs.texttable.Tt @@ -2344,6 +2272,8 @@ def drawtextcombined(self, Tt_name=None, To_name=None, string=None, # # Set alias for the secondary drawtextcombined. drawtext = drawtextcombined + drawtextcombined.__doc__ = drawtextcombined.__doc__ % (xmldocs.color, xmldocs.viewport, xmldocs.worldcoordinate, + xmldocs.x_y_coords, xmldocs.bg) _plot_keywords_ = ['variable', 'grid', 'xaxis', 'xarray', 'xrev', 'yaxis', 'yarray', 'yrev', 'continents', 'xbounds', 'ybounds', 'zaxis', 'zarray', 'taxis', 'tarray', 'waxis', 'warray', 'bg', 'ratio', @@ -4372,21 +4302,15 @@ def landscape(self, width=-99, height=-99, x=-99, y=-99, clear=0): >>> a.landscape(x=100, y = 200) # Change to landscape and set the x and y screen position >>> a.landscape(width = 400, height = 337, x=100, y = 200, clear=1) # landscape with more settings - :param width: Width of the canvas, in pixels - :type width: `int`_ - - :param height: Height of the canvas, in pixels - :type height: `int`_ + %s + %s :param x: Unused :type x: `int`_ :param y: Unused :type y: `int`_ - - :param clear: Indicates the canvas should be cleared (1), - or should not be cleared (0), when orientation is changed. - :type clear: `int`_ + %s """ if (self.orientation() == 'landscape'): return @@ -4417,6 +4341,7 @@ def landscape(self, width=-99, height=-99, x=-99, y=-99, clear=0): l = self.backend.landscape(*args) return l + landscape.__doc__ = landscape.__doc__ % (xmldocs.canvas_width, xmldocs.canvas_height, xmldocs.canvas_clear) def listelements(self, *args): """Returns a sorted Python list of all VCS object names, or a list of @@ -4433,7 +4358,7 @@ def listelements(self, *args): :param args: A string containing the name of a VCS object type, or None :type args: `str`_ or `None`_ - :returns: If args is None, returns a list of string names of all VCS class objects. + :returns: If args is None, returns a list of string names of all VCS objects. If args is a string name of a VCS object :rtype: `list`_ """ @@ -4472,16 +4397,14 @@ def open(self, width=None, height=None, **kargs): >>> a.open() >>> a.open(800,600) - :param width: Integer representing the desired width of the opened window in pixels - :type width: `int`_ - - :param height: Integer representing the desired height of the opened window in pixels - :type height: `int`_ + %s + %s """ a = self.backend.open(width, height, **kargs) return a + open.__doc__ = open.__doc__ % (xmldocs.canvas_width, xmldocs.canvas_height) def canvasid(self, *args): """Get the ID of this canvas. @@ -4521,11 +4444,8 @@ def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): >>> a.portrait(x=100, y = 200) # Change to portrait and set the x and y screen position >>> a.portrait(width = 337, height = 400, x=100, y = 200, clear=1) # portrait, with more specifications - :param width: Width to set the canvas to (in pixels) - :type width: `int`_ - - :param height: Height to set the canvas to (in pixels) - :type height: `int`_ + %s + %s :param x: Unused. :type x: None @@ -4533,9 +4453,7 @@ def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): :param y: Unused. :type y: None - :param clear: 0: Do not clear the canvas when orientation is changed. - 1: clear the canvas when orientation is changed. - :type clear: `int`_ + %s """ if (self.orientation() == 'portrait'): return @@ -4567,6 +4485,8 @@ def portrait(self, width=-99, height=-99, x=-99, y=-99, clear=0): return p + portrait.__doc__ = portrait.__doc__ % (xmldocs.canvas_width, xmldocs.canvas_height, xmldocs.canvas_clear) + def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): """MPEG output from a list of valid files. Can output to more than just mpeg format. @@ -4607,17 +4527,18 @@ def ffmpeg(self, movie, files, bitrate=1024, rate=None, options=None): - >>> a.ffmpeg('mymovie.mpeg',png_files) # generates from list of files + >>> a.ffmpeg('m1.mpeg',png_files) # using list of files True - >>> a.ffmpeg('mymovie.mpeg',png_files,bitrate=512) # generates mpeg at 512kbit + >>> a.ffmpeg('m2.mpeg',png_files,bitrate=512) # 512kbit rate True - >>> a.ffmpeg('mymovie.mpeg',png_files,rate=50) # generates movie with 50 frame per second + >>> a.ffmpeg('m3.mpeg',png_files,rate=50) # 50 frames/second True :param movie: Output video file name :type movie: `str`_ - :param files: String file name + :param files: String name of a file, + or a list or tuple of multiple file names :type files: `str`_, `list`_, or :py:class:`tuple` :param rate: Desired output framerate @@ -4754,15 +4675,9 @@ def setbgoutputdimensions(self, width=None, height=None, units='inches'): >>> a.setbgoutputdimensions(width=11.5, height= 8.5) # US Legal >>> a.setbgoutputdimensions(width=21, height=29.7, units='cm') # A4 - :param width: Float representing the desired width of the output, using the specified unit of measurement - :type width: float - - :param height: Float representing the desired height of the output, using the specified unit of measurement. - :type height: float - - :param units: The units of measurement to use for output. - One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: `str`_ + %s + %s + %s """ if units not in [ 'inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']: @@ -4777,6 +4692,8 @@ def setbgoutputdimensions(self, width=None, height=None, units='inches'): self.bgY = H return # display ping + setbgoutputdimensions.__doc__ = setbgoutputdimensions.__doc__ % \ + xmldocs.output_width, xmldocs.output_height, xmldocs.output_units def put_png_on_canvas( self, filename, zoom=1, xOffset=0, yOffset=0, @@ -4839,22 +4756,13 @@ def png(self, file, width=None, height=None, >>> a.png('example') # Overwrite a png file - :param file: Output image filename - :type file: `str`_ - - :param width: Float representing the desired width of the output png, - using the specified unit of measurement - :type width: float - - :param height: Float representing the desired height of the output png, - using the specified unit of measurement - :type height: float - - :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. - Defaults to 'inches'. - :type units: `str`_ + %s + %s + %s + %s - :param draw_white_background: Boolean value indicating if the background should be white. Defaults to True. + :param draw_white_background: Boolean value indicating if the + background should be white. Defaults to True. :type draw_white_background: bool """ base = os.path.dirname(file) @@ -4870,6 +4778,7 @@ def png(self, file, width=None, height=None, width, height, units) return self.backend.png( file, W, H, units, draw_white_background, **args) + png.__doc__ = png.__doc__ % xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units def pdf(self, file, width=None, height=None, units='inches', textAsPaths=True): @@ -4891,18 +4800,10 @@ def pdf(self, file, width=None, height=None, units='inches', >>> a.pdf('example', width=11.5, height= 8.5) # US Legal >>> a.pdf('example', width=21, height=29.7, units='cm') # A4 - :param file: Desired string name of the output file - :type file: `str`_ - - :param width: Integer specifying the desired width of the output, measured in the chosen units - :type width: `int`_ - - :param height: Integer specifying the desired height of the output, measured in the chosen units - :type height: `int`_ - - :param units: Must be one of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. - Default is 'inches'. - :type units: `str`_ + %s + %s + %s + %s :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -4918,6 +4819,7 @@ def pdf(self, file, width=None, height=None, units='inches', if not file.split('.')[-1].lower() in ['pdf']: file += '.pdf' return self.backend.pdf(file, width=W, height=H, units=units, textAsPaths=textAsPaths) + pdf.__doc__ = pdf.__doc__ % xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units def svg(self, file, width=None, height=None, units='inches', textAsPaths=True): @@ -4939,17 +4841,10 @@ def svg(self, file, width=None, height=None, units='inches', >>> a.svg('example', width=11.5, height= 8.5) # US Legal >>> a.svg('example', width=21, height=29.7, units='cm') # A4 - :param file: - :type file: - - :param width: Float to set width of output SVG, in specified unit of measurement - :type width: float - - :param height: Float to set height of output SVG, in specified unit of measurement - :type height: float - - :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', 'dot', 'dots']. Deafults to 'inches'. - :type units: `str`_ + %s + %s + %s + %s :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -4965,6 +4860,7 @@ def svg(self, file, width=None, height=None, units='inches', if not file.split('.')[-1].lower() in ['svg']: file += '.svg' return self.backend.svg(file, width=W, height=H, units=units, textAsPaths=textAsPaths) + svg.__doc__ = svg.__doc__ % xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units def _compute_margins( self, W, H, top_margin, bottom_margin, right_margin, left_margin, dpi): @@ -5186,25 +5082,15 @@ def postscript(self, file, mode='r', orientation=None, width=None, height=None, >>> a.postscript('example', width=11.5, height= 8.5) # US Legal (default) >>> a.postscript('example', width=21, height=29.7, units='cm') # A4 - :param file: String name of the desired output file. - :type file: `str`_ - + %s :param mode: The mode in which to open the file. One of 'r' or 'a'. When mode is 'r', file will be opened in replace mode. When mode is 'a', file will be opened in append mode. :type mode: `str`_ - :param width: Desired width of the postscript output, - in the specified unit of measurement. - :type width: `int`_ - - :param height: Desired height of the postscript output, - in the specified unit of measurement. - :type height: `int`_ - - :param units: The units of measurement to use for output. - One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: `str`_ + %s + %s + %s :param textAsPaths: Specifies whether to render text objects as paths. :type textAsPaths: bool @@ -5237,6 +5123,9 @@ def postscript(self, file, mode='r', orientation=None, width=None, height=None, os.remove(psnm) else: shutil.move(psnm, file) + postscript.__doc__ = postscript.__doc__ % \ + xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units + def _scriptrun(self, *args): return vcs._scriptrun(*args) @@ -5467,21 +5356,14 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' >>> a.postscript('example', width=11.5, height= 8.5) # US Legal (default) >>> a.postscript('example', width=21, height=29.7, units='cm') # A4 - :param file: String name of the desired output file - :type file: `str`_ + %s :param mode: The mode in which to open the file. One of 'r' or 'a'. :type mode: `str`_ - :param width: Width of the output image, in the unit of measurement specified - :type width: float - - :param height: Height of the output image, in the unit of measurement specified - :type height: float - - :param units: The units of measurement to use for output. - One of ['inches', 'in', 'cm', 'mm', 'pixel', 'dot', 'dots']. - :type units: `str`_ + %s + %s + %s """ ext = file.split(".")[-1] if ext.lower() != 'eps': @@ -5501,6 +5383,7 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' os.popen("ps2epsi %s %s" % (tmpfile, file)).readlines() os.remove(tmpfile) + eps.__doc__ = eps.__doc__ % xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units def show(self, *args): return vcs.show(*args) @@ -5743,8 +5626,10 @@ def getfont(self, font): :param font: The font name/number :type font: `int`_ or `str`_ - :returns: If font parameter was a string, will return the integer associated with that string. - If font parameter was an integer, will return the string associated with that integer. + :returns: If font parameter was a string, will return the integer + associated with that string. + If font parameter was an integer, will return the string + associated with that integer. :rtype: `int`_ or str """ if isinstance(font, int): diff --git a/vcs/line.py b/vcs/line.py index 5e9d5013a..9567daffc 100755 --- a/vcs/line.py +++ b/vcs/line.py @@ -84,23 +84,22 @@ class Tl(object): .. code-block:: python - # VCS Canvas Constructor - a=vcs.init() - # Show predefined line objects - a.show('line') - # Will list all the line attribute values - ln.list() - # Updates the VCS Canvas at user's request - a.update() + >>> a=vcs.init() # VCS Canvas Constructor + >>> a.show('line') # Show predefined line objects + *******************Line Names List********************** + ... + *******************End Line Names List********************** + >>> a.getline('red').list() # show properties of 'red' line + ---------- ... ---------- + ... + >>> a.update() # manually update canvas .. describe:: Create a new instance of line: .. code-block:: python - # Copies content of 'red' to 'new' - ln=a.createline('new','red') - # Copies content of 'default' to 'new' - ln=a.createline('new') + >>> ln=a.createline('new','red') # Copies 'red' to 'new' + >>> ln=a.createline('new2') # Copies 'default' to 'new2' .. describe:: Modify an existing line: @@ -108,55 +107,45 @@ class Tl(object): .. code-block:: python - ln=a.getline('red') + >>> ln=a.getline('red') * Set line color: .. code-block:: python - # Range from 1 to 256 - ln.color=100 + >>> ln.color=100 # Range from 1 to 256 * Set line width: .. code-block:: python - # Range from 1 to 300 - ln.width=100 + >>> ln.width=100 # Range from 1 to 300 * Specify the line type: .. code-block:: python - # Same as ln.type=0 - ln.type='solid' - # Same as ln.type=1 - ln.type='dash' - # Same as ln.type=2 - ln.type='dot' - # Same as ln.type=3 - ln.type='dash-dot' - # Same as ln.type=4 - ln.type='long-dash' + >>> ln.type='solid' # Same as ln.type=0 + >>> ln.type='dash' # Same as ln.type=1 + >>> ln.type='dot' # Same as ln.type=2 + >>> ln.type='dash-dot' # Same as ln.type=3 + >>> ln.type='long-dash' # Same as ln.type=4 * Set the graphics priority on the canvas: .. code-block:: python - ln.priority=1 - # FloatType [0,1]x[0,1] - ln.viewport=[0, 1.0, 0,1.0] - # FloatType [#,#]x[#,#] - ln.worldcoordinate=[0,1.0,0,1.0] + >>> ln.priority=1 + >>> ln.viewport=[0, 1.0, 0,1.0] # float [0,1]x[0,1] + >>> ln.worldcoordinate=[0,1.0,0,1.0] # float [#,#]x[#,#] * Set line x and y values: .. code-block:: python - # List of FloatTypes - ln.x=[[0,.1,.2], [.3,.4,.5]] - # List of FloatTypes - ln.y=[[.5,.4,.3], [.2,.1,0]] + >>> ln.x=[[0,.1,.2], [.3,.4,.5]] # List of floats + >>> ln.y=[[.5,.4,.3], [.2,.1,0]] # List of floats + """ __slots__ = [ 's_name', diff --git a/vcs/manageElements.py b/vcs/manageElements.py index cd4e1191d..8d168f9da 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -753,7 +753,6 @@ def setLineAttributes(to, l): :param l: l can be a line name defined in vcs.elements or a line object. l will be used to set the properties of to. - :type l: :py:class:`vcs.line.Tl` or str """ import queries @@ -792,7 +791,7 @@ def getline(name='default', ltype=None, width=None, color=None, :type width: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: :py:class:`str` or int :param priority: The layer on which the marker will be drawn. @@ -862,7 +861,7 @@ def createmarker(name=None, source='default', mtype=None, :type size: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: :py:class:`str` or int :param priority: The layer on which the marker will be drawn. @@ -927,7 +926,7 @@ def getmarker(name='default', mtype=None, size=None, color=None, :type size: :py:class:`int` :param color: A color name from the `X11 Color Names list `_, - or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) + or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) :type color: :py:class:`str` or int :param priority: The layer on which the marker will be drawn. @@ -1066,7 +1065,8 @@ def getfillarea(name='default', style=None, :param priority: The layer on which the texttable will be drawn. :type priority: :py:class:`int` - :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. + :param viewport: 4 floats between 0 and 1 which specify the area that X/Y + values are mapped to inside of the canvas. :type viewport: list of floats :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) @@ -1137,10 +1137,12 @@ def createtexttable(name=None, source='default', font=None, :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) :type worldcoordinate: list of floats - :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. + :param x: List of lists of x coordinates. + Values must be between worldcoordinate[0] and worldcoordinate[1]. :type x: list of floats - :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. + :param y: List of lists of y coordinates. + Values must be between worldcoordinate[2] and worldcoordinate[3]. :type y: list of floats :returns: A texttable graphics method object diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 21d05e3b5..b4764114c 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -1070,3 +1070,84 @@ def populate_docstrings(type_dict, target_dict, docstring, method): outline_output = """ outline :: (Ex: 0) no default """ +############################################################################# +# # +# Parameters section # +# # +############################################################################# +name = """ + :param name: Name of the object to be created. + :type name: `str`_ + """ +priority = """ + :param priority: The layer on which the object will be drawn. + :type priority: `int`_ + """ +color = """ + :param color: A color name from the + `X11 Color Names list `_, + or an integer value from 0-255, or an RGB/RGBA tuple/list + (e.g. (0,100,0), (100,100,0,50)) + :type color: `str`_ or `int`_ or `tuple`_ + """ +viewport = """ + :param viewport: 4 floats between 0 and 1 which specify the area that + X/Y values are mapped to inside of the canvas. + :type viewport: list of floats + """ +worldcoordinate = """ + :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) + :type worldcoordinate: `list`_ + """ +x_y_coords = """ + :param x: List of lists of x coordinates. Values must be floats between + worldcoordinate[0] and worldcoordinate[1]. + :type x: `list`_ + + :param y: List of lists of y coordinates. Values must be floats between + worldcoordinate[2] and worldcoordinate[3]. + :type y: `list`_ + """ +projection = """ + :param projection: Specifies a geographic projection used to convert x/y + from spherical coordinates into 2D coordinates. + Can be a VCS projection or a string name of a projection + :type projection: `str`_ or :py:class:`vcs.projection.Proj` + """ +bg = """ + :param bg: Boolean value. True => object drawn in background (not shown on canvas). + False => object shown on canvas. + :type bg: bool + """ +output_width = """ + :param width: Float specifying the desired width of the output, + in the specified unit of measurement. + :type width: `float`_ + """ +output_file = """ + :param file: Desired string name of the output file + :type file: `str`_ + """ +output_height = """ + :param height: Float specifying the desired height of the output, + measured in the chosen units + :type height: `float`_ + """ +output_units = """ + :param units: One of ['inches', 'in', 'cm', 'mm', 'pixel', 'pixels', + 'dot', 'dots']. Defaults to 'inches'. + :type units: `str`_ + """ +canvas_width = """ + :param width: Width of the canvas, in pixels + :type width: `int`_ + """ +canvas_height = """ + :param height: Height of the canvas, in pixels + :type height: `int`_ + """ +canvas_clear = """ + :param clear: Indicates the canvas should be cleared (1), + or should not be cleared (0), when orientation is changed. + :type clear: `int`_ + """ From 4d9efc36609f4cf4d88649d521c2430f4ee37d21 Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 3 Jan 2017 17:24:16 -0800 Subject: [PATCH 33/45] Re-factored xmldocs formatting. Re-ran doctests and re-reported. --- docs/doctest_info/markdown/Canvas.md | 16 +- docs/doctest_info/markdown/isofill.md | 4 +- docs/doctest_info/markdown/line.md | 2 - docs/doctest_info/markdown/manageElements.md | 16 +- docs/doctest_info/markdown/meshfill.md | 4 +- docs/doctest_info/markdown/queries.md | 2 +- docs/doctest_info/markdown/template.md | 2 +- docs/doctest_info/markdown/textcombined.md | 6 +- docs/doctest_info/markdown/texttable.md | 4 +- docs/doctest_info/markdown/vcshelp.md | 24 +- docs/doctest_info/markdown/vector.md | 2 +- docs/doctest_info/reports/Canvas.report | 506 ++++++++++-------- docs/doctest_info/reports/boxfill.report | 8 +- docs/doctest_info/reports/colormap.report | 8 +- docs/doctest_info/reports/fillarea.report | 8 +- docs/doctest_info/reports/isofill.report | 14 +- docs/doctest_info/reports/isoline.report | 8 +- docs/doctest_info/reports/line.report | 99 +++- .../reports/manageElements.report | 436 ++++++++------- docs/doctest_info/reports/marker.report | 8 +- docs/doctest_info/reports/meshfill.report | 14 +- docs/doctest_info/reports/projection.report | 8 +- docs/doctest_info/reports/queries.report | 140 ++--- docs/doctest_info/reports/taylor.report | 8 +- docs/doctest_info/reports/template.report | 10 +- docs/doctest_info/reports/textcombined.report | 16 +- .../reports/textorientation.report | 8 +- docs/doctest_info/reports/texttable.report | 14 +- docs/doctest_info/reports/unified1D.report | 8 +- docs/doctest_info/reports/vcshelp.report | 24 +- docs/doctest_info/reports/vector.report | 12 +- vcs/Canvas.py | 53 +- vcs/xmldocs.py | 147 ++--- 33 files changed, 932 insertions(+), 707 deletions(-) diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index 5c6d7bcea..875d4d4f3 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -8,45 +8,45 @@ Failed example: pass Expected nothing Got: - + ``` vcs.Canvas.Canvas.get3d_dual_scalar ----------------------------------- ```python Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object + a.plot(ex, slab1, slab2) # plot 3d_dual_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar ------------------------------ ```python Failed example: - a.plot(ex, slab1) # plot using specified 3d_scalar object + a.plot(ex, slab1) # plot 3d_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector ------------------------------ ```python Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object + a.plot(ex, slab1, slab2) # plot 3d_vector Expected: Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.isinfile @@ -117,8 +117,6 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.scalar3d``` -:x:``` vcs.Canvas.Canvas.scriptrun``` - :x:``` vcs.Canvas.Canvas.setAnimationStepper``` :x:``` vcs.Canvas.Canvas.setdefaultfont``` diff --git a/docs/doctest_info/markdown/isofill.md b/docs/doctest_info/markdown/isofill.md index 846f97747..76d0e54be 100644 --- a/docs/doctest_info/markdown/isofill.md +++ b/docs/doctest_info/markdown/isofill.md @@ -2,13 +2,13 @@ vcs.isofill.Gfi.script ---------------------- ```python Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 856, in script fp.write("%s.missing = %g\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple diff --git a/docs/doctest_info/markdown/line.md b/docs/doctest_info/markdown/line.md index 15c720175..cd922dd86 100644 --- a/docs/doctest_info/markdown/line.md +++ b/docs/doctest_info/markdown/line.md @@ -2,8 +2,6 @@ Missing Doctests ---------------- :x:``` vcs.line``` -:x:``` vcs.line.Tl``` - :x:``` vcs.line.Tl.color``` :x:``` vcs.line.Tl.colormap``` diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md index b70091938..3f508b859 100644 --- a/docs/doctest_info/markdown/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -2,7 +2,7 @@ vcs.manageElements.createtext ----------------------------- ```python Failed example: - vcs.show('textcombined') # show all available textcombined + vcs.show('textcombined') # available textcombineds Expected: *******************Textcombined Names List********************** ... @@ -22,45 +22,45 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar ------------------------------------ ```python Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object + a.plot(ex, slab1, slab2) # plot 3d_dual_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar ------------------------------- ```python Failed example: - a.plot(ex, slab1) # plot using specified 3d_scalar object + a.plot(ex, slab1) # plot 3d_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector ------------------------------- ```python Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object + a.plot(ex, slab1, slab2) # plot 3d_vector Expected: Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/meshfill.md b/docs/doctest_info/markdown/meshfill.md index 772fb0315..f2eb5c282 100644 --- a/docs/doctest_info/markdown/meshfill.md +++ b/docs/doctest_info/markdown/meshfill.md @@ -44,13 +44,13 @@ vcs.meshfill.Gfm.script ----------------------- ```python Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 900, in script fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple diff --git a/docs/doctest_info/markdown/queries.md b/docs/doctest_info/markdown/queries.md index 4c218dd8f..13fda685f 100644 --- a/docs/doctest_info/markdown/queries.md +++ b/docs/doctest_info/markdown/queries.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md index 2769b6516..6a4f06a54 100644 --- a/docs/doctest_info/markdown/template.md +++ b/docs/doctest_info/markdown/template.md @@ -5,7 +5,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] ``` vcs.template.P.list diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md index ec7e950a6..7de6c21a2 100644 --- a/docs/doctest_info/markdown/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,20 +8,20 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script -------------------------- ```python Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 503, in script fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not list diff --git a/docs/doctest_info/markdown/texttable.md b/docs/doctest_info/markdown/texttable.md index 581c611d2..17963db2b 100644 --- a/docs/doctest_info/markdown/texttable.md +++ b/docs/doctest_info/markdown/texttable.md @@ -2,13 +2,13 @@ vcs.texttable.Tt.script ----------------------- ```python Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 558, in script fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not tuple diff --git a/docs/doctest_info/markdown/vcshelp.md b/docs/doctest_info/markdown/vcshelp.md index f782a7ae9..6adc9b769 100644 --- a/docs/doctest_info/markdown/vcshelp.md +++ b/docs/doctest_info/markdown/vcshelp.md @@ -5,31 +5,33 @@ Failed example: vcs.help('getboxfill') Expected nothing Got: - VCS contains a list of graphics methods. This function will create a - boxfill class object from an existing VCS boxfill graphics method. If - no boxfill name is given, then default boxfill will be used. + VCS contains a list of graphics methods. This function + will create a boxfill object from an existing + VCS boxfill graphics method. If no boxfill name is given, + then default boxfill will be used. .. note:: VCS does not allow the modification of 'default' attribute sets. However, a 'default' attribute set that has been copied under a - different name can be modified. (See the :py:func:`vcs.manageElements.createboxfill` function.) + different name can be modified. + (See the :py:func:`vcs.manageElements.createboxfill` function.) :Example: .. doctest:: manageElements_get >>> a=vcs.init() - >>> vcs.listelements('boxfill') # Show all the existing boxfill graphics methods + >>> vcs.listelements('boxfill') # list all boxfills [...] - >>> ex=vcs.getboxfill() # instance of 'default' boxfill graphics method + >>> ex=vcs.getboxfill() # 'default' boxfill >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file - >>> slab1 = f('u') # use the data file to create a cdms2 slab - >>> a.boxfill(ex, slab1) # plot using specified boxfill object + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 + >>> slab1 = f('u') # take a slab from the data + >>> a.boxfill(ex, slab1) # plot boxfill - >>> ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method - >>> a.boxfill(ex2, slab1) # plot using specified boxfill object + >>> ex2=vcs.getboxfill('polar') # boxfill #2 + >>> a.boxfill(ex2, slab1) # plot boxfill diff --git a/docs/doctest_info/markdown/vector.md b/docs/doctest_info/markdown/vector.md index abd2f95bc..8e1f5d739 100644 --- a/docs/doctest_info/markdown/vector.md +++ b/docs/doctest_info/markdown/vector.md @@ -2,7 +2,7 @@ vcs.vector.Gv.script -------------------- ```python Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expected nothing Got: DEPRECATED: Use linetype or setLineAttributes instead. diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index c68f7f37d..0794fcdf7 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -242,328 +242,328 @@ Expecting: ok Trying: - vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar + vcs.show('3d_dual_scalar') # available 3d_dual_scalars Expecting: *******************3d_dual_scalar Names List********************** ... *******************End 3d_dual_scalar Names List********************** ok Trying: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create '3d_dual_scalar_ex1'; inherits 'default' + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') Expecting nothing ok Trying: - vcs.listelements('3d_dual_scalar') # should now contain '3d_dual_scalar_ex1' + vcs.listelements('3d_dual_scalar') # includes new object Expecting: [...'3d_dual_scalar_ex1'...] ok Trying: - vcs.show('3d_scalar') # show all available 3d_scalar + vcs.show('3d_scalar') # available 3d_scalars Expecting: *******************3d_scalar Names List********************** ... *******************End 3d_scalar Names List********************** ok Trying: - ex=vcs.create3d_scalar('3d_scalar_ex1') # Create '3d_scalar_ex1'; inherits 'default' + ex=vcs.create3d_scalar('3d_scalar_ex1') Expecting nothing ok Trying: - vcs.listelements('3d_scalar') # should now contain '3d_scalar_ex1' + vcs.listelements('3d_scalar') # includes new object Expecting: [...'3d_scalar_ex1'...] ok Trying: - vcs.show('3d_vector') # show all available 3d_vector + vcs.show('3d_vector') # available 3d_vectors Expecting: *******************3d_vector Names List********************** ... *******************End 3d_vector Names List********************** ok Trying: - ex=vcs.create3d_vector('3d_vector_ex1') # Create '3d_vector_ex1'; inherits 'default' + ex=vcs.create3d_vector('3d_vector_ex1') Expecting nothing ok Trying: - vcs.listelements('3d_vector') # should now contain '3d_vector_ex1' + vcs.listelements('3d_vector') # includes new object Expecting: [...'3d_vector_ex1'...] ok Trying: - vcs.show('boxfill') # show all available boxfill + vcs.show('boxfill') # available boxfills Expecting: *******************Boxfill Names List********************** ... *******************End Boxfill Names List********************** ok Trying: - ex=vcs.createboxfill('boxfill_ex1') # Create 'boxfill_ex1'; inherits 'default' + ex=vcs.createboxfill('boxfill_ex1') Expecting nothing ok Trying: - vcs.listelements('boxfill') # should now contain 'boxfill_ex1' + vcs.listelements('boxfill') # includes new object Expecting: [...'boxfill_ex1'...] ok Trying: - ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2'; inherits 'polar' + ex2=vcs.createboxfill('boxfill_ex2','polar') Expecting nothing ok Trying: - vcs.listelements('boxfill') # should now contain 'boxfill_ex2' + vcs.listelements('boxfill') # includes new object Expecting: [...'boxfill_ex2'...] ok Trying: - vcs.show('colormap') # show all available colormap + vcs.show('colormap') # available colormaps Expecting: *******************Colormap Names List********************** ... *******************End Colormap Names List********************** ok Trying: - ex=vcs.createcolormap('colormap_ex1') # Create 'colormap_ex1'; inherits 'default' + ex=vcs.createcolormap('colormap_ex1') Expecting nothing ok Trying: - vcs.listelements('colormap') # should now contain 'colormap_ex1' + vcs.listelements('colormap') # includes new object Expecting: [...'colormap_ex1'...] ok Trying: - ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2'; inherits 'rainbow' + ex2=vcs.createcolormap('colormap_ex2','rainbow') Expecting nothing ok Trying: - vcs.listelements('colormap') # should now contain 'colormap_ex2' + vcs.listelements('colormap') # includes new object Expecting: [...'colormap_ex2'...] ok Trying: - vcs.show('fillarea') # show all available fillarea + vcs.show('fillarea') # available fillareas Expecting: *******************Fillarea Names List********************** ... *******************End Fillarea Names List********************** ok Trying: - ex=vcs.createfillarea('fillarea_ex1') # Create 'fillarea_ex1'; inherits 'default' + ex=vcs.createfillarea('fillarea_ex1') Expecting nothing ok Trying: - vcs.listelements('fillarea') # should now contain 'fillarea_ex1' + vcs.listelements('fillarea') # includes new object Expecting: [...'fillarea_ex1'...] ok Trying: - vcs.show('isofill') # show all available isofill + vcs.show('isofill') # available isofills Expecting: *******************Isofill Names List********************** ... *******************End Isofill Names List********************** ok Trying: - ex=vcs.createisofill('isofill_ex1') # Create 'isofill_ex1'; inherits 'default' + ex=vcs.createisofill('isofill_ex1') Expecting nothing ok Trying: - vcs.listelements('isofill') # should now contain 'isofill_ex1' + vcs.listelements('isofill') # includes new object Expecting: [...'isofill_ex1'...] ok Trying: - ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2'; inherits 'polar' + ex2=vcs.createisofill('isofill_ex2','polar') Expecting nothing ok Trying: - vcs.listelements('isofill') # should now contain 'isofill_ex2' + vcs.listelements('isofill') # includes new object Expecting: [...'isofill_ex2'...] ok Trying: - vcs.show('isoline') # show all available isoline + vcs.show('isoline') # available isolines Expecting: *******************Isoline Names List********************** ... *******************End Isoline Names List********************** ok Trying: - ex=vcs.createisoline('isoline_ex1') # Create 'isoline_ex1'; inherits 'default' + ex=vcs.createisoline('isoline_ex1') Expecting nothing ok Trying: - vcs.listelements('isoline') # should now contain 'isoline_ex1' + vcs.listelements('isoline') # includes new object Expecting: [...'isoline_ex1'...] ok Trying: - ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2'; inherits 'polar' + ex2=vcs.createisoline('isoline_ex2','polar') Expecting nothing ok Trying: - vcs.listelements('isoline') # should now contain 'isoline_ex2' + vcs.listelements('isoline') # includes new object Expecting: [...'isoline_ex2'...] ok Trying: - vcs.show('line') # show all available line + vcs.show('line') # available lines Expecting: *******************Line Names List********************** ... *******************End Line Names List********************** ok Trying: - ex=vcs.createline('line_ex1') # Create 'line_ex1'; inherits 'default' + ex=vcs.createline('line_ex1') Expecting nothing ok Trying: - vcs.listelements('line') # should now contain 'line_ex1' + vcs.listelements('line') # includes new object Expecting: [...'line_ex1'...] ok Trying: - ex2=vcs.createline('line_ex2','red') # create 'line_ex2'; inherits 'red' + ex2=vcs.createline('line_ex2','red') Expecting nothing ok Trying: - vcs.listelements('line') # should now contain 'line_ex2' + vcs.listelements('line') # includes new object Expecting: [...'line_ex2'...] ok Trying: - vcs.show('marker') # show all available marker + vcs.show('marker') # available markers Expecting: *******************Marker Names List********************** ... *******************End Marker Names List********************** ok Trying: - ex=vcs.createmarker('marker_ex1') # Create 'marker_ex1'; inherits 'default' + ex=vcs.createmarker('marker_ex1') Expecting nothing ok Trying: - vcs.listelements('marker') # should now contain 'marker_ex1' + vcs.listelements('marker') # includes new object Expecting: [...'marker_ex1'...] ok Trying: - ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2'; inherits 'red' + ex2=vcs.createmarker('marker_ex2','red') Expecting nothing ok Trying: - vcs.listelements('marker') # should now contain 'marker_ex2' + vcs.listelements('marker') # includes new object Expecting: [...'marker_ex2'...] ok Trying: - vcs.show('meshfill') # show all available meshfill + vcs.show('meshfill') # available meshfills Expecting: *******************Meshfill Names List********************** ... *******************End Meshfill Names List********************** ok Trying: - ex=vcs.createmeshfill('meshfill_ex1') # Create 'meshfill_ex1'; inherits 'default' + ex=vcs.createmeshfill('meshfill_ex1') Expecting nothing ok Trying: - vcs.listelements('meshfill') # should now contain 'meshfill_ex1' + vcs.listelements('meshfill') # includes new object Expecting: [...'meshfill_ex1'...] ok Trying: - ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2'; inherits 'a_polar_meshfill' + ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') Expecting nothing ok Trying: - vcs.listelements('meshfill') # should now contain 'meshfill_ex2' + vcs.listelements('meshfill') # includes new object Expecting: [...'meshfill_ex2'...] ok Trying: - vcs.show('projection') # show all available projection + vcs.show('projection') # available projections Expecting: *******************Projection Names List********************** ... *******************End Projection Names List********************** ok Trying: - ex=vcs.createprojection('projection_ex1') # Create 'projection_ex1'; inherits 'default' + ex=vcs.createprojection('projection_ex1') Expecting nothing ok Trying: - vcs.listelements('projection') # should now contain 'projection_ex1' + vcs.listelements('projection') # includes new object Expecting: [...'projection_ex1'...] ok Trying: - ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2'; inherits 'orthographic' + ex2=vcs.createprojection('projection_ex2','orthographic') Expecting nothing ok Trying: - vcs.listelements('projection') # should now contain 'projection_ex2' + vcs.listelements('projection') # includes new object Expecting: [...'projection_ex2'...] ok Trying: - vcs.show('scatter') # show all available scatter + vcs.show('scatter') # available scatters Expecting: *******************Scatter Names List********************** ... *******************End Scatter Names List********************** ok Trying: - ex=vcs.createscatter('scatter_ex1') # Create 'scatter_ex1'; inherits 'default' + ex=vcs.createscatter('scatter_ex1') Expecting nothing ok Trying: - vcs.listelements('scatter') # should now contain 'scatter_ex1' + vcs.listelements('scatter') # includes new object Expecting: [...'scatter_ex1'...] ok Trying: - vcs.show('taylordiagram') # show all available taylordiagram + vcs.show('taylordiagram') # available taylordiagrams Expecting: *******************Taylordiagram Names List********************** ... *******************End Taylordiagram Names List********************** ok Trying: - ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create 'taylordiagram_ex1'; inherits 'default' + ex=vcs.createtaylordiagram('taylordiagram_ex1') Expecting nothing ok Trying: - vcs.listelements('taylordiagram') # should now contain 'taylordiagram_ex1' + vcs.listelements('taylordiagram') # includes new object Expecting: [...'taylordiagram_ex1'...] ok Trying: - vcs.show('template') # show all available template + vcs.show('template') # available templates Expecting: *******************Template Names List********************** ... *******************End Template Names List********************** ok Trying: - ex=vcs.createtemplate('template_ex1') # Create 'template_ex1'; inherits 'default' + ex=vcs.createtemplate('template_ex1') Expecting nothing ok Trying: - vcs.listelements('template') # should now contain 'template_ex1' + vcs.listelements('template') # includes new object Expecting: [...'template_ex1'...] ok Trying: - ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2'; inherits 'polar' + ex2=vcs.createtemplate('template_ex2','polar') Expecting nothing ok Trying: - vcs.listelements('template') # should now contain 'template_ex2' + vcs.listelements('template') # includes new object Expecting: [...'template_ex2'...] ok Trying: - vcs.show('textcombined') # show all available textcombined + vcs.show('textcombined') # available textcombineds Expecting: *******************Textcombined Names List********************** ... @@ -576,7 +576,7 @@ Trying: pass Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2170, in vcs.Canvas.Canvas.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2121, in vcs.Canvas.Canvas.createtext Failed example: try: # try to create a new textcombined, in case none exist vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') @@ -584,123 +584,118 @@ Failed example: pass Expected nothing Got: - + Trying: - vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' -Expecting: - [...'EXAMPLE_tt:::EXAMPLE_tto'...] -ok -Trying: - vcs.show('textorientation') # show all available textorientation + vcs.show('textorientation') # available textorientations Expecting: *******************Textorientation Names List********************** ... *******************End Textorientation Names List********************** ok Trying: - ex=vcs.createtextorientation('textorientation_ex1') # Create 'textorientation_ex1'; inherits 'default' + ex=vcs.createtextorientation('textorientation_ex1') Expecting nothing ok Trying: - vcs.listelements('textorientation') # should now contain 'textorientation_ex1' + vcs.listelements('textorientation') # includes new object Expecting: [...'textorientation_ex1'...] ok Trying: - ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2'; inherits 'bigger' + ex2=vcs.createtextorientation('textorientation_ex2','bigger') Expecting nothing ok Trying: - vcs.listelements('textorientation') # should now contain 'textorientation_ex2' + vcs.listelements('textorientation') # includes new object Expecting: [...'textorientation_ex2'...] ok Trying: - vcs.show('texttable') # show all available texttable + vcs.show('texttable') # available texttables Expecting: *******************Texttable Names List********************** ... *******************End Texttable Names List********************** ok Trying: - ex=vcs.createtexttable('texttable_ex1') # Create 'texttable_ex1'; inherits 'default' + ex=vcs.createtexttable('texttable_ex1') Expecting nothing ok Trying: - vcs.listelements('texttable') # should now contain 'texttable_ex1' + vcs.listelements('texttable') # includes new object Expecting: [...'texttable_ex1'...] ok Trying: - ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2'; inherits 'bigger' + ex2=vcs.createtexttable('texttable_ex2','bigger') Expecting nothing ok Trying: - vcs.listelements('texttable') # should now contain 'texttable_ex2' + vcs.listelements('texttable') # includes new object Expecting: [...'texttable_ex2'...] ok Trying: - vcs.show('vector') # show all available vector + vcs.show('vector') # available vectors Expecting: *******************Vector Names List********************** ... *******************End Vector Names List********************** ok Trying: - ex=vcs.createvector('vector_ex1') # Create 'vector_ex1'; inherits 'default' + ex=vcs.createvector('vector_ex1') Expecting nothing ok Trying: - vcs.listelements('vector') # should now contain 'vector_ex1' + vcs.listelements('vector') # includes new object Expecting: [...'vector_ex1'...] ok Trying: - vcs.show('xvsy') # show all available xvsy + vcs.show('xvsy') # available xvsys Expecting: *******************Xvsy Names List********************** ... *******************End Xvsy Names List********************** ok Trying: - ex=vcs.createxvsy('xvsy_ex1') # Create 'xvsy_ex1'; inherits 'default' + ex=vcs.createxvsy('xvsy_ex1') Expecting nothing ok Trying: - vcs.listelements('xvsy') # should now contain 'xvsy_ex1' + vcs.listelements('xvsy') # includes new object Expecting: [...'xvsy_ex1'...] ok Trying: - vcs.show('xyvsy') # show all available xyvsy + vcs.show('xyvsy') # available xyvsys Expecting: *******************Xyvsy Names List********************** ... *******************End Xyvsy Names List********************** ok Trying: - ex=vcs.createxyvsy('xyvsy_ex1') # Create 'xyvsy_ex1'; inherits 'default' + ex=vcs.createxyvsy('xyvsy_ex1') Expecting nothing ok Trying: - vcs.listelements('xyvsy') # should now contain 'xyvsy_ex1' + vcs.listelements('xyvsy') # includes new object Expecting: [...'xyvsy_ex1'...] ok Trying: - vcs.show('yxvsx') # show all available yxvsx + vcs.show('yxvsx') # available yxvsxs Expecting: *******************Yxvsx Names List********************** ... *******************End Yxvsx Names List********************** ok Trying: - ex=vcs.createyxvsx('yxvsx_ex1') # Create 'yxvsx_ex1'; inherits 'default' + ex=vcs.createyxvsx('yxvsx_ex1') Expecting nothing ok Trying: - vcs.listelements('yxvsx') # should now contain 'yxvsx_ex1' + vcs.listelements('yxvsx') # includes new object Expecting: [...'yxvsx_ex1'...] ok @@ -944,17 +939,17 @@ Expecting: ok Trying: - a.ffmpeg('mymovie.mpeg',png_files) # generates from list of files + a.ffmpeg('m1.mpeg',png_files) # using list of files Expecting: True ok Trying: - a.ffmpeg('mymovie.mpeg',png_files,bitrate=512) # generates mpeg at 512kbit + a.ffmpeg('m2.mpeg',png_files,bitrate=512) # 512kbit rate Expecting: True ok Trying: - a.ffmpeg('mymovie.mpeg',png_files,rate=50) # generates movie with 50 frame per second + a.ffmpeg('m3.mpeg',png_files,rate=50) # 50 frames/second Expecting: True ok @@ -1037,12 +1032,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('3d_dual_scalar') # Show all the existing 3d_dual_scalar graphics methods + vcs.listelements('3d_dual_scalar') # list all 3d_dual_scalars Expecting: [...] ok Trying: - ex=vcs.get3d_dual_scalar() # instance of 'default' 3d_dual_scalar graphics method + ex=vcs.get3d_dual_scalar() # 'default' 3d_dual_scalar Expecting nothing ok Trying: @@ -1050,11 +1045,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -1062,29 +1057,29 @@ Trying: Expecting nothing ok Trying: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object + a.plot(ex, slab1, slab2) # plot 3d_dual_scalar Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1436, in vcs.Canvas.Canvas.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1434, in vcs.Canvas.Canvas.get3d_dual_scalar Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object + a.plot(ex, slab1, slab2) # plot 3d_dual_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing ok Trying: - vcs.listelements('3d_scalar') # Show all the existing 3d_scalar graphics methods + vcs.listelements('3d_scalar') # list all 3d_scalars Expecting: [...] ok Trying: - ex=vcs.get3d_scalar() # instance of 'default' 3d_scalar graphics method + ex=vcs.get3d_scalar() # 'default' 3d_scalar Expecting nothing ok Trying: @@ -1092,37 +1087,37 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.plot(ex, slab1) # plot using specified 3d_scalar object + a.plot(ex, slab1) # plot 3d_scalar Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1435, in vcs.Canvas.Canvas.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1433, in vcs.Canvas.Canvas.get3d_scalar Failed example: - a.plot(ex, slab1) # plot using specified 3d_scalar object + a.plot(ex, slab1) # plot 3d_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing ok Trying: - vcs.listelements('3d_vector') # Show all the existing 3d_vector graphics methods + vcs.listelements('3d_vector') # list all 3d_vectors Expecting: [...] ok Trying: - ex=vcs.get3d_vector() # instance of 'default' 3d_vector graphics method + ex=vcs.get3d_vector() # 'default' 3d_vector Expecting nothing ok Trying: @@ -1130,11 +1125,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -1142,20 +1137,20 @@ Trying: Expecting nothing ok Trying: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object + a.plot(ex, slab1, slab2) # plot 3d_vector Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1436, in vcs.Canvas.Canvas.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1434, in vcs.Canvas.Canvas.get3d_vector Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object + a.plot(ex, slab1, slab2) # plot 3d_vector Expected: Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1174,12 +1169,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('boxfill') # Show all the existing boxfill graphics methods + vcs.listelements('boxfill') # list all boxfills Expecting: [...] ok Trying: - ex=vcs.getboxfill() # instance of 'default' boxfill graphics method + ex=vcs.getboxfill() # 'default' boxfill Expecting nothing ok Trying: @@ -1187,24 +1182,24 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.boxfill(ex, slab1) # plot using specified boxfill object + a.boxfill(ex, slab1) # plot boxfill Expecting: ok Trying: - ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method + ex2=vcs.getboxfill('polar') # boxfill #2 Expecting nothing ok Trying: - a.boxfill(ex2, slab1) # plot using specified boxfill object + a.boxfill(ex2, slab1) # plot boxfill Expecting: ok @@ -1230,16 +1225,16 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('colormap') # Show all the existing colormap secondary methods + vcs.listelements('colormap') # list all colormaps Expecting: [...] ok Trying: - ex=vcs.getcolormap() # instance of 'default' colormap secondary method + ex=vcs.getcolormap() # 'default' colormap Expecting nothing ok Trying: - ex2=vcs.getcolormap('rainbow') # instance of 'rainbow' colormap secondary method + ex2=vcs.getcolormap('rainbow') # colormap #2 Expecting nothing ok Trying: @@ -1311,16 +1306,16 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('fillarea') # Show all the existing fillarea secondary methods + vcs.listelements('fillarea') # list all fillareas Expecting: [...] ok Trying: - ex=vcs.getfillarea() # instance of 'default' fillarea secondary method + ex=vcs.getfillarea() # 'default' fillarea Expecting nothing ok Trying: - a.fillarea(ex) # plot using specified fillarea object + a.fillarea(ex) # plot fillarea Expecting: ok @@ -1381,12 +1376,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('isofill') # Show all the existing isofill graphics methods + vcs.listelements('isofill') # list all isofills Expecting: [...] ok Trying: - ex=vcs.getisofill() # instance of 'default' isofill graphics method + ex=vcs.getisofill() # 'default' isofill Expecting nothing ok Trying: @@ -1394,24 +1389,24 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.isofill(ex, slab1) # plot using specified isofill object + a.isofill(ex, slab1) # plot isofill Expecting: ok Trying: - ex2=vcs.getisofill('polar') # instance of 'polar' isofill graphics method + ex2=vcs.getisofill('polar') # isofill #2 Expecting nothing ok Trying: - a.isofill(ex2, slab1) # plot using specified isofill object + a.isofill(ex2, slab1) # plot isofill Expecting: ok @@ -1420,12 +1415,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('isoline') # Show all the existing isoline graphics methods + vcs.listelements('isoline') # list all isolines Expecting: [...] ok Trying: - ex=vcs.getisoline() # instance of 'default' isoline graphics method + ex=vcs.getisoline() # 'default' isoline Expecting nothing ok Trying: @@ -1433,24 +1428,24 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.isoline(ex, slab1) # plot using specified isoline object + a.isoline(ex, slab1) # plot isoline Expecting: ok Trying: - ex2=vcs.getisoline('polar') # instance of 'polar' isoline graphics method + ex2=vcs.getisoline('polar') # isoline #2 Expecting nothing ok Trying: - a.isoline(ex2, slab1) # plot using specified isoline object + a.isoline(ex2, slab1) # plot isoline Expecting: ok @@ -1459,25 +1454,25 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('line') # Show all the existing line secondary methods + vcs.listelements('line') # list all lines Expecting: [...] ok Trying: - ex=vcs.getline() # instance of 'default' line secondary method + ex=vcs.getline() # 'default' line Expecting nothing ok Trying: - a.line(ex) # plot using specified line object + a.line(ex) # plot line Expecting: ok Trying: - ex2=vcs.getline('red') # instance of 'red' line secondary method + ex2=vcs.getline('red') # line #2 Expecting nothing ok Trying: - a.line(ex2) # plot using specified line object + a.line(ex2) # plot line Expecting: ok @@ -1486,25 +1481,25 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('marker') # Show all the existing marker secondary methods + vcs.listelements('marker') # list all markers Expecting: [...] ok Trying: - ex=vcs.getmarker() # instance of 'default' marker secondary method + ex=vcs.getmarker() # 'default' marker Expecting nothing ok Trying: - a.marker(ex) # plot using specified marker object + a.marker(ex) # plot marker Expecting: ok Trying: - ex2=vcs.getmarker('red') # instance of 'red' marker secondary method + ex2=vcs.getmarker('red') # marker #2 Expecting nothing ok Trying: - a.marker(ex2) # plot using specified marker object + a.marker(ex2) # plot marker Expecting: ok @@ -1513,12 +1508,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('meshfill') # Show all the existing meshfill graphics methods + vcs.listelements('meshfill') # list all meshfills Expecting: [...] ok Trying: - ex=vcs.getmeshfill() # instance of 'default' meshfill graphics method + ex=vcs.getmeshfill() # 'default' meshfill Expecting nothing ok Trying: @@ -1526,24 +1521,24 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.meshfill(ex, slab1) # plot using specified meshfill object + a.meshfill(ex, slab1) # plot meshfill Expecting: ok Trying: - ex2=vcs.getmeshfill('a_polar_meshfill') # instance of 'a_polar_meshfill' meshfill graphics method + ex2=vcs.getmeshfill('a_polar_meshfill') # meshfill #2 Expecting nothing ok Trying: - a.meshfill(ex2, slab1) # plot using specified meshfill object + a.meshfill(ex2, slab1) # plot meshfill Expecting: ok @@ -1552,16 +1547,28 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('projection') # Show all the existing projection graphics methods + vcs.listelements('projection') # list all projections Expecting: [...] ok Trying: - ex=vcs.getprojection() # instance of 'default' projection graphics method + ex=vcs.getprojection() # 'default' projection Expecting nothing ok Trying: - ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 +Expecting nothing +ok +Trying: + slab1 = f('u') # take a slab from the data +Expecting nothing +ok +Trying: + ex2=vcs.getprojection('orthographic') # projection #2 Expecting nothing ok Trying: @@ -1569,12 +1576,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('scatter') # Show all the existing scatter graphics methods + vcs.listelements('scatter') # list all scatters Expecting: [...] ok Trying: - ex=vcs.getscatter('default_scatter_') # instance of ''default_scatter_'' scatter graphics method + ex=vcs.getscatter('default_scatter_') # ''default_scatter_'' scatter Expecting nothing ok Trying: @@ -1582,11 +1589,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -1594,7 +1601,7 @@ Trying: Expecting nothing ok Trying: - a.scatter(ex, slab1, slab2) # plot using specified scatter object + a.scatter(ex, slab1, slab2) # plot scatter Expecting: ok @@ -1603,12 +1610,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('taylordiagram') # Show all the existing taylordiagram graphics methods + vcs.listelements('taylordiagram') # list all taylordiagrams Expecting: [...] ok Trying: - ex=vcs.gettaylordiagram() # instance of 'default' taylordiagram graphics method + ex=vcs.gettaylordiagram() # 'default' taylordiagram Expecting nothing ok Trying: @@ -1616,7 +1623,7 @@ Trying: Expecting nothing ok Trying: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + a.taylordiagram(ex, slab1) # plot taylordiagram Expecting: ok @@ -1625,16 +1632,28 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('template') # Show all the existing template graphics methods + vcs.listelements('template') # list all templates Expecting: [...] ok Trying: - ex=vcs.gettemplate() # instance of 'default' template graphics method + ex=vcs.gettemplate() # 'default' template +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab Expecting nothing ok Trying: - ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 +Expecting nothing +ok +Trying: + slab1 = f('u') # take a slab from the data +Expecting nothing +ok +Trying: + ex2=vcs.gettemplate('polar') # template #2 Expecting nothing ok Trying: @@ -1642,7 +1661,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('textcombined') # Show all the existing textcombined secondary methods + vcs.listelements('textcombined') # list all textcombineds Expecting: [...] ok @@ -1654,11 +1673,11 @@ Trying: Expecting nothing ok Trying: - ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method + ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # 'EXAMPLE_tt:::EXAMPLE_tto' textcombined Expecting nothing ok Trying: - a.textcombined(ex) # plot using specified textcombined object + a.textcombined(ex) # plot textcombined Expecting: ok @@ -1692,16 +1711,16 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('textorientation') # Show all the existing textorientation secondary methods + vcs.listelements('textorientation') # list all textorientations Expecting: [...] ok Trying: - ex=vcs.gettextorientation() # instance of 'default' textorientation secondary method + ex=vcs.gettextorientation() # 'default' textorientation Expecting nothing ok Trying: - ex2=vcs.gettextorientation('bigger') # instance of 'bigger' textorientation secondary method + ex2=vcs.gettextorientation('bigger') # textorientation #2 Expecting nothing ok Trying: @@ -1709,16 +1728,16 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('texttable') # Show all the existing texttable secondary methods + vcs.listelements('texttable') # list all texttables Expecting: [...] ok Trying: - ex=vcs.gettexttable() # instance of 'default' texttable secondary method + ex=vcs.gettexttable() # 'default' texttable Expecting nothing ok Trying: - ex2=vcs.gettexttable('bigger') # instance of 'bigger' texttable secondary method + ex2=vcs.gettexttable('bigger') # texttable #2 Expecting nothing ok Trying: @@ -1726,12 +1745,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('vector') # Show all the existing vector graphics methods + vcs.listelements('vector') # list all vectors Expecting: [...] ok Trying: - ex=vcs.getvector() # instance of 'default' vector graphics method + ex=vcs.getvector() # 'default' vector Expecting nothing ok Trying: @@ -1739,11 +1758,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -1751,7 +1770,7 @@ Trying: Expecting nothing ok Trying: - a.vector(ex, slab1, slab2) # plot using specified vector object + a.vector(ex, slab1, slab2) # plot vector Expecting: ok @@ -1760,12 +1779,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('xvsy') # Show all the existing xvsy graphics methods + vcs.listelements('xvsy') # list all xvsys Expecting: [...] ok Trying: - ex=vcs.getxvsy() # instance of 'default_xvsy_' xvsy graphics method + ex=vcs.getxvsy() # 'default_xvsy_' xvsy Expecting nothing ok Trying: @@ -1773,11 +1792,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -1785,7 +1804,7 @@ Trying: Expecting nothing ok Trying: - a.xvsy(ex, slab1, slab2) # plot using specified xvsy object + a.xvsy(ex, slab1, slab2) # plot xvsy Expecting: ok @@ -1794,12 +1813,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('xyvsy') # Show all the existing xyvsy graphics methods + vcs.listelements('xyvsy') # list all xyvsys Expecting: [...] ok Trying: - ex=vcs.getxyvsy('default_xyvsy_') # instance of ''default_xyvsy_'' xyvsy graphics method + ex=vcs.getxyvsy('default_xyvsy_') # ''default_xyvsy_'' xyvsy Expecting nothing ok Trying: @@ -1807,15 +1826,15 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.xyvsy(ex, slab1) # plot using specified xyvsy object + a.xyvsy(ex, slab1) # plot xyvsy Expecting: ok @@ -1824,12 +1843,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('yxvsx') # Show all the existing yxvsx graphics methods + vcs.listelements('yxvsx') # list all yxvsxs Expecting: [...] ok Trying: - ex=vcs.getyxvsx() # instance of 'default_yxvsx_' yxvsx graphics method + ex=vcs.getyxvsx() # 'default_yxvsx_' yxvsx Expecting nothing ok Trying: @@ -1837,15 +1856,15 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.yxvsx(ex, slab1) # plot using specified yxvsx object + a.yxvsx(ex, slab1) # plot yxvsx Expecting: ok @@ -1883,7 +1902,7 @@ Trying: Expecting: 1 ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5520, in vcs.Canvas.Canvas.isinfile +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5434, in vcs.Canvas.Canvas.isinfile Failed example: a.isinfile(box, 'deft_box.py') Expected: @@ -2321,7 +2340,7 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file Expecting nothing ok Trying: @@ -2653,6 +2672,61 @@ Trying: a.scriptobject(i,'ex_isoline2') # Save isoline object as a JSON object 'isoline2.json' Expecting nothing ok +Trying: + b=vcs.createboxfill('new_box') +Expecting nothing +ok +Trying: + b.script('new_box') # json representation of 'new_box' +Expecting nothing +ok +Trying: + bfs=vcs.listelements('boxfill') # list all boxfills +Expecting nothing +ok +Trying: + i=bfs.index('new_box') +Expecting nothing +ok +Trying: + bfs[i] # shows 'new_box' exists +Expecting: + 'new_box' +ok +Trying: + vcs.removeobject(b) # remove new_box +Expecting: + 'Removed boxfill object new_box' +ok +Trying: + bfs=vcs.listelements('boxfill') # list all boxfills +Expecting nothing +ok +Trying: + try: + bfs.index('new_box') + except: + print ("boxfill 'new_box' doesn't exist") +Expecting: + boxfill 'new_box' doesn't exist +ok +Trying: + vcs.scriptrun('new_box.json') # re-creates 'new_box' +Expecting nothing +ok +Trying: + bfs=vcs.listelements('boxfill') # list all boxfills +Expecting nothing +ok +Trying: + i=bfs.index('new_box') +Expecting nothing +ok +Trying: + bfs[i] # shows 'new_box' exists (again) +Expecting: + 'new_box' +ok Trying: a=vcs.init() Expecting nothing @@ -3203,7 +3277,7 @@ Trying: Expecting: ok -83 items had no tests: +82 items had no tests: vcs.Canvas vcs.Canvas.Canvas vcs.Canvas.Canvas._Canvas__new_elts @@ -3265,7 +3339,6 @@ ok vcs.Canvas.Canvas.removeP vcs.Canvas.Canvas.savecontinentstype vcs.Canvas.Canvas.scalar3d - vcs.Canvas.Canvas.scriptrun vcs.Canvas.Canvas.setAnimationStepper vcs.Canvas.Canvas.setdefaultfont vcs.Canvas.Canvas.start @@ -3287,7 +3360,7 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -117 items passed all tests: +118 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill 2 tests in vcs.Canvas.Canvas.canvasid 5 tests in vcs.Canvas.Canvas.canvasinfo @@ -3348,10 +3421,10 @@ ok 6 tests in vcs.Canvas.Canvas.getline 6 tests in vcs.Canvas.Canvas.getmarker 9 tests in vcs.Canvas.Canvas.getmeshfill - 4 tests in vcs.Canvas.Canvas.getprojection + 7 tests in vcs.Canvas.Canvas.getprojection 8 tests in vcs.Canvas.Canvas.getscatter 5 tests in vcs.Canvas.Canvas.gettaylordiagram - 4 tests in vcs.Canvas.Canvas.gettemplate + 7 tests in vcs.Canvas.Canvas.gettemplate 5 tests in vcs.Canvas.Canvas.gettextcombined 6 tests in vcs.Canvas.Canvas.gettextextent 4 tests in vcs.Canvas.Canvas.gettextorientation @@ -3389,6 +3462,7 @@ ok 2 tests in vcs.Canvas.Canvas.saveinitialfile 10 tests in vcs.Canvas.Canvas.scatter 4 tests in vcs.Canvas.Canvas.scriptobject + 12 tests in vcs.Canvas.Canvas.scriptrun 3 tests in vcs.Canvas.Canvas.setantialiasing 3 tests in vcs.Canvas.Canvas.setbgoutputdimensions 11 tests in vcs.Canvas.Canvas.setcolorcell @@ -3412,6 +3486,6 @@ ok 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector 1 of 4 in vcs.Canvas.Canvas.isinfile -693 tests in 205 items. -688 passed and 5 failed. +711 tests in 205 items. +706 passed and 5 failed. ***Test Failed*** 5 failures. diff --git a/docs/doctest_info/reports/boxfill.report b/docs/doctest_info/reports/boxfill.report index 488ac0051..e9e433327 100644 --- a/docs/doctest_info/reports/boxfill.report +++ b/docs/doctest_info/reports/boxfill.report @@ -100,19 +100,19 @@ Expecting: [...'foo'...] ok Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getboxfill() # Get default boxfill + ex=a.getboxfill() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/colormap.report b/docs/doctest_info/reports/colormap.report index 5960fb0df..feb33dad9 100644 --- a/docs/doctest_info/reports/colormap.report +++ b/docs/doctest_info/reports/colormap.report @@ -12,19 +12,19 @@ Expecting: [26, 0, 33, 100] ok Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getcolormap() # Get default colormap + ex=a.getcolormap() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/fillarea.report b/docs/doctest_info/reports/fillarea.report index 0d8522931..2e7da70e9 100644 --- a/docs/doctest_info/reports/fillarea.report +++ b/docs/doctest_info/reports/fillarea.report @@ -1,17 +1,17 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getfillarea() # Get default fillarea + ex=a.getfillarea() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 34 items had no tests: diff --git a/docs/doctest_info/reports/isofill.report b/docs/doctest_info/reports/isofill.report index a586e38c1..02964b3d1 100644 --- a/docs/doctest_info/reports/isofill.report +++ b/docs/doctest_info/reports/isofill.report @@ -72,31 +72,31 @@ Expecting: ... ok Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getisofill() # Get default isofill + ex=a.getisofill() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 775, in vcs.isofill.Gfi.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 776, in vcs.isofill.Gfi.script Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 856, in script fp.write("%s.missing = %g\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/isoline.report b/docs/doctest_info/reports/isoline.report index de6e16f76..3021ada0c 100644 --- a/docs/doctest_info/reports/isoline.report +++ b/docs/doctest_info/reports/isoline.report @@ -30,19 +30,19 @@ Expecting: ... ok Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getisoline() # Get default isoline + ex=a.getisoline() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/line.report b/docs/doctest_info/reports/line.report index 1b60ab015..b5d7689f8 100644 --- a/docs/doctest_info/reports/line.report +++ b/docs/doctest_info/reports/line.report @@ -1,22 +1,102 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() # VCS Canvas Constructor Expecting nothing ok Trying: - ex=a.getline() # Get default line + a.show('line') # Show predefined line objects +Expecting: + *******************Line Names List********************** + ... + *******************End Line Names List********************** +ok +Trying: + a.getline('red').list() # show properties of 'red' line +Expecting: + ---------- ... ---------- + ... +ok +Trying: + a.update() # manually update canvas +Expecting nothing +ok +Trying: + ln=a.createline('new','red') # Copies 'red' to 'new' +Expecting nothing +ok +Trying: + ln=a.createline('new2') # Copies 'default' to 'new2' +Expecting nothing +ok +Trying: + ln=a.getline('red') +Expecting nothing +ok +Trying: + ln.color=100 # Range from 1 to 256 +Expecting nothing +ok +Trying: + ln.width=100 # Range from 1 to 300 +Expecting nothing +ok +Trying: + ln.type='solid' # Same as ln.type=0 +Expecting nothing +ok +Trying: + ln.type='dash' # Same as ln.type=1 +Expecting nothing +ok +Trying: + ln.type='dot' # Same as ln.type=2 +Expecting nothing +ok +Trying: + ln.type='dash-dot' # Same as ln.type=3 +Expecting nothing +ok +Trying: + ln.type='long-dash' # Same as ln.type=4 +Expecting nothing +ok +Trying: + ln.priority=1 +Expecting nothing +ok +Trying: + ln.viewport=[0, 1.0, 0,1.0] # float [0,1]x[0,1] +Expecting nothing +ok +Trying: + ln.worldcoordinate=[0,1.0,0,1.0] # float [#,#]x[#,#] +Expecting nothing +ok +Trying: + ln.x=[[0,.1,.2], [.3,.4,.5]] # List of floats +Expecting nothing +ok +Trying: + ln.y=[[.5,.4,.3], [.2,.1,0]] # List of floats +Expecting nothing +ok +Trying: + a=vcs.init() +Expecting nothing +ok +Trying: + ex=a.getline() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok -36 items had no tests: +35 items had no tests: vcs.line - vcs.line.Tl vcs.line.Tl.__init__ vcs.line.Tl._getfillareacolors vcs.line.Tl._getname @@ -51,8 +131,9 @@ ok vcs.line.Tl.x vcs.line.Tl.y vcs.line.process_src -1 items passed all tests: +2 items passed all tests: + 19 tests in vcs.line.Tl 4 tests in vcs.line.Tl.script -4 tests in 37 items. -4 passed and 0 failed. +23 tests in 37 items. +23 passed and 0 failed. Test passed. diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report index 3a8d00d29..580bf7a5d 100644 --- a/docs/doctest_info/reports/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -42,336 +42,336 @@ Expecting: ok Trying: - vcs.show('3d_dual_scalar') # show all available 3d_dual_scalar + vcs.show('3d_dual_scalar') # available 3d_dual_scalars Expecting: *******************3d_dual_scalar Names List********************** ... *******************End 3d_dual_scalar Names List********************** ok Trying: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') # Create '3d_dual_scalar_ex1'; inherits 'default' + ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') Expecting nothing ok Trying: - vcs.listelements('3d_dual_scalar') # should now contain '3d_dual_scalar_ex1' + vcs.listelements('3d_dual_scalar') # includes new object Expecting: [...'3d_dual_scalar_ex1'...] ok Trying: - vcs.show('3d_scalar') # show all available 3d_scalar + vcs.show('3d_scalar') # available 3d_scalars Expecting: *******************3d_scalar Names List********************** ... *******************End 3d_scalar Names List********************** ok Trying: - ex=vcs.create3d_scalar('3d_scalar_ex1') # Create '3d_scalar_ex1'; inherits 'default' + ex=vcs.create3d_scalar('3d_scalar_ex1') Expecting nothing ok Trying: - vcs.listelements('3d_scalar') # should now contain '3d_scalar_ex1' + vcs.listelements('3d_scalar') # includes new object Expecting: [...'3d_scalar_ex1'...] ok Trying: - vcs.show('3d_vector') # show all available 3d_vector + vcs.show('3d_vector') # available 3d_vectors Expecting: *******************3d_vector Names List********************** ... *******************End 3d_vector Names List********************** ok Trying: - ex=vcs.create3d_vector('3d_vector_ex1') # Create '3d_vector_ex1'; inherits 'default' + ex=vcs.create3d_vector('3d_vector_ex1') Expecting nothing ok Trying: - vcs.listelements('3d_vector') # should now contain '3d_vector_ex1' + vcs.listelements('3d_vector') # includes new object Expecting: [...'3d_vector_ex1'...] ok Trying: - vcs.show('boxfill') # show all available boxfill + vcs.show('boxfill') # available boxfills Expecting: *******************Boxfill Names List********************** ... *******************End Boxfill Names List********************** ok Trying: - ex=vcs.createboxfill('boxfill_ex1') # Create 'boxfill_ex1'; inherits 'default' + ex=vcs.createboxfill('boxfill_ex1') Expecting nothing ok Trying: - vcs.listelements('boxfill') # should now contain 'boxfill_ex1' + vcs.listelements('boxfill') # includes new object Expecting: [...'boxfill_ex1'...] ok Trying: - ex2=vcs.createboxfill('boxfill_ex2','polar') # create 'boxfill_ex2'; inherits 'polar' + ex2=vcs.createboxfill('boxfill_ex2','polar') Expecting nothing ok Trying: - vcs.listelements('boxfill') # should now contain 'boxfill_ex2' + vcs.listelements('boxfill') # includes new object Expecting: [...'boxfill_ex2'...] ok Trying: - vcs.show('colormap') # show all available colormap + vcs.show('colormap') # available colormaps Expecting: *******************Colormap Names List********************** ... *******************End Colormap Names List********************** ok Trying: - ex=vcs.createcolormap('colormap_ex1') # Create 'colormap_ex1'; inherits 'default' + ex=vcs.createcolormap('colormap_ex1') Expecting nothing ok Trying: - vcs.listelements('colormap') # should now contain 'colormap_ex1' + vcs.listelements('colormap') # includes new object Expecting: [...'colormap_ex1'...] ok Trying: - ex2=vcs.createcolormap('colormap_ex2','rainbow') # create 'colormap_ex2'; inherits 'rainbow' + ex2=vcs.createcolormap('colormap_ex2','rainbow') Expecting nothing ok Trying: - vcs.listelements('colormap') # should now contain 'colormap_ex2' + vcs.listelements('colormap') # includes new object Expecting: [...'colormap_ex2'...] ok Trying: - vcs.show('fillarea') # show all available fillarea + vcs.show('fillarea') # available fillareas Expecting: *******************Fillarea Names List********************** ... *******************End Fillarea Names List********************** ok Trying: - ex=vcs.createfillarea('fillarea_ex1') # Create 'fillarea_ex1'; inherits 'default' + ex=vcs.createfillarea('fillarea_ex1') Expecting nothing ok Trying: - vcs.listelements('fillarea') # should now contain 'fillarea_ex1' + vcs.listelements('fillarea') # includes new object Expecting: [...'fillarea_ex1'...] ok Trying: - vcs.show('isofill') # show all available isofill + vcs.show('isofill') # available isofills Expecting: *******************Isofill Names List********************** ... *******************End Isofill Names List********************** ok Trying: - ex=vcs.createisofill('isofill_ex1') # Create 'isofill_ex1'; inherits 'default' + ex=vcs.createisofill('isofill_ex1') Expecting nothing ok Trying: - vcs.listelements('isofill') # should now contain 'isofill_ex1' + vcs.listelements('isofill') # includes new object Expecting: [...'isofill_ex1'...] ok Trying: - ex2=vcs.createisofill('isofill_ex2','polar') # create 'isofill_ex2'; inherits 'polar' + ex2=vcs.createisofill('isofill_ex2','polar') Expecting nothing ok Trying: - vcs.listelements('isofill') # should now contain 'isofill_ex2' + vcs.listelements('isofill') # includes new object Expecting: [...'isofill_ex2'...] ok Trying: - vcs.show('isoline') # show all available isoline + vcs.show('isoline') # available isolines Expecting: *******************Isoline Names List********************** ... *******************End Isoline Names List********************** ok Trying: - ex=vcs.createisoline('isoline_ex1') # Create 'isoline_ex1'; inherits 'default' + ex=vcs.createisoline('isoline_ex1') Expecting nothing ok Trying: - vcs.listelements('isoline') # should now contain 'isoline_ex1' + vcs.listelements('isoline') # includes new object Expecting: [...'isoline_ex1'...] ok Trying: - ex2=vcs.createisoline('isoline_ex2','polar') # create 'isoline_ex2'; inherits 'polar' + ex2=vcs.createisoline('isoline_ex2','polar') Expecting nothing ok Trying: - vcs.listelements('isoline') # should now contain 'isoline_ex2' + vcs.listelements('isoline') # includes new object Expecting: [...'isoline_ex2'...] ok Trying: - vcs.show('line') # show all available line + vcs.show('line') # available lines Expecting: *******************Line Names List********************** ... *******************End Line Names List********************** ok Trying: - ex=vcs.createline('line_ex1') # Create 'line_ex1'; inherits 'default' + ex=vcs.createline('line_ex1') Expecting nothing ok Trying: - vcs.listelements('line') # should now contain 'line_ex1' + vcs.listelements('line') # includes new object Expecting: [...'line_ex1'...] ok Trying: - ex2=vcs.createline('line_ex2','red') # create 'line_ex2'; inherits 'red' + ex2=vcs.createline('line_ex2','red') Expecting nothing ok Trying: - vcs.listelements('line') # should now contain 'line_ex2' + vcs.listelements('line') # includes new object Expecting: [...'line_ex2'...] ok Trying: - vcs.show('marker') # show all available marker + vcs.show('marker') # available markers Expecting: *******************Marker Names List********************** ... *******************End Marker Names List********************** ok Trying: - ex=vcs.createmarker('marker_ex1') # Create 'marker_ex1'; inherits 'default' + ex=vcs.createmarker('marker_ex1') Expecting nothing ok Trying: - vcs.listelements('marker') # should now contain 'marker_ex1' + vcs.listelements('marker') # includes new object Expecting: [...'marker_ex1'...] ok Trying: - ex2=vcs.createmarker('marker_ex2','red') # create 'marker_ex2'; inherits 'red' + ex2=vcs.createmarker('marker_ex2','red') Expecting nothing ok Trying: - vcs.listelements('marker') # should now contain 'marker_ex2' + vcs.listelements('marker') # includes new object Expecting: [...'marker_ex2'...] ok Trying: - vcs.show('meshfill') # show all available meshfill + vcs.show('meshfill') # available meshfills Expecting: *******************Meshfill Names List********************** ... *******************End Meshfill Names List********************** ok Trying: - ex=vcs.createmeshfill('meshfill_ex1') # Create 'meshfill_ex1'; inherits 'default' + ex=vcs.createmeshfill('meshfill_ex1') Expecting nothing ok Trying: - vcs.listelements('meshfill') # should now contain 'meshfill_ex1' + vcs.listelements('meshfill') # includes new object Expecting: [...'meshfill_ex1'...] ok Trying: - ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') # create 'meshfill_ex2'; inherits 'a_polar_meshfill' + ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') Expecting nothing ok Trying: - vcs.listelements('meshfill') # should now contain 'meshfill_ex2' + vcs.listelements('meshfill') # includes new object Expecting: [...'meshfill_ex2'...] ok Trying: - vcs.show('projection') # show all available projection + vcs.show('projection') # available projections Expecting: *******************Projection Names List********************** ... *******************End Projection Names List********************** ok Trying: - ex=vcs.createprojection('projection_ex1') # Create 'projection_ex1'; inherits 'default' + ex=vcs.createprojection('projection_ex1') Expecting nothing ok Trying: - vcs.listelements('projection') # should now contain 'projection_ex1' + vcs.listelements('projection') # includes new object Expecting: [...'projection_ex1'...] ok Trying: - ex2=vcs.createprojection('projection_ex2','orthographic') # create 'projection_ex2'; inherits 'orthographic' + ex2=vcs.createprojection('projection_ex2','orthographic') Expecting nothing ok Trying: - vcs.listelements('projection') # should now contain 'projection_ex2' + vcs.listelements('projection') # includes new object Expecting: [...'projection_ex2'...] ok Trying: - vcs.show('scatter') # show all available scatter + vcs.show('scatter') # available scatters Expecting: *******************Scatter Names List********************** ... *******************End Scatter Names List********************** ok Trying: - ex=vcs.createscatter('scatter_ex1') # Create 'scatter_ex1'; inherits 'default' + ex=vcs.createscatter('scatter_ex1') Expecting nothing ok Trying: - vcs.listelements('scatter') # should now contain 'scatter_ex1' + vcs.listelements('scatter') # includes new object Expecting: [...'scatter_ex1'...] ok Trying: - vcs.show('taylordiagram') # show all available taylordiagram + vcs.show('taylordiagram') # available taylordiagrams Expecting: *******************Taylordiagram Names List********************** ... *******************End Taylordiagram Names List********************** ok Trying: - ex=vcs.createtaylordiagram('taylordiagram_ex1') # Create 'taylordiagram_ex1'; inherits 'default' + ex=vcs.createtaylordiagram('taylordiagram_ex1') Expecting nothing ok Trying: - vcs.listelements('taylordiagram') # should now contain 'taylordiagram_ex1' + vcs.listelements('taylordiagram') # includes new object Expecting: [...'taylordiagram_ex1'...] ok Trying: - vcs.show('template') # show all available template + vcs.show('template') # available templates Expecting: *******************Template Names List********************** ... *******************End Template Names List********************** ok Trying: - ex=vcs.createtemplate('template_ex1') # Create 'template_ex1'; inherits 'default' + ex=vcs.createtemplate('template_ex1') Expecting nothing ok Trying: - vcs.listelements('template') # should now contain 'template_ex1' + vcs.listelements('template') # includes new object Expecting: [...'template_ex1'...] ok Trying: - ex2=vcs.createtemplate('template_ex2','polar') # create 'template_ex2'; inherits 'polar' + ex2=vcs.createtemplate('template_ex2','polar') Expecting nothing ok Trying: - vcs.listelements('template') # should now contain 'template_ex2' + vcs.listelements('template') # includes new object Expecting: [...'template_ex2'...] ok Trying: - vcs.show('textcombined') # show all available textcombined + vcs.show('textcombined') # available textcombineds Expecting: *******************Textcombined Names List********************** ... *******************End Textcombined Names List********************** ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1293, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1296, in vcs.manageElements.createtext Failed example: - vcs.show('textcombined') # show all available textcombined + vcs.show('textcombined') # available textcombineds Expected: *******************Textcombined Names List********************** ... @@ -386,7 +386,7 @@ Trying: pass Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1297, in vcs.manageElements.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1300, in vcs.manageElements.createtext Failed example: try: # try to create a new textcombined, in case none exist vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') @@ -394,123 +394,123 @@ Failed example: pass Expected nothing Got: - + Trying: - vcs.listelements('textcombined') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' + vcs.listelements('textcombined') # includes new object Expecting: [...'EXAMPLE_tt:::EXAMPLE_tto'...] ok Trying: - vcs.show('textorientation') # show all available textorientation + vcs.show('textorientation') # available textorientations Expecting: *******************Textorientation Names List********************** ... *******************End Textorientation Names List********************** ok Trying: - ex=vcs.createtextorientation('textorientation_ex1') # Create 'textorientation_ex1'; inherits 'default' + ex=vcs.createtextorientation('textorientation_ex1') Expecting nothing ok Trying: - vcs.listelements('textorientation') # should now contain 'textorientation_ex1' + vcs.listelements('textorientation') # includes new object Expecting: [...'textorientation_ex1'...] ok Trying: - ex2=vcs.createtextorientation('textorientation_ex2','bigger') # create 'textorientation_ex2'; inherits 'bigger' + ex2=vcs.createtextorientation('textorientation_ex2','bigger') Expecting nothing ok Trying: - vcs.listelements('textorientation') # should now contain 'textorientation_ex2' + vcs.listelements('textorientation') # includes new object Expecting: [...'textorientation_ex2'...] ok Trying: - vcs.show('texttable') # show all available texttable + vcs.show('texttable') # available texttables Expecting: *******************Texttable Names List********************** ... *******************End Texttable Names List********************** ok Trying: - ex=vcs.createtexttable('texttable_ex1') # Create 'texttable_ex1'; inherits 'default' + ex=vcs.createtexttable('texttable_ex1') Expecting nothing ok Trying: - vcs.listelements('texttable') # should now contain 'texttable_ex1' + vcs.listelements('texttable') # includes new object Expecting: [...'texttable_ex1'...] ok Trying: - ex2=vcs.createtexttable('texttable_ex2','bigger') # create 'texttable_ex2'; inherits 'bigger' + ex2=vcs.createtexttable('texttable_ex2','bigger') Expecting nothing ok Trying: - vcs.listelements('texttable') # should now contain 'texttable_ex2' + vcs.listelements('texttable') # includes new object Expecting: [...'texttable_ex2'...] ok Trying: - vcs.show('vector') # show all available vector + vcs.show('vector') # available vectors Expecting: *******************Vector Names List********************** ... *******************End Vector Names List********************** ok Trying: - ex=vcs.createvector('vector_ex1') # Create 'vector_ex1'; inherits 'default' + ex=vcs.createvector('vector_ex1') Expecting nothing ok Trying: - vcs.listelements('vector') # should now contain 'vector_ex1' + vcs.listelements('vector') # includes new object Expecting: [...'vector_ex1'...] ok Trying: - vcs.show('xvsy') # show all available xvsy + vcs.show('xvsy') # available xvsys Expecting: *******************Xvsy Names List********************** ... *******************End Xvsy Names List********************** ok Trying: - ex=vcs.createxvsy('xvsy_ex1') # Create 'xvsy_ex1'; inherits 'default' + ex=vcs.createxvsy('xvsy_ex1') Expecting nothing ok Trying: - vcs.listelements('xvsy') # should now contain 'xvsy_ex1' + vcs.listelements('xvsy') # includes new object Expecting: [...'xvsy_ex1'...] ok Trying: - vcs.show('xyvsy') # show all available xyvsy + vcs.show('xyvsy') # available xyvsys Expecting: *******************Xyvsy Names List********************** ... *******************End Xyvsy Names List********************** ok Trying: - ex=vcs.createxyvsy('xyvsy_ex1') # Create 'xyvsy_ex1'; inherits 'default' + ex=vcs.createxyvsy('xyvsy_ex1') Expecting nothing ok Trying: - vcs.listelements('xyvsy') # should now contain 'xyvsy_ex1' + vcs.listelements('xyvsy') # includes new object Expecting: [...'xyvsy_ex1'...] ok Trying: - vcs.show('yxvsx') # show all available yxvsx + vcs.show('yxvsx') # available yxvsxs Expecting: *******************Yxvsx Names List********************** ... *******************End Yxvsx Names List********************** ok Trying: - ex=vcs.createyxvsx('yxvsx_ex1') # Create 'yxvsx_ex1'; inherits 'default' + ex=vcs.createyxvsx('yxvsx_ex1') Expecting nothing ok Trying: - vcs.listelements('yxvsx') # should now contain 'yxvsx_ex1' + vcs.listelements('yxvsx') # includes new object Expecting: [...'yxvsx_ex1'...] ok @@ -531,12 +531,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('3d_dual_scalar') # Show all the existing 3d_dual_scalar graphics methods + vcs.listelements('3d_dual_scalar') # list all 3d_dual_scalars Expecting: [...] ok Trying: - ex=vcs.get3d_dual_scalar() # instance of 'default' 3d_dual_scalar graphics method + ex=vcs.get3d_dual_scalar() # 'default' 3d_dual_scalar Expecting nothing ok Trying: @@ -544,11 +544,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -556,29 +556,29 @@ Trying: Expecting nothing ok Trying: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object + a.plot(ex, slab1, slab2) # plot 3d_dual_scalar Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1557, in vcs.manageElements.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1561, in vcs.manageElements.get3d_dual_scalar Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_dual_scalar object + a.plot(ex, slab1, slab2) # plot 3d_dual_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing ok Trying: - vcs.listelements('3d_scalar') # Show all the existing 3d_scalar graphics methods + vcs.listelements('3d_scalar') # list all 3d_scalars Expecting: [...] ok Trying: - ex=vcs.get3d_scalar() # instance of 'default' 3d_scalar graphics method + ex=vcs.get3d_scalar() # 'default' 3d_scalar Expecting nothing ok Trying: @@ -586,37 +586,37 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.plot(ex, slab1) # plot using specified 3d_scalar object + a.plot(ex, slab1) # plot 3d_scalar Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1517, in vcs.manageElements.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1521, in vcs.manageElements.get3d_scalar Failed example: - a.plot(ex, slab1) # plot using specified 3d_scalar object + a.plot(ex, slab1) # plot 3d_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing ok Trying: - vcs.listelements('3d_vector') # Show all the existing 3d_vector graphics methods + vcs.listelements('3d_vector') # list all 3d_vectors Expecting: [...] ok Trying: - ex=vcs.get3d_vector() # instance of 'default' 3d_vector graphics method + ex=vcs.get3d_vector() # 'default' 3d_vector Expecting nothing ok Trying: @@ -624,11 +624,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -636,31 +636,31 @@ Trying: Expecting nothing ok Trying: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object + a.plot(ex, slab1, slab2) # plot 3d_vector Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1596, in vcs.manageElements.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1600, in vcs.manageElements.get3d_vector Failed example: - a.plot(ex, slab1, slab2) # plot using specified 3d_vector object + a.plot(ex, slab1, slab2) # plot 3d_vector Expected: Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing ok Trying: - vcs.listelements('boxfill') # Show all the existing boxfill graphics methods + vcs.listelements('boxfill') # list all boxfills Expecting: [...] ok Trying: - ex=vcs.getboxfill() # instance of 'default' boxfill graphics method + ex=vcs.getboxfill() # 'default' boxfill Expecting nothing ok Trying: @@ -668,24 +668,24 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.boxfill(ex, slab1) # plot using specified boxfill object + a.boxfill(ex, slab1) # plot boxfill Expecting: ok Trying: - ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method + ex2=vcs.getboxfill('polar') # boxfill #2 Expecting nothing ok Trying: - a.boxfill(ex2, slab1) # plot using specified boxfill object + a.boxfill(ex2, slab1) # plot boxfill Expecting: ok @@ -694,16 +694,16 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('colormap') # Show all the existing colormap secondary methods + vcs.listelements('colormap') # list all colormaps Expecting: [...] ok Trying: - ex=vcs.getcolormap() # instance of 'default' colormap secondary method + ex=vcs.getcolormap() # 'default' colormap Expecting nothing ok Trying: - ex2=vcs.getcolormap('rainbow') # instance of 'rainbow' colormap secondary method + ex2=vcs.getcolormap('rainbow') # colormap #2 Expecting nothing ok Trying: @@ -711,16 +711,16 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('fillarea') # Show all the existing fillarea secondary methods + vcs.listelements('fillarea') # list all fillareas Expecting: [...] ok Trying: - ex=vcs.getfillarea() # instance of 'default' fillarea secondary method + ex=vcs.getfillarea() # 'default' fillarea Expecting nothing ok Trying: - a.fillarea(ex) # plot using specified fillarea object + a.fillarea(ex) # plot fillarea Expecting: ok @@ -729,12 +729,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('isofill') # Show all the existing isofill graphics methods + vcs.listelements('isofill') # list all isofills Expecting: [...] ok Trying: - ex=vcs.getisofill() # instance of 'default' isofill graphics method + ex=vcs.getisofill() # 'default' isofill Expecting nothing ok Trying: @@ -742,24 +742,24 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.isofill(ex, slab1) # plot using specified isofill object + a.isofill(ex, slab1) # plot isofill Expecting: ok Trying: - ex2=vcs.getisofill('polar') # instance of 'polar' isofill graphics method + ex2=vcs.getisofill('polar') # isofill #2 Expecting nothing ok Trying: - a.isofill(ex2, slab1) # plot using specified isofill object + a.isofill(ex2, slab1) # plot isofill Expecting: ok @@ -768,12 +768,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('isoline') # Show all the existing isoline graphics methods + vcs.listelements('isoline') # list all isolines Expecting: [...] ok Trying: - ex=vcs.getisoline() # instance of 'default' isoline graphics method + ex=vcs.getisoline() # 'default' isoline Expecting nothing ok Trying: @@ -781,24 +781,24 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.isoline(ex, slab1) # plot using specified isoline object + a.isoline(ex, slab1) # plot isoline Expecting: ok Trying: - ex2=vcs.getisoline('polar') # instance of 'polar' isoline graphics method + ex2=vcs.getisoline('polar') # isoline #2 Expecting nothing ok Trying: - a.isoline(ex2, slab1) # plot using specified isoline object + a.isoline(ex2, slab1) # plot isoline Expecting: ok @@ -807,25 +807,25 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('line') # Show all the existing line secondary methods + vcs.listelements('line') # list all lines Expecting: [...] ok Trying: - ex=vcs.getline() # instance of 'default' line secondary method + ex=vcs.getline() # 'default' line Expecting nothing ok Trying: - a.line(ex) # plot using specified line object + a.line(ex) # plot line Expecting: ok Trying: - ex2=vcs.getline('red') # instance of 'red' line secondary method + ex2=vcs.getline('red') # line #2 Expecting nothing ok Trying: - a.line(ex2) # plot using specified line object + a.line(ex2) # plot line Expecting: ok @@ -834,25 +834,25 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('marker') # Show all the existing marker secondary methods + vcs.listelements('marker') # list all markers Expecting: [...] ok Trying: - ex=vcs.getmarker() # instance of 'default' marker secondary method + ex=vcs.getmarker() # 'default' marker Expecting nothing ok Trying: - a.marker(ex) # plot using specified marker object + a.marker(ex) # plot marker Expecting: ok Trying: - ex2=vcs.getmarker('red') # instance of 'red' marker secondary method + ex2=vcs.getmarker('red') # marker #2 Expecting nothing ok Trying: - a.marker(ex2) # plot using specified marker object + a.marker(ex2) # plot marker Expecting: ok @@ -861,12 +861,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('meshfill') # Show all the existing meshfill graphics methods + vcs.listelements('meshfill') # list all meshfills Expecting: [...] ok Trying: - ex=vcs.getmeshfill() # instance of 'default' meshfill graphics method + ex=vcs.getmeshfill() # 'default' meshfill Expecting nothing ok Trying: @@ -874,24 +874,24 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.meshfill(ex, slab1) # plot using specified meshfill object + a.meshfill(ex, slab1) # plot meshfill Expecting: ok Trying: - ex2=vcs.getmeshfill('a_polar_meshfill') # instance of 'a_polar_meshfill' meshfill graphics method + ex2=vcs.getmeshfill('a_polar_meshfill') # meshfill #2 Expecting nothing ok Trying: - a.meshfill(ex2, slab1) # plot using specified meshfill object + a.meshfill(ex2, slab1) # plot meshfill Expecting: ok @@ -900,16 +900,28 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('projection') # Show all the existing projection graphics methods + vcs.listelements('projection') # list all projections Expecting: [...] ok Trying: - ex=vcs.getprojection() # instance of 'default' projection graphics method + ex=vcs.getprojection() # 'default' projection Expecting nothing ok Trying: - ex2=vcs.getprojection('orthographic') # instance of 'orthographic' projection graphics method + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 +Expecting nothing +ok +Trying: + slab1 = f('u') # take a slab from the data +Expecting nothing +ok +Trying: + ex2=vcs.getprojection('orthographic') # projection #2 Expecting nothing ok Trying: @@ -917,12 +929,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('scatter') # Show all the existing scatter graphics methods + vcs.listelements('scatter') # list all scatters Expecting: [...] ok Trying: - ex=vcs.getscatter('default_scatter_') # instance of ''default_scatter_'' scatter graphics method + ex=vcs.getscatter('default_scatter_') # ''default_scatter_'' scatter Expecting nothing ok Trying: @@ -930,11 +942,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -942,7 +954,7 @@ Trying: Expecting nothing ok Trying: - a.scatter(ex, slab1, slab2) # plot using specified scatter object + a.scatter(ex, slab1, slab2) # plot scatter Expecting: ok @@ -951,12 +963,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('taylordiagram') # Show all the existing taylordiagram graphics methods + vcs.listelements('taylordiagram') # list all taylordiagrams Expecting: [...] ok Trying: - ex=vcs.gettaylordiagram() # instance of 'default' taylordiagram graphics method + ex=vcs.gettaylordiagram() # 'default' taylordiagram Expecting nothing ok Trying: @@ -964,7 +976,7 @@ Trying: Expecting nothing ok Trying: - a.taylordiagram(ex, slab1) # plot using specified taylordiagram object + a.taylordiagram(ex, slab1) # plot taylordiagram Expecting: ok @@ -973,16 +985,28 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('template') # Show all the existing template graphics methods + vcs.listelements('template') # list all templates Expecting: [...] ok Trying: - ex=vcs.gettemplate() # instance of 'default' template graphics method + ex=vcs.gettemplate() # 'default' template +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 +Expecting nothing +ok +Trying: + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - ex2=vcs.gettemplate('polar') # instance of 'polar' template graphics method + ex2=vcs.gettemplate('polar') # template #2 Expecting nothing ok Trying: @@ -990,7 +1014,7 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('textcombined') # Show all the existing textcombined secondary methods + vcs.listelements('textcombined') # list all textcombineds Expecting: [...] ok @@ -1002,11 +1026,11 @@ Trying: Expecting nothing ok Trying: - ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # instance of 'EXAMPLE_tt:::EXAMPLE_tto' textcombined secondary method + ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # 'EXAMPLE_tt:::EXAMPLE_tto' textcombined Expecting nothing ok Trying: - a.textcombined(ex) # plot using specified textcombined object + a.textcombined(ex) # plot textcombined Expecting: ok @@ -1015,16 +1039,16 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('textorientation') # Show all the existing textorientation secondary methods + vcs.listelements('textorientation') # list all textorientations Expecting: [...] ok Trying: - ex=vcs.gettextorientation() # instance of 'default' textorientation secondary method + ex=vcs.gettextorientation() # 'default' textorientation Expecting nothing ok Trying: - ex2=vcs.gettextorientation('bigger') # instance of 'bigger' textorientation secondary method + ex2=vcs.gettextorientation('bigger') # textorientation #2 Expecting nothing ok Trying: @@ -1032,16 +1056,16 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('texttable') # Show all the existing texttable secondary methods + vcs.listelements('texttable') # list all texttables Expecting: [...] ok Trying: - ex=vcs.gettexttable() # instance of 'default' texttable secondary method + ex=vcs.gettexttable() # 'default' texttable Expecting nothing ok Trying: - ex2=vcs.gettexttable('bigger') # instance of 'bigger' texttable secondary method + ex2=vcs.gettexttable('bigger') # texttable #2 Expecting nothing ok Trying: @@ -1049,12 +1073,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('vector') # Show all the existing vector graphics methods + vcs.listelements('vector') # list all vectors Expecting: [...] ok Trying: - ex=vcs.getvector() # instance of 'default' vector graphics method + ex=vcs.getvector() # 'default' vector Expecting nothing ok Trying: @@ -1062,11 +1086,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -1074,7 +1098,7 @@ Trying: Expecting nothing ok Trying: - a.vector(ex, slab1, slab2) # plot using specified vector object + a.vector(ex, slab1, slab2) # plot vector Expecting: ok @@ -1083,12 +1107,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('xvsy') # Show all the existing xvsy graphics methods + vcs.listelements('xvsy') # list all xvsys Expecting: [...] ok Trying: - ex=vcs.getxvsy() # instance of 'default_xvsy_' xvsy graphics method + ex=vcs.getxvsy() # 'default_xvsy_' xvsy Expecting nothing ok Trying: @@ -1096,11 +1120,11 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: @@ -1108,7 +1132,7 @@ Trying: Expecting nothing ok Trying: - a.xvsy(ex, slab1, slab2) # plot using specified xvsy object + a.xvsy(ex, slab1, slab2) # plot xvsy Expecting: ok @@ -1117,12 +1141,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('xyvsy') # Show all the existing xyvsy graphics methods + vcs.listelements('xyvsy') # list all xyvsys Expecting: [...] ok Trying: - ex=vcs.getxyvsy('default_xyvsy_') # instance of ''default_xyvsy_'' xyvsy graphics method + ex=vcs.getxyvsy('default_xyvsy_') # ''default_xyvsy_'' xyvsy Expecting nothing ok Trying: @@ -1130,15 +1154,15 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.xyvsy(ex, slab1) # plot using specified xyvsy object + a.xyvsy(ex, slab1) # plot xyvsy Expecting: ok @@ -1147,12 +1171,12 @@ Trying: Expecting nothing ok Trying: - vcs.listelements('yxvsx') # Show all the existing yxvsx graphics methods + vcs.listelements('yxvsx') # list all yxvsxs Expecting: [...] ok Trying: - ex=vcs.getyxvsx() # instance of 'default_yxvsx_' yxvsx graphics method + ex=vcs.getyxvsx() # 'default_yxvsx_' yxvsx Expecting nothing ok Trying: @@ -1160,15 +1184,15 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 Expecting nothing ok Trying: - slab1 = f('u') # use the data file to create a cdms2 slab + slab1 = f('u') # take a slab from the data Expecting nothing ok Trying: - a.yxvsx(ex, slab1) # plot using specified yxvsx object + a.yxvsx(ex, slab1) # plot yxvsx Expecting: ok @@ -1272,10 +1296,10 @@ ok 6 tests in vcs.manageElements.getline 6 tests in vcs.manageElements.getmarker 9 tests in vcs.manageElements.getmeshfill - 4 tests in vcs.manageElements.getprojection + 7 tests in vcs.manageElements.getprojection 8 tests in vcs.manageElements.getscatter 5 tests in vcs.manageElements.gettaylordiagram - 4 tests in vcs.manageElements.gettemplate + 7 tests in vcs.manageElements.gettemplate 5 tests in vcs.manageElements.gettextcombined 4 tests in vcs.manageElements.gettextorientation 4 tests in vcs.manageElements.gettexttable @@ -1291,6 +1315,6 @@ ok 1 of 8 in vcs.manageElements.get3d_dual_scalar 1 of 7 in vcs.manageElements.get3d_scalar 1 of 8 in vcs.manageElements.get3d_vector -251 tests in 71 items. -246 passed and 5 failed. +257 tests in 71 items. +252 passed and 5 failed. ***Test Failed*** 5 failures. diff --git a/docs/doctest_info/reports/marker.report b/docs/doctest_info/reports/marker.report index 91ecaab38..35b1b553f 100644 --- a/docs/doctest_info/reports/marker.report +++ b/docs/doctest_info/reports/marker.report @@ -1,17 +1,17 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getmarker() # Get default marker + ex=a.getmarker() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 36 items had no tests: diff --git a/docs/doctest_info/reports/meshfill.report b/docs/doctest_info/reports/meshfill.report index 01092fcb9..e19acfebd 100644 --- a/docs/doctest_info/reports/meshfill.report +++ b/docs/doctest_info/reports/meshfill.report @@ -110,31 +110,31 @@ Got: wrap = [0.0, 0.0] colormap = None Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getmeshfill() # Get default meshfill + ex=a.getmeshfill() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 802, in vcs.meshfill.Gfm.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 803, in vcs.meshfill.Gfm.script Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 900, in script fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/projection.report b/docs/doctest_info/reports/projection.report index b0db8bc88..dd394e1ca 100644 --- a/docs/doctest_info/reports/projection.report +++ b/docs/doctest_info/reports/projection.report @@ -1,17 +1,17 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getprojection() # Get default projection + ex=a.getprojection() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 112 items had no tests: diff --git a/docs/doctest_info/reports/queries.report b/docs/doctest_info/reports/queries.report index 8dd9a16b4..fb2feac70 100644 --- a/docs/doctest_info/reports/queries.report +++ b/docs/doctest_info/reports/queries.report @@ -41,18 +41,18 @@ Expecting: vcsError: The object passed is not a graphics method object. ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('1d') # Show all available 1d + a.show('1d') # available 1ds Expecting: *******************1d Names List********************** ... *******************End 1d Names List********************** ok Trying: - ex = a.get1d('default') # To test an existing 1d object + ex = a.get1d('default') Expecting nothing ok Trying: @@ -61,18 +61,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('3d_dual_scalar') # Show all available 3d_dual_scalar + a.show('3d_dual_scalar') # available 3d_dual_scalars Expecting: *******************3d_dual_scalar Names List********************** ... *******************End 3d_dual_scalar Names List********************** ok Trying: - ex = a.get3d_dual_scalar() # To test an existing 3d_dual_scalar object + ex = a.get3d_dual_scalar() Expecting nothing ok Trying: @@ -81,18 +81,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('3d_scalar') # Show all available 3d_scalar + a.show('3d_scalar') # available 3d_scalars Expecting: *******************3d_scalar Names List********************** ... *******************End 3d_scalar Names List********************** ok Trying: - ex = a.get3d_scalar() # To test an existing 3d_scalar object + ex = a.get3d_scalar() Expecting nothing ok Trying: @@ -101,18 +101,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('3d_vector') # Show all available 3d_vector + a.show('3d_vector') # available 3d_vectors Expecting: *******************3d_vector Names List********************** ... *******************End 3d_vector Names List********************** ok Trying: - ex = a.get3d_vector() # To test an existing 3d_vector object + ex = a.get3d_vector() Expecting nothing ok Trying: @@ -121,18 +121,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('boxfill') # Show all available boxfill + a.show('boxfill') # available boxfills Expecting: *******************Boxfill Names List********************** ... *******************End Boxfill Names List********************** ok Trying: - ex = a.getboxfill() # To test an existing boxfill object + ex = a.getboxfill() Expecting nothing ok Trying: @@ -141,18 +141,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('colormap') # Show all available colormap + a.show('colormap') # available colormaps Expecting: *******************Colormap Names List********************** ... *******************End Colormap Names List********************** ok Trying: - ex = a.getcolormap() # To test an existing colormap object + ex = a.getcolormap() Expecting nothing ok Trying: @@ -161,18 +161,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('fillarea') # Show all available fillarea + a.show('fillarea') # available fillareas Expecting: *******************Fillarea Names List********************** ... *******************End Fillarea Names List********************** ok Trying: - ex = a.getfillarea() # To test an existing fillarea object + ex = a.getfillarea() Expecting nothing ok Trying: @@ -194,18 +194,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('isofill') # Show all available isofill + a.show('isofill') # available isofills Expecting: *******************Isofill Names List********************** ... *******************End Isofill Names List********************** ok Trying: - ex = a.getisofill() # To test an existing isofill object + ex = a.getisofill() Expecting nothing ok Trying: @@ -214,18 +214,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('isoline') # Show all available isoline + a.show('isoline') # available isolines Expecting: *******************Isoline Names List********************** ... *******************End Isoline Names List********************** ok Trying: - ex = a.getisoline() # To test an existing isoline object + ex = a.getisoline() Expecting nothing ok Trying: @@ -234,18 +234,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('line') # Show all available line + a.show('line') # available lines Expecting: *******************Line Names List********************** ... *******************End Line Names List********************** ok Trying: - ex = a.getline() # To test an existing line object + ex = a.getline() Expecting nothing ok Trying: @@ -254,18 +254,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('marker') # Show all available marker + a.show('marker') # available markers Expecting: *******************Marker Names List********************** ... *******************End Marker Names List********************** ok Trying: - ex = a.getmarker() # To test an existing marker object + ex = a.getmarker() Expecting nothing ok Trying: @@ -274,18 +274,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('meshfill') # Show all available meshfill + a.show('meshfill') # available meshfills Expecting: *******************Meshfill Names List********************** ... *******************End Meshfill Names List********************** ok Trying: - ex = a.getmeshfill() # To test an existing meshfill object + ex = a.getmeshfill() Expecting nothing ok Trying: @@ -311,18 +311,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('projection') # Show all available projection + a.show('projection') # available projections Expecting: *******************Projection Names List********************** ... *******************End Projection Names List********************** ok Trying: - ex = a.getprojection() # To test an existing projection object + ex = a.getprojection() Expecting nothing ok Trying: @@ -331,18 +331,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('scatter') # Show all available scatter + a.show('scatter') # available scatters Expecting: *******************Scatter Names List********************** ... *******************End Scatter Names List********************** ok Trying: - ex = a.getscatter('default_scatter_') # To test an existing scatter object + ex = a.getscatter('default_scatter_') Expecting nothing ok Trying: @@ -371,18 +371,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('taylordiagram') # Show all available taylordiagram + a.show('taylordiagram') # available taylordiagrams Expecting: *******************Taylordiagram Names List********************** ... *******************End Taylordiagram Names List********************** ok Trying: - ex = a.gettaylordiagram() # To test an existing taylordiagram object + ex = a.gettaylordiagram() Expecting nothing ok Trying: @@ -391,18 +391,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('template') # Show all available template + a.show('template') # available templates Expecting: *******************Template Names List********************** ... *******************End Template Names List********************** ok Trying: - ex = a.gettemplate() # To test an existing template object + ex = a.gettemplate() Expecting nothing ok Trying: @@ -411,7 +411,7 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: @@ -429,16 +429,16 @@ Failed example: pass Expected nothing Got: - + Trying: - a.show('textcombined') # Show all available textcombined + a.show('textcombined') # available textcombineds Expecting: *******************Textcombined Names List********************** ... *******************End Textcombined Names List********************** ok Trying: - ex = a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # To test an existing textcombined object + ex = a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') Expecting nothing ok Trying: @@ -447,18 +447,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('textorientation') # Show all available textorientation + a.show('textorientation') # available textorientations Expecting: *******************Textorientation Names List********************** ... *******************End Textorientation Names List********************** ok Trying: - ex = a.gettextorientation() # To test an existing textorientation object + ex = a.gettextorientation() Expecting nothing ok Trying: @@ -467,18 +467,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('texttable') # Show all available texttable + a.show('texttable') # available texttables Expecting: *******************Texttable Names List********************** ... *******************End Texttable Names List********************** ok Trying: - ex = a.gettexttable() # To test an existing texttable object + ex = a.gettexttable() Expecting nothing ok Trying: @@ -487,18 +487,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('1d') # Show all available 1d + a.show('1d') # available 1ds Expecting: *******************1d Names List********************** ... *******************End 1d Names List********************** ok Trying: - ex = a.get1d('default') # To test an existing 1d object + ex = a.get1d('default') Expecting nothing ok Trying: @@ -507,18 +507,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('xvsy') # Show all available xvsy + a.show('xvsy') # available xvsys Expecting: *******************Xvsy Names List********************** ... *******************End Xvsy Names List********************** ok Trying: - ex = a.getxvsy() # To test an existing xvsy object + ex = a.getxvsy() Expecting nothing ok Trying: @@ -527,18 +527,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('xyvsy') # Show all available xyvsy + a.show('xyvsy') # available xyvsys Expecting: *******************Xyvsy Names List********************** ... *******************End Xyvsy Names List********************** ok Trying: - ex = a.getxyvsy('default_xyvsy_') # To test an existing xyvsy object + ex = a.getxyvsy('default_xyvsy_') Expecting nothing ok Trying: @@ -547,18 +547,18 @@ Expecting: 1 ok Trying: - a=vcs.init() # Make a VCS Canvas object to work with: + a=vcs.init() Expecting nothing ok Trying: - a.show('yxvsx') # Show all available yxvsx + a.show('yxvsx') # available yxvsxs Expecting: *******************Yxvsx Names List********************** ... *******************End Yxvsx Names List********************** ok Trying: - ex = a.getyxvsx() # To test an existing yxvsx object + ex = a.getyxvsx() Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/taylor.report b/docs/doctest_info/reports/taylor.report index 4d5177637..f8c370274 100644 --- a/docs/doctest_info/reports/taylor.report +++ b/docs/doctest_info/reports/taylor.report @@ -1,17 +1,17 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.gettaylordiagram() # Get default taylordiagram + ex=a.gettaylordiagram() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 133 items had no tests: diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report index 9aa7d7ba7..f5467a693 100644 --- a/docs/doctest_info/reports/template.report +++ b/docs/doctest_info/reports/template.report @@ -31,7 +31,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] Trying: x = vcs.init() Expecting nothing @@ -492,19 +492,19 @@ Trying: Expecting nothing ok Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.gettemplate() # Get default template + ex=a.gettemplate() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 68 items had no tests: diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report index 75d8db246..6c4a8dc4d 100644 --- a/docs/doctest_info/reports/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -1,5 +1,5 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: @@ -17,29 +17,29 @@ Failed example: pass Expected nothing Got: - + Trying: - ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # Get default textcombined + ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 476, in vcs.textcombined.Tc.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 477, in vcs.textcombined.Tc.script Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 503, in script fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not list Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 64 items had no tests: diff --git a/docs/doctest_info/reports/textorientation.report b/docs/doctest_info/reports/textorientation.report index 642f7c680..b0995f4cb 100644 --- a/docs/doctest_info/reports/textorientation.report +++ b/docs/doctest_info/reports/textorientation.report @@ -1,17 +1,17 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.gettextorientation() # Get default textorientation + ex=a.gettextorientation() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 23 items had no tests: diff --git a/docs/doctest_info/reports/texttable.report b/docs/doctest_info/reports/texttable.report index cb7d20f0e..c4330e13a 100644 --- a/docs/doctest_info/reports/texttable.report +++ b/docs/doctest_info/reports/texttable.report @@ -1,29 +1,29 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.gettexttable() # Get default texttable + ex=a.gettexttable() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 527, in vcs.texttable.Tt.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 528, in vcs.texttable.Tt.script Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Exception raised: Traceback (most recent call last): File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run compileflags, 1) in test.globs File "", line 1, in - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 558, in script fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not tuple Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 51 items had no tests: diff --git a/docs/doctest_info/reports/unified1D.report b/docs/doctest_info/reports/unified1D.report index bdc3ab0b7..ca9ad61b1 100644 --- a/docs/doctest_info/reports/unified1D.report +++ b/docs/doctest_info/reports/unified1D.report @@ -30,19 +30,19 @@ Expecting: ... ok Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getyxvsx() # Get default yxvsx + ex=a.getyxvsx() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ok Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/vcshelp.report b/docs/doctest_info/reports/vcshelp.report index 879485b80..dddc2003c 100644 --- a/docs/doctest_info/reports/vcshelp.report +++ b/docs/doctest_info/reports/vcshelp.report @@ -12,31 +12,33 @@ Failed example: vcs.help('getboxfill') Expected nothing Got: - VCS contains a list of graphics methods. This function will create a - boxfill class object from an existing VCS boxfill graphics method. If - no boxfill name is given, then default boxfill will be used. + VCS contains a list of graphics methods. This function + will create a boxfill object from an existing + VCS boxfill graphics method. If no boxfill name is given, + then default boxfill will be used. .. note:: VCS does not allow the modification of 'default' attribute sets. However, a 'default' attribute set that has been copied under a - different name can be modified. (See the :py:func:`vcs.manageElements.createboxfill` function.) + different name can be modified. + (See the :py:func:`vcs.manageElements.createboxfill` function.) :Example: .. doctest:: manageElements_get >>> a=vcs.init() - >>> vcs.listelements('boxfill') # Show all the existing boxfill graphics methods + >>> vcs.listelements('boxfill') # list all boxfills [...] - >>> ex=vcs.getboxfill() # instance of 'default' boxfill graphics method + >>> ex=vcs.getboxfill() # 'default' boxfill >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file - >>> slab1 = f('u') # use the data file to create a cdms2 slab - >>> a.boxfill(ex, slab1) # plot using specified boxfill object + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 + >>> slab1 = f('u') # take a slab from the data + >>> a.boxfill(ex, slab1) # plot boxfill - >>> ex2=vcs.getboxfill('polar') # instance of 'polar' boxfill graphics method - >>> a.boxfill(ex2, slab1) # plot using specified boxfill object + >>> ex2=vcs.getboxfill('polar') # boxfill #2 + >>> a.boxfill(ex2, slab1) # plot boxfill diff --git a/docs/doctest_info/reports/vector.report b/docs/doctest_info/reports/vector.report index f6713517d..669f24d95 100644 --- a/docs/doctest_info/reports/vector.report +++ b/docs/doctest_info/reports/vector.report @@ -1,23 +1,23 @@ Trying: - a=vcs.init() # Make a Canvas object to work with + a=vcs.init() Expecting nothing ok Trying: - ex=a.getvector() # Get default vector + ex=a.getvector() Expecting nothing ok Trying: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vector.py", line 836, in vcs.vector.Gv.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vector.py", line 837, in vcs.vector.Gv.script Failed example: - ex.script('filename.py') # Append to a Python script named 'filename.py' + ex.script('filename.py') # append to 'filename.py' Expected nothing Got: DEPRECATED: Use linetype or setLineAttributes instead. Trying: - ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + ex.script('filename','w') # Create/overwrite 'filename.json' Expecting nothing ok 98 items had no tests: diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 25f33ae89..7c9f303c0 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -2319,7 +2319,7 @@ def plot(self, *actual_args, **keyargs): .. describe:: Plot attribute keywords: - .. note:: Attribute Precedence + .. note:: **Attribute Precedence** Specific attributes take precedence over general attributes. In particular, specific attributes override variable object @@ -2339,7 +2339,7 @@ def plot(self, *actual_args, **keyargs): * 0, 'off': overwrite self.ratio and do nothing about the ratio * 'auto': computes an automatic ratio * '3', 3: y dim will be 3 times bigger than x dim (restricted - to original tempalte.data area) + to original template.data area) * Adding a 't' at the end of the ratio, makes the tickmarks and boxes move along. @@ -2468,7 +2468,7 @@ def plot(self, *actual_args, **keyargs): >>> a=vcs.init() >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file >>> slab1 = f('u') # use the data file to create a cdms2 slab >>> slab2 = f('v') # need 2 slabs, so get another >>> a.plot(slab1) # default settings for template and boxfill @@ -4692,8 +4692,8 @@ def setbgoutputdimensions(self, width=None, height=None, units='inches'): self.bgY = H return # display ping - setbgoutputdimensions.__doc__ = setbgoutputdimensions.__doc__ % \ - xmldocs.output_width, xmldocs.output_height, xmldocs.output_units + setbgoutputdimensions.__doc__ = setbgoutputdimensions.__doc__ % (xmldocs.output_width, xmldocs.output_height, + xmldocs.output_units) def put_png_on_canvas( self, filename, zoom=1, xOffset=0, yOffset=0, @@ -4778,7 +4778,7 @@ def png(self, file, width=None, height=None, width, height, units) return self.backend.png( file, W, H, units, draw_white_background, **args) - png.__doc__ = png.__doc__ % xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units + png.__doc__ = png.__doc__ % (xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units) def pdf(self, file, width=None, height=None, units='inches', textAsPaths=True): @@ -4819,7 +4819,7 @@ def pdf(self, file, width=None, height=None, units='inches', if not file.split('.')[-1].lower() in ['pdf']: file += '.pdf' return self.backend.pdf(file, width=W, height=H, units=units, textAsPaths=textAsPaths) - pdf.__doc__ = pdf.__doc__ % xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units + pdf.__doc__ = pdf.__doc__ % (xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units) def svg(self, file, width=None, height=None, units='inches', textAsPaths=True): @@ -4860,7 +4860,7 @@ def svg(self, file, width=None, height=None, units='inches', if not file.split('.')[-1].lower() in ['svg']: file += '.svg' return self.backend.svg(file, width=W, height=H, units=units, textAsPaths=textAsPaths) - svg.__doc__ = svg.__doc__ % xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units + svg.__doc__ = svg.__doc__ % (xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units) def _compute_margins( self, W, H, top_margin, bottom_margin, right_margin, left_margin, dpi): @@ -5123,14 +5123,45 @@ def postscript(self, file, mode='r', orientation=None, width=None, height=None, os.remove(psnm) else: shutil.move(psnm, file) - postscript.__doc__ = postscript.__doc__ % \ - xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units + postscript.__doc__ = postscript.__doc__ % (xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, + xmldocs.output_units) def _scriptrun(self, *args): return vcs._scriptrun(*args) def scriptrun(self, aFile, *args, **kargs): + """ + Given the path to a script containing a VCS object, scriptrun + runs that script to build the object. + + :Example: + + .. doctest:: canvas_scriptrun + + >>> b=vcs.createboxfill('new_box') + >>> b.script('new_box') # json representation of 'new_box' + >>> bfs=vcs.listelements('boxfill') # list all boxfills + >>> i=bfs.index('new_box') + >>> bfs[i] # shows 'new_box' exists + 'new_box' + >>> vcs.removeobject(b) # remove new_box + 'Removed boxfill object new_box' + >>> bfs=vcs.listelements('boxfill') # list all boxfills + >>> try: + ... bfs.index('new_box') + ... except: + ... print ("boxfill 'new_box' doesn't exist") + boxfill 'new_box' doesn't exist + >>> vcs.scriptrun('new_box.json') # re-creates 'new_box' + >>> bfs=vcs.listelements('boxfill') # list all boxfills + >>> i=bfs.index('new_box') + >>> bfs[i] # shows 'new_box' exists (again) + 'new_box' + + :param aFile: String representing the path to a the script. + :type aFile: str + """ vcs.scriptrun(aFile, *args, **kargs) def setcolormap(self, name): @@ -5383,7 +5414,7 @@ def eps(self, file, mode='r', orientation=None, width=None, height=None, units=' os.popen("ps2epsi %s %s" % (tmpfile, file)).readlines() os.remove(tmpfile) - eps.__doc__ = eps.__doc__ % xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units + eps.__doc__ = eps.__doc__ % (xmldocs.output_file, xmldocs.output_width, xmldocs.output_height, xmldocs.output_units) def show(self, *args): return vcs.show(*args) diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index b4764114c..2bdbdaed4 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -389,7 +389,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): d = {} for obj_type in type_dict.keys(): for obj_name in type_dict[obj_type].keys(): - # default values. Change as necessary. + # default values. Change as necessary. example1 = '' example2 = '' d['type'] = obj_type @@ -398,7 +398,6 @@ def populate_docstrings(type_dict, target_dict, docstring, method): d['parent2'] = type_dict[obj_type][obj_name]['parent2'] d['sp_parent'] = '' d['tc'] = '' - d['ex2'] = '' d['rtype'] = type_dict[obj_type][obj_name]['rtype'] if type_dict[obj_type][obj_name]['title']: d['cap'] = d['name'].title() @@ -408,11 +407,11 @@ def populate_docstrings(type_dict, target_dict, docstring, method): d['sp_name'] = 'dv3d' elif obj_name in ['1d', 'scatter', 'textcombined', 'xyvsy']: if obj_name == 'textcombined': - d['tc'] = """ - >>> try: # try to create a new textcombined, in case none exist + d['tc'] = """>>> try: # try to create a new textcombined, in case none exist ... vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') ... except: - ... pass""" + ... pass + """ d['sp_parent'] = "'EXAMPLE_tt', 'EXAMPLE_tto'" elif obj_name == '1d': d['sp_parent'] = "'default'" @@ -426,8 +425,9 @@ def populate_docstrings(type_dict, target_dict, docstring, method): # section for manageElements 'get' methods if method == 'get': - example1 = """%(tc)s - >>> ex=vcs.get%(name)s(%(sp_parent)s) # instance of '%(parent)s' %(name)s %(type)s%(plot)s""" + example1 = """>>> ex=vcs.get%(name)s(%(sp_parent)s) # '%(parent)s' %(name)s""" + if d['tc'] is not '': + example1 = d['tc'] + example1 # set up d['plot'] and d['plot2'] plot = '' plot2 = '' @@ -435,15 +435,14 @@ def populate_docstrings(type_dict, target_dict, docstring, method): d['slabs'] = '' d['args'] = '' if numslabs > 0: - # TODO: replace with something that can actually be plotted by taylordiagram() if obj_name is "taylordiagram": d['slabs'] = """ >>> slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]]""" else: d['slabs'] = """ >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file - >>> slab1 = f('u') # use the data file to create a cdms2 slab""" + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 + >>> slab1 = f('u') # take a slab from the data""" d['args'] = ", slab1" if numslabs == 2: slab2 = """ @@ -452,55 +451,68 @@ def populate_docstrings(type_dict, target_dict, docstring, method): d['args'] += ", slab2" # for vcs objects that have a self-named plotting function, i.e. fillarea() if type_dict[obj_type][obj_name]['callable']: - plot = """%(slabs)s - >>> a.%(name)s(ex%(args)s) # plot using specified %(name)s object + plot = """ + >>> a.%(name)s(ex%(args)s) # plot %(name)s """ # set up plot2 plot2 = """ - >>> a.%(name)s(ex2%(args)s) # plot using specified %(name)s object - """ + >>> a.%(name)s(ex2%(args)s) # plot %(name)s + """ % d # for objects like template, where a call to plot() needs to be made # objects in the list cannot be plotted without a graphics method elif obj_name not in ['textorientation', 'texttable', 'colormap', 'projection', 'template']: - plot = """%(slabs)s - >>> a.plot(ex%(args)s) # plot using specified %(name)s object - """ + plot = """ + >>> a.plot(ex%(args)s) # plot %(name)s + + """ plot2 = """ - >>> a.plot(ex2%(args)s) # plot using specified %(name)s object + >>> a.plot(ex2%(args)s) # plot %(name)s """ - d['plot'] = plot % d - d['ex1'] = example1 % d + if d['slabs'] is not '': + plot = d['slabs'] + plot + example1 += plot + d['example'] = example1 % d if d['parent2']: example2 = """ - >>> ex2=vcs.get%(name)s('%(parent2)s') # instance of '%(parent2)s' %(name)s %(type)s%(plot2)s - """ - d['plot2'] = plot2 % d - d['ex2'] = example2 % d + >>> ex2=vcs.get%(name)s('%(parent2)s') # %(name)s #2""" + example2 += plot2 + d['example'] += example2 % d # section for manageElements 'create' methods elif method == 'create': # if obj_name is tc, d['tc'] should be populated by code that creates a tc at this point if obj_name == "textcombined": - example1 = d['tc'] + """ - >>> vcs.listelements('%(name)s') # should now contain 'EXAMPLE_tt:::EXAMPLE_tto' + example1 = d['tc'] + """>>> vcs.listelements('%(name)s') # includes new object [...'EXAMPLE_tt:::EXAMPLE_tto'...]""" else: - example1 = """ - >>> ex=vcs.create%(name)s('%(name)s_ex1') # Create '%(name)s_ex1'; inherits 'default' - >>> vcs.listelements('%(name)s') # should now contain '%(name)s_ex1' - [...'%(name)s_ex1'...]""" - d['ex1'] = example1 % d + example1 = """>>> ex=vcs.create%(name)s('%(name)s_ex1') + >>> vcs.listelements('%(name)s') # includes new object + [...'%(name)s_ex1'...] + """ + d['example'] = example1 % d if d['parent2']: - example2 = """ - >>> ex2=vcs.create%(name)s('%(name)s_ex2','%(parent2)s') # create '%(name)s_ex2'; inherits '%(parent2)s' - >>> vcs.listelements('%(name)s') # should now contain '%(name)s_ex2' - [...'%(name)s_ex2'...]""" - d['ex2'] = example2 % d + example2 = """>>> ex2=vcs.create%(name)s('%(name)s_ex2','%(parent2)s') + >>> vcs.listelements('%(name)s') # includes new object + [...'%(name)s_ex2'...] + """ + d['example'] += example2 % d elif method == 'script': if obj_name == "textcombined": d['call'] = obj_name d['name'] = 'text table and text orientation' else: d['call'] = d['name'] + elif method == 'is': + example = """>>> a.show('%(name)s') # available %(name)ss + *******************%(cap)s Names List********************** + ... + *******************End %(cap)s Names List********************** + >>> ex = a.get%(name)s(%(sp_parent)s) + >>> vcs.queries.is%(name)s(ex) + 1 + """ + if d['tc'] is not '': + example = d['tc'] + example + d['example'] = example % d target_dict[obj_name] = docstring % d d.clear() @@ -728,8 +740,8 @@ def populate_docstrings(type_dict, target_dict, docstring, method): # 'call' : the name to be used for a call to the object's *get* function. Only really used for textcombined, and only # in the context of the script() function. All other cases, 'call' == 'name' # 'ex(1|2)' : these should be filled in with code examples in doctest format. -scriptdoc = """ - Saves out a copy of the %(name)s %(type)s in JSON, or Python format to a designated file. +scriptdoc = """Saves out a copy of the %(name)s %(type)s, + in JSON or Python format to a designated file. .. note:: @@ -747,16 +759,18 @@ def populate_docstrings(type_dict, target_dict, docstring, method): .. doctest:: script_examples - >>> a=vcs.init() # Make a Canvas object to work with%(tc)s - >>> ex=a.get%(call)s(%(sp_parent)s) # Get default %(call)s - >>> ex.script('filename.py') # Append to a Python script named 'filename.py' - >>> ex.script('filename','w') # Create or overwrite a JSON file 'filename.json'. + >>> a=vcs.init() + %(tc)s + >>> ex=a.get%(call)s(%(sp_parent)s) + >>> ex.script('filename.py') # append to 'filename.py' + >>> ex.script('filename','w') # Create/overwrite 'filename.json' :param script_filename: Output name of the script file. If no extension is specified, a .json object is created. :type script_filename: str - :param mode: Either 'w' for replace, or 'a' for append. Defaults to 'a', if not specified. + :param mode: Either 'w' for replace, or 'a' for append. + Defaults to 'a', if not specified. :type mode: str """ @@ -768,59 +782,60 @@ def populate_docstrings(type_dict, target_dict, docstring, method): .. doctest:: queries_is - >>> a=vcs.init() # Make a VCS Canvas object to work with:%(tc)s - >>> a.show('%(name)s') # Show all available %(name)s - *******************%(cap)s Names List********************** - ... - *******************End %(cap)s Names List********************** - >>> ex = a.get%(name)s(%(sp_parent)s) # To test an existing %(name)s object - >>> vcs.queries.is%(name)s(ex) - 1 + >>> a=vcs.init() + %(example)s :param obj: A VCS object :type obj: VCS Object - :returns: An integer indicating whether the object is a %(name)s %(type)s (1), or not (0). + :returns: An integer indicating whether the object is a + %(name)s %(type)s (1), or not (0). :rtype: int """ -get_methods_doc = """VCS contains a list of %(type)ss. This function will create a - %(sp_name)s class object from an existing VCS %(sp_name)s %(type)s. If - no %(sp_name)s name is given, then %(parent)s %(sp_name)s will be used. +get_methods_doc = """VCS contains a list of %(type)ss. This function + will create a %(sp_name)s object from an existing + VCS %(sp_name)s %(type)s. If no %(sp_name)s name is given, + then %(parent)s %(sp_name)s will be used. .. note:: VCS does not allow the modification of 'default' attribute sets. However, a 'default' attribute set that has been copied under a - different name can be modified. (See the :py:func:`vcs.manageElements.create%(name)s` function.) + different name can be modified. + (See the :py:func:`vcs.manageElements.create%(name)s` function.) :Example: .. doctest:: manageElements_get >>> a=vcs.init() - >>> vcs.listelements('%(name)s') # Show all the existing %(name)s %(type)ss - [...]%(ex1)s%(ex2)s""" + >>> vcs.listelements('%(name)s') # list all %(name)ss + [...] + %(example)s + """ create_methods_doc = """ - Create a new %(sp_name)s %(type)s given the the name and the existing - %(sp_name)s %(type)s to copy the attributes from. If no existing - %(sp_name)s %(type)s is given, then the default %(sp_name)s %(type)s will be used as the graphics method - to which the attributes will be copied from. + Create a new %(sp_name)s %(type)s given the the name and + the existing %(sp_name)s %(type)s to copy attributes from. + If no existing %(sp_name)s %(type)s is given, + the default %(sp_name)s %(type)s will be used as the + graphics method from which attributes will be copied. .. note:: - If the name provided already exists, then an error will be returned. %(type)s - names must be unique. + If the name provided already exists, then an error will be returned. + %(type)s names must be unique. :Example: .. doctest:: manageElements_create - >>> vcs.show('%(name)s') # show all available %(name)s + >>> vcs.show('%(name)s') # available %(name)ss *******************%(cap)s Names List********************** ... - *******************End %(cap)s Names List**********************%(ex1)s%(ex2)s + *******************End %(cap)s Names List********************** + %(example)s """ scriptdocs = {} From 5b159e52972aa95615277311af8e9a3cc4884947 Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 5 Jan 2017 07:05:07 -0800 Subject: [PATCH 34/45] Added functionality to ignore certain regular expressions when parsing report output with doctest.py. Regular expressions can be added via commandline or ignore file. This will allow us to ignore 'missing' doctests for functions that don't need documentation, or for aspects of a module/class which are not functions that errantly get picked up by doctest.testmod. --- docs/doctest_info/scripts/doctest_vcs.py | 65 +++++++++++++++++------- 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/docs/doctest_info/scripts/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py index b9da04425..a66b98d24 100644 --- a/docs/doctest_info/scripts/doctest_vcs.py +++ b/docs/doctest_info/scripts/doctest_vcs.py @@ -1,7 +1,7 @@ -import doctest, argparse, importlib, re +import doctest, argparse, importlib, re, os -def log_stats(module_name): +def log_stats(module_name, ignore): """Parses a .report file for the given module and writes the doctest errors to a .md file. The .md file will be named to match the module_name. If the report was generated using the --verbose or -v flag, the .md file will also contain a list of locations @@ -47,7 +47,7 @@ def log_stats(module_name): log.write(header+"\n") map(lambda x: log.write('-'), range(len(header))) log.write("\n") - consume_entry(results, log, missing_endpoints, ":x:```", "```\n") + consume_entry(results, log, missing_endpoints, ":x:```", "```\n", ignore) line = results.readline() log.close() results.close() @@ -55,7 +55,7 @@ def log_stats(module_name): # note: will only consume the first full error (maybe) -def consume_entry(readfile, writefile, endpoints, prepend="", append=""): +def consume_entry(readfile, writefile, endpoints, prepend="", append="", ignore=[]): """Consumes a log entry from readfile up to one of a list of possible endpoints. Writes each line in the entry to writefile. @@ -64,12 +64,21 @@ def consume_entry(readfile, writefile, endpoints, prepend="", append=""): :param endpoints: List of compiled regular expressions which are the possible points at which a log entry can end. :param prepend: A string to prepend to the line from readfile before outputting to writefile :param append: A string to append to the line from readfile before outputting to writefile + :param ignore: A list of regular expressions containing function signatures to ignore (for logging missing doctests + only. Gets brought in through commandline or a file via ArgParse. """ more = True - private = re.compile("_[_A-z0-9]+") + sigs = [re.compile("_[_A-z0-9]+")] # func signatures to ignore. Add private functions by default. + if len(ignore): + for sig in ignore: + sigs.append(re.compile(sig)) line = readfile.readline() while more and line != '': - if not re.match(private,line.split('.')[-1]): + no_write = False + for sig in sigs: + if re.match(sig, line.split('.')[-1]): + no_write = True + if not no_write: if append != "": index = line.find("\n") new_line = prepend + line[:index] + append + line[index:] @@ -84,28 +93,32 @@ def consume_entry(readfile, writefile, endpoints, prepend="", append=""): def cleanup(): """Cleanup for the doctests. If some files aren't being deleted after testing, add their glob signature to the - paterns list. + patterns list. + + .. warning:: + + Do NOT add a "*.py" glob, or anything that would delete a name matching either doctest_vcs.py + or run_all_doctests.sh. The files that get cleaned up are generated in this directory. + """ import glob, os gb = glob.glob - patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*", "*.png", "deft_box.py"] - files = [] + patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*", "*.png", "deft_box.py", "*.mpeg"] for pattern in patterns: fnames = gb(pattern) for name in fnames: - files.append(name) - for file in files: - try: - os.remove(file) - except: - pass + try: + os.remove(name) + except: + continue # Make parser and add options parser = argparse.ArgumentParser() parser.add_argument('module', type=str, help="Name of the VCS module to test.") parser.add_argument('-v', '--verbose', action='store_true', default=False, - help='Passing doctests logged. Report includes number of untested functions.') + help='Passing doctests logged. Report includes number of missing doctests, minus any for ' + + 'function signatures explicitly ignored via -i or --ifile options.') parser.add_argument('-r', '--report', action='store_true', default=False, help='Print a report after running tests.') parser.add_argument('-l', '--log', action='store_true', default=False, help='Log stats in a .md file.\nImplies -r.') parser.add_argument('--LO', action='store_true', default=False, help='ONLY read .results and make .md log.') @@ -113,10 +126,26 @@ def cleanup(): help="Supply a package name in which to look for the module.\nDefault is vcs.") parser.add_argument('-a', '--all', action="store_true", default=False, help="Report all failures.\nIf not set, will report only the first failure in each doctest") +parser.add_argument('-i', '--ignore', nargs='*', default=[], + help="List of regular expressions representing function signatures to ignore, when parsing report " + + "output for missing doctests.\n" + "Used for logging purposes only. If -i is provided, --ifile " + + "will be ignored.\n If provided, -i must be specified after the module name.") +parser.add_argument('--ifile', type=file, default=None, help="File containing a list of function signatures to ignore" + + "when parsing report output for missing doctests. The file must be a newline-delimited list of " + + "regular expressions. Only provide --ifile if -i(--ignore) has not been provided.") # Check parser args args = parser.parse_args() +ignore = [] +if len(args.ignore): + ignore = args.ignore +elif args.ifile: + for line in args.ifile: + ignore.append(line) if not args.LO: + import vcs + if not os.path.exists(vcs.sample_data): + vcs.download_sample_data_files() if args.log and not args.report: args.report = True options=doctest.ELLIPSIS @@ -127,7 +156,7 @@ def cleanup(): doctest.testmod(m, optionflags=options, report=args.report, verbose=args.verbose) cleanup() if args.log: - log_stats(args.module) + log_stats(args.module, ignore) else: - log_stats(args.module) + log_stats(args.module, ignore) exit() From 570ffe8f713b24cef8c416acdd90f78b6290fb5b Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 5 Jan 2017 10:52:48 -0800 Subject: [PATCH 35/45] Added an Index of VCS functions for the pdf output. Added docs/API/build_func_index.py to automatically check a list of modules/classes, get their non-private functions, and write the RST for linking to those functions in the documentation out to API/functions/$MODULE_NAME to create the functions index. Not all functions written out to the /rst files have been documented. --- docs/API/{ => Canvas}/Canvas.rst | 0 docs/API/README.md | 0 docs/API/build_func_index.py | 47 ++++ docs/API/functions/Canvas.rst | 307 +++++++++++++++++++++++++ docs/API/functions/animate_helper.rst | 0 docs/API/functions/boxfill.rst | 29 +++ docs/API/functions/colormap.rst | 19 ++ docs/API/functions/colors.rst | 0 docs/API/functions/displayplot.rst | 0 docs/API/functions/dv3d.rst | 0 docs/API/functions/fillarea.rst | 7 + docs/API/functions/index.rst | 30 +++ docs/API/functions/isofill.rst | 23 ++ docs/API/functions/isoline.rst | 21 ++ docs/API/functions/line.rst | 7 + docs/API/functions/manageElements.rst | 147 ++++++++++++ docs/API/functions/marker.rst | 7 + docs/API/functions/meshfill.rst | 23 ++ docs/API/functions/projection.rst | 9 + docs/API/functions/queries.rst | 61 +++++ docs/API/functions/taylor.rst | 29 +++ docs/API/functions/template.rst | 33 +++ docs/API/functions/textcombined.rst | 7 + docs/API/functions/textorientation.rst | 7 + docs/API/functions/texttable.rst | 7 + docs/API/functions/unified1D.rst | 19 ++ docs/API/functions/utils.rst | 83 +++++++ docs/API/functions/vcshelp.rst | 0 docs/API/functions/vector.rst | 21 ++ docs/API/misc/misc.rst | 1 - docs/API/vcs.rst | 3 +- docs/conf.py | 11 +- docs/index.rst | 8 +- 33 files changed, 956 insertions(+), 10 deletions(-) rename docs/API/{ => Canvas}/Canvas.rst (100%) create mode 100644 docs/API/README.md create mode 100644 docs/API/build_func_index.py create mode 100644 docs/API/functions/Canvas.rst create mode 100644 docs/API/functions/animate_helper.rst create mode 100644 docs/API/functions/boxfill.rst create mode 100644 docs/API/functions/colormap.rst create mode 100644 docs/API/functions/colors.rst create mode 100644 docs/API/functions/displayplot.rst create mode 100644 docs/API/functions/dv3d.rst create mode 100644 docs/API/functions/fillarea.rst create mode 100644 docs/API/functions/index.rst create mode 100644 docs/API/functions/isofill.rst create mode 100644 docs/API/functions/isoline.rst create mode 100644 docs/API/functions/line.rst create mode 100644 docs/API/functions/manageElements.rst create mode 100644 docs/API/functions/marker.rst create mode 100644 docs/API/functions/meshfill.rst create mode 100644 docs/API/functions/projection.rst create mode 100644 docs/API/functions/queries.rst create mode 100644 docs/API/functions/taylor.rst create mode 100644 docs/API/functions/template.rst create mode 100644 docs/API/functions/textcombined.rst create mode 100644 docs/API/functions/textorientation.rst create mode 100644 docs/API/functions/texttable.rst create mode 100644 docs/API/functions/unified1D.rst create mode 100644 docs/API/functions/utils.rst create mode 100644 docs/API/functions/vcshelp.rst create mode 100644 docs/API/functions/vector.rst diff --git a/docs/API/Canvas.rst b/docs/API/Canvas/Canvas.rst similarity index 100% rename from docs/API/Canvas.rst rename to docs/API/Canvas/Canvas.rst diff --git a/docs/API/README.md b/docs/API/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/API/build_func_index.py b/docs/API/build_func_index.py new file mode 100644 index 000000000..b5d7f1709 --- /dev/null +++ b/docs/API/build_func_index.py @@ -0,0 +1,47 @@ +import vcs, inspect + +objects = [ + vcs.boxfill.Gfb, + vcs.Canvas.Canvas, + vcs.colormap.Cp, + vcs.fillarea.Tf, + vcs.isofill.Gfi, + vcs.isoline.Gi, + vcs.line.Tl, + vcs.marker.Tm, + vcs.meshfill.Gfm, + vcs.projection.Proj, + vcs.taylor.Gtd, + vcs.template.P, + vcs.textcombined.Tc, + vcs.textorientation.To, + vcs.texttable.Tt, + vcs.unified1D.G1d, + vcs.vector.Gv, + vcs.manageElements, + vcs.queries, + vcs.utils +] + +obj_d = {} +for obj in objects: + if inspect.isclass(obj): + key = obj.__module__ + '.' + obj.__name__ + pred = inspect.ismethod + else: + key = obj.__name__ + pred = inspect.isfunction + obj_d[key] = [] + tup_l = inspect.getmembers(obj, predicate=pred) + for tup in tup_l: + if not tup[0][0] == '_': + obj_d[key].append(':func:`' + key + '.' + tup[0] + '`\n\n') + +mod_d = {} +for key in obj_d: + fname = key.split('.')[1] + with open('functions/' + fname + ".rst", "w+") as f: + f.write(fname + "\n") + map(lambda x: f.write('-'), range(len(fname))) + f.write("\n\n") + f.writelines(obj_d[key]) diff --git a/docs/API/functions/Canvas.rst b/docs/API/functions/Canvas.rst new file mode 100644 index 000000000..218204d91 --- /dev/null +++ b/docs/API/functions/Canvas.rst @@ -0,0 +1,307 @@ +Canvas +------ + +:func:`vcs.Canvas.Canvas.addfont` + +:func:`vcs.Canvas.Canvas.boxfill` + +:func:`vcs.Canvas.Canvas.canvasid` + +:func:`vcs.Canvas.Canvas.canvasinfo` + +:func:`vcs.Canvas.Canvas.cgm` + +:func:`vcs.Canvas.Canvas.change_display_graphic_method` + +:func:`vcs.Canvas.Canvas.check_name_source` + +:func:`vcs.Canvas.Canvas.clean_auto_generated_objects` + +:func:`vcs.Canvas.Canvas.clear` + +:func:`vcs.Canvas.Canvas.close` + +:func:`vcs.Canvas.Canvas.configure` + +:func:`vcs.Canvas.Canvas.copyfontto` + +:func:`vcs.Canvas.Canvas.create1d` + +:func:`vcs.Canvas.Canvas.create3d_dual_scalar` + +:func:`vcs.Canvas.Canvas.create3d_scalar` + +:func:`vcs.Canvas.Canvas.create3d_vector` + +:func:`vcs.Canvas.Canvas.createboxfill` + +:func:`vcs.Canvas.Canvas.createcolormap` + +:func:`vcs.Canvas.Canvas.createfillarea` + +:func:`vcs.Canvas.Canvas.createisofill` + +:func:`vcs.Canvas.Canvas.createisoline` + +:func:`vcs.Canvas.Canvas.createline` + +:func:`vcs.Canvas.Canvas.createmarker` + +:func:`vcs.Canvas.Canvas.createmeshfill` + +:func:`vcs.Canvas.Canvas.createprojection` + +:func:`vcs.Canvas.Canvas.createscatter` + +:func:`vcs.Canvas.Canvas.createtaylordiagram` + +:func:`vcs.Canvas.Canvas.createtemplate` + +:func:`vcs.Canvas.Canvas.createtext` + +:func:`vcs.Canvas.Canvas.createtextcombined` + +:func:`vcs.Canvas.Canvas.createtextorientation` + +:func:`vcs.Canvas.Canvas.createtexttable` + +:func:`vcs.Canvas.Canvas.createvector` + +:func:`vcs.Canvas.Canvas.createxvsy` + +:func:`vcs.Canvas.Canvas.createxyvsy` + +:func:`vcs.Canvas.Canvas.createyxvsx` + +:func:`vcs.Canvas.Canvas.destroy` + +:func:`vcs.Canvas.Canvas.drawfillarea` + +:func:`vcs.Canvas.Canvas.drawline` + +:func:`vcs.Canvas.Canvas.drawlogooff` + +:func:`vcs.Canvas.Canvas.drawlogoon` + +:func:`vcs.Canvas.Canvas.drawmarker` + +:func:`vcs.Canvas.Canvas.drawtext` + +:func:`vcs.Canvas.Canvas.drawtextcombined` + +:func:`vcs.Canvas.Canvas.dual_scalar3d` + +:func:`vcs.Canvas.Canvas.dummy_user_action` + +:func:`vcs.Canvas.Canvas.endconfigure` + +:func:`vcs.Canvas.Canvas.eps` + +:func:`vcs.Canvas.Canvas.ffmpeg` + +:func:`vcs.Canvas.Canvas.fillarea` + +:func:`vcs.Canvas.Canvas.flush` + +:func:`vcs.Canvas.Canvas.geometry` + +:func:`vcs.Canvas.Canvas.get1d` + +:func:`vcs.Canvas.Canvas.get3d_dual_scalar` + +:func:`vcs.Canvas.Canvas.get3d_scalar` + +:func:`vcs.Canvas.Canvas.get3d_vector` + +:func:`vcs.Canvas.Canvas.get_selected_display` + +:func:`vcs.Canvas.Canvas.getantialiasing` + +:func:`vcs.Canvas.Canvas.getboxfill` + +:func:`vcs.Canvas.Canvas.getcolorcell` + +:func:`vcs.Canvas.Canvas.getcolormap` + +:func:`vcs.Canvas.Canvas.getcolormapname` + +:func:`vcs.Canvas.Canvas.getcontinentsline` + +:func:`vcs.Canvas.Canvas.getcontinentstype` + +:func:`vcs.Canvas.Canvas.getdrawlogo` + +:func:`vcs.Canvas.Canvas.getfillarea` + +:func:`vcs.Canvas.Canvas.getfont` + +:func:`vcs.Canvas.Canvas.getfontname` + +:func:`vcs.Canvas.Canvas.getfontnumber` + +:func:`vcs.Canvas.Canvas.getisofill` + +:func:`vcs.Canvas.Canvas.getisoline` + +:func:`vcs.Canvas.Canvas.getline` + +:func:`vcs.Canvas.Canvas.getmarker` + +:func:`vcs.Canvas.Canvas.getmeshfill` + +:func:`vcs.Canvas.Canvas.getplot` + +:func:`vcs.Canvas.Canvas.getprojection` + +:func:`vcs.Canvas.Canvas.getscatter` + +:func:`vcs.Canvas.Canvas.gettaylordiagram` + +:func:`vcs.Canvas.Canvas.gettemplate` + +:func:`vcs.Canvas.Canvas.gettext` + +:func:`vcs.Canvas.Canvas.gettextcombined` + +:func:`vcs.Canvas.Canvas.gettextextent` + +:func:`vcs.Canvas.Canvas.gettextorientation` + +:func:`vcs.Canvas.Canvas.gettexttable` + +:func:`vcs.Canvas.Canvas.getvector` + +:func:`vcs.Canvas.Canvas.getxvsy` + +:func:`vcs.Canvas.Canvas.getxyvsy` + +:func:`vcs.Canvas.Canvas.getyxvsx` + +:func:`vcs.Canvas.Canvas.gif` + +:func:`vcs.Canvas.Canvas.grid` + +:func:`vcs.Canvas.Canvas.gs` + +:func:`vcs.Canvas.Canvas.initLogoDrawing` + +:func:`vcs.Canvas.Canvas.interact` + +:func:`vcs.Canvas.Canvas.isinfile` + +:func:`vcs.Canvas.Canvas.islandscape` + +:func:`vcs.Canvas.Canvas.isofill` + +:func:`vcs.Canvas.Canvas.isoline` + +:func:`vcs.Canvas.Canvas.isopened` + +:func:`vcs.Canvas.Canvas.isportrait` + +:func:`vcs.Canvas.Canvas.landscape` + +:func:`vcs.Canvas.Canvas.line` + +:func:`vcs.Canvas.Canvas.listelements` + +:func:`vcs.Canvas.Canvas.marker` + +:func:`vcs.Canvas.Canvas.match_color` + +:func:`vcs.Canvas.Canvas.meshfill` + +:func:`vcs.Canvas.Canvas.objecthelp` + +:func:`vcs.Canvas.Canvas.onClosing` + +:func:`vcs.Canvas.Canvas.open` + +:func:`vcs.Canvas.Canvas.orientation` + +:func:`vcs.Canvas.Canvas.pdf` + +:func:`vcs.Canvas.Canvas.plot` + +:func:`vcs.Canvas.Canvas.plot_annotation` + +:func:`vcs.Canvas.Canvas.plot_filledcontinents` + +:func:`vcs.Canvas.Canvas.png` + +:func:`vcs.Canvas.Canvas.portrait` + +:func:`vcs.Canvas.Canvas.postscript` + +:func:`vcs.Canvas.Canvas.processParameterChange` + +:func:`vcs.Canvas.Canvas.pstogif` + +:func:`vcs.Canvas.Canvas.put_png_on_canvas` + +:func:`vcs.Canvas.Canvas.raisecanvas` + +:func:`vcs.Canvas.Canvas.removeP` + +:func:`vcs.Canvas.Canvas.remove_display_name` + +:func:`vcs.Canvas.Canvas.removeobject` + +:func:`vcs.Canvas.Canvas.return_display_names` + +:func:`vcs.Canvas.Canvas.savecontinentstype` + +:func:`vcs.Canvas.Canvas.saveinitialfile` + +:func:`vcs.Canvas.Canvas.scalar3d` + +:func:`vcs.Canvas.Canvas.scatter` + +:func:`vcs.Canvas.Canvas.scriptobject` + +:func:`vcs.Canvas.Canvas.scriptrun` + +:func:`vcs.Canvas.Canvas.setAnimationStepper` + +:func:`vcs.Canvas.Canvas.setantialiasing` + +:func:`vcs.Canvas.Canvas.setbgoutputdimensions` + +:func:`vcs.Canvas.Canvas.setcolorcell` + +:func:`vcs.Canvas.Canvas.setcolormap` + +:func:`vcs.Canvas.Canvas.setcontinentsline` + +:func:`vcs.Canvas.Canvas.setcontinentstype` + +:func:`vcs.Canvas.Canvas.setdefaultfont` + +:func:`vcs.Canvas.Canvas.show` + +:func:`vcs.Canvas.Canvas.start` + +:func:`vcs.Canvas.Canvas.svg` + +:func:`vcs.Canvas.Canvas.switchfonts` + +:func:`vcs.Canvas.Canvas.taylordiagram` + +:func:`vcs.Canvas.Canvas.text` + +:func:`vcs.Canvas.Canvas.textcombined` + +:func:`vcs.Canvas.Canvas.update` + +:func:`vcs.Canvas.Canvas.updateorientation` + +:func:`vcs.Canvas.Canvas.vector` + +:func:`vcs.Canvas.Canvas.vector3d` + +:func:`vcs.Canvas.Canvas.xvsy` + +:func:`vcs.Canvas.Canvas.xyvsy` + +:func:`vcs.Canvas.Canvas.yxvsx` + diff --git a/docs/API/functions/animate_helper.rst b/docs/API/functions/animate_helper.rst new file mode 100644 index 000000000..e69de29bb diff --git a/docs/API/functions/boxfill.rst b/docs/API/functions/boxfill.rst new file mode 100644 index 000000000..8038bf79a --- /dev/null +++ b/docs/API/functions/boxfill.rst @@ -0,0 +1,29 @@ +boxfill +------- + +:func:`vcs.boxfill.Gfb.colors` + +:func:`vcs.boxfill.Gfb.datawc` + +:func:`vcs.boxfill.Gfb.exts` + +:func:`vcs.boxfill.Gfb.getlegendlabels` + +:func:`vcs.boxfill.Gfb.getlevels` + +:func:`vcs.boxfill.Gfb.list` + +:func:`vcs.boxfill.Gfb.rename` + +:func:`vcs.boxfill.Gfb.script` + +:func:`vcs.boxfill.Gfb.xmtics` + +:func:`vcs.boxfill.Gfb.xticlabels` + +:func:`vcs.boxfill.Gfb.xyscale` + +:func:`vcs.boxfill.Gfb.ymtics` + +:func:`vcs.boxfill.Gfb.yticlabels` + diff --git a/docs/API/functions/colormap.rst b/docs/API/functions/colormap.rst new file mode 100644 index 000000000..8bdedb36f --- /dev/null +++ b/docs/API/functions/colormap.rst @@ -0,0 +1,19 @@ +colormap +-------- + +:func:`vcs.colormap.Cp.getcolorcell` + +:func:`vcs.colormap.Cp.getindex` + +:func:`vcs.colormap.Cp.getname` + +:func:`vcs.colormap.Cp.list` + +:func:`vcs.colormap.Cp.script` + +:func:`vcs.colormap.Cp.setcolorcell` + +:func:`vcs.colormap.Cp.setindex` + +:func:`vcs.colormap.Cp.setname` + diff --git a/docs/API/functions/colors.rst b/docs/API/functions/colors.rst new file mode 100644 index 000000000..e69de29bb diff --git a/docs/API/functions/displayplot.rst b/docs/API/functions/displayplot.rst new file mode 100644 index 000000000..e69de29bb diff --git a/docs/API/functions/dv3d.rst b/docs/API/functions/dv3d.rst new file mode 100644 index 000000000..e69de29bb diff --git a/docs/API/functions/fillarea.rst b/docs/API/functions/fillarea.rst new file mode 100644 index 000000000..a7150d712 --- /dev/null +++ b/docs/API/functions/fillarea.rst @@ -0,0 +1,7 @@ +fillarea +-------- + +:func:`vcs.fillarea.Tf.list` + +:func:`vcs.fillarea.Tf.script` + diff --git a/docs/API/functions/index.rst b/docs/API/functions/index.rst new file mode 100644 index 000000000..0f4c927b8 --- /dev/null +++ b/docs/API/functions/index.rst @@ -0,0 +1,30 @@ +Index of VCS functions +---------------------- + +.. toctree:: + + Canvas + boxfill + dv3d + isofill + isoline + meshfill + taylor + unified1D + vector + animate_helper + colors + queries + vcshelp + colormap + displayplot + manageElements + projection + utils + fillarea + line + marker + textcombined + textorientation + texttable + template \ No newline at end of file diff --git a/docs/API/functions/isofill.rst b/docs/API/functions/isofill.rst new file mode 100644 index 000000000..3cf86bc1c --- /dev/null +++ b/docs/API/functions/isofill.rst @@ -0,0 +1,23 @@ +isofill +------- + +:func:`vcs.isofill.Gfi.colors` + +:func:`vcs.isofill.Gfi.datawc` + +:func:`vcs.isofill.Gfi.exts` + +:func:`vcs.isofill.Gfi.list` + +:func:`vcs.isofill.Gfi.script` + +:func:`vcs.isofill.Gfi.xmtics` + +:func:`vcs.isofill.Gfi.xticlabels` + +:func:`vcs.isofill.Gfi.xyscale` + +:func:`vcs.isofill.Gfi.ymtics` + +:func:`vcs.isofill.Gfi.yticlabels` + diff --git a/docs/API/functions/isoline.rst b/docs/API/functions/isoline.rst new file mode 100644 index 000000000..f2063e80e --- /dev/null +++ b/docs/API/functions/isoline.rst @@ -0,0 +1,21 @@ +isoline +------- + +:func:`vcs.isoline.Gi.datawc` + +:func:`vcs.isoline.Gi.list` + +:func:`vcs.isoline.Gi.script` + +:func:`vcs.isoline.Gi.setLineAttributes` + +:func:`vcs.isoline.Gi.xmtics` + +:func:`vcs.isoline.Gi.xticlabels` + +:func:`vcs.isoline.Gi.xyscale` + +:func:`vcs.isoline.Gi.ymtics` + +:func:`vcs.isoline.Gi.yticlabels` + diff --git a/docs/API/functions/line.rst b/docs/API/functions/line.rst new file mode 100644 index 000000000..05989a944 --- /dev/null +++ b/docs/API/functions/line.rst @@ -0,0 +1,7 @@ +line +---- + +:func:`vcs.line.Tl.list` + +:func:`vcs.line.Tl.script` + diff --git a/docs/API/functions/manageElements.rst b/docs/API/functions/manageElements.rst new file mode 100644 index 000000000..d29812d1b --- /dev/null +++ b/docs/API/functions/manageElements.rst @@ -0,0 +1,147 @@ +manageElements +-------------- + +:func:`vcs.manageElements.check_name_source` + +:func:`vcs.manageElements.create1d` + +:func:`vcs.manageElements.create3d_dual_scalar` + +:func:`vcs.manageElements.create3d_scalar` + +:func:`vcs.manageElements.create3d_vector` + +:func:`vcs.manageElements.createboxfill` + +:func:`vcs.manageElements.createcolormap` + +:func:`vcs.manageElements.createfillarea` + +:func:`vcs.manageElements.createisofill` + +:func:`vcs.manageElements.createisoline` + +:func:`vcs.manageElements.createline` + +:func:`vcs.manageElements.createmarker` + +:func:`vcs.manageElements.createmeshfill` + +:func:`vcs.manageElements.createprojection` + +:func:`vcs.manageElements.createscatter` + +:func:`vcs.manageElements.createtaylordiagram` + +:func:`vcs.manageElements.createtemplate` + +:func:`vcs.manageElements.createtext` + +:func:`vcs.manageElements.createtextcombined` + +:func:`vcs.manageElements.createtextorientation` + +:func:`vcs.manageElements.createtexttable` + +:func:`vcs.manageElements.createvector` + +:func:`vcs.manageElements.createxvsy` + +:func:`vcs.manageElements.createxyvsy` + +:func:`vcs.manageElements.createyxvsx` + +:func:`vcs.manageElements.get1d` + +:func:`vcs.manageElements.get3d_dual_scalar` + +:func:`vcs.manageElements.get3d_scalar` + +:func:`vcs.manageElements.get3d_vector` + +:func:`vcs.manageElements.getboxfill` + +:func:`vcs.manageElements.getcolormap` + +:func:`vcs.manageElements.getfillarea` + +:func:`vcs.manageElements.getisofill` + +:func:`vcs.manageElements.getisoline` + +:func:`vcs.manageElements.getline` + +:func:`vcs.manageElements.getmarker` + +:func:`vcs.manageElements.getmeshfill` + +:func:`vcs.manageElements.getprojection` + +:func:`vcs.manageElements.getscatter` + +:func:`vcs.manageElements.gettaylordiagram` + +:func:`vcs.manageElements.gettemplate` + +:func:`vcs.manageElements.gettext` + +:func:`vcs.manageElements.gettextcombined` + +:func:`vcs.manageElements.gettextorientation` + +:func:`vcs.manageElements.gettexttable` + +:func:`vcs.manageElements.getvector` + +:func:`vcs.manageElements.getxvsy` + +:func:`vcs.manageElements.getxyvsy` + +:func:`vcs.manageElements.getyxvsx` + +:func:`vcs.manageElements.removeCp` + +:func:`vcs.manageElements.removeG` + +:func:`vcs.manageElements.removeG1d` + +:func:`vcs.manageElements.removeGSp` + +:func:`vcs.manageElements.removeGXY` + +:func:`vcs.manageElements.removeGXy` + +:func:`vcs.manageElements.removeGYx` + +:func:`vcs.manageElements.removeGfb` + +:func:`vcs.manageElements.removeGfi` + +:func:`vcs.manageElements.removeGfm` + +:func:`vcs.manageElements.removeGi` + +:func:`vcs.manageElements.removeGtd` + +:func:`vcs.manageElements.removeGv` + +:func:`vcs.manageElements.removeP` + +:func:`vcs.manageElements.removeProj` + +:func:`vcs.manageElements.removeTc` + +:func:`vcs.manageElements.removeTf` + +:func:`vcs.manageElements.removeTl` + +:func:`vcs.manageElements.removeTm` + +:func:`vcs.manageElements.removeTo` + +:func:`vcs.manageElements.removeTt` + +:func:`vcs.manageElements.removeobject` + +:func:`vcs.manageElements.setLineAttributes` + diff --git a/docs/API/functions/marker.rst b/docs/API/functions/marker.rst new file mode 100644 index 000000000..18e64b6f6 --- /dev/null +++ b/docs/API/functions/marker.rst @@ -0,0 +1,7 @@ +marker +------ + +:func:`vcs.marker.Tm.list` + +:func:`vcs.marker.Tm.script` + diff --git a/docs/API/functions/meshfill.rst b/docs/API/functions/meshfill.rst new file mode 100644 index 000000000..bc5c2a15f --- /dev/null +++ b/docs/API/functions/meshfill.rst @@ -0,0 +1,23 @@ +meshfill +-------- + +:func:`vcs.meshfill.Gfm.colors` + +:func:`vcs.meshfill.Gfm.datawc` + +:func:`vcs.meshfill.Gfm.exts` + +:func:`vcs.meshfill.Gfm.list` + +:func:`vcs.meshfill.Gfm.script` + +:func:`vcs.meshfill.Gfm.xmtics` + +:func:`vcs.meshfill.Gfm.xticlabels` + +:func:`vcs.meshfill.Gfm.xyscale` + +:func:`vcs.meshfill.Gfm.ymtics` + +:func:`vcs.meshfill.Gfm.yticlabels` + diff --git a/docs/API/functions/projection.rst b/docs/API/functions/projection.rst new file mode 100644 index 000000000..60aaade9d --- /dev/null +++ b/docs/API/functions/projection.rst @@ -0,0 +1,9 @@ +projection +---------- + +:func:`vcs.projection.Proj.checkPP` + +:func:`vcs.projection.Proj.list` + +:func:`vcs.projection.Proj.script` + diff --git a/docs/API/functions/queries.rst b/docs/API/functions/queries.rst new file mode 100644 index 000000000..a64b9b93d --- /dev/null +++ b/docs/API/functions/queries.rst @@ -0,0 +1,61 @@ +queries +------- + +:func:`vcs.queries.graphicsmethodlist` + +:func:`vcs.queries.graphicsmethodtype` + +:func:`vcs.queries.is1d` + +:func:`vcs.queries.is3d_dual_scalar` + +:func:`vcs.queries.is3d_scalar` + +:func:`vcs.queries.is3d_vector` + +:func:`vcs.queries.isboxfill` + +:func:`vcs.queries.iscolormap` + +:func:`vcs.queries.isfillarea` + +:func:`vcs.queries.isgraphicsmethod` + +:func:`vcs.queries.isisofill` + +:func:`vcs.queries.isisoline` + +:func:`vcs.queries.isline` + +:func:`vcs.queries.ismarker` + +:func:`vcs.queries.ismeshfill` + +:func:`vcs.queries.isplot` + +:func:`vcs.queries.isprojection` + +:func:`vcs.queries.isscatter` + +:func:`vcs.queries.issecondaryobject` + +:func:`vcs.queries.istaylordiagram` + +:func:`vcs.queries.istemplate` + +:func:`vcs.queries.istext` + +:func:`vcs.queries.istextcombined` + +:func:`vcs.queries.istextorientation` + +:func:`vcs.queries.istexttable` + +:func:`vcs.queries.isvector` + +:func:`vcs.queries.isxvsy` + +:func:`vcs.queries.isxyvsy` + +:func:`vcs.queries.isyxvsx` + diff --git a/docs/API/functions/taylor.rst b/docs/API/functions/taylor.rst new file mode 100644 index 000000000..1fa1d89a0 --- /dev/null +++ b/docs/API/functions/taylor.rst @@ -0,0 +1,29 @@ +taylor +------ + +:func:`vcs.taylor.Gtd.addMarker` + +:func:`vcs.taylor.Gtd.convert` + +:func:`vcs.taylor.Gtd.defaultSkillFunction` + +:func:`vcs.taylor.Gtd.draw` + +:func:`vcs.taylor.Gtd.drawFrame` + +:func:`vcs.taylor.Gtd.drawSkill` + +:func:`vcs.taylor.Gtd.drawarrow` + +:func:`vcs.taylor.Gtd.getArc` + +:func:`vcs.taylor.Gtd.list` + +:func:`vcs.taylor.Gtd.plot` + +:func:`vcs.taylor.Gtd.rename` + +:func:`vcs.taylor.Gtd.script` + +:func:`vcs.taylor.Gtd.setWorldCoordinate` + diff --git a/docs/API/functions/template.rst b/docs/API/functions/template.rst new file mode 100644 index 000000000..8d81cb16a --- /dev/null +++ b/docs/API/functions/template.rst @@ -0,0 +1,33 @@ +template +-------- + +:func:`vcs.template.P.blank` + +:func:`vcs.template.P.drawAttributes` + +:func:`vcs.template.P.drawColorBar` + +:func:`vcs.template.P.drawLinesAndMarkersLegend` + +:func:`vcs.template.P.drawTicks` + +:func:`vcs.template.P.list` + +:func:`vcs.template.P.move` + +:func:`vcs.template.P.moveto` + +:func:`vcs.template.P.plot` + +:func:`vcs.template.P.ratio` + +:func:`vcs.template.P.ratio_linear_projection` + +:func:`vcs.template.P.reset` + +:func:`vcs.template.P.scale` + +:func:`vcs.template.P.scalefont` + +:func:`vcs.template.P.script` + diff --git a/docs/API/functions/textcombined.rst b/docs/API/functions/textcombined.rst new file mode 100644 index 000000000..e6005b9c2 --- /dev/null +++ b/docs/API/functions/textcombined.rst @@ -0,0 +1,7 @@ +textcombined +------------ + +:func:`vcs.textcombined.Tc.list` + +:func:`vcs.textcombined.Tc.script` + diff --git a/docs/API/functions/textorientation.rst b/docs/API/functions/textorientation.rst new file mode 100644 index 000000000..952321c7f --- /dev/null +++ b/docs/API/functions/textorientation.rst @@ -0,0 +1,7 @@ +textorientation +--------------- + +:func:`vcs.textorientation.To.list` + +:func:`vcs.textorientation.To.script` + diff --git a/docs/API/functions/texttable.rst b/docs/API/functions/texttable.rst new file mode 100644 index 000000000..24a7e6d68 --- /dev/null +++ b/docs/API/functions/texttable.rst @@ -0,0 +1,7 @@ +texttable +--------- + +:func:`vcs.texttable.Tt.list` + +:func:`vcs.texttable.Tt.script` + diff --git a/docs/API/functions/unified1D.rst b/docs/API/functions/unified1D.rst new file mode 100644 index 000000000..75d07ac5f --- /dev/null +++ b/docs/API/functions/unified1D.rst @@ -0,0 +1,19 @@ +unified1D +--------- + +:func:`vcs.unified1D.G1d.datawc` + +:func:`vcs.unified1D.G1d.list` + +:func:`vcs.unified1D.G1d.script` + +:func:`vcs.unified1D.G1d.setLineAttributes` + +:func:`vcs.unified1D.G1d.xmtics` + +:func:`vcs.unified1D.G1d.xticlabels` + +:func:`vcs.unified1D.G1d.ymtics` + +:func:`vcs.unified1D.G1d.yticlabels` + diff --git a/docs/API/functions/utils.rst b/docs/API/functions/utils.rst new file mode 100644 index 000000000..5fa5bc354 --- /dev/null +++ b/docs/API/functions/utils.rst @@ -0,0 +1,83 @@ +utils +----- + +:func:`vcs.utils.creategraphicsmethod` + +:func:`vcs.utils.download_sample_data_files` + +:func:`vcs.utils.drawLinesAndMarkersLegend` + +:func:`vcs.utils.dumpToDict` + +:func:`vcs.utils.dumpToJson` + +:func:`vcs.utils.generate_time_labels` + +:func:`vcs.utils.getDataWcValue` + +:func:`vcs.utils.get_png_dims` + +:func:`vcs.utils.getcolorcell` + +:func:`vcs.utils.getcolormap` + +:func:`vcs.utils.getcolors` + +:func:`vcs.utils.getdotdirectory` + +:func:`vcs.utils.getfontname` + +:func:`vcs.utils.getfontnumber` + +:func:`vcs.utils.getgraphicsmethod` + +:func:`vcs.utils.getworldcoordinates` + +:func:`vcs.utils.listelements` + +:func:`vcs.utils.loadTemplate` + +:func:`vcs.utils.loadVCSItem` + +:func:`vcs.utils.match_color` + +:func:`vcs.utils.matplotlib2vcs` + +:func:`vcs.utils.minmax` + +:func:`vcs.utils.mkevenlevels` + +:func:`vcs.utils.mklabels` + +:func:`vcs.utils.mkscale` + +:func:`vcs.utils.monotonic` + +:func:`vcs.utils.png_read_metadata` + +:func:`vcs.utils.prettifyAxisLabels` + +:func:`vcs.utils.process_range_from_old_scr` + +:func:`vcs.utils.process_src_element` + +:func:`vcs.utils.return_display_names` + +:func:`vcs.utils.rgb2str` + +:func:`vcs.utils.rgba_color` + +:func:`vcs.utils.saveinitialfile` + +:func:`vcs.utils.scriptrun` + +:func:`vcs.utils.scriptrun_scr` + +:func:`vcs.utils.setTicksandLabels` + +:func:`vcs.utils.setcolorcell` + +:func:`vcs.utils.show` + +:func:`vcs.utils.str2rgb` + diff --git a/docs/API/functions/vcshelp.rst b/docs/API/functions/vcshelp.rst new file mode 100644 index 000000000..e69de29bb diff --git a/docs/API/functions/vector.rst b/docs/API/functions/vector.rst new file mode 100644 index 000000000..c010d6c5d --- /dev/null +++ b/docs/API/functions/vector.rst @@ -0,0 +1,21 @@ +vector +------ + +:func:`vcs.vector.Gv.datawc` + +:func:`vcs.vector.Gv.list` + +:func:`vcs.vector.Gv.script` + +:func:`vcs.vector.Gv.setLineAttributes` + +:func:`vcs.vector.Gv.xmtics` + +:func:`vcs.vector.Gv.xticlabels` + +:func:`vcs.vector.Gv.xyscale` + +:func:`vcs.vector.Gv.ymtics` + +:func:`vcs.vector.Gv.yticlabels` + diff --git a/docs/API/misc/misc.rst b/docs/API/misc/misc.rst index ae7a37768..ec1f15684 100644 --- a/docs/API/misc/misc.rst +++ b/docs/API/misc/misc.rst @@ -10,7 +10,6 @@ These are a variety of modules from VCS that help out with useful functionality. colormap colors displayplot - error manageElements queries utils diff --git a/docs/API/vcs.rst b/docs/API/vcs.rst index 441e356e3..d5c120817 100644 --- a/docs/API/vcs.rst +++ b/docs/API/vcs.rst @@ -7,8 +7,9 @@ VCS API Documentation .. toctree:: - Canvas + Canvas/Canvas graphics/gm template/templ secondary/gms misc/misc + functions/index \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 499b907fe..c298d53f9 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -52,6 +52,9 @@ # doctest_test_doctest_blocks = None doctest_path = sys.path +# Not currently doctesting VCS with sphinx due to some conflicting name errors across tests +# in the same python instance. +# Setup and cleanup might be able to fix it, but I couldn't get it to work doctest_global_setup = """ import vcs, cdms2, os ex = ex1 = ex2 = None @@ -286,7 +289,7 @@ # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - (master_doc, 'vcs.tex', u'VCS Documentation', + ("API/vcs", 'vcs.tex', u'VCS API Documentation', u'AIMS Team', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of @@ -295,13 +298,13 @@ # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +#latex_toplevel_sectioning = 'section' # If true, show page references after internal links. -#latex_show_pagerefs = False +latex_show_pagerefs = True # If true, show URL addresses after external links. -#latex_show_urls = False +latex_show_urls = 'footnote' # Documents to append as an appendix to all manuals. #latex_appendices = [] diff --git a/docs/index.rst b/docs/index.rst index f2c0b7c6f..fd7a087d4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,8 +1,8 @@ VCS: Visualization Control System -================================== +================================= What is VCS? ---------------- +------------ The PCMDI Visualization Control System (VCS) is expressly designed to meet the needs of scientific community. VCS allows wide-ranging changes to be made to the data display, provides for hardcopy output, and includes a means for recovery of a previous display. @@ -56,6 +56,6 @@ API index --------- .. toctree:: - :maxdepth: 3 + :maxdepth: 4 - API/vcs \ No newline at end of file + API/vcs \ No newline at end of file From eb08920dcf0dfdcde2c132a786ae5c324d35bf5e Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 5 Jan 2017 10:57:00 -0800 Subject: [PATCH 36/45] Added README.md to doctest_info directories briefly explaining what's in them and how to use it. Added an ignore directory to store files for using doctest_vcs.py's --ifile option. --- docs/doctest_info/ignore/README.md | 20 +++++++++++ docs/doctest_info/markdown/README.md | 11 ++++++ docs/doctest_info/markdown/boxfill.md | 2 -- docs/doctest_info/reports/README.md | 6 ++++ docs/doctest_info/reports/boxfill.report | 2 +- docs/doctest_info/scripts/README.md | 43 ++++++++++++++++++++++++ docs/doctest_info/scripts/doctest_vcs.py | 2 +- 7 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 docs/doctest_info/ignore/README.md create mode 100644 docs/doctest_info/markdown/README.md create mode 100644 docs/doctest_info/reports/README.md create mode 100644 docs/doctest_info/scripts/README.md diff --git a/docs/doctest_info/ignore/README.md b/docs/doctest_info/ignore/README.md new file mode 100644 index 000000000..e63a393d2 --- /dev/null +++ b/docs/doctest_info/ignore/README.md @@ -0,0 +1,20 @@ +Ignore Files +------------ + +This directory is to hold ignore files. + +These ignore files are used to ignore certain regular expressions when parsing doctest report logs for missing doctests. + +If you have things showing up in the 'Missing Doctests' section of your markdown reports that shouldn't be there, make or append to a ```$MODULE_NAME.ignore``` file in this directory. + +.ignore files should contain a newline-delimited list of regular expressions for the signatures of properties/functions that you want to ignore, when looking for missing doctests. + +For example, given a ```boxfill.ignore``` file with the following contents: + + Gfb + process_src + +The missing report in boxfill.md will omit any lines which have 'Gfb' or 'process_src' after the last '.' for their signature. + +As of now, this will only ignore the last part of the signature flagged as missing. i.e. ```vcs.Canvas.Canvas.animate``` and ```vcs.Canvas.Canvas.animate_info``` would both be ignored if +Canvas.ignore contained ```animate```, but would not be ignored if it contained ```vcs.Canvas.Canvas.animate```. diff --git a/docs/doctest_info/markdown/README.md b/docs/doctest_info/markdown/README.md new file mode 100644 index 000000000..7c2775e46 --- /dev/null +++ b/docs/doctest_info/markdown/README.md @@ -0,0 +1,11 @@ +Markdown Log Files +------------------ + +These files contain a markdown-formatted summary of any doctest errors encountered, and any objects in the module that don't have doctests. + +The 'Missing Doctests' section can be a good indicator for where more documentation is needed. + +As far as errors are concerned, no news is good news. If you have a .md file that contains nothing, it's probably not missing doctests, +and is passing all doctests. + +For instructions on how to generate these log files, see doctest_info/scripts/README.md . diff --git a/docs/doctest_info/markdown/boxfill.md b/docs/doctest_info/markdown/boxfill.md index 0b94332ab..34ff9ce3b 100644 --- a/docs/doctest_info/markdown/boxfill.md +++ b/docs/doctest_info/markdown/boxfill.md @@ -74,5 +74,3 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.yticlabels2``` -:x:``` vcs.boxfill.process_src``` - diff --git a/docs/doctest_info/reports/README.md b/docs/doctest_info/reports/README.md new file mode 100644 index 000000000..0c61d64c1 --- /dev/null +++ b/docs/doctest_info/reports/README.md @@ -0,0 +1,6 @@ +Doctest Report Logs +------------------- + +The $MODULE_NAME.report files contain the full output for doctests run through doctest_vcs.py. +Mainly they are generated so that a more readable .md file can be created, but they are handy to look through +if you need more detail on what is going on during the doctest process. diff --git a/docs/doctest_info/reports/boxfill.report b/docs/doctest_info/reports/boxfill.report index e9e433327..e6c6d01a9 100644 --- a/docs/doctest_info/reports/boxfill.report +++ b/docs/doctest_info/reports/boxfill.report @@ -112,7 +112,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/scripts/README.md b/docs/doctest_info/scripts/README.md new file mode 100644 index 000000000..3a293f5ce --- /dev/null +++ b/docs/doctest_info/scripts/README.md @@ -0,0 +1,43 @@ +Doctest Scripts +--------------- + +This directory contains the scripts used to run VCS's modules through doctest.testmod. + +#### doctest_vcs.py #### + +doctest_vcs.py lets us run doctests on a single module. It can also be used to generate reports and .md logs of important +details from the doctests, such as which tests aren't passing along with the errors that they have, and which parts of the module are missing doctests. + +##### using doctest_vcs ##### + +__These scripts need to be run from the doctest_info/scripts directory (I'm sure that can be fixed, but I haven't done so yet).__ + +If you want to run all the VCS modules through doctest_vcs, all you have to do is run ```./run_all_doctests.sh``` in the terminal (make sure it has executable permissions on your machine) + +Testing individual modules can require several more steps. + +To test a module and have it output to the screen: + + $ python doctest_vcs.py $MODULE_NAME + +is all you need. This will print the simplest form of doctest output, which contains all of the failing doctest in the module. + +Currently to obtain the log information you have to use the terminal to redirect doctest output to a file: + + $ doctest.py -v -r $MODULE_NAME > ../reports/$MODULE_NAME.report + $ doctest.py --LO $MODULE_NAME + +The second step parses the report file for doctest errors and missing doctests. You can omit it and redirect output to anywhere if you just want a report. +The report file MUST be named $MODULE_NAME.report and be located in doctest_info/reports if you want to generate the markdown-formatted summary log. + +If there are things being reported in the 'Missing Doctests' section of the .md summary that shouldn't be there, follow the instructions in doctest_info/ignore/README.md +to add an ignore file for the module (if one does not exist). Then, when you run the logging function provide that file as the --ifile option: + + $ doctest.py --LO --ifile ../ignore/$MODULE_NAME.ignore $MODULE_NAME + +#### run_all_doctest.sh #### + +This script runs all of the modules in VCS through doctest.py, redirects their output to doctest_info/reports/$MODULE_NAME.report, +and runs the logging function on the .report using the appropriate .ignore file. + +If you find that the script is missing some modules, simply add their names to the MODULES array declared at the start of the script. diff --git a/docs/doctest_info/scripts/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py index a66b98d24..f5e4aa085 100644 --- a/docs/doctest_info/scripts/doctest_vcs.py +++ b/docs/doctest_info/scripts/doctest_vcs.py @@ -65,7 +65,7 @@ def consume_entry(readfile, writefile, endpoints, prepend="", append="", ignore= :param prepend: A string to prepend to the line from readfile before outputting to writefile :param append: A string to append to the line from readfile before outputting to writefile :param ignore: A list of regular expressions containing function signatures to ignore (for logging missing doctests - only. Gets brought in through commandline or a file via ArgParse. + only). Gets brought in through commandline or a file via ArgParse. """ more = True sigs = [re.compile("_[_A-z0-9]+")] # func signatures to ignore. Add private functions by default. From 8bbbeef679f94072c6a712f33c6a49b65c5e6fa9 Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 5 Jan 2017 12:57:05 -0800 Subject: [PATCH 37/45] Formatted :Example: sections to <=80 lines so they look better in pdf. Re-ran doctest_vcs.py to check functionality after some minor edits. --- docs/API/build_func_index.py | 14 +- docs/doctest_info/markdown/Canvas.md | 56 +++- docs/doctest_info/markdown/boxfill.md | 2 + docs/doctest_info/markdown/manageElements.md | 8 +- docs/doctest_info/markdown/queries.md | 2 +- docs/doctest_info/markdown/template.md | 2 +- docs/doctest_info/markdown/textcombined.md | 2 +- docs/doctest_info/reports/Canvas.report | 244 ++++++++++++++---- docs/doctest_info/reports/colormap.report | 2 +- docs/doctest_info/reports/fillarea.report | 2 +- docs/doctest_info/reports/isofill.report | 4 +- docs/doctest_info/reports/isoline.report | 2 +- docs/doctest_info/reports/line.report | 2 +- .../reports/manageElements.report | 10 +- docs/doctest_info/reports/marker.report | 2 +- docs/doctest_info/reports/meshfill.report | 4 +- docs/doctest_info/reports/projection.report | 2 +- docs/doctest_info/reports/queries.report | 2 +- docs/doctest_info/reports/taylor.report | 2 +- docs/doctest_info/reports/template.report | 4 +- docs/doctest_info/reports/textcombined.report | 6 +- .../reports/textorientation.report | 2 +- docs/doctest_info/reports/texttable.report | 4 +- docs/doctest_info/reports/unified1D.report | 2 +- docs/doctest_info/reports/vector.report | 4 +- docs/doctest_info/scripts/doctest_vcs.py | 11 +- vcs/Canvas.py | 164 ++++++++++-- vcs/__init__.py | 18 +- vcs/boxfill.py | 51 ++-- vcs/xmldocs.py | 26 +- 30 files changed, 485 insertions(+), 171 deletions(-) diff --git a/docs/API/build_func_index.py b/docs/API/build_func_index.py index b5d7f1709..f6b1369b6 100644 --- a/docs/API/build_func_index.py +++ b/docs/API/build_func_index.py @@ -1,5 +1,7 @@ import vcs, inspect +# VCS objects to generate function references for. Some are modules, some are classes. +# Probably will need to add to this later when there's more documentation objects = [ vcs.boxfill.Gfb, vcs.Canvas.Canvas, @@ -23,7 +25,8 @@ vcs.utils ] -obj_d = {} +# iterate through objects to find the functions of each, and write RST links for those out to +# API/functions/$MODULE_NAME.rst for obj in objects: if inspect.isclass(obj): key = obj.__module__ + '.' + obj.__name__ @@ -31,17 +34,14 @@ else: key = obj.__name__ pred = inspect.isfunction - obj_d[key] = [] + funcs = [] tup_l = inspect.getmembers(obj, predicate=pred) for tup in tup_l: if not tup[0][0] == '_': - obj_d[key].append(':func:`' + key + '.' + tup[0] + '`\n\n') - -mod_d = {} -for key in obj_d: + funcs.append(':func:`' + key + '.' + tup[0] + '`\n\n') fname = key.split('.')[1] with open('functions/' + fname + ".rst", "w+") as f: f.write(fname + "\n") map(lambda x: f.write('-'), range(len(fname))) f.write("\n\n") - f.writelines(obj_d[key]) + f.writelines(funcs) diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md index 875d4d4f3..5af34f87e 100644 --- a/docs/doctest_info/markdown/Canvas.md +++ b/docs/doctest_info/markdown/Canvas.md @@ -3,12 +3,24 @@ vcs.Canvas.Canvas.createtext ```python Failed example: try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') except: pass Expected nothing Got: - + +``` + +vcs.Canvas.Canvas.dual_scalar3d +------------------------------- +```python +Failed example: + a.dual_scalar3d(ds3,s,s2) # Plot slabs +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + ``` vcs.Canvas.Canvas.get3d_dual_scalar @@ -20,7 +32,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_scalar @@ -32,7 +44,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.get3d_vector @@ -46,7 +58,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.Canvas.Canvas.isinfile @@ -59,6 +71,32 @@ Expected: Got nothing ``` +vcs.Canvas.Canvas.scalar3d +-------------------------- +```python +Failed example: + a.scalar3d(ds,s) # Plot slab with defaults +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +``` + +vcs.Canvas.Canvas.vector3d +-------------------------- +```python +Failed example: + a.vector3d(dv3,s,s2) # Plot slabs +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +``` + Missing Doctests ---------------- :x:``` vcs.Canvas``` @@ -79,12 +117,8 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.copyfontto``` -:x:``` vcs.Canvas.Canvas.dual_scalar3d``` - :x:``` vcs.Canvas.Canvas.endconfigure``` -:x:``` vcs.Canvas.Canvas.get1d``` - :x:``` vcs.Canvas.Canvas.get_selected_display``` :x:``` vcs.Canvas.Canvas.getplot``` @@ -115,8 +149,6 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.savecontinentstype``` -:x:``` vcs.Canvas.Canvas.scalar3d``` - :x:``` vcs.Canvas.Canvas.setAnimationStepper``` :x:``` vcs.Canvas.Canvas.setdefaultfont``` @@ -131,8 +163,6 @@ Missing Doctests :x:``` vcs.Canvas.Canvas.varglist``` -:x:``` vcs.Canvas.Canvas.vector3d``` - :x:``` vcs.Canvas.Canvas.viewport``` :x:``` vcs.Canvas.Canvas.winfo_id``` diff --git a/docs/doctest_info/markdown/boxfill.md b/docs/doctest_info/markdown/boxfill.md index 34ff9ce3b..0b94332ab 100644 --- a/docs/doctest_info/markdown/boxfill.md +++ b/docs/doctest_info/markdown/boxfill.md @@ -74,3 +74,5 @@ Missing Doctests :x:``` vcs.boxfill.Gfb.yticlabels2``` +:x:``` vcs.boxfill.process_src``` + diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md index 3f508b859..f29a23afd 100644 --- a/docs/doctest_info/markdown/manageElements.md +++ b/docs/doctest_info/markdown/manageElements.md @@ -22,7 +22,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.manageElements.get3d_dual_scalar @@ -34,7 +34,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_scalar @@ -46,7 +46,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` vcs.manageElements.get3d_vector @@ -60,7 +60,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/queries.md b/docs/doctest_info/markdown/queries.md index 13fda685f..0a9ff015b 100644 --- a/docs/doctest_info/markdown/queries.md +++ b/docs/doctest_info/markdown/queries.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` Missing Doctests diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md index 6a4f06a54..23fd13be9 100644 --- a/docs/doctest_info/markdown/template.md +++ b/docs/doctest_info/markdown/template.md @@ -5,7 +5,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] ``` vcs.template.P.list diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md index 7de6c21a2..50fbf6751 100644 --- a/docs/doctest_info/markdown/textcombined.md +++ b/docs/doctest_info/markdown/textcombined.md @@ -8,7 +8,7 @@ Failed example: pass Expected nothing Got: - + ``` vcs.textcombined.Tc.script diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report index 0794fcdf7..86deb0905 100644 --- a/docs/doctest_info/reports/Canvas.report +++ b/docs/doctest_info/reports/Canvas.report @@ -3,7 +3,7 @@ Trying: Expecting nothing ok Trying: - a.show('boxfill') # Show all the existing boxfill graphics methods + a.show('boxfill') # Show all boxfills Expecting: *******************Boxfill Names List********************** ... @@ -14,16 +14,16 @@ Trying: Expecting nothing ok Trying: - array=[range(10) for _ in range(10)] + arr=[range(10) for _ in range(10)] # data to plot Expecting nothing ok Trying: - a.boxfill(array, box) # Plot array using specified box and default template + a.boxfill(arr, box) # Plot array w/ box; default template Expecting: ok Trying: - template = a.gettemplate('quick') # get quick template + t = a.gettemplate('quick') # get quick template Expecting nothing ok Trying: @@ -31,37 +31,37 @@ Trying: Expecting nothing ok Trying: - a.boxfill(array, box, template) # Plot array using specified box and template + a.boxfill(arr, box, t) # Plot w/ box and 'quick' template Expecting: ok Trying: - a.boxfill(box, array, template) # Plot array using specified box and template + a.boxfill(box, arr, t) # Plot w/ box and 'quick' template Expecting: ok Trying: - a.boxfill(template, array, box) # Plot array using specified box and template + a.boxfill(t, arr, box) # Plot w/ box and 'quick' template Expecting: ok Trying: - a.boxfill(template, box, array) # Plot array using specified box and template + a.boxfill(t, box, arr) # Plot w/ box and 'quick' template Expecting: ok Trying: - a.boxfill(array, 'hovmuller', 'quick') # Use 'hovmuller' template and 'quick' boxfill + a.boxfill(arr, 'polar', 'polar') # 'polar' template/boxfill Expecting: ok Trying: - a.boxfill('hovmuller', array, 'quick') # Use 'hovmuller' template and 'quick' boxfill + a.boxfill('polar', arr, 'polar') # 'polar' template/boxfill Expecting: ok Trying: - a.boxfill('hovmuller', 'quick', array) # Use 'hovmuller template and 'quick' boxfill + a.boxfill('polar', 'polar', arr) # 'polar' template/boxfill Expecting: ok @@ -237,7 +237,17 @@ Expecting: *******************End 1d Names List********************** ok Trying: - vcs.get1d('blue_yxvsx') + vcs.create1d() # inherits default, name generated +Expecting: + +ok +Trying: + vcs.create1d("one_D") # inherits default, name "one_D" +Expecting: + +ok +Trying: + vcs.create1d(source="one_D") # inherits from "one_D" Expecting: ok @@ -571,20 +581,20 @@ Expecting: ok Trying: try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') except: pass Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2121, in vcs.Canvas.Canvas.createtext +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2229, in vcs.Canvas.Canvas.createtext Failed example: try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') except: pass Expected nothing Got: - + Trying: vcs.show('textorientation') # available textorientations Expecting: @@ -846,6 +856,50 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + a.show('3d_dual_scalar') # Show all 3d_dual_scalars +Expecting: + *******************3d_dual_scalar Names List********************** + ... + *******************End 3d_dual_scalar Names List********************** +ok +Trying: + ds3=a.get3d_dual_scalar() # default 3d_dual_scalar +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file +Expecting nothing +ok +Trying: + s = f('clt') # use data file to create a cdms2 slab +Expecting nothing +ok +Trying: + s2 = f('v') # need two slabs, so get another +Expecting nothing +ok +Trying: + a.dual_scalar3d(ds3,s,s2) # Plot slabs +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1498, in vcs.Canvas.Canvas.dual_scalar3d +Failed example: + a.dual_scalar3d(ds3,s,s2) # Plot slabs +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok Trying: dua=a.dummy_user_action # alias long name Expecting nothing @@ -1027,6 +1081,18 @@ Trying: a.geometry(450,337) Expecting nothing ok +Trying: + vcs.show('1d') +Expecting: + *******************1d Names List********************** + ... + *******************End 1d Names List********************** +ok +Trying: + vcs.get1d('blue_yxvsx') +Expecting: + +ok Trying: a=vcs.init() Expecting nothing @@ -1061,14 +1127,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1434, in vcs.Canvas.Canvas.get3d_dual_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1499, in vcs.Canvas.Canvas.get3d_dual_scalar Failed example: a.plot(ex, slab1, slab2) # plot 3d_dual_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1099,14 +1165,14 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1433, in vcs.Canvas.Canvas.get3d_scalar +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1417, in vcs.Canvas.Canvas.get3d_scalar Failed example: a.plot(ex, slab1) # plot 3d_scalar Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1141,7 +1207,7 @@ Trying: Expecting: ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1434, in vcs.Canvas.Canvas.get3d_vector +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1456, in vcs.Canvas.Canvas.get3d_vector Failed example: a.plot(ex, slab1, slab2) # plot 3d_vector Expected: @@ -1150,7 +1216,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -1619,7 +1685,7 @@ Trying: Expecting nothing ok Trying: - slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] + slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] # data Expecting nothing ok Trying: @@ -1667,13 +1733,13 @@ Expecting: ok Trying: try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') except: pass Expecting nothing ok Trying: - ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # 'EXAMPLE_tt:::EXAMPLE_tto' textcombined + ex=vcs.gettextcombined('EX_tt', 'EX_tto') # 'EX_tt:::EX_tto' textcombined Expecting nothing ok Trying: @@ -1902,7 +1968,7 @@ Trying: Expecting: 1 ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5434, in vcs.Canvas.Canvas.isinfile +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5542, in vcs.Canvas.Canvas.isinfile Failed example: a.isinfile(box, 'deft_box.py') Expected: @@ -1931,7 +1997,7 @@ Trying: Expecting nothing ok Trying: - a.show('isofill') # Show all the existing isofill graphics methods + a.show('isofill') # Show all isofill graphics methods Expecting: *******************Isofill Names List********************** ... @@ -1946,15 +2012,15 @@ Trying: Expecting nothing ok Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file Expecting nothing ok Trying: - slab = f('clt') # use the data file to create a cdms2 slab + slab = f('clt') # use data file to create a cdms2 slab Expecting nothing ok Trying: - a.isofill(slab,iso) # Plot array using specified iso and default template + a.isofill(slab,iso) # Plot slab with iso; default template Expecting: ok @@ -1963,11 +2029,11 @@ Trying: Expecting nothing ok Trying: - template = a.gettemplate('hovmuller') + t = a.gettemplate('hovmuller') Expecting nothing ok Trying: - a.isofill(slab,iso,template) # Plot array using specified iso and template + a.isofill(slab,iso,t) # Plot with 'hovmuller' template Expecting: ok @@ -2615,6 +2681,46 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + a.show('3d_scalar') # Show all 3d_scalars +Expecting: + *******************3d_scalar Names List********************** + ... + *******************End 3d_scalar Names List********************** +ok +Trying: + ds=a.get3d_scalar() # default 3d_scalar +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file +Expecting nothing +ok +Trying: + s = f('clt') # use data file to create a cdms2 slab +Expecting nothing +ok +Trying: + a.scalar3d(ds,s) # Plot slab with defaults +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1412, in vcs.Canvas.Canvas.scalar3d +Failed example: + a.scalar3d(ds,s) # Plot slab with defaults +Expected: + +Got: + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok Trying: a.show('scatter') # Show all the existing scatter graphics methods Expecting: @@ -2661,15 +2767,15 @@ Trying: Expecting nothing ok Trying: - i=a.createisoline('dean') # Create an instance of default isoline object + i=a.createisoline('dean') # default isoline object instance Expecting nothing ok Trying: - a.scriptobject(i,'ex_isoline.py') # Save isoline object as a Python file 'isoline.py' + a.scriptobject(i,'ex_isoline.py') # Save to 'isoline.py' Expecting nothing ok Trying: - a.scriptobject(i,'ex_isoline2') # Save isoline object as a JSON object 'isoline2.json' + a.scriptobject(i,'ex_isoline2') # Save to 'isoline2.json' Expecting nothing ok Trying: @@ -3158,6 +3264,52 @@ Trying: a=vcs.init() Expecting nothing ok +Trying: + a.show('3d_vector') # Show all 3d_vectors +Expecting: + *******************3d_vector Names List********************** + ... + *******************End 3d_vector Names List********************** +ok +Trying: + dv3=a.get3d_vector() # default 3d_vector +Expecting nothing +ok +Trying: + import cdms2 # Need cdms2 to create a slab +Expecting nothing +ok +Trying: + f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file +Expecting nothing +ok +Trying: + s = f('u') # use data file to create a cdms2 slab +Expecting nothing +ok +Trying: + s2 = f('v') # need two slabs, so get another +Expecting nothing +ok +Trying: + a.vector3d(dv3,s,s2) # Plot slabs +Expecting: + +********************************************************************** +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1455, in vcs.Canvas.Canvas.vector3d +Failed example: + a.vector3d(dv3,s,s2) # Plot slabs +Expected: + +Got: + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) + +Trying: + a=vcs.init() +Expecting nothing +ok Trying: a.show('xvsy') # Show all the existing XvsY graphics methods Expecting: @@ -3277,7 +3429,7 @@ Trying: Expecting: ok -82 items had no tests: +78 items had no tests: vcs.Canvas vcs.Canvas.Canvas vcs.Canvas.Canvas._Canvas__new_elts @@ -3320,9 +3472,7 @@ ok vcs.Canvas.Canvas.cgm vcs.Canvas.Canvas.configure vcs.Canvas.Canvas.copyfontto - vcs.Canvas.Canvas.dual_scalar3d vcs.Canvas.Canvas.endconfigure - vcs.Canvas.Canvas.get1d vcs.Canvas.Canvas.get_selected_display vcs.Canvas.Canvas.getplot vcs.Canvas.Canvas.gif @@ -3338,7 +3488,6 @@ ok vcs.Canvas.Canvas.processParameterChange vcs.Canvas.Canvas.removeP vcs.Canvas.Canvas.savecontinentstype - vcs.Canvas.Canvas.scalar3d vcs.Canvas.Canvas.setAnimationStepper vcs.Canvas.Canvas.setdefaultfont vcs.Canvas.Canvas.start @@ -3346,7 +3495,6 @@ ok vcs.Canvas.Canvas.user_actions vcs.Canvas.Canvas.user_actions_names vcs.Canvas.Canvas.varglist - vcs.Canvas.Canvas.vector3d vcs.Canvas.Canvas.viewport vcs.Canvas.Canvas.winfo_id vcs.Canvas.Canvas.worldcoordinate @@ -3360,7 +3508,7 @@ ok vcs.Canvas._process_keyword vcs.Canvas.change_date_time vcs.Canvas.dictionarytovcslist -118 items passed all tests: +119 items passed all tests: 14 tests in vcs.Canvas.Canvas.boxfill 2 tests in vcs.Canvas.Canvas.canvasid 5 tests in vcs.Canvas.Canvas.canvasinfo @@ -3369,7 +3517,7 @@ ok 11 tests in vcs.Canvas.Canvas.clean_auto_generated_objects 4 tests in vcs.Canvas.Canvas.clear 4 tests in vcs.Canvas.Canvas.close - 2 tests in vcs.Canvas.Canvas.create1d + 4 tests in vcs.Canvas.Canvas.create1d 3 tests in vcs.Canvas.Canvas.create3d_dual_scalar 3 tests in vcs.Canvas.Canvas.create3d_scalar 3 tests in vcs.Canvas.Canvas.create3d_vector @@ -3404,6 +3552,7 @@ ok 9 tests in vcs.Canvas.Canvas.fillarea 4 tests in vcs.Canvas.Canvas.flush 4 tests in vcs.Canvas.Canvas.geometry + 2 tests in vcs.Canvas.Canvas.get1d 3 tests in vcs.Canvas.Canvas.getantialiasing 9 tests in vcs.Canvas.Canvas.getboxfill 4 tests in vcs.Canvas.Canvas.getcolorcell @@ -3480,12 +3629,15 @@ ok 8 tests in vcs.Canvas.Canvas.xyvsy 8 tests in vcs.Canvas.Canvas.yxvsx ********************************************************************** -5 items had failures: +8 items had failures: 1 of 3 in vcs.Canvas.Canvas.createtext + 3 of 11 in vcs.Canvas.Canvas.dual_scalar3d 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar 1 of 7 in vcs.Canvas.Canvas.get3d_scalar 1 of 8 in vcs.Canvas.Canvas.get3d_vector 1 of 4 in vcs.Canvas.Canvas.isinfile -711 tests in 205 items. -706 passed and 5 failed. -***Test Failed*** 5 failures. + 3 of 10 in vcs.Canvas.Canvas.scalar3d + 3 of 11 in vcs.Canvas.Canvas.vector3d +747 tests in 205 items. +733 passed and 14 failed. +***Test Failed*** 14 failures. diff --git a/docs/doctest_info/reports/colormap.report b/docs/doctest_info/reports/colormap.report index feb33dad9..bb108f6d4 100644 --- a/docs/doctest_info/reports/colormap.report +++ b/docs/doctest_info/reports/colormap.report @@ -24,7 +24,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/fillarea.report b/docs/doctest_info/reports/fillarea.report index 2e7da70e9..f1b751639 100644 --- a/docs/doctest_info/reports/fillarea.report +++ b/docs/doctest_info/reports/fillarea.report @@ -11,7 +11,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 34 items had no tests: diff --git a/docs/doctest_info/reports/isofill.report b/docs/doctest_info/reports/isofill.report index 02964b3d1..b1d03e5e3 100644 --- a/docs/doctest_info/reports/isofill.report +++ b/docs/doctest_info/reports/isofill.report @@ -83,7 +83,7 @@ Trying: ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 776, in vcs.isofill.Gfi.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 775, in vcs.isofill.Gfi.script Failed example: ex.script('filename.py') # append to 'filename.py' Exception raised: @@ -96,7 +96,7 @@ Exception raised: fp.write("%s.missing = %g\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/isoline.report b/docs/doctest_info/reports/isoline.report index 3021ada0c..2d23646d8 100644 --- a/docs/doctest_info/reports/isoline.report +++ b/docs/doctest_info/reports/isoline.report @@ -42,7 +42,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/line.report b/docs/doctest_info/reports/line.report index b5d7689f8..c7fa15940 100644 --- a/docs/doctest_info/reports/line.report +++ b/docs/doctest_info/reports/line.report @@ -92,7 +92,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 35 items had no tests: diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report index 580bf7a5d..220670415 100644 --- a/docs/doctest_info/reports/manageElements.report +++ b/docs/doctest_info/reports/manageElements.report @@ -394,7 +394,7 @@ Failed example: pass Expected nothing Got: - + Trying: vcs.listelements('textcombined') # includes new object Expecting: @@ -567,7 +567,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -605,7 +605,7 @@ Expected: Got: initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -649,7 +649,7 @@ Got: Sample rate: 6 Sample rate: 6 initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - + Trying: a=vcs.init() Expecting nothing @@ -972,7 +972,7 @@ Trying: Expecting nothing ok Trying: - slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] + slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] # data Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/marker.report b/docs/doctest_info/reports/marker.report index 35b1b553f..65b298571 100644 --- a/docs/doctest_info/reports/marker.report +++ b/docs/doctest_info/reports/marker.report @@ -11,7 +11,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 36 items had no tests: diff --git a/docs/doctest_info/reports/meshfill.report b/docs/doctest_info/reports/meshfill.report index e19acfebd..986a44be6 100644 --- a/docs/doctest_info/reports/meshfill.report +++ b/docs/doctest_info/reports/meshfill.report @@ -121,7 +121,7 @@ Trying: ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 803, in vcs.meshfill.Gfm.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 802, in vcs.meshfill.Gfm.script Failed example: ex.script('filename.py') # append to 'filename.py' Exception raised: @@ -134,7 +134,7 @@ Exception raised: fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) TypeError: float argument required, not tuple Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/projection.report b/docs/doctest_info/reports/projection.report index dd394e1ca..7966393a3 100644 --- a/docs/doctest_info/reports/projection.report +++ b/docs/doctest_info/reports/projection.report @@ -11,7 +11,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 112 items had no tests: diff --git a/docs/doctest_info/reports/queries.report b/docs/doctest_info/reports/queries.report index fb2feac70..538bb8dc4 100644 --- a/docs/doctest_info/reports/queries.report +++ b/docs/doctest_info/reports/queries.report @@ -429,7 +429,7 @@ Failed example: pass Expected nothing Got: - + Trying: a.show('textcombined') # available textcombineds Expecting: diff --git a/docs/doctest_info/reports/taylor.report b/docs/doctest_info/reports/taylor.report index f8c370274..dac844984 100644 --- a/docs/doctest_info/reports/taylor.report +++ b/docs/doctest_info/reports/taylor.report @@ -11,7 +11,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 133 items had no tests: diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report index f5467a693..901397f7c 100644 --- a/docs/doctest_info/reports/template.report +++ b/docs/doctest_info/reports/template.report @@ -31,7 +31,7 @@ Failed example: t.drawAttributes(a,s,b) # shows attributes of s on canvas Expected nothing Got: - [, , , , ] + [, , , , ] Trying: x = vcs.init() Expecting nothing @@ -504,7 +504,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 68 items had no tests: diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report index 6c4a8dc4d..122cd19ba 100644 --- a/docs/doctest_info/reports/textcombined.report +++ b/docs/doctest_info/reports/textcombined.report @@ -17,7 +17,7 @@ Failed example: pass Expected nothing Got: - + Trying: ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') Expecting nothing @@ -26,7 +26,7 @@ Trying: ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 477, in vcs.textcombined.Tc.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 476, in vcs.textcombined.Tc.script Failed example: ex.script('filename.py') # append to 'filename.py' Exception raised: @@ -39,7 +39,7 @@ Exception raised: fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not list Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 64 items had no tests: diff --git a/docs/doctest_info/reports/textorientation.report b/docs/doctest_info/reports/textorientation.report index b0995f4cb..49718750a 100644 --- a/docs/doctest_info/reports/textorientation.report +++ b/docs/doctest_info/reports/textorientation.report @@ -11,7 +11,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 23 items had no tests: diff --git a/docs/doctest_info/reports/texttable.report b/docs/doctest_info/reports/texttable.report index c4330e13a..f47057358 100644 --- a/docs/doctest_info/reports/texttable.report +++ b/docs/doctest_info/reports/texttable.report @@ -10,7 +10,7 @@ Trying: ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 528, in vcs.texttable.Tt.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 527, in vcs.texttable.Tt.script Failed example: ex.script('filename.py') # append to 'filename.py' Exception raised: @@ -23,7 +23,7 @@ Exception raised: fp.write("%s.color = %g\n\n" % (unique_name, self.color)) TypeError: float argument required, not tuple Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 51 items had no tests: diff --git a/docs/doctest_info/reports/unified1D.report b/docs/doctest_info/reports/unified1D.report index ca9ad61b1..e9f3b88be 100644 --- a/docs/doctest_info/reports/unified1D.report +++ b/docs/doctest_info/reports/unified1D.report @@ -42,7 +42,7 @@ Trying: Expecting nothing ok Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok Trying: diff --git a/docs/doctest_info/reports/vector.report b/docs/doctest_info/reports/vector.report index 669f24d95..d9e6e7afa 100644 --- a/docs/doctest_info/reports/vector.report +++ b/docs/doctest_info/reports/vector.report @@ -10,14 +10,14 @@ Trying: ex.script('filename.py') # append to 'filename.py' Expecting nothing ********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vector.py", line 837, in vcs.vector.Gv.script +File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vector.py", line 836, in vcs.vector.Gv.script Failed example: ex.script('filename.py') # append to 'filename.py' Expected nothing Got: DEPRECATED: Use linetype or setLineAttributes instead. Trying: - ex.script('filename','w') # Create/overwrite 'filename.json' + ex.script('filename','w') # make/overwrite 'filename.json' Expecting nothing ok 98 items had no tests: diff --git a/docs/doctest_info/scripts/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py index f5e4aa085..a00d4632a 100644 --- a/docs/doctest_info/scripts/doctest_vcs.py +++ b/docs/doctest_info/scripts/doctest_vcs.py @@ -35,11 +35,9 @@ def log_stats(module_name, ignore): while line != '': if re.match(err_header, line): where = line.split()[-1] - log.write(where+"\n") - for i in range(len(where)): - log.write("-") - log.write("\n") - log.write("```python\n") + log.write(where + "\n") + map(lambda x: log.write('-'), range(len(where))) + log.write("\n```python\n") consume_entry(results, log, err_endpoints) log.write("```\n\n") if re.match(missing_header, line): @@ -51,10 +49,11 @@ def log_stats(module_name, ignore): line = results.readline() log.close() results.close() - print ("Done logging "+module_name+".md") + print ("Done logging " + module_name + ".md") # note: will only consume the first full error (maybe) +# TODO: re-factor to use python file object's iterator... totally didn't realize those were a thing when I wrote this. def consume_entry(readfile, writefile, endpoints, prepend="", append="", ignore=[]): """Consumes a log entry from readfile up to one of a list of possible endpoints. Writes each line in the entry to writefile. diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 7c9f303c0..dcf8cd84a 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -483,7 +483,23 @@ def start(self, *args, **kargs): self.interact(*args, **kargs) def interact(self, *args, **kargs): - """Puts the canvas into interactive mode.""" + """Puts the canvas into interactive mode. + This allows the user to click on the canvas to add markers, + add textboxes, configure settings, rotate 3d plots, and more. + + Press 'Q' with the Canvas selected to quit. + + :Example: + + .. code-block:: python + + a=vcs.init() + b=a.getboxfill() + array=[range(10) for _ in range(10)] + a.plot(b,array) + a.interact() # interactively configure Canvas + + """ self.configure() self.backend.interact(*args, **kargs) @@ -808,8 +824,8 @@ def objecthelp(self, *arg): for x in arg: print getattr(x, "__doc__", "") - def __init__(self, mode=1, pause_time=0, - call_from_gui=0, size=None, backend="vtk", geometry=None, bg=None): + def __init__(self, mode=1, pause_time=0, call_from_gui=0, size=None, + backend="vtk", geometry=None, bg=None): self._canvas_id = vcs.next_canvas_id self.ParameterChanged = SIGNAL('ParameterChanged') vcs.next_canvas_id += 1 @@ -1059,9 +1075,9 @@ def scriptobject(self, obj, script_filename=None, mode=None): .. doctest:: canvas_scriptobject >>> a=vcs.init() - >>> i=a.createisoline('dean') # Create an instance of default isoline object - >>> a.scriptobject(i,'ex_isoline.py') # Save isoline object as a Python file 'isoline.py' - >>> a.scriptobject(i,'ex_isoline2') # Save isoline object as a JSON object 'isoline2.json' + >>> i=a.createisoline('dean') # default isoline object instance + >>> a.scriptobject(i,'ex_isoline.py') # Save to 'isoline.py' + >>> a.scriptobject(i,'ex_isoline2') # Save to 'isoline2.json' :param script_filename: Name of the output script file. :type script_filename: `str`_ @@ -1226,36 +1242,42 @@ def boxfill(self, *args, **parms): .. doctest:: canvas_boxfill >>> a=vcs.init() - >>> a.show('boxfill') # Show all the existing boxfill graphics methods + >>> a.show('boxfill') # Show all boxfills *******************Boxfill Names List********************** ... *******************End Boxfill Names List********************** >>> box=a.getboxfill('quick') # Create instance of 'quick' - >>> array=[range(10) for _ in range(10)] - >>> a.boxfill(array, box) # Plot array using specified box and default template + >>> arr=[range(10) for _ in range(10)] # data to plot + >>> a.boxfill(arr, box) # Plot array w/ box; default template - >>> template = a.gettemplate('quick') # get quick template + >>> t = a.gettemplate('quick') # get quick template >>> a.clear() # Clear VCS canvas - >>> a.boxfill(array, box, template) # Plot array using specified box and template + >>> a.boxfill(arr, box, t) # Plot w/ box and 'quick' template - >>> a.boxfill(box, array, template) # Plot array using specified box and template + >>> a.boxfill(box, arr, t) # Plot w/ box and 'quick' template - >>> a.boxfill(template, array, box) # Plot array using specified box and template + >>> a.boxfill(t, arr, box) # Plot w/ box and 'quick' template - >>> a.boxfill(template, box, array) # Plot array using specified box and template + >>> a.boxfill(t, box, arr) # Plot w/ box and 'quick' template - >>> a.boxfill(array, 'hovmuller', 'quick') # Use 'hovmuller' template and 'quick' boxfill + >>> a.boxfill(arr, 'polar', 'polar') # 'polar' template/boxfill - >>> a.boxfill('hovmuller', array, 'quick') # Use 'hovmuller' template and 'quick' boxfill + >>> a.boxfill('polar', arr, 'polar') # 'polar' template/boxfill - >>> a.boxfill('hovmuller', 'quick', array) # Use 'hovmuller template and 'quick' boxfill + >>> a.boxfill('polar', 'polar', arr) # 'polar' template/boxfill .. note:: - As shown above, the array, 'template', and 'box' parameters can be provided in any order. + As shown above, the data, 'template', and 'box' parameters can be provided in any order. The 'template' and 'box' parameters can either be VCS template and boxfill objects, or string names of template and boxfill objects. + + The first string provided is assumed to be a template name. The second is assumed to be a + boxfill name. + + + %s %s %s @@ -1369,6 +1391,31 @@ def get3d_scalar(self, Gfdv3d_name_src='default'): get3d_scalar.__doc__ = vcs.manageElements.get3d_scalar.__doc__ def scalar3d(self, *args, **parms): + """Generate a 3d_scalar plot given the data, 3d_scalar + graphics method, and template. If no 3d_scalar object is given, + then the 'default' 3d_scalar graphics method is used. + Similarly, if no template is given, the 'default' template is used. + + :Example: + + .. doctest:: canvas_scalar3d + + >>> a=vcs.init() + >>> a.show('3d_scalar') # Show all 3d_scalars + *******************3d_scalar Names List********************** + ... + *******************End 3d_scalar Names List********************** + >>> ds=a.get3d_scalar() # default 3d_scalar + >>> import cdms2 # Need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file + >>> s = f('clt') # use data file to create a cdms2 slab + >>> a.scalar3d(ds,s) # Plot slab with defaults + + >>> a.clear() # Clear VCS canvas + >>> t = a.gettemplate('polar') + >>> a.scalar3d(s,ds,t) # Plot with 'polar' template + + """ arglist = _determine_arg_list('3d_scalar', args) return self.__plot(arglist, parms) @@ -1382,6 +1429,36 @@ def get3d_vector(self, Gfdv3d_name_src='default'): get3d_vector.__doc__ = vcs.manageElements.get3d_vector.__doc__ def vector3d(self, *args, **parms): + """Generate a 3d_vector plot given the data, 3d_vector + graphics method, and template. If no 3d_vector object is given, + then the 'default' 3d_vector graphics method is used. + Similarly, if no template is given, the 'default' template is used. + + .. note:: + + 3d_vectors need 2 data objects (slabs) to plot. + + :Example: + + .. doctest:: canvas_vector3d + + >>> a=vcs.init() + >>> a.show('3d_vector') # Show all 3d_vectors + *******************3d_vector Names List********************** + ... + *******************End 3d_vector Names List********************** + >>> dv3=a.get3d_vector() # default 3d_vector + >>> import cdms2 # Need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file + >>> s = f('u') # use data file to create a cdms2 slab + >>> s2 = f('v') # need two slabs, so get another + >>> a.vector3d(dv3,s,s2) # Plot slabs + + >>> a.clear() # Clear VCS canvas + >>> t = a.gettemplate('polar') + >>> a.vector3d(s,s2,dv3,t) # Plot with 'polar' template + + """ arglist = _determine_arg_list('3d_vector', args) return self.__plot(arglist, parms) @@ -1395,9 +1472,40 @@ def get3d_dual_scalar(self, Gfdv3d_name_src='default'): get3d_dual_scalar.__doc__ = vcs.manageElements.get3d_dual_scalar.__doc__ def dual_scalar3d(self, *args, **parms): + """Generate a 3d_dual_scalar plot given the data, 3d_dual_scalar + graphics method, and template. If no 3d_dual_scalar object is given, + then the 'default' 3d_dual_scalar graphics method is used. + Similarly, if no template is given, the 'default' template is used. + + .. note:: + + 3d_dual_scalars need 2 data objects (slabs) to plot. + + :Example: + + .. doctest:: canvas_dual_scalar3d + + >>> a=vcs.init() + >>> a.show('3d_dual_scalar') # Show all 3d_dual_scalars + *******************3d_dual_scalar Names List********************** + ... + *******************End 3d_dual_scalar Names List********************** + >>> ds3=a.get3d_dual_scalar() # default 3d_dual_scalar + >>> import cdms2 # Need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file + >>> s = f('clt') # use data file to create a cdms2 slab + >>> s2 = f('v') # need two slabs, so get another + >>> a.dual_scalar3d(ds3,s,s2) # Plot slabs + + >>> a.clear() # Clear VCS canvas + >>> t = a.gettemplate('polar') + >>> a.dual_scalar3d(s,s2,ds3,t) # Plot w/ 'polar' template + + """ arglist = _determine_arg_list('3d_dual_scalar', args) return self.__plot(arglist, parms) + def createisofill(self, name=None, source='default'): return vcs.createisofill(name, source) createisofill.__doc__ = vcs.manageElements.createisofill.__doc__ @@ -1407,7 +1515,7 @@ def getisofill(self, Gfi_name_src='default'): getisofill.__doc__ = vcs.manageElements.getisofill.__doc__ def isofill(self, *args, **parms): - """Generate a isofill plot given the data, isofill graphics method, and + """Generate an isofill plot given the data, isofill graphics method, and template. If no isofill object is given, then the 'default' isofill graphics method is used. Similarly, if no template object is given, then the 'default' template is used. @@ -1417,19 +1525,19 @@ def isofill(self, *args, **parms): .. doctest:: canvas_isofill >>> a=vcs.init() - >>> a.show('isofill') # Show all the existing isofill graphics methods + >>> a.show('isofill') # Show all isofill graphics methods *******************Isofill Names List********************** ... *******************End Isofill Names List********************** >>> iso=a.getisofill('quick') # Create instance of 'quick' >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file - >>> slab = f('clt') # use the data file to create a cdms2 slab - >>> a.isofill(slab,iso) # Plot array using specified iso and default template + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file + >>> slab = f('clt') # use data file to create a cdms2 slab + >>> a.isofill(slab,iso) # Plot slab with iso; default template >>> a.clear() # Clear VCS canvas - >>> template = a.gettemplate('hovmuller') - >>> a.isofill(slab,iso,template) # Plot array using specified iso and template + >>> t = a.gettemplate('hovmuller') + >>> a.isofill(slab,iso,t) # Plot with 'hovmuller' template %s @@ -1492,7 +1600,7 @@ def create1d(self, name=None, source='default'): def get1d(self, name): return vcs.get1d(name) - create1d.__doc__ = vcs.manageElements.get1d.__doc__ + get1d.__doc__ = vcs.manageElements.get1d.__doc__ def createxyvsy(self, name=None, source='default'): return vcs.createxyvsy(name, source) @@ -4107,8 +4215,8 @@ def change_display_graphic_method(self, display, type, name): def get_selected_display(self): """ - .. attention:: - + .. attention:: + This function does not currently work. It will be implemented in the future. """ diff --git a/vcs/__init__.py b/vcs/__init__.py index 58eb6288e..117e2f0f7 100755 --- a/vcs/__init__.py +++ b/vcs/__init__.py @@ -250,21 +250,20 @@ canvaslist = [] -def init(mode=1, pause_time=0, call_from_gui=0, size=None, - backend="vtk", geometry=None, bg=None): - """ - Initialize and construct a VCS Canvas object. +def init(mode=1, pause_time=0, call_from_gui=0, size=None, backend="vtk", + geometry=None, bg=None): + """Initialize and construct a VCS Canvas object. :Example: .. doctest:: vcs_init >>> import vcs - >>> portrait = vcs.init(size=.5) # Portrait orientation of 1 width per 2 height + >>> portrait = vcs.init(size=.5) # Portrait of 1 width per 2 height >>> letter = vcs.init(size="letter") # also accepts "usletter" >>> a4 = vcs.init(size="a4") >>> import vtk - >>> my_win = vtk.vtkRenderWindow() # Useful for embedding VCS inside another application + >>> my_win = vtk.vtkRenderWindow() # To embed VCS in other applications >>> embedded = vcs.init(backend=my_win) >>> dict_init = vcs.init(geometry={"width": 1200, "height": 600}) >>> tuple_init = vcs.init(geometry=(1200, 600)) @@ -273,12 +272,13 @@ def init(mode=1, pause_time=0, call_from_gui=0, size=None, :param size: Aspect ratio for canvas (width / height) :param backend: Which VCS backend to use :param geometry: Size (in pixels) you want the canvas to be. - :param bg: Initialize a canvas to render in "background" mode (without displaying a window) + :param bg: Initialize a canvas to render in "background" mode (without + displaying a window) :type size: float or case-insensitive str - :type backend: str, `vtk.vtkRenderWindow` + :type backend: str, :py:class:`vtk.vtkRenderWindow` :type geometry: dict or tuple :type bg: bool - :return: an initialized canvas + :return: An initialized canvas :rtype: vcs.Canvas.Canvas """ canvas = Canvas.Canvas( diff --git a/vcs/boxfill.py b/vcs/boxfill.py index 87f480c07..67bd1f356 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -377,26 +377,27 @@ def rename(self, newname): .. note:: This function will not rename the 'default' boxfill. - If rename is called on the 'default' boxfill, newname is associated with default in the VCS name table, - but the boxfill's name will not be changed, and will behave in all ways as a 'default' boxfill. + If rename is called on the 'default' boxfill, newname is associated + with default in the VCS name table, but the boxfill's name will not + be changed, and will behave in all ways as a 'default' boxfill. :Example: .. doctest:: gfb_rename - >>> b=vcs.createboxfill() - >>> b.name - '...' - >>> vcs.listelements('boxfill') # list will include the name show above - [...] + >>> b=vcs.createboxfill('bar') + >>> l=vcs.listelements('boxfill') # list of boxfills + >>> 'bar' in l # shows l contains new boxfill + True >>> b.rename('foo') - >>> b.name - 'foo' - >>> vcs.listelements('boxfill') # list will include 'foo', but not the old name - [...'foo'...] + >>> l=vcs.listelements('boxfill') # new list of boxfills + >>> 'foo' in l # new name is in list + True + >>> 'bar' in l # old name is not + False :param newname: The new name you want given to the boxfill - :type newname: + :type newname: str """ if newname == "default": raise Exception( @@ -856,9 +857,6 @@ def ymtics(self, ymt1='', ymt2=''): ymtics.__doc__ = xmldocs.ymticsdoc % {"name" : "boxfill"} def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): - """ - -""" self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 @@ -871,6 +869,29 @@ def xyscale(self, xat='linear', yat='linear'): xyscale.__doc__ = xmldocs.xyscaledoc % (('boxfill',) * 4) def getlevels(self, varmin, varmax): + """Given a minimum and a maximum, will generate levels for the boxfill + starting at varmin and ending at varmax. + + :Example: + + .. doctest:: boxfill_getlevels + + >>> b=vcs.createboxfill() + >>> lvls = b.getlevels(0,100) # 257 levels from 0-100 + >>> b.levels = lvls # set boxfill's levels attribute + + :param varmin: The smallest number desired for the boxfill's levels + attribute. + :type varmin: float + + :param varmax: The largest number desired for the boxfill's levels + attribute. + :type varmin: float + + :return: A numpy array of 257 floats, evenly distributed from varmin to + varmax. + :rtype: numpy.ndarray + """ if self.boxfill_type == "custom": return self.levels diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 2bdbdaed4..613b5e704 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -408,11 +408,11 @@ def populate_docstrings(type_dict, target_dict, docstring, method): elif obj_name in ['1d', 'scatter', 'textcombined', 'xyvsy']: if obj_name == 'textcombined': d['tc'] = """>>> try: # try to create a new textcombined, in case none exist - ... vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') + ... vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') ... except: ... pass """ - d['sp_parent'] = "'EXAMPLE_tt', 'EXAMPLE_tto'" + d['sp_parent'] = "'EX_tt', 'EX_tto'" elif obj_name == '1d': d['sp_parent'] = "'default'" else: @@ -437,7 +437,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): if numslabs > 0: if obj_name is "taylordiagram": d['slabs'] = """ - >>> slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]]""" + >>> slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] # data""" else: d['slabs'] = """ >>> import cdms2 # Need cdms2 to create a slab @@ -482,7 +482,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): # if obj_name is tc, d['tc'] should be populated by code that creates a tc at this point if obj_name == "textcombined": example1 = d['tc'] + """>>> vcs.listelements('%(name)s') # includes new object - [...'EXAMPLE_tt:::EXAMPLE_tto'...]""" + [...'EX_tt:::EX_tto'...]""" else: example1 = """>>> ex=vcs.create%(name)s('%(name)s_ex1') >>> vcs.listelements('%(name)s') # includes new object @@ -496,11 +496,16 @@ def populate_docstrings(type_dict, target_dict, docstring, method): """ d['example'] += example2 % d elif method == 'script': + d['example'] = """>>> ex=a.get%(call)s(%(sp_parent)s) + >>> ex.script('filename.py') # append to 'filename.py' + >>> ex.script('filename','w') # make/overwrite 'filename.json'""" if obj_name == "textcombined": d['call'] = obj_name d['name'] = 'text table and text orientation' + d['example'] = d['tc'] + d['example'] else: d['call'] = d['name'] + d['example'] %= d elif method == 'is': example = """>>> a.show('%(name)s') # available %(name)ss *******************%(cap)s Names List********************** @@ -695,7 +700,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): }, "textcombined": { "callable": True, - "parent": "EXAMPLE_tt:::EXAMPLE_tto", + "parent": "EX_tt:::EX_tto", "parent2": "", "rtype": "vcs.textcombined.Tc", "slabs": 0, @@ -737,9 +742,9 @@ def populate_docstrings(type_dict, target_dict, docstring, method): # of format "'blah'" or '"blah"', and if multiple arguments are needed, they should be provided ('"blah", "blah"') # 'tc' : no textcombined objects exist by default in VCS, so this key is for an entry that will create one when # it is needed for an example. All other times, it will be an empty string. -# 'call' : the name to be used for a call to the object's *get* function. Only really used for textcombined, and only -# in the context of the script() function. All other cases, 'call' == 'name' -# 'ex(1|2)' : these should be filled in with code examples in doctest format. +# 'example' : this should be filled in with code examples in doctest format. Maintain indentation with the origin +# docstring. Most of the time, this means 3 indents (12 spaces) from the left side is where all your doctest +# lines should start. Look above, in populate_docstrings() to see what I'm tlaking about. scriptdoc = """Saves out a copy of the %(name)s %(type)s, in JSON or Python format to a designated file. @@ -760,10 +765,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): .. doctest:: script_examples >>> a=vcs.init() - %(tc)s - >>> ex=a.get%(call)s(%(sp_parent)s) - >>> ex.script('filename.py') # append to 'filename.py' - >>> ex.script('filename','w') # Create/overwrite 'filename.json' + %(example)s :param script_filename: Output name of the script file. If no extension is specified, a .json object is created. From b8897f1289a86a9c44dbd2ca6d7c04fa1ee154cc Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 5 Jan 2017 13:06:41 -0800 Subject: [PATCH 38/45] Removed Makefile call to old function --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 11da3d509..377f99e0d 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -162,7 +162,7 @@ linkcheck: "or in $(BUILDDIR)/linkcheck/output.txt." doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest; python clean_doctest_output.py + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." From 11b67d900d872016ca09316b965461d2baed5db0 Mon Sep 17 00:00:00 2001 From: embrown Date: Tue, 10 Jan 2017 11:31:43 -0800 Subject: [PATCH 39/45] Adds doctest_info/ to .gitignore. Fixes some links. Adds documentation for dv3d (from documentation site). changes some xmldocs strings to use .format(). --- .gitignore | 1 + docs/API/README.md | 4 + docs/API/build_func_index.py | 27 +- docs/API/functions/animate_helper.rst | 5 + docs/API/functions/colors.rst | 9 + docs/API/functions/displayplot.rst | 5 + docs/API/functions/dv3d.rst | 3 + docs/API/functions/vcshelp.rst | 11 + docs/API/graphics/dv3d.rst | 70 +- docs/doctest_info/README.md | 76 - docs/doctest_info/ignore/README.md | 20 - docs/doctest_info/markdown/Canvas.md | 183 - docs/doctest_info/markdown/Pboxeslines.md | 20 - docs/doctest_info/markdown/Pdata.md | 18 - docs/doctest_info/markdown/Pformat.md | 20 - docs/doctest_info/markdown/Plegend.md | 28 - docs/doctest_info/markdown/Ptext.md | 18 - docs/doctest_info/markdown/Pxlabels.md | 16 - docs/doctest_info/markdown/Pxtickmarks.md | 16 - docs/doctest_info/markdown/Pylabels.md | 16 - docs/doctest_info/markdown/Pytickmarks.md | 16 - docs/doctest_info/markdown/README.md | 11 - .../markdown/VCS_validation_functions.md | 132 - docs/doctest_info/markdown/boxfill.md | 78 - docs/doctest_info/markdown/colormap.md | 24 - docs/doctest_info/markdown/colors.md | 6 - docs/doctest_info/markdown/configurator.md | 104 - docs/doctest_info/markdown/displayplot.md | 30 - docs/doctest_info/markdown/dv3d.md | 172 - docs/doctest_info/markdown/editors.md | 4 - docs/doctest_info/markdown/error.md | 6 - docs/doctest_info/markdown/fillarea.md | 36 - docs/doctest_info/markdown/isofill.md | 82 - docs/doctest_info/markdown/isoline.md | 84 - docs/doctest_info/markdown/line.md | 30 - docs/doctest_info/markdown/manageElements.md | 111 - docs/doctest_info/markdown/marker.md | 32 - docs/doctest_info/markdown/meshfill.md | 128 - docs/doctest_info/markdown/projection.md | 84 - docs/doctest_info/markdown/queries.md | 17 - docs/doctest_info/markdown/taylor.md | 122 - docs/doctest_info/markdown/template.md | 464 --- docs/doctest_info/markdown/textcombined.md | 77 - docs/doctest_info/markdown/textorientation.md | 22 - docs/doctest_info/markdown/texttable.md | 58 - docs/doctest_info/markdown/unified1D.md | 70 - docs/doctest_info/markdown/utils.md | 32 - docs/doctest_info/markdown/vcshelp.md | 53 - docs/doctest_info/markdown/vector.md | 94 - docs/doctest_info/reports/Canvas.report | 3643 ----------------- docs/doctest_info/reports/Pboxeslines.report | 14 - docs/doctest_info/reports/Pdata.report | 13 - docs/doctest_info/reports/Pformat.report | 16 - docs/doctest_info/reports/Plegend.report | 18 - docs/doctest_info/reports/Ptext.report | 13 - docs/doctest_info/reports/Pxlabels.report | 12 - docs/doctest_info/reports/Pxtickmarks.report | 12 - docs/doctest_info/reports/Pylabels.report | 12 - docs/doctest_info/reports/Pytickmarks.report | 12 - docs/doctest_info/reports/README.md | 6 - .../reports/VCS_validation_functions.report | 103 - docs/doctest_info/reports/boxfill.report | 324 -- docs/doctest_info/reports/colormap.report | 64 - docs/doctest_info/reports/colors.report | 6 - docs/doctest_info/reports/configurator.report | 56 - docs/doctest_info/reports/displayplot.report | 45 - docs/doctest_info/reports/dv3d.report | 99 - docs/doctest_info/reports/editors.report | 5 - docs/doctest_info/reports/error.report | 8 - docs/doctest_info/reports/fillarea.report | 56 - docs/doctest_info/reports/isofill.report | 295 -- docs/doctest_info/reports/isoline.report | 270 -- docs/doctest_info/reports/line.report | 139 - .../reports/manageElements.report | 1320 ------ docs/doctest_info/reports/marker.report | 58 - docs/doctest_info/reports/meshfill.report | 339 -- docs/doctest_info/reports/projection.report | 134 - docs/doctest_info/reports/queries.report | 604 --- docs/doctest_info/reports/taylor.report | 155 - docs/doctest_info/reports/template.report | 595 --- docs/doctest_info/reports/textcombined.report | 115 - .../reports/textorientation.report | 45 - docs/doctest_info/reports/texttable.report | 86 - docs/doctest_info/reports/unified1D.report | 239 -- docs/doctest_info/reports/utils.report | 694 ---- docs/doctest_info/reports/vcshelp.report | 71 - docs/doctest_info/reports/vector.report | 127 - docs/doctest_info/scripts/README.md | 43 - docs/doctest_info/scripts/doctest_vcs.py | 161 - docs/doctest_info/scripts/run_all_doctests.sh | 11 - vcs/Canvas.py | 14 +- vcs/VCS_validation_functions.py | 2 +- vcs/boxfill.py | 14 +- vcs/dv3d.py | 35 +- vcs/isofill.py | 10 +- vcs/isoline.py | 8 +- vcs/manageElements.py | 347 +- vcs/meshfill.py | 10 +- vcs/textorientation.py | 3 +- vcs/texttable.py | 4 +- vcs/unified1D.py | 6 +- vcs/xmldocs.py | 215 +- 102 files changed, 508 insertions(+), 12943 deletions(-) delete mode 100644 docs/doctest_info/README.md delete mode 100644 docs/doctest_info/ignore/README.md delete mode 100644 docs/doctest_info/markdown/Canvas.md delete mode 100644 docs/doctest_info/markdown/Pboxeslines.md delete mode 100644 docs/doctest_info/markdown/Pdata.md delete mode 100644 docs/doctest_info/markdown/Pformat.md delete mode 100644 docs/doctest_info/markdown/Plegend.md delete mode 100644 docs/doctest_info/markdown/Ptext.md delete mode 100644 docs/doctest_info/markdown/Pxlabels.md delete mode 100644 docs/doctest_info/markdown/Pxtickmarks.md delete mode 100644 docs/doctest_info/markdown/Pylabels.md delete mode 100644 docs/doctest_info/markdown/Pytickmarks.md delete mode 100644 docs/doctest_info/markdown/README.md delete mode 100644 docs/doctest_info/markdown/VCS_validation_functions.md delete mode 100644 docs/doctest_info/markdown/boxfill.md delete mode 100644 docs/doctest_info/markdown/colormap.md delete mode 100644 docs/doctest_info/markdown/colors.md delete mode 100644 docs/doctest_info/markdown/configurator.md delete mode 100644 docs/doctest_info/markdown/displayplot.md delete mode 100644 docs/doctest_info/markdown/dv3d.md delete mode 100644 docs/doctest_info/markdown/editors.md delete mode 100644 docs/doctest_info/markdown/error.md delete mode 100644 docs/doctest_info/markdown/fillarea.md delete mode 100644 docs/doctest_info/markdown/isofill.md delete mode 100644 docs/doctest_info/markdown/isoline.md delete mode 100644 docs/doctest_info/markdown/line.md delete mode 100644 docs/doctest_info/markdown/manageElements.md delete mode 100644 docs/doctest_info/markdown/marker.md delete mode 100644 docs/doctest_info/markdown/meshfill.md delete mode 100644 docs/doctest_info/markdown/projection.md delete mode 100644 docs/doctest_info/markdown/queries.md delete mode 100644 docs/doctest_info/markdown/taylor.md delete mode 100644 docs/doctest_info/markdown/template.md delete mode 100644 docs/doctest_info/markdown/textcombined.md delete mode 100644 docs/doctest_info/markdown/textorientation.md delete mode 100644 docs/doctest_info/markdown/texttable.md delete mode 100644 docs/doctest_info/markdown/unified1D.md delete mode 100644 docs/doctest_info/markdown/utils.md delete mode 100644 docs/doctest_info/markdown/vcshelp.md delete mode 100644 docs/doctest_info/markdown/vector.md delete mode 100644 docs/doctest_info/reports/Canvas.report delete mode 100644 docs/doctest_info/reports/Pboxeslines.report delete mode 100644 docs/doctest_info/reports/Pdata.report delete mode 100644 docs/doctest_info/reports/Pformat.report delete mode 100644 docs/doctest_info/reports/Plegend.report delete mode 100644 docs/doctest_info/reports/Ptext.report delete mode 100644 docs/doctest_info/reports/Pxlabels.report delete mode 100644 docs/doctest_info/reports/Pxtickmarks.report delete mode 100644 docs/doctest_info/reports/Pylabels.report delete mode 100644 docs/doctest_info/reports/Pytickmarks.report delete mode 100644 docs/doctest_info/reports/README.md delete mode 100644 docs/doctest_info/reports/VCS_validation_functions.report delete mode 100644 docs/doctest_info/reports/boxfill.report delete mode 100644 docs/doctest_info/reports/colormap.report delete mode 100644 docs/doctest_info/reports/colors.report delete mode 100644 docs/doctest_info/reports/configurator.report delete mode 100644 docs/doctest_info/reports/displayplot.report delete mode 100644 docs/doctest_info/reports/dv3d.report delete mode 100644 docs/doctest_info/reports/editors.report delete mode 100644 docs/doctest_info/reports/error.report delete mode 100644 docs/doctest_info/reports/fillarea.report delete mode 100644 docs/doctest_info/reports/isofill.report delete mode 100644 docs/doctest_info/reports/isoline.report delete mode 100644 docs/doctest_info/reports/line.report delete mode 100644 docs/doctest_info/reports/manageElements.report delete mode 100644 docs/doctest_info/reports/marker.report delete mode 100644 docs/doctest_info/reports/meshfill.report delete mode 100644 docs/doctest_info/reports/projection.report delete mode 100644 docs/doctest_info/reports/queries.report delete mode 100644 docs/doctest_info/reports/taylor.report delete mode 100644 docs/doctest_info/reports/template.report delete mode 100644 docs/doctest_info/reports/textcombined.report delete mode 100644 docs/doctest_info/reports/textorientation.report delete mode 100644 docs/doctest_info/reports/texttable.report delete mode 100644 docs/doctest_info/reports/unified1D.report delete mode 100644 docs/doctest_info/reports/utils.report delete mode 100644 docs/doctest_info/reports/vcshelp.report delete mode 100644 docs/doctest_info/reports/vector.report delete mode 100644 docs/doctest_info/scripts/README.md delete mode 100644 docs/doctest_info/scripts/doctest_vcs.py delete mode 100755 docs/doctest_info/scripts/run_all_doctests.sh diff --git a/.gitignore b/.gitignore index d4585a764..3904b30e2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.egg-info build/ docs/_build +docs/doctest_info/ dist/ .idea/ dist/ diff --git a/docs/API/README.md b/docs/API/README.md index e69de29bb..8fe633a62 100644 --- a/docs/API/README.md +++ b/docs/API/README.md @@ -0,0 +1,4 @@ +Note: +----- + +Run `build_func_index.py` every once in a while to make sure the VCS function index is being updated diff --git a/docs/API/build_func_index.py b/docs/API/build_func_index.py index f6b1369b6..ab95b14af 100644 --- a/docs/API/build_func_index.py +++ b/docs/API/build_func_index.py @@ -2,28 +2,11 @@ # VCS objects to generate function references for. Some are modules, some are classes. # Probably will need to add to this later when there's more documentation -objects = [ - vcs.boxfill.Gfb, - vcs.Canvas.Canvas, - vcs.colormap.Cp, - vcs.fillarea.Tf, - vcs.isofill.Gfi, - vcs.isoline.Gi, - vcs.line.Tl, - vcs.marker.Tm, - vcs.meshfill.Gfm, - vcs.projection.Proj, - vcs.taylor.Gtd, - vcs.template.P, - vcs.textcombined.Tc, - vcs.textorientation.To, - vcs.texttable.Tt, - vcs.unified1D.G1d, - vcs.vector.Gv, - vcs.manageElements, - vcs.queries, - vcs.utils -] +objects = [vcs.boxfill.Gfb, vcs.Canvas.Canvas, vcs.colormap.Cp, vcs.fillarea.Tf, vcs.isofill.Gfi, vcs.isoline.Gi, + vcs.line.Tl, vcs.marker.Tm, vcs.meshfill.Gfm, vcs.projection.Proj, vcs.taylor.Gtd, vcs.template.P, + vcs.textcombined.Tc,vcs.textorientation.To, vcs.texttable.Tt, vcs.unified1D.G1d, vcs.vector.Gv, + vcs.manageElements, vcs.queries, vcs.utils, vcs.animate_helper, vcs.dv3d, vcs.colors, vcs.displayplot.Dp, + vcs.vcshelp, ] # iterate through objects to find the functions of each, and write RST links for those out to # API/functions/$MODULE_NAME.rst diff --git a/docs/API/functions/animate_helper.rst b/docs/API/functions/animate_helper.rst index e69de29bb..cccb12f79 100644 --- a/docs/API/functions/animate_helper.rst +++ b/docs/API/functions/animate_helper.rst @@ -0,0 +1,5 @@ +animate_helper +-------------- + +:func:`vcs.animate_helper.showerror` + diff --git a/docs/API/functions/colors.rst b/docs/API/functions/colors.rst index e69de29bb..14d9d3209 100644 --- a/docs/API/functions/colors.rst +++ b/docs/API/functions/colors.rst @@ -0,0 +1,9 @@ +colors +------ + +:func:`vcs.colors.matplotlib2vcs` + +:func:`vcs.colors.rgb2str` + +:func:`vcs.colors.str2rgb` + diff --git a/docs/API/functions/displayplot.rst b/docs/API/functions/displayplot.rst index e69de29bb..498a35b9d 100644 --- a/docs/API/functions/displayplot.rst +++ b/docs/API/functions/displayplot.rst @@ -0,0 +1,5 @@ +displayplot +----------- + +:func:`vcs.displayplot.Dp.list` + diff --git a/docs/API/functions/dv3d.rst b/docs/API/functions/dv3d.rst index e69de29bb..5d3ad3245 100644 --- a/docs/API/functions/dv3d.rst +++ b/docs/API/functions/dv3d.rst @@ -0,0 +1,3 @@ +dv3d +---- + diff --git a/docs/API/functions/vcshelp.rst b/docs/API/functions/vcshelp.rst index e69de29bb..17409980c 100644 --- a/docs/API/functions/vcshelp.rst +++ b/docs/API/functions/vcshelp.rst @@ -0,0 +1,11 @@ +vcshelp +------- + +:func:`vcs.vcshelp.help` + +:func:`vcs.vcshelp.help__doc__` + +:func:`vcs.vcshelp.mode__doc__` + +:func:`vcs.vcshelp.objecthelp` + diff --git a/docs/API/graphics/dv3d.rst b/docs/API/graphics/dv3d.rst index 752bd53a4..571bf9325 100644 --- a/docs/API/graphics/dv3d.rst +++ b/docs/API/graphics/dv3d.rst @@ -1,4 +1,70 @@ -dv3d ----- +=================== +3D Graphics Methods +=================== + +Deriving actionable information from climate simulations requires the capacity to detect, compare, and analyze features +spanning large heterogeneous, multi-variate, multi-dimensional datasets with spatial and temporal references. The +brain’s capacity to detect visual patterns is invaluable in this knowledge discovery process. Visual mapping techniques +are very effective in expressing the results of feature detection and analysis algorithms as they naturally employ the +visual information processing capacity of the cerebral cortex, which is extremely difficult to emulate using statistical +and machine learning approaches alone. Visual representations, which play an important role in addressing data +complexity, can be enhanced by an increase in the number of “degrees of freedom” in the visual mapping process. +Interactive three-dimensional views into complex high dimensional datasets can offer a widened perspective and a more +comprehensive gestalt facilitating the recognition of significant features and the discovery of important patterns and +relationships in the climate knowledge discovery process. + + +3D Plot Constituents +-------------------- + +In the VCS model 3D perspectives are provided by the 3d_scalar and 3d_vector graphics methods. + +The 3d_scalar graphics method provides the :term:`Volume`, :term:`Surface`, and :term:`Slice` display +techniques (denoted henceforth as “plot constituents”). It can be used to display data in both the default (x-y-z) and +Hovmoller3D (x-y-t)geometries. + +The 3d_vector graphics method provides the :term:`Vector` slice plot constituent. + +.. glossary:: + + Volume + The Volume plot enables scientists to create an overview of the topology of the data, revealing complex 3D structures at + a glance. It is generated using a “transfer function” to linearly map an adjustable range of variable values to an + adjustable range of opacity values at each point of a 3D volume. Values of the variable that fall outside of the range + are invisible (transparent). In addition, the rendered color is determined by mapping the variable’s value at each point + of the volume to an adjustable range of colormap values. All three adjustable ranges can be configured either statically + using a script or interactively using sliders in an active plot window. + + Surface + The Surface plot can produce views similar to a volume rendering while facilitating the comparison of two variables. It + is displayed as an isosurface (the higher dimensional analog of an isoline or contour line on a weather or terrain map), + illustrating the surfaces of constant value for one variable and optionally colored by the spatially correspondent + values of a second variable. The rendered color is determined by mapping the second variable’s value at each point of + the surface to an adjustable range of colormap values. The isosurface value and the colormap range can be configured + either statically using a script or interactively using sliders in an active plot window. + + Slice + The Slice plot allows scientists to quickly and easily browse the 3D structure of a dataset, compare variables in 3D, + and probe data values. It provides a set of three slice planes (perpendicular to the x, y, and z axes) that can be + interactively dragged over the dataset. A slice through the data volume at the plane’s location is displayed by mapping + the variable’s value at each point of the plane to an adjustable range of colormap values. A slice through a second data + volume can also be overlaid as a contour map over the first. In an active plot window a shift-right-click on one of the + planes will display the coordinates and value of the variable(s) at that point. The slice positions and the colormap + range can be configured either statically using a script or interactively using sliders in an active plot window + + Vector + The Vector slice plot allows scientists to browse the 3D structure of variables (such as wind velocity) that have both + magnitude and direction. It provides a horizontal slice plane that can be interactively dragged over a vector field + dataset (consisting of a pair of variables denoting the X and Y components of a vector at each point). A slice through + the data volume at the plane’s location is displayed using a set of vector glyphs denoting the direction and magnitude + of the field at a regularly spaced set of points on the plane. The slice position and the density and scaling of the + vector glyphs can be configured either statically using a script or interactively using sliders in an active plot + window. + + .. note:: + + This display technique can be very computationally intensive so that the higher glyph densities may cause diminished + interactivity. + .. automodule:: vcs.dv3d :members: \ No newline at end of file diff --git a/docs/doctest_info/README.md b/docs/doctest_info/README.md deleted file mode 100644 index 24baa051b..000000000 --- a/docs/doctest_info/README.md +++ /dev/null @@ -1,76 +0,0 @@ -Doctest Info ------------- -[Canvas] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Canvas.md) - -[Pboxeslines] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pboxeslines.md) - -[Pdata] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pdata.md) - -[Pformat] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pformat.md) - -[Plegend] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Plegend.md) - -[Ptext] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Ptext.md) - -[Pxlabels] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pxlabels.md) - -[Pxtickmarks] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pxtickmarks.md) - -[Pylabels] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pylabels.md) - -[Pytickmarks] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/Pytickmarks.md) - -[VCS_validation_functions] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/VCS_validation_functions.md) - -[boxfill] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/boxfill.md) - -[colormap] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/colormap.md) - -[colors] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/colors.md) - -[configurator] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/configurator.md) - -[displayplot] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/displayplot.md) - -[dv3d] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/dv3d.md) - -[editors] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/editors.md) - -[error] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/error.md) - -[fillarea] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/fillarea.md) - -[isofill] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/isofill.md) - -[isoline] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/isoline.md) - -[line] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/line.md) - -[manageElements] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/manageElements.md) - -[marker] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/marker.md) - -[meshfill] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/meshfill.md) - -[projection] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/projection.md) - -[queries] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/queries.md) - -[taylor] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/taylor.md) - -[template] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/template.md) - -[textcombined] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/textcombined.md) - -[textorientation] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/textorientation.md) - -[texttable] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/texttable.md) - -[unified1D] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/unified1D.md) - -[utils] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/utils.md) - -[vcshelp] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/vcshelp.md) - -[vector] (https://github.com/embrown/vcs/blob/more_more_documentation/docs/doctest_info/markdown/vector.md) - diff --git a/docs/doctest_info/ignore/README.md b/docs/doctest_info/ignore/README.md deleted file mode 100644 index e63a393d2..000000000 --- a/docs/doctest_info/ignore/README.md +++ /dev/null @@ -1,20 +0,0 @@ -Ignore Files ------------- - -This directory is to hold ignore files. - -These ignore files are used to ignore certain regular expressions when parsing doctest report logs for missing doctests. - -If you have things showing up in the 'Missing Doctests' section of your markdown reports that shouldn't be there, make or append to a ```$MODULE_NAME.ignore``` file in this directory. - -.ignore files should contain a newline-delimited list of regular expressions for the signatures of properties/functions that you want to ignore, when looking for missing doctests. - -For example, given a ```boxfill.ignore``` file with the following contents: - - Gfb - process_src - -The missing report in boxfill.md will omit any lines which have 'Gfb' or 'process_src' after the last '.' for their signature. - -As of now, this will only ignore the last part of the signature flagged as missing. i.e. ```vcs.Canvas.Canvas.animate``` and ```vcs.Canvas.Canvas.animate_info``` would both be ignored if -Canvas.ignore contained ```animate```, but would not be ignored if it contained ```vcs.Canvas.Canvas.animate```. diff --git a/docs/doctest_info/markdown/Canvas.md b/docs/doctest_info/markdown/Canvas.md deleted file mode 100644 index 5af34f87e..000000000 --- a/docs/doctest_info/markdown/Canvas.md +++ /dev/null @@ -1,183 +0,0 @@ -vcs.Canvas.Canvas.createtext ----------------------------- -```python -Failed example: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') - except: - pass -Expected nothing -Got: - -``` - -vcs.Canvas.Canvas.dual_scalar3d -------------------------------- -```python -Failed example: - a.dual_scalar3d(ds3,s,s2) # Plot slabs -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.Canvas.Canvas.get3d_dual_scalar ------------------------------------ -```python -Failed example: - a.plot(ex, slab1, slab2) # plot 3d_dual_scalar -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.Canvas.Canvas.get3d_scalar ------------------------------- -```python -Failed example: - a.plot(ex, slab1) # plot 3d_scalar -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.Canvas.Canvas.get3d_vector ------------------------------- -```python -Failed example: - a.plot(ex, slab1, slab2) # plot 3d_vector -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.Canvas.Canvas.isinfile --------------------------- -```python -Failed example: - a.isinfile(box, 'deft_box.py') -Expected: - 1 -Got nothing -``` - -vcs.Canvas.Canvas.scalar3d --------------------------- -```python -Failed example: - a.scalar3d(ds,s) # Plot slab with defaults -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.Canvas.Canvas.vector3d --------------------------- -```python -Failed example: - a.vector3d(dv3,s,s2) # Plot slabs -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -Missing Doctests ----------------- -:x:``` vcs.Canvas``` - -:x:``` vcs.Canvas.Canvas``` - -:x:``` vcs.Canvas.Canvas.addfont``` - -:x:``` vcs.Canvas.Canvas.animate``` - -:x:``` vcs.Canvas.Canvas.animate_info``` - -:x:``` vcs.Canvas.Canvas.canvas``` - -:x:``` vcs.Canvas.Canvas.cgm``` - -:x:``` vcs.Canvas.Canvas.configure``` - -:x:``` vcs.Canvas.Canvas.copyfontto``` - -:x:``` vcs.Canvas.Canvas.endconfigure``` - -:x:``` vcs.Canvas.Canvas.get_selected_display``` - -:x:``` vcs.Canvas.Canvas.getplot``` - -:x:``` vcs.Canvas.Canvas.gif``` - -:x:``` vcs.Canvas.Canvas.grid``` - -:x:``` vcs.Canvas.Canvas.gs``` - -:x:``` vcs.Canvas.Canvas.interact``` - -:x:``` vcs.Canvas.Canvas.isplottinggridded``` - -:x:``` vcs.Canvas.Canvas.mode``` - -:x:``` vcs.Canvas.Canvas.onClosing``` - -:x:``` vcs.Canvas.Canvas.pause_time``` - -:x:``` vcs.Canvas.Canvas.plot_annotation``` - -:x:``` vcs.Canvas.Canvas.plot_filledcontinents``` - -:x:``` vcs.Canvas.Canvas.processParameterChange``` - -:x:``` vcs.Canvas.Canvas.removeP``` - -:x:``` vcs.Canvas.Canvas.savecontinentstype``` - -:x:``` vcs.Canvas.Canvas.setAnimationStepper``` - -:x:``` vcs.Canvas.Canvas.setdefaultfont``` - -:x:``` vcs.Canvas.Canvas.start``` - -:x:``` vcs.Canvas.Canvas.updateorientation``` - -:x:``` vcs.Canvas.Canvas.user_actions``` - -:x:``` vcs.Canvas.Canvas.user_actions_names``` - -:x:``` vcs.Canvas.Canvas.varglist``` - -:x:``` vcs.Canvas.Canvas.viewport``` - -:x:``` vcs.Canvas.Canvas.winfo_id``` - -:x:``` vcs.Canvas.Canvas.worldcoordinate``` - -:x:``` vcs.Canvas.SIGNAL``` - -:x:``` vcs.Canvas.SIGNAL.clear``` - -:x:``` vcs.Canvas.SIGNAL.connect``` - -:x:``` vcs.Canvas.SIGNAL.disconnect``` - -:x:``` vcs.Canvas.change_date_time``` - -:x:``` vcs.Canvas.dictionarytovcslist``` - diff --git a/docs/doctest_info/markdown/Pboxeslines.md b/docs/doctest_info/markdown/Pboxeslines.md deleted file mode 100644 index 26466f2fa..000000000 --- a/docs/doctest_info/markdown/Pboxeslines.md +++ /dev/null @@ -1,20 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Pboxeslines``` - -:x:``` vcs.Pboxeslines.Pbl``` - -:x:``` vcs.Pboxeslines.Pbl.line``` - -:x:``` vcs.Pboxeslines.Pbl.list``` - -:x:``` vcs.Pboxeslines.Pbl.priority``` - -:x:``` vcs.Pboxeslines.Pbl.x1``` - -:x:``` vcs.Pboxeslines.Pbl.x2``` - -:x:``` vcs.Pboxeslines.Pbl.y1``` - -:x:``` vcs.Pboxeslines.Pbl.y2``` - diff --git a/docs/doctest_info/markdown/Pdata.md b/docs/doctest_info/markdown/Pdata.md deleted file mode 100644 index c87991714..000000000 --- a/docs/doctest_info/markdown/Pdata.md +++ /dev/null @@ -1,18 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Pdata``` - -:x:``` vcs.Pdata.Pds``` - -:x:``` vcs.Pdata.Pds.list``` - -:x:``` vcs.Pdata.Pds.priority``` - -:x:``` vcs.Pdata.Pds.x1``` - -:x:``` vcs.Pdata.Pds.x2``` - -:x:``` vcs.Pdata.Pds.y1``` - -:x:``` vcs.Pdata.Pds.y2``` - diff --git a/docs/doctest_info/markdown/Pformat.md b/docs/doctest_info/markdown/Pformat.md deleted file mode 100644 index 51430c24b..000000000 --- a/docs/doctest_info/markdown/Pformat.md +++ /dev/null @@ -1,20 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Pformat``` - -:x:``` vcs.Pformat.Pf``` - -:x:``` vcs.Pformat.Pf.format``` - -:x:``` vcs.Pformat.Pf.list``` - -:x:``` vcs.Pformat.Pf.priority``` - -:x:``` vcs.Pformat.Pf.textorientation``` - -:x:``` vcs.Pformat.Pf.texttable``` - -:x:``` vcs.Pformat.Pf.x``` - -:x:``` vcs.Pformat.Pf.y``` - diff --git a/docs/doctest_info/markdown/Plegend.md b/docs/doctest_info/markdown/Plegend.md deleted file mode 100644 index 7461e0fb2..000000000 --- a/docs/doctest_info/markdown/Plegend.md +++ /dev/null @@ -1,28 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Plegend``` - -:x:``` vcs.Plegend.Pls``` - -:x:``` vcs.Plegend.Pls.arrow``` - -:x:``` vcs.Plegend.Pls.line``` - -:x:``` vcs.Plegend.Pls.list``` - -:x:``` vcs.Plegend.Pls.offset``` - -:x:``` vcs.Plegend.Pls.priority``` - -:x:``` vcs.Plegend.Pls.textorientation``` - -:x:``` vcs.Plegend.Pls.texttable``` - -:x:``` vcs.Plegend.Pls.x1``` - -:x:``` vcs.Plegend.Pls.x2``` - -:x:``` vcs.Plegend.Pls.y1``` - -:x:``` vcs.Plegend.Pls.y2``` - diff --git a/docs/doctest_info/markdown/Ptext.md b/docs/doctest_info/markdown/Ptext.md deleted file mode 100644 index bc9fae6a3..000000000 --- a/docs/doctest_info/markdown/Ptext.md +++ /dev/null @@ -1,18 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Ptext``` - -:x:``` vcs.Ptext.Pt``` - -:x:``` vcs.Ptext.Pt.list``` - -:x:``` vcs.Ptext.Pt.priority``` - -:x:``` vcs.Ptext.Pt.textorientation``` - -:x:``` vcs.Ptext.Pt.texttable``` - -:x:``` vcs.Ptext.Pt.x``` - -:x:``` vcs.Ptext.Pt.y``` - diff --git a/docs/doctest_info/markdown/Pxlabels.md b/docs/doctest_info/markdown/Pxlabels.md deleted file mode 100644 index c71476ea4..000000000 --- a/docs/doctest_info/markdown/Pxlabels.md +++ /dev/null @@ -1,16 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Pxlabels``` - -:x:``` vcs.Pxlabels.Pxl``` - -:x:``` vcs.Pxlabels.Pxl.list``` - -:x:``` vcs.Pxlabels.Pxl.priority``` - -:x:``` vcs.Pxlabels.Pxl.textorientation``` - -:x:``` vcs.Pxlabels.Pxl.texttable``` - -:x:``` vcs.Pxlabels.Pxl.y``` - diff --git a/docs/doctest_info/markdown/Pxtickmarks.md b/docs/doctest_info/markdown/Pxtickmarks.md deleted file mode 100644 index bbfd89623..000000000 --- a/docs/doctest_info/markdown/Pxtickmarks.md +++ /dev/null @@ -1,16 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Pxtickmarks``` - -:x:``` vcs.Pxtickmarks.Pxt``` - -:x:``` vcs.Pxtickmarks.Pxt.line``` - -:x:``` vcs.Pxtickmarks.Pxt.list``` - -:x:``` vcs.Pxtickmarks.Pxt.priority``` - -:x:``` vcs.Pxtickmarks.Pxt.y1``` - -:x:``` vcs.Pxtickmarks.Pxt.y2``` - diff --git a/docs/doctest_info/markdown/Pylabels.md b/docs/doctest_info/markdown/Pylabels.md deleted file mode 100644 index 6e9acc1aa..000000000 --- a/docs/doctest_info/markdown/Pylabels.md +++ /dev/null @@ -1,16 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Pylabels``` - -:x:``` vcs.Pylabels.Pyl``` - -:x:``` vcs.Pylabels.Pyl.list``` - -:x:``` vcs.Pylabels.Pyl.priority``` - -:x:``` vcs.Pylabels.Pyl.textorientation``` - -:x:``` vcs.Pylabels.Pyl.texttable``` - -:x:``` vcs.Pylabels.Pyl.x``` - diff --git a/docs/doctest_info/markdown/Pytickmarks.md b/docs/doctest_info/markdown/Pytickmarks.md deleted file mode 100644 index d087c72ea..000000000 --- a/docs/doctest_info/markdown/Pytickmarks.md +++ /dev/null @@ -1,16 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.Pytickmarks``` - -:x:``` vcs.Pytickmarks.Pyt``` - -:x:``` vcs.Pytickmarks.Pyt.line``` - -:x:``` vcs.Pytickmarks.Pyt.list``` - -:x:``` vcs.Pytickmarks.Pyt.priority``` - -:x:``` vcs.Pytickmarks.Pyt.x1``` - -:x:``` vcs.Pytickmarks.Pyt.x2``` - diff --git a/docs/doctest_info/markdown/README.md b/docs/doctest_info/markdown/README.md deleted file mode 100644 index 7c2775e46..000000000 --- a/docs/doctest_info/markdown/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Markdown Log Files ------------------- - -These files contain a markdown-formatted summary of any doctest errors encountered, and any objects in the module that don't have doctests. - -The 'Missing Doctests' section can be a good indicator for where more documentation is needed. - -As far as errors are concerned, no news is good news. If you have a .md file that contains nothing, it's probably not missing doctests, -and is passing all doctests. - -For instructions on how to generate these log files, see doctest_info/scripts/README.md . diff --git a/docs/doctest_info/markdown/VCS_validation_functions.md b/docs/doctest_info/markdown/VCS_validation_functions.md deleted file mode 100644 index 6b0c7fd17..000000000 --- a/docs/doctest_info/markdown/VCS_validation_functions.md +++ /dev/null @@ -1,132 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.VCS_validation_functions``` - -:x:``` vcs.VCS_validation_functions.DMS2deg``` - -:x:``` vcs.VCS_validation_functions.PPE``` - -:x:``` vcs.VCS_validation_functions.add_level_ext_1``` - -:x:``` vcs.VCS_validation_functions.add_level_ext_2``` - -:x:``` vcs.VCS_validation_functions.checkAxisConvert``` - -:x:``` vcs.VCS_validation_functions.checkBoolean``` - -:x:``` vcs.VCS_validation_functions.checkBoxfillType``` - -:x:``` vcs.VCS_validation_functions.checkCalendar``` - -:x:``` vcs.VCS_validation_functions.checkCallable``` - -:x:``` vcs.VCS_validation_functions.checkColor``` - -:x:``` vcs.VCS_validation_functions.checkColorList``` - -:x:``` vcs.VCS_validation_functions.checkContType``` - -:x:``` vcs.VCS_validation_functions.checkContinents``` - -:x:``` vcs.VCS_validation_functions.checkDatawc``` - -:x:``` vcs.VCS_validation_functions.checkElements``` - -:x:``` vcs.VCS_validation_functions.checkExt``` - -:x:``` vcs.VCS_validation_functions.checkFillAreaStyle``` - -:x:``` vcs.VCS_validation_functions.checkFont``` - -:x:``` vcs.VCS_validation_functions.checkFuzzyBoolean``` - -:x:``` vcs.VCS_validation_functions.checkInStringList``` - -:x:``` vcs.VCS_validation_functions.checkInStringsListInt``` - -:x:``` vcs.VCS_validation_functions.checkIndex``` - -:x:``` vcs.VCS_validation_functions.checkIndicesList``` - -:x:``` vcs.VCS_validation_functions.checkInt``` - -:x:``` vcs.VCS_validation_functions.checkIntFloat``` - -:x:``` vcs.VCS_validation_functions.checkIsolineLevels``` - -:x:``` vcs.VCS_validation_functions.checkLegend``` - -:x:``` vcs.VCS_validation_functions.checkLine``` - -:x:``` vcs.VCS_validation_functions.checkLineType``` - -:x:``` vcs.VCS_validation_functions.checkLineTypeList``` - -:x:``` vcs.VCS_validation_functions.checkListElements``` - -:x:``` vcs.VCS_validation_functions.checkListOfNumbers``` - -:x:``` vcs.VCS_validation_functions.checkListTuple``` - -:x:``` vcs.VCS_validation_functions.checkMarker``` - -:x:``` vcs.VCS_validation_functions.checkMarkersList``` - -:x:``` vcs.VCS_validation_functions.checkName``` - -:x:``` vcs.VCS_validation_functions.checkNumber``` - -:x:``` vcs.VCS_validation_functions.checkOnOff``` - -:x:``` vcs.VCS_validation_functions.checkOpacitiesList``` - -:x:``` vcs.VCS_validation_functions.checkOpacity``` - -:x:``` vcs.VCS_validation_functions.checkProjParameters``` - -:x:``` vcs.VCS_validation_functions.checkProjType``` - -:x:``` vcs.VCS_validation_functions.checkProjection``` - -:x:``` vcs.VCS_validation_functions.checkString``` - -:x:``` vcs.VCS_validation_functions.checkStringDictionary``` - -:x:``` vcs.VCS_validation_functions.checkTextOrientation``` - -:x:``` vcs.VCS_validation_functions.checkTextTable``` - -:x:``` vcs.VCS_validation_functions.checkTextsList``` - -:x:``` vcs.VCS_validation_functions.checkTicks``` - -:x:``` vcs.VCS_validation_functions.checkTimeUnits``` - -:x:``` vcs.VCS_validation_functions.checkTrueFalse``` - -:x:``` vcs.VCS_validation_functions.checkVectorAlignment``` - -:x:``` vcs.VCS_validation_functions.checkVectorType``` - -:x:``` vcs.VCS_validation_functions.checkWrap``` - -:x:``` vcs.VCS_validation_functions.checkYesNo``` - -:x:``` vcs.VCS_validation_functions.checkedRaise``` - -:x:``` vcs.VCS_validation_functions.checkname``` - -:x:``` vcs.VCS_validation_functions.color2vcs``` - -:x:``` vcs.VCS_validation_functions.deg2DMS``` - -:x:``` vcs.VCS_validation_functions.getProjType``` - -:x:``` vcs.VCS_validation_functions.isListorTuple``` - -:x:``` vcs.VCS_validation_functions.isNumber``` - -:x:``` vcs.VCS_validation_functions.matchVcsColor``` - -:x:``` vcs.VCS_validation_functions.setProjParameter``` - diff --git a/docs/doctest_info/markdown/boxfill.md b/docs/doctest_info/markdown/boxfill.md deleted file mode 100644 index 0b94332ab..000000000 --- a/docs/doctest_info/markdown/boxfill.md +++ /dev/null @@ -1,78 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.boxfill``` - -:x:``` vcs.boxfill.Gfb``` - -:x:``` vcs.boxfill.Gfb.boxfill_type``` - -:x:``` vcs.boxfill.Gfb.color_1``` - -:x:``` vcs.boxfill.Gfb.color_2``` - -:x:``` vcs.boxfill.Gfb.colormap``` - -:x:``` vcs.boxfill.Gfb.datawc_calendar``` - -:x:``` vcs.boxfill.Gfb.datawc_timeunits``` - -:x:``` vcs.boxfill.Gfb.datawc_x1``` - -:x:``` vcs.boxfill.Gfb.datawc_x2``` - -:x:``` vcs.boxfill.Gfb.datawc_y1``` - -:x:``` vcs.boxfill.Gfb.datawc_y2``` - -:x:``` vcs.boxfill.Gfb.ext_1``` - -:x:``` vcs.boxfill.Gfb.ext_2``` - -:x:``` vcs.boxfill.Gfb.fillareacolors``` - -:x:``` vcs.boxfill.Gfb.fillareaindices``` - -:x:``` vcs.boxfill.Gfb.fillareaopacity``` - -:x:``` vcs.boxfill.Gfb.fillareastyle``` - -:x:``` vcs.boxfill.Gfb.getlegendlabels``` - -:x:``` vcs.boxfill.Gfb.getlevels``` - -:x:``` vcs.boxfill.Gfb.legend``` - -:x:``` vcs.boxfill.Gfb.level_1``` - -:x:``` vcs.boxfill.Gfb.level_2``` - -:x:``` vcs.boxfill.Gfb.levels``` - -:x:``` vcs.boxfill.Gfb.missing``` - -:x:``` vcs.boxfill.Gfb.name``` - -:x:``` vcs.boxfill.Gfb.projection``` - -:x:``` vcs.boxfill.Gfb.xaxisconvert``` - -:x:``` vcs.boxfill.Gfb.xmtics1``` - -:x:``` vcs.boxfill.Gfb.xmtics2``` - -:x:``` vcs.boxfill.Gfb.xticlabels1``` - -:x:``` vcs.boxfill.Gfb.xticlabels2``` - -:x:``` vcs.boxfill.Gfb.yaxisconvert``` - -:x:``` vcs.boxfill.Gfb.ymtics1``` - -:x:``` vcs.boxfill.Gfb.ymtics2``` - -:x:``` vcs.boxfill.Gfb.yticlabels1``` - -:x:``` vcs.boxfill.Gfb.yticlabels2``` - -:x:``` vcs.boxfill.process_src``` - diff --git a/docs/doctest_info/markdown/colormap.md b/docs/doctest_info/markdown/colormap.md deleted file mode 100644 index 689714cfa..000000000 --- a/docs/doctest_info/markdown/colormap.md +++ /dev/null @@ -1,24 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.colormap``` - -:x:``` vcs.colormap.Cp``` - -:x:``` vcs.colormap.Cp.getindex``` - -:x:``` vcs.colormap.Cp.getname``` - -:x:``` vcs.colormap.Cp.index``` - -:x:``` vcs.colormap.Cp.list``` - -:x:``` vcs.colormap.Cp.name``` - -:x:``` vcs.colormap.Cp.setindex``` - -:x:``` vcs.colormap.Cp.setname``` - -:x:``` vcs.colormap.RGB_Table``` - -:x:``` vcs.colormap.process_src``` - diff --git a/docs/doctest_info/markdown/colors.md b/docs/doctest_info/markdown/colors.md deleted file mode 100644 index 2d0ceba94..000000000 --- a/docs/doctest_info/markdown/colors.md +++ /dev/null @@ -1,6 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.colors``` - -:x:``` vcs.colors.matplotlib2vcs``` - diff --git a/docs/doctest_info/markdown/configurator.md b/docs/doctest_info/markdown/configurator.md deleted file mode 100644 index 17d7bb2f6..000000000 --- a/docs/doctest_info/markdown/configurator.md +++ /dev/null @@ -1,104 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.configurator``` - -:x:``` vcs.configurator.Configurator``` - -:x:``` vcs.configurator.Configurator.activate``` - -:x:``` vcs.configurator.Configurator.actor_at_point``` - -:x:``` vcs.configurator.Configurator.animate``` - -:x:``` vcs.configurator.Configurator.click``` - -:x:``` vcs.configurator.Configurator.create``` - -:x:``` vcs.configurator.Configurator.creator_disabled``` - -:x:``` vcs.configurator.Configurator.creator_enabled``` - -:x:``` vcs.configurator.Configurator.deactivate``` - -:x:``` vcs.configurator.Configurator.delete``` - -:x:``` vcs.configurator.Configurator.detach``` - -:x:``` vcs.configurator.Configurator.display_and_key_for_actor``` - -:x:``` vcs.configurator.Configurator.fill_click``` - -:x:``` vcs.configurator.Configurator.get_save_path``` - -:x:``` vcs.configurator.Configurator.hover``` - -:x:``` vcs.configurator.Configurator.init_buttons``` - -:x:``` vcs.configurator.Configurator.init_toolbar``` - -:x:``` vcs.configurator.Configurator.line_click``` - -:x:``` vcs.configurator.Configurator.marker_click``` - -:x:``` vcs.configurator.Configurator.place``` - -:x:``` vcs.configurator.Configurator.release``` - -:x:``` vcs.configurator.Configurator.render_window``` - -:x:``` vcs.configurator.Configurator.save``` - -:x:``` vcs.configurator.Configurator.save_animation``` - -:x:``` vcs.configurator.Configurator.save_animation_press``` - -:x:``` vcs.configurator.Configurator.save_tick``` - -:x:``` vcs.configurator.Configurator.set_animation_frame``` - -:x:``` vcs.configurator.Configurator.set_animation_speed``` - -:x:``` vcs.configurator.Configurator.set_background_blue``` - -:x:``` vcs.configurator.Configurator.set_background_green``` - -:x:``` vcs.configurator.Configurator.set_background_red``` - -:x:``` vcs.configurator.Configurator.setup_animation``` - -:x:``` vcs.configurator.Configurator.shift``` - -:x:``` vcs.configurator.Configurator.show``` - -:x:``` vcs.configurator.Configurator.start_animating``` - -:x:``` vcs.configurator.Configurator.step_back``` - -:x:``` vcs.configurator.Configurator.step_forward``` - -:x:``` vcs.configurator.Configurator.stop_animating``` - -:x:``` vcs.configurator.Configurator.text_click``` - -:x:``` vcs.configurator.Configurator.update``` - -:x:``` vcs.configurator.display_supports_animation``` - -:x:``` vcs.configurator.editable_type``` - -:x:``` vcs.configurator.get_attribute``` - -:x:``` vcs.configurator.is_box``` - -:x:``` vcs.configurator.is_label``` - -:x:``` vcs.configurator.is_point``` - -:x:``` vcs.configurator.is_point_in_box``` - -:x:``` vcs.configurator.safe_get``` - -:x:``` vcs.configurator.sync_template``` - -:x:``` vcs.configurator.vcstemp``` - diff --git a/docs/doctest_info/markdown/displayplot.md b/docs/doctest_info/markdown/displayplot.md deleted file mode 100644 index 187917769..000000000 --- a/docs/doctest_info/markdown/displayplot.md +++ /dev/null @@ -1,30 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.displayplot``` - -:x:``` vcs.displayplot.Dp``` - -:x:``` vcs.displayplot.Dp.array``` - -:x:``` vcs.displayplot.Dp.backend``` - -:x:``` vcs.displayplot.Dp.continents``` - -:x:``` vcs.displayplot.Dp.continents_line``` - -:x:``` vcs.displayplot.Dp.g_name``` - -:x:``` vcs.displayplot.Dp.g_type``` - -:x:``` vcs.displayplot.Dp.list``` - -:x:``` vcs.displayplot.Dp.name``` - -:x:``` vcs.displayplot.Dp.newelements``` - -:x:``` vcs.displayplot.Dp.off``` - -:x:``` vcs.displayplot.Dp.priority``` - -:x:``` vcs.displayplot.Dp.template``` - diff --git a/docs/doctest_info/markdown/dv3d.md b/docs/doctest_info/markdown/dv3d.md deleted file mode 100644 index 8b5df0553..000000000 --- a/docs/doctest_info/markdown/dv3d.md +++ /dev/null @@ -1,172 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.dv3d``` - -:x:``` vcs.dv3d.Gf3DDualScalar``` - -:x:``` vcs.dv3d.Gf3DDualScalar.Animation``` - -:x:``` vcs.dv3d.Gf3DDualScalar.BasemapOpacity``` - -:x:``` vcs.dv3d.Gf3DDualScalar.Camera``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ChooseColormap``` - -:x:``` vcs.dv3d.Gf3DDualScalar.Colorbar``` - -:x:``` vcs.dv3d.Gf3DDualScalar.Configure``` - -:x:``` vcs.dv3d.Gf3DDualScalar.IsosurfaceValue``` - -:x:``` vcs.dv3d.Gf3DDualScalar.PointSize``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ScaleColormap``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ScaleOpacity``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ScaleTransferFunction``` - -:x:``` vcs.dv3d.Gf3DDualScalar.SliceThickness``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ToggleClipping``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ToggleSphericalProj``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ToggleSurfacePlot``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ToggleVolumePlot``` - -:x:``` vcs.dv3d.Gf3DDualScalar.VerticalScaling``` - -:x:``` vcs.dv3d.Gf3DDualScalar.XSlider``` - -:x:``` vcs.dv3d.Gf3DDualScalar.YSlider``` - -:x:``` vcs.dv3d.Gf3DDualScalar.ZSlider``` - -:x:``` vcs.dv3d.Gf3Dscalar``` - -:x:``` vcs.dv3d.Gf3Dscalar.Animation``` - -:x:``` vcs.dv3d.Gf3Dscalar.BasemapOpacity``` - -:x:``` vcs.dv3d.Gf3Dscalar.Camera``` - -:x:``` vcs.dv3d.Gf3Dscalar.ChooseColormap``` - -:x:``` vcs.dv3d.Gf3Dscalar.Colorbar``` - -:x:``` vcs.dv3d.Gf3Dscalar.Configure``` - -:x:``` vcs.dv3d.Gf3Dscalar.IsosurfaceValue``` - -:x:``` vcs.dv3d.Gf3Dscalar.PointSize``` - -:x:``` vcs.dv3d.Gf3Dscalar.ScaleColormap``` - -:x:``` vcs.dv3d.Gf3Dscalar.ScaleOpacity``` - -:x:``` vcs.dv3d.Gf3Dscalar.ScaleTransferFunction``` - -:x:``` vcs.dv3d.Gf3Dscalar.SliceThickness``` - -:x:``` vcs.dv3d.Gf3Dscalar.ToggleClipping``` - -:x:``` vcs.dv3d.Gf3Dscalar.ToggleSphericalProj``` - -:x:``` vcs.dv3d.Gf3Dscalar.ToggleSurfacePlot``` - -:x:``` vcs.dv3d.Gf3Dscalar.ToggleVolumePlot``` - -:x:``` vcs.dv3d.Gf3Dscalar.VerticalScaling``` - -:x:``` vcs.dv3d.Gf3Dscalar.XSlider``` - -:x:``` vcs.dv3d.Gf3Dscalar.YSlider``` - -:x:``` vcs.dv3d.Gf3Dscalar.ZSlider``` - -:x:``` vcs.dv3d.Gf3Dvector``` - -:x:``` vcs.dv3d.Gf3Dvector.Animation``` - -:x:``` vcs.dv3d.Gf3Dvector.BasemapOpacity``` - -:x:``` vcs.dv3d.Gf3Dvector.Camera``` - -:x:``` vcs.dv3d.Gf3Dvector.ChooseColormap``` - -:x:``` vcs.dv3d.Gf3Dvector.Colorbar``` - -:x:``` vcs.dv3d.Gf3Dvector.Configure``` - -:x:``` vcs.dv3d.Gf3Dvector.IsosurfaceValue``` - -:x:``` vcs.dv3d.Gf3Dvector.PointSize``` - -:x:``` vcs.dv3d.Gf3Dvector.ScaleColormap``` - -:x:``` vcs.dv3d.Gf3Dvector.ScaleOpacity``` - -:x:``` vcs.dv3d.Gf3Dvector.ScaleTransferFunction``` - -:x:``` vcs.dv3d.Gf3Dvector.SliceThickness``` - -:x:``` vcs.dv3d.Gf3Dvector.ToggleClipping``` - -:x:``` vcs.dv3d.Gf3Dvector.ToggleSphericalProj``` - -:x:``` vcs.dv3d.Gf3Dvector.ToggleSurfacePlot``` - -:x:``` vcs.dv3d.Gf3Dvector.ToggleVolumePlot``` - -:x:``` vcs.dv3d.Gf3Dvector.VerticalScaling``` - -:x:``` vcs.dv3d.Gf3Dvector.XSlider``` - -:x:``` vcs.dv3d.Gf3Dvector.YSlider``` - -:x:``` vcs.dv3d.Gf3Dvector.ZSlider``` - -:x:``` vcs.dv3d.Gfdv3d``` - -:x:``` vcs.dv3d.Gfdv3d.NumCores``` - -:x:``` vcs.dv3d.Gfdv3d.addParameters``` - -:x:``` vcs.dv3d.Gfdv3d.addPlotAttribute``` - -:x:``` vcs.dv3d.Gfdv3d.add_property``` - -:x:``` vcs.dv3d.Gfdv3d.axes``` - -:x:``` vcs.dv3d.Gfdv3d.getConfigurationData``` - -:x:``` vcs.dv3d.Gfdv3d.getConfigurationParms``` - -:x:``` vcs.dv3d.Gfdv3d.getConfigurationState``` - -:x:``` vcs.dv3d.Gfdv3d.getParameter``` - -:x:``` vcs.dv3d.Gfdv3d.getParameterList``` - -:x:``` vcs.dv3d.Gfdv3d.getPlotAttribute``` - -:x:``` vcs.dv3d.Gfdv3d.getPlotAttributes``` - -:x:``` vcs.dv3d.Gfdv3d.getStateData``` - -:x:``` vcs.dv3d.Gfdv3d.initDefaultState``` - -:x:``` vcs.dv3d.Gfdv3d.list``` - -:x:``` vcs.dv3d.Gfdv3d.name``` - -:x:``` vcs.dv3d.Gfdv3d.restoreState``` - -:x:``` vcs.dv3d.Gfdv3d.script``` - -:x:``` vcs.dv3d.Gfdv3d.setParameter``` - -:x:``` vcs.dv3d.Gfdv3d.setProvenanceHandler``` - diff --git a/docs/doctest_info/markdown/editors.md b/docs/doctest_info/markdown/editors.md deleted file mode 100644 index 6100f47b4..000000000 --- a/docs/doctest_info/markdown/editors.md +++ /dev/null @@ -1,4 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.editors``` - diff --git a/docs/doctest_info/markdown/error.md b/docs/doctest_info/markdown/error.md deleted file mode 100644 index 9317dd1ac..000000000 --- a/docs/doctest_info/markdown/error.md +++ /dev/null @@ -1,6 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.error``` - -:x:``` vcs.error.vcsError``` - diff --git a/docs/doctest_info/markdown/fillarea.md b/docs/doctest_info/markdown/fillarea.md deleted file mode 100644 index 5ac920e45..000000000 --- a/docs/doctest_info/markdown/fillarea.md +++ /dev/null @@ -1,36 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.fillarea``` - -:x:``` vcs.fillarea.Tf``` - -:x:``` vcs.fillarea.Tf.color``` - -:x:``` vcs.fillarea.Tf.colormap``` - -:x:``` vcs.fillarea.Tf.index``` - -:x:``` vcs.fillarea.Tf.list``` - -:x:``` vcs.fillarea.Tf.name``` - -:x:``` vcs.fillarea.Tf.opacity``` - -:x:``` vcs.fillarea.Tf.priority``` - -:x:``` vcs.fillarea.Tf.projection``` - -:x:``` vcs.fillarea.Tf.style``` - -:x:``` vcs.fillarea.Tf.viewport``` - -:x:``` vcs.fillarea.Tf.worldcoordinate``` - -:x:``` vcs.fillarea.Tf.x``` - -:x:``` vcs.fillarea.Tf.y``` - -:x:``` vcs.fillarea.getmember``` - -:x:``` vcs.fillarea.process_src``` - diff --git a/docs/doctest_info/markdown/isofill.md b/docs/doctest_info/markdown/isofill.md deleted file mode 100644 index 76d0e54be..000000000 --- a/docs/doctest_info/markdown/isofill.md +++ /dev/null @@ -1,82 +0,0 @@ -vcs.isofill.Gfi.script ----------------------- -```python -Failed example: - ex.script('filename.py') # append to 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # append to 'filename.py' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 856, in script - fp.write("%s.missing = %g\n" % (unique_name, self.missing)) - TypeError: float argument required, not tuple -``` - -Missing Doctests ----------------- -:x:``` vcs.isofill``` - -:x:``` vcs.isofill.Gfi``` - -:x:``` vcs.isofill.Gfi.colormap``` - -:x:``` vcs.isofill.Gfi.datawc_calendar``` - -:x:``` vcs.isofill.Gfi.datawc_timeunits``` - -:x:``` vcs.isofill.Gfi.datawc_x1``` - -:x:``` vcs.isofill.Gfi.datawc_x2``` - -:x:``` vcs.isofill.Gfi.datawc_y1``` - -:x:``` vcs.isofill.Gfi.datawc_y2``` - -:x:``` vcs.isofill.Gfi.ext_1``` - -:x:``` vcs.isofill.Gfi.ext_2``` - -:x:``` vcs.isofill.Gfi.fillareacolors``` - -:x:``` vcs.isofill.Gfi.fillareaindices``` - -:x:``` vcs.isofill.Gfi.fillareaopacity``` - -:x:``` vcs.isofill.Gfi.fillareastyle``` - -:x:``` vcs.isofill.Gfi.legend``` - -:x:``` vcs.isofill.Gfi.levels``` - -:x:``` vcs.isofill.Gfi.missing``` - -:x:``` vcs.isofill.Gfi.name``` - -:x:``` vcs.isofill.Gfi.projection``` - -:x:``` vcs.isofill.Gfi.xaxisconvert``` - -:x:``` vcs.isofill.Gfi.xmtics1``` - -:x:``` vcs.isofill.Gfi.xmtics2``` - -:x:``` vcs.isofill.Gfi.xticlabels1``` - -:x:``` vcs.isofill.Gfi.xticlabels2``` - -:x:``` vcs.isofill.Gfi.yaxisconvert``` - -:x:``` vcs.isofill.Gfi.ymtics1``` - -:x:``` vcs.isofill.Gfi.ymtics2``` - -:x:``` vcs.isofill.Gfi.yticlabels1``` - -:x:``` vcs.isofill.Gfi.yticlabels2``` - -:x:``` vcs.isofill.load``` - -:x:``` vcs.isofill.process_src``` - diff --git a/docs/doctest_info/markdown/isoline.md b/docs/doctest_info/markdown/isoline.md deleted file mode 100644 index eabc08d6c..000000000 --- a/docs/doctest_info/markdown/isoline.md +++ /dev/null @@ -1,84 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.isoline``` - -:x:``` vcs.isoline.Gi``` - -:x:``` vcs.isoline.Gi.angle``` - -:x:``` vcs.isoline.Gi.clockwise``` - -:x:``` vcs.isoline.Gi.colormap``` - -:x:``` vcs.isoline.Gi.datawc_calendar``` - -:x:``` vcs.isoline.Gi.datawc_timeunits``` - -:x:``` vcs.isoline.Gi.datawc_x1``` - -:x:``` vcs.isoline.Gi.datawc_x2``` - -:x:``` vcs.isoline.Gi.datawc_y1``` - -:x:``` vcs.isoline.Gi.datawc_y2``` - -:x:``` vcs.isoline.Gi.label``` - -:x:``` vcs.isoline.Gi.labelbackgroundcolors``` - -:x:``` vcs.isoline.Gi.labelbackgroundopacities``` - -:x:``` vcs.isoline.Gi.labelskipdistance``` - -:x:``` vcs.isoline.Gi.level``` - -:x:``` vcs.isoline.Gi.levels``` - -:x:``` vcs.isoline.Gi.line``` - -:x:``` vcs.isoline.Gi.linecolors``` - -:x:``` vcs.isoline.Gi.linetypes``` - -:x:``` vcs.isoline.Gi.linewidths``` - -:x:``` vcs.isoline.Gi.name``` - -:x:``` vcs.isoline.Gi.projection``` - -:x:``` vcs.isoline.Gi.scale``` - -:x:``` vcs.isoline.Gi.setLineAttributes``` - -:x:``` vcs.isoline.Gi.spacing``` - -:x:``` vcs.isoline.Gi.text``` - -:x:``` vcs.isoline.Gi.textcolors``` - -:x:``` vcs.isoline.Gi.xaxisconvert``` - -:x:``` vcs.isoline.Gi.xmtics1``` - -:x:``` vcs.isoline.Gi.xmtics2``` - -:x:``` vcs.isoline.Gi.xticlabels1``` - -:x:``` vcs.isoline.Gi.xticlabels2``` - -:x:``` vcs.isoline.Gi.yaxisconvert``` - -:x:``` vcs.isoline.Gi.ymtics1``` - -:x:``` vcs.isoline.Gi.ymtics2``` - -:x:``` vcs.isoline.Gi.yticlabels1``` - -:x:``` vcs.isoline.Gi.yticlabels2``` - -:x:``` vcs.isoline.get_att_from_sub``` - -:x:``` vcs.isoline.load``` - -:x:``` vcs.isoline.process_src``` - diff --git a/docs/doctest_info/markdown/line.md b/docs/doctest_info/markdown/line.md deleted file mode 100644 index cd922dd86..000000000 --- a/docs/doctest_info/markdown/line.md +++ /dev/null @@ -1,30 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.line``` - -:x:``` vcs.line.Tl.color``` - -:x:``` vcs.line.Tl.colormap``` - -:x:``` vcs.line.Tl.list``` - -:x:``` vcs.line.Tl.name``` - -:x:``` vcs.line.Tl.priority``` - -:x:``` vcs.line.Tl.projection``` - -:x:``` vcs.line.Tl.type``` - -:x:``` vcs.line.Tl.viewport``` - -:x:``` vcs.line.Tl.width``` - -:x:``` vcs.line.Tl.worldcoordinate``` - -:x:``` vcs.line.Tl.x``` - -:x:``` vcs.line.Tl.y``` - -:x:``` vcs.line.process_src``` - diff --git a/docs/doctest_info/markdown/manageElements.md b/docs/doctest_info/markdown/manageElements.md deleted file mode 100644 index f29a23afd..000000000 --- a/docs/doctest_info/markdown/manageElements.md +++ /dev/null @@ -1,111 +0,0 @@ -vcs.manageElements.createtext ------------------------------ -```python -Failed example: - vcs.show('textcombined') # available textcombineds -Expected: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -Got: - *******************Textcombined Names List********************** - *******************End Textcombined Names List********************** -``` - -vcs.manageElements.createtext ------------------------------ -```python -Failed example: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expected nothing -Got: - -``` - -vcs.manageElements.get3d_dual_scalar ------------------------------------- -```python -Failed example: - a.plot(ex, slab1, slab2) # plot 3d_dual_scalar -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.manageElements.get3d_scalar -------------------------------- -```python -Failed example: - a.plot(ex, slab1) # plot 3d_scalar -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -vcs.manageElements.get3d_vector -------------------------------- -```python -Failed example: - a.plot(ex, slab1, slab2) # plot 3d_vector -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -``` - -Missing Doctests ----------------- -:x:``` vcs.manageElements``` - -:x:``` vcs.manageElements.removeCp``` - -:x:``` vcs.manageElements.removeG``` - -:x:``` vcs.manageElements.removeG1d``` - -:x:``` vcs.manageElements.removeGSp``` - -:x:``` vcs.manageElements.removeGXY``` - -:x:``` vcs.manageElements.removeGXy``` - -:x:``` vcs.manageElements.removeGYx``` - -:x:``` vcs.manageElements.removeGfb``` - -:x:``` vcs.manageElements.removeGfi``` - -:x:``` vcs.manageElements.removeGfm``` - -:x:``` vcs.manageElements.removeGi``` - -:x:``` vcs.manageElements.removeGtd``` - -:x:``` vcs.manageElements.removeGv``` - -:x:``` vcs.manageElements.removeP``` - -:x:``` vcs.manageElements.removeProj``` - -:x:``` vcs.manageElements.removeTc``` - -:x:``` vcs.manageElements.removeTf``` - -:x:``` vcs.manageElements.removeTl``` - -:x:``` vcs.manageElements.removeTm``` - -:x:``` vcs.manageElements.removeTo``` - -:x:``` vcs.manageElements.removeTt``` - diff --git a/docs/doctest_info/markdown/marker.md b/docs/doctest_info/markdown/marker.md deleted file mode 100644 index ce513115f..000000000 --- a/docs/doctest_info/markdown/marker.md +++ /dev/null @@ -1,32 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.marker``` - -:x:``` vcs.marker.Tm``` - -:x:``` vcs.marker.Tm.color``` - -:x:``` vcs.marker.Tm.colormap``` - -:x:``` vcs.marker.Tm.list``` - -:x:``` vcs.marker.Tm.name``` - -:x:``` vcs.marker.Tm.priority``` - -:x:``` vcs.marker.Tm.projection``` - -:x:``` vcs.marker.Tm.size``` - -:x:``` vcs.marker.Tm.type``` - -:x:``` vcs.marker.Tm.viewport``` - -:x:``` vcs.marker.Tm.worldcoordinate``` - -:x:``` vcs.marker.Tm.x``` - -:x:``` vcs.marker.Tm.y``` - -:x:``` vcs.marker.process_src``` - diff --git a/docs/doctest_info/markdown/meshfill.md b/docs/doctest_info/markdown/meshfill.md deleted file mode 100644 index f2eb5c282..000000000 --- a/docs/doctest_info/markdown/meshfill.md +++ /dev/null @@ -1,128 +0,0 @@ -vcs.meshfill.Gfm.list ---------------------- -```python -Failed example: - obj.list() # print meshfill attributes -Expected: - ---------- ... ---------- - ... -Got: - ---------- Meshfill (Gmf) member (attribute) listings --------- - graphics method = Gfm - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - levels = ([1.0000000200408773e+20, 1.0000000200408773e+20],) - fillareacolors = [1] - fillareastyle = solid - fillareaindices = None - legend = None - ext_1 = False - ext_2 = False - missing = (0.0, 0.0, 0.0, 100.0) - mesh = 0 - wrap = [0.0, 0.0] - colormap = None -``` - -vcs.meshfill.Gfm.script ------------------------ -```python -Failed example: - ex.script('filename.py') # append to 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # append to 'filename.py' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 900, in script - fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) - TypeError: float argument required, not tuple -``` - -Missing Doctests ----------------- -:x:``` vcs.meshfill``` - -:x:``` vcs.meshfill.Gfm``` - -:x:``` vcs.meshfill.Gfm.colormap``` - -:x:``` vcs.meshfill.Gfm.datawc_calendar``` - -:x:``` vcs.meshfill.Gfm.datawc_timeunits``` - -:x:``` vcs.meshfill.Gfm.datawc_x1``` - -:x:``` vcs.meshfill.Gfm.datawc_x2``` - -:x:``` vcs.meshfill.Gfm.datawc_y1``` - -:x:``` vcs.meshfill.Gfm.datawc_y2``` - -:x:``` vcs.meshfill.Gfm.ext_1``` - -:x:``` vcs.meshfill.Gfm.ext_2``` - -:x:``` vcs.meshfill.Gfm.fillareacolors``` - -:x:``` vcs.meshfill.Gfm.fillareaindices``` - -:x:``` vcs.meshfill.Gfm.fillareaopacity``` - -:x:``` vcs.meshfill.Gfm.fillareastyle``` - -:x:``` vcs.meshfill.Gfm.legend``` - -:x:``` vcs.meshfill.Gfm.levels``` - -:x:``` vcs.meshfill.Gfm.mesh``` - -:x:``` vcs.meshfill.Gfm.missing``` - -:x:``` vcs.meshfill.Gfm.name``` - -:x:``` vcs.meshfill.Gfm.projection``` - -:x:``` vcs.meshfill.Gfm.wrap``` - -:x:``` vcs.meshfill.Gfm.xaxisconvert``` - -:x:``` vcs.meshfill.Gfm.xmtics1``` - -:x:``` vcs.meshfill.Gfm.xmtics2``` - -:x:``` vcs.meshfill.Gfm.xticlabels1``` - -:x:``` vcs.meshfill.Gfm.xticlabels2``` - -:x:``` vcs.meshfill.Gfm.yaxisconvert``` - -:x:``` vcs.meshfill.Gfm.ymtics1``` - -:x:``` vcs.meshfill.Gfm.ymtics2``` - -:x:``` vcs.meshfill.Gfm.yticlabels1``` - -:x:``` vcs.meshfill.Gfm.yticlabels2``` - -:x:``` vcs.meshfill.load``` - -:x:``` vcs.meshfill.process_src``` - diff --git a/docs/doctest_info/markdown/projection.md b/docs/doctest_info/markdown/projection.md deleted file mode 100644 index 5f14de89c..000000000 --- a/docs/doctest_info/markdown/projection.md +++ /dev/null @@ -1,84 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.projection``` - -:x:``` vcs.projection.Proj``` - -:x:``` vcs.projection.Proj.angle``` - -:x:``` vcs.projection.Proj.attributes``` - -:x:``` vcs.projection.Proj.azimuthalangle``` - -:x:``` vcs.projection.Proj.azimuthallongitude``` - -:x:``` vcs.projection.Proj.centerlatitude``` - -:x:``` vcs.projection.Proj.centerlongitude``` - -:x:``` vcs.projection.Proj.centralmeridian``` - -:x:``` vcs.projection.Proj.checkPP``` - -:x:``` vcs.projection.Proj.factor``` - -:x:``` vcs.projection.Proj.falseeasting``` - -:x:``` vcs.projection.Proj.falsenorthing``` - -:x:``` vcs.projection.Proj.height``` - -:x:``` vcs.projection.Proj.landsatcompensationratio``` - -:x:``` vcs.projection.Proj.latitude1``` - -:x:``` vcs.projection.Proj.latitude2``` - -:x:``` vcs.projection.Proj.list``` - -:x:``` vcs.projection.Proj.longitude1``` - -:x:``` vcs.projection.Proj.longitude2``` - -:x:``` vcs.projection.Proj.name``` - -:x:``` vcs.projection.Proj.orbitinclination``` - -:x:``` vcs.projection.Proj.orbitlongitude``` - -:x:``` vcs.projection.Proj.originlatitude``` - -:x:``` vcs.projection.Proj.parameters``` - -:x:``` vcs.projection.Proj.path``` - -:x:``` vcs.projection.Proj.pathflag``` - -:x:``` vcs.projection.Proj.satellite``` - -:x:``` vcs.projection.Proj.satelliterevolutionperiod``` - -:x:``` vcs.projection.Proj.shapem``` - -:x:``` vcs.projection.Proj.shapen``` - -:x:``` vcs.projection.Proj.smajor``` - -:x:``` vcs.projection.Proj.sminor``` - -:x:``` vcs.projection.Proj.sphere``` - -:x:``` vcs.projection.Proj.standardparallel``` - -:x:``` vcs.projection.Proj.standardparallel1``` - -:x:``` vcs.projection.Proj.standardparallel2``` - -:x:``` vcs.projection.Proj.subtype``` - -:x:``` vcs.projection.Proj.truescale``` - -:x:``` vcs.projection.Proj.type``` - -:x:``` vcs.projection.process_src``` - diff --git a/docs/doctest_info/markdown/queries.md b/docs/doctest_info/markdown/queries.md deleted file mode 100644 index 0a9ff015b..000000000 --- a/docs/doctest_info/markdown/queries.md +++ /dev/null @@ -1,17 +0,0 @@ -vcs.queries.istextcombined --------------------------- -```python -Failed example: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expected nothing -Got: - -``` - -Missing Doctests ----------------- -:x:``` vcs.queries``` - diff --git a/docs/doctest_info/markdown/taylor.md b/docs/doctest_info/markdown/taylor.md deleted file mode 100644 index c84aea1a4..000000000 --- a/docs/doctest_info/markdown/taylor.md +++ /dev/null @@ -1,122 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.taylor``` - -:x:``` vcs.taylor.Gtd``` - -:x:``` vcs.taylor.Gtd.Marker``` - -:x:``` vcs.taylor.Gtd.addMarker``` - -:x:``` vcs.taylor.Gtd.arrowangle``` - -:x:``` vcs.taylor.Gtd.arrowbase``` - -:x:``` vcs.taylor.Gtd.arrowlength``` - -:x:``` vcs.taylor.Gtd.cmtics1``` - -:x:``` vcs.taylor.Gtd.convert``` - -:x:``` vcs.taylor.Gtd.cticlabels1``` - -:x:``` vcs.taylor.Gtd.defaultSkillFunction``` - -:x:``` vcs.taylor.Gtd.detail``` - -:x:``` vcs.taylor.Gtd.draw``` - -:x:``` vcs.taylor.Gtd.drawFrame``` - -:x:``` vcs.taylor.Gtd.drawSkill``` - -:x:``` vcs.taylor.Gtd.drawarrow``` - -:x:``` vcs.taylor.Gtd.getArc``` - -:x:``` vcs.taylor.Gtd.list``` - -:x:``` vcs.taylor.Gtd.max``` - -:x:``` vcs.taylor.Gtd.name``` - -:x:``` vcs.taylor.Gtd.plot``` - -:x:``` vcs.taylor.Gtd.quadrans``` - -:x:``` vcs.taylor.Gtd.referencevalue``` - -:x:``` vcs.taylor.Gtd.rename``` - -:x:``` vcs.taylor.Gtd.setWorldCoordinate``` - -:x:``` vcs.taylor.Gtd.skillCoefficient``` - -:x:``` vcs.taylor.Gtd.skillColor``` - -:x:``` vcs.taylor.Gtd.skillDrawLabels``` - -:x:``` vcs.taylor.Gtd.skillValues``` - -:x:``` vcs.taylor.Gtd.viewport``` - -:x:``` vcs.taylor.Gtd.worldcoordinate``` - -:x:``` vcs.taylor.Gtd.xmtics1``` - -:x:``` vcs.taylor.Gtd.xticlabels1``` - -:x:``` vcs.taylor.Gtd.ymtics1``` - -:x:``` vcs.taylor.Gtd.yticlabels1``` - -:x:``` vcs.taylor.TDMarker``` - -:x:``` vcs.taylor.TDMarker.addMarker``` - -:x:``` vcs.taylor.TDMarker.checklineconnectingtype``` - -:x:``` vcs.taylor.TDMarker.color``` - -:x:``` vcs.taylor.TDMarker.eq``` - -:x:``` vcs.taylor.TDMarker.equalize``` - -:x:``` vcs.taylor.TDMarker.id``` - -:x:``` vcs.taylor.TDMarker.id_color``` - -:x:``` vcs.taylor.TDMarker.id_font``` - -:x:``` vcs.taylor.TDMarker.id_size``` - -:x:``` vcs.taylor.TDMarker.insert``` - -:x:``` vcs.taylor.TDMarker.line``` - -:x:``` vcs.taylor.TDMarker.line_color``` - -:x:``` vcs.taylor.TDMarker.line_size``` - -:x:``` vcs.taylor.TDMarker.line_type``` - -:x:``` vcs.taylor.TDMarker.list``` - -:x:``` vcs.taylor.TDMarker.number``` - -:x:``` vcs.taylor.TDMarker.pop``` - -:x:``` vcs.taylor.TDMarker.size``` - -:x:``` vcs.taylor.TDMarker.status``` - -:x:``` vcs.taylor.TDMarker.symbol``` - -:x:``` vcs.taylor.TDMarker.xoffset``` - -:x:``` vcs.taylor.TDMarker.yoffset``` - -:x:``` vcs.taylor.createnewvcsobj``` - -:x:``` vcs.taylor.process_src``` - diff --git a/docs/doctest_info/markdown/template.md b/docs/doctest_info/markdown/template.md deleted file mode 100644 index 23fd13be9..000000000 --- a/docs/doctest_info/markdown/template.md +++ /dev/null @@ -1,464 +0,0 @@ -vcs.template.P.drawAttributes ------------------------------ -```python -Failed example: - t.drawAttributes(a,s,b) # shows attributes of s on canvas -Expected nothing -Got: - [, , , , ] -``` - -vcs.template.P.list -------------------- -```python -Failed example: - obj.list() # print template attributes -Expected: - ---------- ... ---------- - ... -Got: - ---------- Template (P) member (attribute) listings ---------- - method = P - name = default - orientation = 0 - member = file - priority = 1 - x = 0.0500000007451 - y = 0.0130000002682 - texttable = default - textorientation = default - member = function - priority = 1 - x = 0.0500000007451 - y = 0.0130000002682 - texttable = default - textorientation = default - member = logicalmask - priority = 1 - x = 0.0500000007451 - y = 0.0329999998212 - texttable = default - textorientation = default - member = transformation - priority = 1 - x = 0.0500000007451 - y = 0.0529999993742 - texttable = default - textorientation = default - member = source - priority = 1 - x = 0.0500000007451 - y = 0.941999971867 - texttable = default - textorientation = default - member = dataname - priority = 1 - x = 0.0500000007451 - y = 0.922999978065 - texttable = default - textorientation = default - member = title - priority = 1 - x = 0.15000000596 - y = 0.922999978065 - texttable = default - textorientation = default - member = units - priority = 1 - x = 0.670000016689 - y = 0.922999978065 - texttable = default - textorientation = default - member = crdate - priority = 1 - x = 0.75 - y = 0.922999978065 - texttable = default - textorientation = default - member = crtime - priority = 1 - x = 0.850000023842 - y = 0.922999978065 - texttable = default - textorientation = default - member = comment1 - priority = 1 - x = 0.10000000149 - y = 0.954999983311 - texttable = default - textorientation = default - member = comment2 - priority = 1 - x = 0.10000000149 - y = 0.975000023842 - texttable = default - textorientation = default - member = comment3 - priority = 1 - x = 0.10000000149 - y = 0.995000004768 - texttable = default - textorientation = default - member = comment4 - priority = 1 - x = 0.10000000149 - y = 0.999000012875 - texttable = default - textorientation = default - member = xname - priority = 1 - x = 0.5 - y = 0.21 - texttable = default - textorientation = defcenter - member = yname - priority = 1 - x = 0.006 - y = 0.56 - texttable = default - textorientation = defup - member = zname - priority = 0 - x = 0.0 - y = 0.995000004768 - texttable = default - textorientation = default - member = tname - priority = 1 - x = 0.0 - y = 0.995000004768 - texttable = default - textorientation = default - member = xunits - priority = 1 - x = 0.600000023842 - y = 0.277000010014 - texttable = default - textorientation = default - member = yunits - priority = 1 - x = 0.019999999553 - y = 0.658999979496 - texttable = default - textorientation = default - member = zunits - priority = 0 - x = 0.0 - y = 0.995000004768 - texttable = default - textorientation = default - member = tunits - priority = 0 - x = 0.0 - y = 0.995000004768 - texttable = default - textorientation = default - member = xvalue - priority = 1 - x = 0.800000011921 - y = 0.941999971867 - format = default - texttable = default - textorientation = default - member = yvalue - priority = 1 - x = 0.800000011921 - y = 0.922999978065 - format = default - texttable = default - textorientation = default - member = zvalue - priority = 1 - x = 0.800000011921 - y = 0.902999997139 - format = default - texttable = default - textorientation = default - member = tvalue - priority = 1 - x = 0.800000011921 - y = 0.883000016212 - format = default - texttable = default - textorientation = default - member = mean - priority = 1 - x = 0.0500000007451 - y = 0.899999976158 - format = default - texttable = default - textorientation = default - member = min - priority = 1 - x = 0.449999988079 - y = 0.899999976158 - format = default - texttable = default - textorientation = default - member = max - priority = 1 - x = 0.25 - y = 0.899999976158 - format = default - texttable = default - textorientation = default - member = xtic1 - priority = 1 - y1 = 0.259999990463 - y2 = 0.24699999392 - line = default - member = xtic2 - priority = 1 - y1 = 0.860000014305 - y2 = 0.871999979019 - line = default - member = xmintic1 - priority = 0 - y1 = 0.259999990463 - y2 = 0.256999999285 - line = default - member = xmintic2 - priority = 0 - y1 = 0.860000014305 - y2 = 0.860000014305 - line = default - member = ytic1 - priority = 1 - x1 = 0.0500000007451 - x2 = 0.0399999991059 - line = default - member = ytic2 - priority = 1 - x1 = 0.949999988079 - x2 = 0.959999978542 - line = default - member = ymintic1 - priority = 0 - x1 = 0.0500000007451 - x2 = 0.0450000017881 - line = default - member = ymintic2 - priority = 0 - x1 = 0.949999988079 - x2 = 0.954999983311 - line = default - member = xlabel1 - priority = 1 - y = 0.234999999404 - texttable = default - textorientation = defcenter - member = xlabel2 - priority = 0 - y = 0.870000004768 - texttable = default - textorientation = defcenter - member = ylabel1 - priority = 1 - x = 0.0399999991059 - texttable = default - textorientation = defright - member = ylabel2 - priority = 0 - x = 0.959999978542 - texttable = default - textorientation = default - member = box1 - priority = 1 - x1 = 0.0500000007451 - y1 = 0.259999990463 - x2 = 0.949999988079 - y2 = 0.860000014305 - line = default - member = box2 - priority = 0 - x1 = 0.0 - y1 = 0.300000011921 - x2 = 0.920000016689 - y2 = 0.879999995232 - line = default - member = box3 - priority = 0 - x1 = 0.0 - y1 = 0.319999992847 - x2 = 0.910000026226 - y2 = 0.860000014305 - line = default - member = box4 - priority = 0 - x1 = 0.0 - y1 = 0.0 - x2 = 0.0 - y2 = 0.0 - line = default - member = line1 - priority = 0 - x1 = 0.0500000007451 - y1 = 0.560000002384 - x2 = 0.949999988079 - y2 = 0.560000002384 - line = default - member = line2 - priority = 0 - x1 = 0.5 - y1 = 0.259999990463 - x2 = 0.5 - y2 = 0.860000014305 - line = default - member = line3 - priority = 0 - x1 = 0.0 - y1 = 0.52999997139 - x2 = 0.899999976158 - y2 = 0.52999997139 - line = default - member = line4 - priority = 0 - x1 = 0.0 - y1 = 0.990000009537 - x2 = 0.899999976158 - y2 = 0.990000009537 - line = default - member = legend - priority = 1 - x1 = 0.0500000007451 - y1 = 0.129999995232 - x2 = 0.949999988079 - y2 = 0.159999996424 - line = default - texttable = default - textorientation = defcenter - offset = 0.01 - member = data - priority = 1 - x1 = 0.0500000007451 - y1 = 0.259999990463 - x2 = 0.949999988079 - y2 = 0.860000014305 -``` - -Missing Doctests ----------------- -:x:``` vcs.template``` - -:x:``` vcs.template.P``` - -:x:``` vcs.template.P.blank``` - -:x:``` vcs.template.P.box1``` - -:x:``` vcs.template.P.box2``` - -:x:``` vcs.template.P.box3``` - -:x:``` vcs.template.P.box4``` - -:x:``` vcs.template.P.comment1``` - -:x:``` vcs.template.P.comment2``` - -:x:``` vcs.template.P.comment3``` - -:x:``` vcs.template.P.comment4``` - -:x:``` vcs.template.P.crdate``` - -:x:``` vcs.template.P.crtime``` - -:x:``` vcs.template.P.data``` - -:x:``` vcs.template.P.dataname``` - -:x:``` vcs.template.P.drawColorBar``` - -:x:``` vcs.template.P.drawTicks``` - -:x:``` vcs.template.P.file``` - -:x:``` vcs.template.P.function``` - -:x:``` vcs.template.P.legend``` - -:x:``` vcs.template.P.line1``` - -:x:``` vcs.template.P.line2``` - -:x:``` vcs.template.P.line3``` - -:x:``` vcs.template.P.line4``` - -:x:``` vcs.template.P.logicalmask``` - -:x:``` vcs.template.P.max``` - -:x:``` vcs.template.P.mean``` - -:x:``` vcs.template.P.min``` - -:x:``` vcs.template.P.name``` - -:x:``` vcs.template.P.orientation``` - -:x:``` vcs.template.P.plot``` - -:x:``` vcs.template.P.source``` - -:x:``` vcs.template.P.title``` - -:x:``` vcs.template.P.tname``` - -:x:``` vcs.template.P.transformation``` - -:x:``` vcs.template.P.tunits``` - -:x:``` vcs.template.P.tvalue``` - -:x:``` vcs.template.P.units``` - -:x:``` vcs.template.P.xlabel1``` - -:x:``` vcs.template.P.xlabel2``` - -:x:``` vcs.template.P.xmintic1``` - -:x:``` vcs.template.P.xmintic2``` - -:x:``` vcs.template.P.xname``` - -:x:``` vcs.template.P.xtic1``` - -:x:``` vcs.template.P.xtic2``` - -:x:``` vcs.template.P.xunits``` - -:x:``` vcs.template.P.xvalue``` - -:x:``` vcs.template.P.ylabel1``` - -:x:``` vcs.template.P.ylabel2``` - -:x:``` vcs.template.P.ymintic1``` - -:x:``` vcs.template.P.ymintic2``` - -:x:``` vcs.template.P.yname``` - -:x:``` vcs.template.P.ytic1``` - -:x:``` vcs.template.P.ytic2``` - -:x:``` vcs.template.P.yunits``` - -:x:``` vcs.template.P.yvalue``` - -:x:``` vcs.template.P.zname``` - -:x:``` vcs.template.P.zunits``` - -:x:``` vcs.template.P.zvalue``` - -:x:``` vcs.template.epsilon_gte``` - -:x:``` vcs.template.epsilon_lte``` - -:x:``` vcs.template.process_src``` - diff --git a/docs/doctest_info/markdown/textcombined.md b/docs/doctest_info/markdown/textcombined.md deleted file mode 100644 index 50fbf6751..000000000 --- a/docs/doctest_info/markdown/textcombined.md +++ /dev/null @@ -1,77 +0,0 @@ -vcs.textcombined.Tc.script --------------------------- -```python -Failed example: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expected nothing -Got: - -``` - -vcs.textcombined.Tc.script --------------------------- -```python -Failed example: - ex.script('filename.py') # append to 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # append to 'filename.py' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 503, in script - fp.write("%s.color = %g\n\n" % (unique_name, self.color)) - TypeError: float argument required, not list -``` - -Missing Doctests ----------------- -:x:``` vcs.textcombined``` - -:x:``` vcs.textcombined.Tc``` - -:x:``` vcs.textcombined.Tc.To_name``` - -:x:``` vcs.textcombined.Tc.Tt_name``` - -:x:``` vcs.textcombined.Tc.angle``` - -:x:``` vcs.textcombined.Tc.color``` - -:x:``` vcs.textcombined.Tc.colormap``` - -:x:``` vcs.textcombined.Tc.expansion``` - -:x:``` vcs.textcombined.Tc.fillincolor``` - -:x:``` vcs.textcombined.Tc.font``` - -:x:``` vcs.textcombined.Tc.halign``` - -:x:``` vcs.textcombined.Tc.height``` - -:x:``` vcs.textcombined.Tc.list``` - -:x:``` vcs.textcombined.Tc.path``` - -:x:``` vcs.textcombined.Tc.priority``` - -:x:``` vcs.textcombined.Tc.projection``` - -:x:``` vcs.textcombined.Tc.spacing``` - -:x:``` vcs.textcombined.Tc.string``` - -:x:``` vcs.textcombined.Tc.valign``` - -:x:``` vcs.textcombined.Tc.viewport``` - -:x:``` vcs.textcombined.Tc.worldcoordinate``` - -:x:``` vcs.textcombined.Tc.x``` - -:x:``` vcs.textcombined.Tc.y``` - diff --git a/docs/doctest_info/markdown/textorientation.md b/docs/doctest_info/markdown/textorientation.md deleted file mode 100644 index 128ca62c1..000000000 --- a/docs/doctest_info/markdown/textorientation.md +++ /dev/null @@ -1,22 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.textorientation``` - -:x:``` vcs.textorientation.To``` - -:x:``` vcs.textorientation.To.angle``` - -:x:``` vcs.textorientation.To.halign``` - -:x:``` vcs.textorientation.To.height``` - -:x:``` vcs.textorientation.To.list``` - -:x:``` vcs.textorientation.To.name``` - -:x:``` vcs.textorientation.To.path``` - -:x:``` vcs.textorientation.To.valign``` - -:x:``` vcs.textorientation.process_src``` - diff --git a/docs/doctest_info/markdown/texttable.md b/docs/doctest_info/markdown/texttable.md deleted file mode 100644 index 17963db2b..000000000 --- a/docs/doctest_info/markdown/texttable.md +++ /dev/null @@ -1,58 +0,0 @@ -vcs.texttable.Tt.script ------------------------ -```python -Failed example: - ex.script('filename.py') # append to 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # append to 'filename.py' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 558, in script - fp.write("%s.color = %g\n\n" % (unique_name, self.color)) - TypeError: float argument required, not tuple -``` - -Missing Doctests ----------------- -:x:``` vcs.texttable``` - -:x:``` vcs.texttable.Tt``` - -:x:``` vcs.texttable.Tt.backgroundcolor``` - -:x:``` vcs.texttable.Tt.backgroundopacity``` - -:x:``` vcs.texttable.Tt.color``` - -:x:``` vcs.texttable.Tt.colormap``` - -:x:``` vcs.texttable.Tt.expansion``` - -:x:``` vcs.texttable.Tt.fillincolor``` - -:x:``` vcs.texttable.Tt.font``` - -:x:``` vcs.texttable.Tt.list``` - -:x:``` vcs.texttable.Tt.name``` - -:x:``` vcs.texttable.Tt.priority``` - -:x:``` vcs.texttable.Tt.projection``` - -:x:``` vcs.texttable.Tt.spacing``` - -:x:``` vcs.texttable.Tt.string``` - -:x:``` vcs.texttable.Tt.viewport``` - -:x:``` vcs.texttable.Tt.worldcoordinate``` - -:x:``` vcs.texttable.Tt.x``` - -:x:``` vcs.texttable.Tt.y``` - -:x:``` vcs.texttable.process_src``` - diff --git a/docs/doctest_info/markdown/unified1D.md b/docs/doctest_info/markdown/unified1D.md deleted file mode 100644 index edd27f1c2..000000000 --- a/docs/doctest_info/markdown/unified1D.md +++ /dev/null @@ -1,70 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.unified1D``` - -:x:``` vcs.unified1D.G1d``` - -:x:``` vcs.unified1D.G1d.colormap``` - -:x:``` vcs.unified1D.G1d.datawc_calendar``` - -:x:``` vcs.unified1D.G1d.datawc_timeunits``` - -:x:``` vcs.unified1D.G1d.datawc_x1``` - -:x:``` vcs.unified1D.G1d.datawc_x2``` - -:x:``` vcs.unified1D.G1d.datawc_y1``` - -:x:``` vcs.unified1D.G1d.datawc_y2``` - -:x:``` vcs.unified1D.G1d.flip``` - -:x:``` vcs.unified1D.G1d.g_type``` - -:x:``` vcs.unified1D.G1d.line``` - -:x:``` vcs.unified1D.G1d.linecolor``` - -:x:``` vcs.unified1D.G1d.linetype``` - -:x:``` vcs.unified1D.G1d.linewidth``` - -:x:``` vcs.unified1D.G1d.marker``` - -:x:``` vcs.unified1D.G1d.markercolor``` - -:x:``` vcs.unified1D.G1d.markersize``` - -:x:``` vcs.unified1D.G1d.name``` - -:x:``` vcs.unified1D.G1d.projection``` - -:x:``` vcs.unified1D.G1d.setLineAttributes``` - -:x:``` vcs.unified1D.G1d.smooth``` - -:x:``` vcs.unified1D.G1d.xaxisconvert``` - -:x:``` vcs.unified1D.G1d.xmtics1``` - -:x:``` vcs.unified1D.G1d.xmtics2``` - -:x:``` vcs.unified1D.G1d.xticlabels1``` - -:x:``` vcs.unified1D.G1d.xticlabels2``` - -:x:``` vcs.unified1D.G1d.yaxisconvert``` - -:x:``` vcs.unified1D.G1d.ymtics1``` - -:x:``` vcs.unified1D.G1d.ymtics2``` - -:x:``` vcs.unified1D.G1d.yticlabels1``` - -:x:``` vcs.unified1D.G1d.yticlabels2``` - -:x:``` vcs.unified1D.load``` - -:x:``` vcs.unified1D.process_src``` - diff --git a/docs/doctest_info/markdown/utils.md b/docs/doctest_info/markdown/utils.md deleted file mode 100644 index 3832806a1..000000000 --- a/docs/doctest_info/markdown/utils.md +++ /dev/null @@ -1,32 +0,0 @@ -Missing Doctests ----------------- -:x:``` vcs.utils``` - -:x:``` vcs.utils.VCSUtilsError``` - -:x:``` vcs.utils.getDataWcValue``` - -:x:``` vcs.utils.getdotdirectory``` - -:x:``` vcs.utils.loadTemplate``` - -:x:``` vcs.utils.loadVCSItem``` - -:x:``` vcs.utils.png_read_metadata``` - -:x:``` vcs.utils.prettifyAxisLabels``` - -:x:``` vcs.utils.process_range_from_old_scr``` - -:x:``` vcs.utils.process_src_element``` - -:x:``` vcs.utils.return_display_names``` - -:x:``` vcs.utils.saveinitialfile``` - -:x:``` vcs.utils.scriptrun``` - -:x:``` vcs.utils.scriptrun_scr``` - -:x:``` vcs.utils.setTicksandLabels``` - diff --git a/docs/doctest_info/markdown/vcshelp.md b/docs/doctest_info/markdown/vcshelp.md deleted file mode 100644 index 6adc9b769..000000000 --- a/docs/doctest_info/markdown/vcshelp.md +++ /dev/null @@ -1,53 +0,0 @@ -vcs.vcshelp.help ----------------- -```python -Failed example: - vcs.help('getboxfill') -Expected nothing -Got: - VCS contains a list of graphics methods. This function - will create a boxfill object from an existing - VCS boxfill graphics method. If no boxfill name is given, - then default boxfill will be used. - - .. note:: - - VCS does not allow the modification of 'default' attribute sets. - However, a 'default' attribute set that has been copied under a - different name can be modified. - (See the :py:func:`vcs.manageElements.createboxfill` function.) - - :Example: - - .. doctest:: manageElements_get - - >>> a=vcs.init() - >>> vcs.listelements('boxfill') # list all boxfills - [...] - >>> ex=vcs.getboxfill() # 'default' boxfill - >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 - >>> slab1 = f('u') # take a slab from the data - >>> a.boxfill(ex, slab1) # plot boxfill - - >>> ex2=vcs.getboxfill('polar') # boxfill #2 - >>> a.boxfill(ex2, slab1) # plot boxfill - - - - :param Gfb_name_src: String name of an existing boxfill VCS object - :type Gfb_name_src: :py:class:`str` - - :return: A pre-existing boxfill graphics method - :rtype: vcs.boxfill.Gfb - -``` - -Missing Doctests ----------------- -:x:``` vcs.vcshelp``` - -:x:``` vcs.vcshelp.help__doc__``` - -:x:``` vcs.vcshelp.mode__doc__``` - diff --git a/docs/doctest_info/markdown/vector.md b/docs/doctest_info/markdown/vector.md deleted file mode 100644 index 8e1f5d739..000000000 --- a/docs/doctest_info/markdown/vector.md +++ /dev/null @@ -1,94 +0,0 @@ -vcs.vector.Gv.script --------------------- -```python -Failed example: - ex.script('filename.py') # append to 'filename.py' -Expected nothing -Got: - DEPRECATED: Use linetype or setLineAttributes instead. -``` - -Missing Doctests ----------------- -:x:``` vcs.vector``` - -:x:``` vcs.vector.Gv``` - -:x:``` vcs.vector.Gv.alignment``` - -:x:``` vcs.vector.Gv.colormap``` - -:x:``` vcs.vector.Gv.datawc``` - -:x:``` vcs.vector.Gv.datawc_calendar``` - -:x:``` vcs.vector.Gv.datawc_timeunits``` - -:x:``` vcs.vector.Gv.datawc_x1``` - -:x:``` vcs.vector.Gv.datawc_x2``` - -:x:``` vcs.vector.Gv.datawc_y1``` - -:x:``` vcs.vector.Gv.datawc_y2``` - -:x:``` vcs.vector.Gv.line``` - -:x:``` vcs.vector.Gv.linecolor``` - -:x:``` vcs.vector.Gv.linetype``` - -:x:``` vcs.vector.Gv.linewidth``` - -:x:``` vcs.vector.Gv.list``` - -:x:``` vcs.vector.Gv.name``` - -:x:``` vcs.vector.Gv.projection``` - -:x:``` vcs.vector.Gv.reference``` - -:x:``` vcs.vector.Gv.scale``` - -:x:``` vcs.vector.Gv.scalerange``` - -:x:``` vcs.vector.Gv.scaletype``` - -:x:``` vcs.vector.Gv.setLineAttributes``` - -:x:``` vcs.vector.Gv.type``` - -:x:``` vcs.vector.Gv.xaxisconvert``` - -:x:``` vcs.vector.Gv.xmtics``` - -:x:``` vcs.vector.Gv.xmtics1``` - -:x:``` vcs.vector.Gv.xmtics2``` - -:x:``` vcs.vector.Gv.xticlabels``` - -:x:``` vcs.vector.Gv.xticlabels1``` - -:x:``` vcs.vector.Gv.xticlabels2``` - -:x:``` vcs.vector.Gv.xyscale``` - -:x:``` vcs.vector.Gv.yaxisconvert``` - -:x:``` vcs.vector.Gv.ymtics``` - -:x:``` vcs.vector.Gv.ymtics1``` - -:x:``` vcs.vector.Gv.ymtics2``` - -:x:``` vcs.vector.Gv.yticlabels``` - -:x:``` vcs.vector.Gv.yticlabels1``` - -:x:``` vcs.vector.Gv.yticlabels2``` - -:x:``` vcs.vector.load``` - -:x:``` vcs.vector.process_src``` - diff --git a/docs/doctest_info/reports/Canvas.report b/docs/doctest_info/reports/Canvas.report deleted file mode 100644 index 86deb0905..000000000 --- a/docs/doctest_info/reports/Canvas.report +++ /dev/null @@ -1,3643 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('boxfill') # Show all boxfills -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - box=a.getboxfill('quick') # Create instance of 'quick' -Expecting nothing -ok -Trying: - arr=[range(10) for _ in range(10)] # data to plot -Expecting nothing -ok -Trying: - a.boxfill(arr, box) # Plot array w/ box; default template -Expecting: - -ok -Trying: - t = a.gettemplate('quick') # get quick template -Expecting nothing -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - a.boxfill(arr, box, t) # Plot w/ box and 'quick' template -Expecting: - -ok -Trying: - a.boxfill(box, arr, t) # Plot w/ box and 'quick' template -Expecting: - -ok -Trying: - a.boxfill(t, arr, box) # Plot w/ box and 'quick' template -Expecting: - -ok -Trying: - a.boxfill(t, box, arr) # Plot w/ box and 'quick' template -Expecting: - -ok -Trying: - a.boxfill(arr, 'polar', 'polar') # 'polar' template/boxfill -Expecting: - -ok -Trying: - a.boxfill('polar', arr, 'polar') # 'polar' template/boxfill -Expecting: - -ok -Trying: - a.boxfill('polar', 'polar', arr) # 'polar' template/boxfill -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - cid = a.canvasid() # store the canvas id -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ci=a.canvasinfo() -Expecting nothing -ok -Trying: - keys=a.canvasinfo().keys() -Expecting nothing -ok -Trying: - keys.sort() -Expecting nothing -ok -Trying: - for key in keys: - print key, str(ci[key]) -Expecting: - depth ... - height ... - mapstate ... - width ... - x ... - y ... -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - cdgm=a.change_display_graphic_method # alias long name -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - disp=a.plot(array) -Expecting nothing -ok -Trying: - a.show('boxfill') # list boxfill names -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - cdgm(disp, 'boxfill', 'polar') # change graphics method -Expecting nothing -ok -Trying: - cns=vcs.check_name_source # alias for long function name -Expecting nothing -ok -Trying: - vcs.show('boxfill') -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - cns('NEW', 'quick', 'boxfill') # name 'NEW' should be available -Expecting: - ('NEW', 'quick') -ok -Trying: - cns(None, 'default', 'boxfill') # generate unique boxfill name -Expecting: - ('__boxfill_...', 'default') -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - clean=a.clean_auto_generated_objects # alias long name -Expecting nothing -ok -Trying: - clean() # clean possible old objects from vcs -Expecting nothing -ok -Trying: - txt=a.listelements('textorientation') # initial objects -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - new_txt=a.listelements('textorientation') # has new names -Expecting nothing -ok -Trying: - txt == new_txt # should not be the same -Expecting: - False -ok -Trying: - clean() -Expecting nothing -ok -Trying: - new_txt=a.listelements('textorientation') # back to initial -Expecting nothing -ok -Trying: - txt == new_txt # should have the same contents -Expecting: - True -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a.clear() # clear VCS displays from the page -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a.close() #close the vcs canvas -Expecting nothing -ok -Trying: - vcs.show('1d') -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - vcs.create1d() # inherits default, name generated -Expecting: - -ok -Trying: - vcs.create1d("one_D") # inherits default, name "one_D" -Expecting: - -ok -Trying: - vcs.create1d(source="one_D") # inherits from "one_D" -Expecting: - -ok -Trying: - vcs.show('3d_dual_scalar') # available 3d_dual_scalars -Expecting: - *******************3d_dual_scalar Names List********************** - ... - *******************End 3d_dual_scalar Names List********************** -ok -Trying: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('3d_dual_scalar') # includes new object -Expecting: - [...'3d_dual_scalar_ex1'...] -ok -Trying: - vcs.show('3d_scalar') # available 3d_scalars -Expecting: - *******************3d_scalar Names List********************** - ... - *******************End 3d_scalar Names List********************** -ok -Trying: - ex=vcs.create3d_scalar('3d_scalar_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('3d_scalar') # includes new object -Expecting: - [...'3d_scalar_ex1'...] -ok -Trying: - vcs.show('3d_vector') # available 3d_vectors -Expecting: - *******************3d_vector Names List********************** - ... - *******************End 3d_vector Names List********************** -ok -Trying: - ex=vcs.create3d_vector('3d_vector_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('3d_vector') # includes new object -Expecting: - [...'3d_vector_ex1'...] -ok -Trying: - vcs.show('boxfill') # available boxfills -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - ex=vcs.createboxfill('boxfill_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # includes new object -Expecting: - [...'boxfill_ex1'...] -ok -Trying: - ex2=vcs.createboxfill('boxfill_ex2','polar') -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # includes new object -Expecting: - [...'boxfill_ex2'...] -ok -Trying: - vcs.show('colormap') # available colormaps -Expecting: - *******************Colormap Names List********************** - ... - *******************End Colormap Names List********************** -ok -Trying: - ex=vcs.createcolormap('colormap_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # includes new object -Expecting: - [...'colormap_ex1'...] -ok -Trying: - ex2=vcs.createcolormap('colormap_ex2','rainbow') -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # includes new object -Expecting: - [...'colormap_ex2'...] -ok -Trying: - vcs.show('fillarea') # available fillareas -Expecting: - *******************Fillarea Names List********************** - ... - *******************End Fillarea Names List********************** -ok -Trying: - ex=vcs.createfillarea('fillarea_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('fillarea') # includes new object -Expecting: - [...'fillarea_ex1'...] -ok -Trying: - vcs.show('isofill') # available isofills -Expecting: - *******************Isofill Names List********************** - ... - *******************End Isofill Names List********************** -ok -Trying: - ex=vcs.createisofill('isofill_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # includes new object -Expecting: - [...'isofill_ex1'...] -ok -Trying: - ex2=vcs.createisofill('isofill_ex2','polar') -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # includes new object -Expecting: - [...'isofill_ex2'...] -ok -Trying: - vcs.show('isoline') # available isolines -Expecting: - *******************Isoline Names List********************** - ... - *******************End Isoline Names List********************** -ok -Trying: - ex=vcs.createisoline('isoline_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # includes new object -Expecting: - [...'isoline_ex1'...] -ok -Trying: - ex2=vcs.createisoline('isoline_ex2','polar') -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # includes new object -Expecting: - [...'isoline_ex2'...] -ok -Trying: - vcs.show('line') # available lines -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - ex=vcs.createline('line_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('line') # includes new object -Expecting: - [...'line_ex1'...] -ok -Trying: - ex2=vcs.createline('line_ex2','red') -Expecting nothing -ok -Trying: - vcs.listelements('line') # includes new object -Expecting: - [...'line_ex2'...] -ok -Trying: - vcs.show('marker') # available markers -Expecting: - *******************Marker Names List********************** - ... - *******************End Marker Names List********************** -ok -Trying: - ex=vcs.createmarker('marker_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('marker') # includes new object -Expecting: - [...'marker_ex1'...] -ok -Trying: - ex2=vcs.createmarker('marker_ex2','red') -Expecting nothing -ok -Trying: - vcs.listelements('marker') # includes new object -Expecting: - [...'marker_ex2'...] -ok -Trying: - vcs.show('meshfill') # available meshfills -Expecting: - *******************Meshfill Names List********************** - ... - *******************End Meshfill Names List********************** -ok -Trying: - ex=vcs.createmeshfill('meshfill_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # includes new object -Expecting: - [...'meshfill_ex1'...] -ok -Trying: - ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # includes new object -Expecting: - [...'meshfill_ex2'...] -ok -Trying: - vcs.show('projection') # available projections -Expecting: - *******************Projection Names List********************** - ... - *******************End Projection Names List********************** -ok -Trying: - ex=vcs.createprojection('projection_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('projection') # includes new object -Expecting: - [...'projection_ex1'...] -ok -Trying: - ex2=vcs.createprojection('projection_ex2','orthographic') -Expecting nothing -ok -Trying: - vcs.listelements('projection') # includes new object -Expecting: - [...'projection_ex2'...] -ok -Trying: - vcs.show('scatter') # available scatters -Expecting: - *******************Scatter Names List********************** - ... - *******************End Scatter Names List********************** -ok -Trying: - ex=vcs.createscatter('scatter_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('scatter') # includes new object -Expecting: - [...'scatter_ex1'...] -ok -Trying: - vcs.show('taylordiagram') # available taylordiagrams -Expecting: - *******************Taylordiagram Names List********************** - ... - *******************End Taylordiagram Names List********************** -ok -Trying: - ex=vcs.createtaylordiagram('taylordiagram_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('taylordiagram') # includes new object -Expecting: - [...'taylordiagram_ex1'...] -ok -Trying: - vcs.show('template') # available templates -Expecting: - *******************Template Names List********************** - ... - *******************End Template Names List********************** -ok -Trying: - ex=vcs.createtemplate('template_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('template') # includes new object -Expecting: - [...'template_ex1'...] -ok -Trying: - ex2=vcs.createtemplate('template_ex2','polar') -Expecting nothing -ok -Trying: - vcs.listelements('template') # includes new object -Expecting: - [...'template_ex2'...] -ok -Trying: - vcs.show('textcombined') # available textcombineds -Expecting: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -ok -Trying: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') - except: - pass -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 2229, in vcs.Canvas.Canvas.createtext -Failed example: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') - except: - pass -Expected nothing -Got: - -Trying: - vcs.show('textorientation') # available textorientations -Expecting: - *******************Textorientation Names List********************** - ... - *******************End Textorientation Names List********************** -ok -Trying: - ex=vcs.createtextorientation('textorientation_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # includes new object -Expecting: - [...'textorientation_ex1'...] -ok -Trying: - ex2=vcs.createtextorientation('textorientation_ex2','bigger') -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # includes new object -Expecting: - [...'textorientation_ex2'...] -ok -Trying: - vcs.show('texttable') # available texttables -Expecting: - *******************Texttable Names List********************** - ... - *******************End Texttable Names List********************** -ok -Trying: - ex=vcs.createtexttable('texttable_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # includes new object -Expecting: - [...'texttable_ex1'...] -ok -Trying: - ex2=vcs.createtexttable('texttable_ex2','bigger') -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # includes new object -Expecting: - [...'texttable_ex2'...] -ok -Trying: - vcs.show('vector') # available vectors -Expecting: - *******************Vector Names List********************** - ... - *******************End Vector Names List********************** -ok -Trying: - ex=vcs.createvector('vector_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('vector') # includes new object -Expecting: - [...'vector_ex1'...] -ok -Trying: - vcs.show('xvsy') # available xvsys -Expecting: - *******************Xvsy Names List********************** - ... - *******************End Xvsy Names List********************** -ok -Trying: - ex=vcs.createxvsy('xvsy_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('xvsy') # includes new object -Expecting: - [...'xvsy_ex1'...] -ok -Trying: - vcs.show('xyvsy') # available xyvsys -Expecting: - *******************Xyvsy Names List********************** - ... - *******************End Xyvsy Names List********************** -ok -Trying: - ex=vcs.createxyvsy('xyvsy_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('xyvsy') # includes new object -Expecting: - [...'xyvsy_ex1'...] -ok -Trying: - vcs.show('yxvsx') # available yxvsxs -Expecting: - *******************Yxvsx Names List********************** - ... - *******************End Yxvsx Names List********************** -ok -Trying: - ex=vcs.createyxvsx('yxvsx_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('yxvsx') # includes new object -Expecting: - [...'yxvsx_ex1'...] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a.destroy() -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('fillarea') # Show all the existing fillarea objects -Expecting: - *******************Fillarea Names List********************** - ... - *******************End Fillarea Names List********************** -ok -Trying: - fa=a.drawfillarea(name='red', style=1, color=242, - priority=1, viewport=[0, 1.0, 0, 1.0], - worldcoordinate=[0,100, 0,50], - x=[0,20,40,60,80,100], - y=[0,10,20,30,40,50], bg=0 ) # Create instance of fillarea object 'red' -Expecting nothing -ok -Trying: - a.fillarea(fa) # Plot using specified fillarea object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('line') # Show all the existing line objects -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - ln=a.drawline(name='red', ltype='dash', width=2, - color=242, priority=1, viewport=[0, 1.0, 0, 1.0], - worldcoordinate=[0,100, 0,50], - x=[0,20,40,60,80,100], - y=[0,10,20,30,40,50] ) -Expecting nothing -ok -Trying: - a.line(ln) # Plot using specified line object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.drawlogooff() -Expecting nothing -ok -Trying: - a.getdrawlogo() -Expecting: - False -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.drawlogoon() -Expecting nothing -ok -Trying: - a.getdrawlogo() -Expecting: - True -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('marker') # Show all the existing marker objects -Expecting: - *******************Marker Names List********************** - ... - *******************End Marker Names List********************** -ok -Trying: - mrk=a.drawmarker(name='red', mtype='dot', size=2, - color=242, priority=1, viewport=[0, 1.0, 0, 1.0], - worldcoordinate=[0,100, 0,50], - x=[0,20,40,60,80,100], - y=[0,10,20,30,40,50] ) # Create instance of marker object 'red' -Expecting nothing -ok -Trying: - a.marker(mrk) # Plot using specified marker object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - drawtc=a.drawtextcombined # alias long function name -Expecting nothing -ok -Trying: - a.show('texttable') # Show all the existing texttable objects -Expecting: - *******************Texttable Names List********************** - ... - *******************End Texttable Names List********************** -ok -Trying: - vcs.createtextcombined('draw_tt','qa', 'draw_tto', '7left') -Expecting: - -ok -Trying: - msg=["Hello", "drawtextcombined!"] -Expecting nothing -ok -Trying: - tc=drawtc(Tt_name='draw_tt',To_name='draw_tto',string=msg) -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('3d_dual_scalar') # Show all 3d_dual_scalars -Expecting: - *******************3d_dual_scalar Names List********************** - ... - *******************End 3d_dual_scalar Names List********************** -ok -Trying: - ds3=a.get3d_dual_scalar() # default 3d_dual_scalar -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file -Expecting nothing -ok -Trying: - s = f('clt') # use data file to create a cdms2 slab -Expecting nothing -ok -Trying: - s2 = f('v') # need two slabs, so get another -Expecting nothing -ok -Trying: - a.dual_scalar3d(ds3,s,s2) # Plot slabs -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1498, in vcs.Canvas.Canvas.dual_scalar3d -Failed example: - a.dual_scalar3d(ds3,s,s2) # Plot slabs -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - dua=a.dummy_user_action # alias long name -Expecting nothing -ok -Trying: - dua("falafel", 37, the_answer=42) -Expecting: - Arguments: ('falafel', 37) - Keywords: {'the_answer': 42} -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.postscript('example') # Overwrite a postscript file -Expecting nothing -ok -Trying: - a.postscript('example', 'a') # Append postscript to an existing file -Expecting nothing -ok -Trying: - a.postscript('example', 'r') # Overwrite an existing file -Expecting nothing -ok -Trying: - a.postscript('example', mode='a') # Append postscript to an existing file -Expecting nothing -ok -Trying: - a.postscript('example', width=11.5, height= 8.5) # US Legal (default) -Expecting nothing -ok -Trying: - a.postscript('example', width=21, height=29.7, units='cm') # A4 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - import cdms2 -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') -Expecting nothing -ok -Trying: - v = f('v') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - u = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - png_files = [] # for saving file names to make the mpeg -Expecting nothing -ok -Trying: - for i in range(10): # create a number of pngs to use for an mpeg - a.clear() - if (i%2): - a.plot(u,v) - else: - a.plot(v,u) - a.png('my_png__%i' % i) - png_files.append('my_png__%i.png' % i) -Expecting: - - - - - - - - - - -ok -Trying: - a.ffmpeg('m1.mpeg',png_files) # using list of files -Expecting: - True -ok -Trying: - a.ffmpeg('m2.mpeg',png_files,bitrate=512) # 512kbit rate -Expecting: - True -ok -Trying: - a.ffmpeg('m3.mpeg',png_files,rate=50) # 50 frames/second -Expecting: - True -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('fillarea') # Show all the existing fillarea objects -Expecting: - *******************Fillarea Names List********************** - ... - *******************End Fillarea Names List********************** -ok -Trying: - fa=a.createfillarea() # Create instance of default fillarea -Expecting nothing -ok -Trying: - fa.style=1 # Set the fillarea style -Expecting nothing -ok -Trying: - fa.index=4 # Set the fillarea index -Expecting nothing -ok -Trying: - fa.color = 242 # Set the fillarea color -Expecting nothing -ok -Trying: - fa.x=[0.25,0.75] # Set the x value points -Expecting nothing -ok -Trying: - fa.y=[0.2,0.5] # Set the y value points -Expecting nothing -ok -Trying: - a.fillarea(fa) # Plot using specified fillarea object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a.flush() -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a.geometry(450,337) -Expecting nothing -ok -Trying: - vcs.show('1d') -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - vcs.get1d('blue_yxvsx') -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_dual_scalar') # list all 3d_dual_scalars -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_dual_scalar() # 'default' 3d_dual_scalar -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(ex, slab1, slab2) # plot 3d_dual_scalar -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1499, in vcs.Canvas.Canvas.get3d_dual_scalar -Failed example: - a.plot(ex, slab1, slab2) # plot 3d_dual_scalar -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_scalar') # list all 3d_scalars -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_scalar() # 'default' 3d_scalar -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot 3d_scalar -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1417, in vcs.Canvas.Canvas.get3d_scalar -Failed example: - a.plot(ex, slab1) # plot 3d_scalar -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_vector') # list all 3d_vectors -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_vector() # 'default' 3d_vector -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(ex, slab1, slab2) # plot 3d_vector -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1456, in vcs.Canvas.Canvas.get3d_vector -Failed example: - a.plot(ex, slab1, slab2) # plot 3d_vector -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.setantialiasing(0) # turn off antialiasing -Expecting nothing -ok -Trying: - a.getantialiasing() # will return current antialiasing rate -Expecting: - 0 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # list all boxfills -Expecting: - [...] -ok -Trying: - ex=vcs.getboxfill() # 'default' boxfill -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.boxfill(ex, slab1) # plot boxfill -Expecting: - -ok -Trying: - ex2=vcs.getboxfill('polar') # boxfill #2 -Expecting nothing -ok -Trying: - a.boxfill(ex2, slab1) # plot boxfill -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - b=vcs.createboxfill() -Expecting nothing -ok -Trying: - b.colormap='rainbow' -Expecting nothing -ok -Trying: - a.getcolorcell(2,b) -Expecting: - [26, 1, 34, 100] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # list all colormaps -Expecting: - [...] -ok -Trying: - ex=vcs.getcolormap() # 'default' colormap -Expecting nothing -ok -Trying: - ex2=vcs.getcolormap('rainbow') # colormap #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('colormap') -Expecting: - *******************Colormap Names List********************** - ... - *******************End Colormap Names List********************** -ok -Trying: - a.setcolormap('rainbow') # set canvas's default colormap -Expecting nothing -ok -Trying: - a.getcolormapname() -Expecting: - 'rainbow' -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - cl=a.getcontinentsline() # should be the default -Expecting nothing -ok -Trying: - cl.name -Expecting: - 'default' -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.setcontinentstype(6) -Expecting nothing -ok -Trying: - a.getcontinentstype() # Get the continents type -Expecting: - 6 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.getdrawlogo() -Expecting: - True -ok -Trying: - a.drawlogooff() -Expecting nothing -ok -Trying: - a.getdrawlogo() -Expecting: - False -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('fillarea') # list all fillareas -Expecting: - [...] -ok -Trying: - ex=vcs.getfillarea() # 'default' fillarea -Expecting nothing -ok -Trying: - a.fillarea(ex) # plot fillarea -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - font_names=[] -Expecting nothing -ok -Trying: - for i in range(1,17): - font_names.append(str(a.getfont(i))) # font_names is now filled with all font names -Expecting nothing -ok -Trying: - font_names -Expecting: - ['default', ...] -ok -Trying: - font_numbers = [] -Expecting nothing -ok -Trying: - for name in font_names: - font_numbers.append(a.getfont(name)) # font_numbers is now filled with all font numbers -Expecting nothing -ok -Trying: - font_numbers -Expecting: - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] -ok -Trying: - vcs.getfontname(1) -Expecting: - 'default' -ok -Trying: - vcs.getfontname(4) -Expecting: - 'Helvetica' -ok -Trying: - vcs.getfontnumber('default') -Expecting: - 1 -ok -Trying: - vcs.getfontnumber('Helvetica') -Expecting: - 4 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # list all isofills -Expecting: - [...] -ok -Trying: - ex=vcs.getisofill() # 'default' isofill -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.isofill(ex, slab1) # plot isofill -Expecting: - -ok -Trying: - ex2=vcs.getisofill('polar') # isofill #2 -Expecting nothing -ok -Trying: - a.isofill(ex2, slab1) # plot isofill -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # list all isolines -Expecting: - [...] -ok -Trying: - ex=vcs.getisoline() # 'default' isoline -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.isoline(ex, slab1) # plot isoline -Expecting: - -ok -Trying: - ex2=vcs.getisoline('polar') # isoline #2 -Expecting nothing -ok -Trying: - a.isoline(ex2, slab1) # plot isoline -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('line') # list all lines -Expecting: - [...] -ok -Trying: - ex=vcs.getline() # 'default' line -Expecting nothing -ok -Trying: - a.line(ex) # plot line -Expecting: - -ok -Trying: - ex2=vcs.getline('red') # line #2 -Expecting nothing -ok -Trying: - a.line(ex2) # plot line -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('marker') # list all markers -Expecting: - [...] -ok -Trying: - ex=vcs.getmarker() # 'default' marker -Expecting nothing -ok -Trying: - a.marker(ex) # plot marker -Expecting: - -ok -Trying: - ex2=vcs.getmarker('red') # marker #2 -Expecting nothing -ok -Trying: - a.marker(ex2) # plot marker -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # list all meshfills -Expecting: - [...] -ok -Trying: - ex=vcs.getmeshfill() # 'default' meshfill -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.meshfill(ex, slab1) # plot meshfill -Expecting: - -ok -Trying: - ex2=vcs.getmeshfill('a_polar_meshfill') # meshfill #2 -Expecting nothing -ok -Trying: - a.meshfill(ex2, slab1) # plot meshfill -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('projection') # list all projections -Expecting: - [...] -ok -Trying: - ex=vcs.getprojection() # 'default' projection -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - ex2=vcs.getprojection('orthographic') # projection #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('scatter') # list all scatters -Expecting: - [...] -ok -Trying: - ex=vcs.getscatter('default_scatter_') # ''default_scatter_'' scatter -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.scatter(ex, slab1, slab2) # plot scatter -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('taylordiagram') # list all taylordiagrams -Expecting: - [...] -ok -Trying: - ex=vcs.gettaylordiagram() # 'default' taylordiagram -Expecting nothing -ok -Trying: - slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] # data -Expecting nothing -ok -Trying: - a.taylordiagram(ex, slab1) # plot taylordiagram -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('template') # list all templates -Expecting: - [...] -ok -Trying: - ex=vcs.gettemplate() # 'default' template -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - ex2=vcs.gettemplate('polar') # template #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('textcombined') # list all textcombineds -Expecting: - [...] -ok -Trying: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') - except: - pass -Expecting nothing -ok -Trying: - ex=vcs.gettextcombined('EX_tt', 'EX_tto') # 'EX_tt:::EX_tto' textcombined -Expecting nothing -ok -Trying: - a.textcombined(ex) # plot textcombined -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - t=a.createtext() -Expecting nothing -ok -Trying: - t.x=[.5] -Expecting nothing -ok -Trying: - t.y=[.5] -Expecting nothing -ok -Trying: - t.string=['Hello World'] -Expecting nothing -ok -Trying: - a.gettextextent(t) -Expecting: - [[...]] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # list all textorientations -Expecting: - [...] -ok -Trying: - ex=vcs.gettextorientation() # 'default' textorientation -Expecting nothing -ok -Trying: - ex2=vcs.gettextorientation('bigger') # textorientation #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # list all texttables -Expecting: - [...] -ok -Trying: - ex=vcs.gettexttable() # 'default' texttable -Expecting nothing -ok -Trying: - ex2=vcs.gettexttable('bigger') # texttable #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('vector') # list all vectors -Expecting: - [...] -ok -Trying: - ex=vcs.getvector() # 'default' vector -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.vector(ex, slab1, slab2) # plot vector -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('xvsy') # list all xvsys -Expecting: - [...] -ok -Trying: - ex=vcs.getxvsy() # 'default_xvsy_' xvsy -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.xvsy(ex, slab1, slab2) # plot xvsy -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('xyvsy') # list all xyvsys -Expecting: - [...] -ok -Trying: - ex=vcs.getxyvsy('default_xyvsy_') # ''default_xyvsy_'' xyvsy -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.xyvsy(ex, slab1) # plot xyvsy -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('yxvsx') # list all yxvsxs -Expecting: - [...] -ok -Trying: - ex=vcs.getyxvsx() # 'default_yxvsx_' yxvsx -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.yxvsx(ex, slab1) # plot yxvsx -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.initLogoDrawing() # will draw logo when plot is called -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - a.plot(array) # should have logo in lower right corner -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - box=a.getboxfill() -Expecting nothing -ok -Trying: - a.scriptobject(box, 'deft_box.py') -Expecting nothing -ok -Trying: - a.isinfile(box, 'deft_box.py') -Expecting: - 1 -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 5542, in vcs.Canvas.Canvas.isinfile -Failed example: - a.isinfile(box, 'deft_box.py') -Expected: - 1 -Got nothing -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - if a.islandscape(): - a.portrait() # Set VCS's orientation to portrait mode -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('isofill') # Show all isofill graphics methods -Expecting: - *******************Isofill Names List********************** - ... - *******************End Isofill Names List********************** -ok -Trying: - iso=a.getisofill('quick') # Create instance of 'quick' -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file -Expecting nothing -ok -Trying: - slab = f('clt') # use data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.isofill(slab,iso) # Plot slab with iso; default template -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - t = a.gettemplate('hovmuller') -Expecting nothing -ok -Trying: - a.isofill(slab,iso,t) # Plot with 'hovmuller' template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('isoline') # Show all the existing isoline graphics methods -Expecting: - *******************Isoline Names List********************** - ... - *******************End Isoline Names List********************** -ok -Trying: - iso=a.getisoline('quick') # Create instance of 'quick' -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.isoline(array,iso) # Plot array using specified iso and default template -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - template = a.gettemplate('hovmuller') -Expecting nothing -ok -Trying: - a.isoline(array,iso,template) # Plot array using specified iso and template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.isopened() # canvas defaults to being closed -Expecting: - False -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.isopened() # plotting opened the canvas -Expecting: - True -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - if a.isportrait(): - a.landscape() # Set VCS's orientation to landscape mode -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.landscape() # Change the VCS Canvas orientation and set object flag to landscape -Expecting nothing -ok -Trying: - a.landscape(clear=1) # Change the VCS Canvas to landscape and clear the page -Expecting nothing -ok -Trying: - a.landscape(width = 400, height = 337) # Change to landscape and set the window size -Expecting nothing -ok -Trying: - a.landscape(x=100, y = 200) # Change to landscape and set the x and y screen position -Expecting nothing -ok -Trying: - a.landscape(width = 400, height = 337, x=100, y = 200, clear=1) # landscape with more settings -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('line') # Show all the existing line objects -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - ln=a.getline('red') # Create instance of 'red' -Expecting nothing -ok -Trying: - ln.width=4 # Set the line width -Expecting nothing -ok -Trying: - ln.color = 242 # Set the line color -Expecting nothing -ok -Trying: - ln.type = 4 # Set the line type -Expecting nothing -ok -Trying: - ln.x=[[0.0,2.0,2.0,0.0,0.0], [0.5,1.5]] # Set the x value points -Expecting nothing -ok -Trying: - ln.y=[[0.0,0.0,2.0,2.0,0.0], [1.0,1.0]] # Set the y value points -Expecting nothing -ok -Trying: - a.line(ln) # Plot using specified line object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.listelements() -Expecting: - ['1d', '3d_dual_scalar', '3d_scalar', ...] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('marker') # Show all the existing marker objects -Expecting: - *******************Marker Names List********************** - ... - *******************End Marker Names List********************** -ok -Trying: - mrk=a.getmarker('red') # Create instance of 'red' -Expecting nothing -ok -Trying: - mrk.size=4 # Set the marker size -Expecting nothing -ok -Trying: - mrk.color = 242 # Set the marker color -Expecting nothing -ok -Trying: - mrk.type = 4 # Set the marker type -Expecting nothing -ok -Trying: - mrk.x=[[0.0,2.0,2.0,0.0,0.0], [0.5,1.5]] # Set the x value points -Expecting nothing -ok -Trying: - mrk.y=[[0.0,0.0,2.0,2.0,0.0], [1.0,1.0]] # Set the y value points -Expecting nothing -ok -Trying: - a.marker(mrk) # Plot using specified marker object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - print vcs.match_color('salmon', 'magma') -Expecting: - 192 -ok -Trying: - print vcs.match_color('red', 'rainbow') -Expecting: - 242 -ok -Trying: - print vcs.match_color([0,0,100],'default') # closest color from blue -Expecting: - 52 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('meshfill') # Show all meshfill graphics methods -Expecting: - *******************Meshfill Names List********************** - ... - *******************End Meshfill Names List********************** -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - slab = f('clt') # use data file to create a cdms2 slab -Expecting nothing -ok -Trying: - m=a.getmeshfill() # Create instance of 'default' -Expecting nothing -ok -Trying: - a.meshfill(slab,m) # Plot with default mesh & template -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - p='a_polar_meshfill' # will use this to plot -Expecting nothing -ok -Trying: - a.meshfill(slab,m,'quick', p) # polar mesh, quick template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ln=a.getline('red') # Get a VCS line object -Expecting nothing -ok -Trying: - a.objecthelp(ln) # This will print out information on how to use ln -Expecting: - - ... The Line object ... -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.open() -Expecting nothing -ok -Trying: - a.open(800,600) -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.orientation() # Show current orientation of the canvas -Expecting: - 'landscape' -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.pdf('example') # Overwrite a postscript file -Expecting nothing -ok -Trying: - a.pdf('example', width=11.5, height= 8.5) # US Legal -Expecting nothing -ok -Trying: - a.pdf('example', width=21, height=29.7, units='cm') # A4 -Expecting nothing -ok -Trying: - import numpy -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('template') # list vcs template types -Expecting: - *******************Template Names List********************** - ... - *******************End Template Names List********************** -ok -Trying: - a.show('boxfill') # one of many graphics method types -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - array1 = numpy.array([range(10) for _ in range(10)]) # data -Expecting nothing -ok -Trying: - a.plot(variable=array1) -Expecting: - -ok -Trying: - a.plot(array1,'ASD',gm='boxfill') # boxfill, ASD template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(slab1) # default settings for template and boxfill -Expecting: - -ok -Trying: - a.plot(slab1,'polar','isofill','polar') # specify template and graphics method -Expecting: - -ok -Trying: - t=a.gettemplate('polar') # get the polar template -Expecting nothing -ok -Trying: - vec=a.getvector() # get default vector -Expecting nothing -ok -Trying: - a.plot(slab1, slab2, t, vec) # plot data as vector using polar template -Expecting: - -ok -Trying: - a.clear() # clear the VCS Canvas of all plots -Expecting nothing -ok -Trying: - box=a.getboxfill() # get default boxfill graphics method -Expecting nothing -ok -Trying: - a.plot(box,t,slab2) # plot data with boxfill and polar -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.png('example') # Overwrite a png file -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.portrait() # Change the VCS Canvas orientation and set object flag to portrait -Expecting nothing -ok -Trying: - a.portrait(clear=1) # Change the VCS Canvas to portrait and clear the page -Expecting nothing -ok -Trying: - a.portrait(width = 337, height = 400) # Change to portrait and set the window size -Expecting nothing -ok -Trying: - a.portrait(x=100, y = 200) # Change to portrait and set the x and y screen position -Expecting nothing -ok -Trying: - a.portrait(width = 337, height = 400, x=100, y = 200, clear=1) # portrait, with more specifications -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.postscript('example') # Overwrite a postscript file -Expecting nothing -ok -Trying: - a.postscript('example', 'a') # Append postscript to an existing file -Expecting nothing -ok -Trying: - a.postscript('example', 'r') # Overwrite an existing file -Expecting nothing -ok -Trying: - a.postscript('example', mode='a') # Append postscript to an existing file -Expecting nothing -ok -Trying: - a.postscript('example', width=11.5, height= 8.5) # US Legal (default) -Expecting nothing -ok -Trying: - a.postscript('example', width=21, height=29.7, units='cm') # A4 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.pstogif('filename.ps') # convert the postscript file to a gif file -Expecting nothing -ok -Trying: - a.pstogif('filename.ps','l') # convert the postscript file to a gif file (l=landscape) -Expecting nothing -ok -Trying: - a.pstogif('filename.ps','p') # convert the postscript file to a gif file (p=portrait) -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array=[range(10) for i in range(10)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.png("bars.png") # make a png named 'bars.png' -Expecting nothing -ok -Trying: - a.clear() # clear the bars off the canvas -Expecting nothing -ok -Trying: - a.put_png_on_canvas("bars.png") # put 'bars.png' on canvas -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.open() -Expecting nothing -ok -Trying: - a.raisecanvas() # canvas should now be at the top -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.return_display_names() # new canvas should have none -Expecting: - [] -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - plot=a.plot(array) # store plot for reference to plot name -Expecting nothing -ok -Trying: - a.return_display_names() # has display name for new plot -Expecting: - [...] -ok -Trying: - a.remove_display_name(plot.name) -Expecting nothing -ok -Trying: - a.return_display_names() # should be empty again -Expecting: - [] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - iso=a.createisoline('dean') # Create an instance of an isoline object -Expecting nothing -ok -Trying: - a.removeobject(iso) # Remove isoline object from VCS list -Expecting: - 'Removed isoline object dean' -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.return_display_names() # new canvas should have none -Expecting: - [] -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.return_display_names() # has display name for new plot -Expecting: - [...] -ok -Trying: - b=vcs.createboxfill() -Expecting nothing -ok -Trying: - b.rename('MyBoxfill') # graphic method is now preserved -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('3d_scalar') # Show all 3d_scalars -Expecting: - *******************3d_scalar Names List********************** - ... - *******************End 3d_scalar Names List********************** -ok -Trying: - ds=a.get3d_scalar() # default 3d_scalar -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file -Expecting nothing -ok -Trying: - s = f('clt') # use data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.scalar3d(ds,s) # Plot slab with defaults -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1412, in vcs.Canvas.Canvas.scalar3d -Failed example: - a.scalar3d(ds,s) # Plot slab with defaults -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('scatter') # Show all the existing scatter graphics methods -Expecting: - *******************Scatter Names List********************** - ... - *******************End Scatter Names List********************** -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.scatter(slab1, slab2) # Plot array using specified sct and default template -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - template=a.gettemplate('hovmuller') -Expecting nothing -ok -Trying: - a.scatter(slab1, slab2, template) # Plot array using specified sct and template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - i=a.createisoline('dean') # default isoline object instance -Expecting nothing -ok -Trying: - a.scriptobject(i,'ex_isoline.py') # Save to 'isoline.py' -Expecting nothing -ok -Trying: - a.scriptobject(i,'ex_isoline2') # Save to 'isoline2.json' -Expecting nothing -ok -Trying: - b=vcs.createboxfill('new_box') -Expecting nothing -ok -Trying: - b.script('new_box') # json representation of 'new_box' -Expecting nothing -ok -Trying: - bfs=vcs.listelements('boxfill') # list all boxfills -Expecting nothing -ok -Trying: - i=bfs.index('new_box') -Expecting nothing -ok -Trying: - bfs[i] # shows 'new_box' exists -Expecting: - 'new_box' -ok -Trying: - vcs.removeobject(b) # remove new_box -Expecting: - 'Removed boxfill object new_box' -ok -Trying: - bfs=vcs.listelements('boxfill') # list all boxfills -Expecting nothing -ok -Trying: - try: - bfs.index('new_box') - except: - print ("boxfill 'new_box' doesn't exist") -Expecting: - boxfill 'new_box' doesn't exist -ok -Trying: - vcs.scriptrun('new_box.json') # re-creates 'new_box' -Expecting nothing -ok -Trying: - bfs=vcs.listelements('boxfill') # list all boxfills -Expecting nothing -ok -Trying: - i=bfs.index('new_box') -Expecting nothing -ok -Trying: - bfs[i] # shows 'new_box' exists (again) -Expecting: - 'new_box' -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.setantialiasing(20) -Expecting nothing -ok -Trying: - a.getantialiasing() -Expecting: - 20 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.setbgoutputdimensions(width=11.5, height= 8.5) # US Legal -Expecting nothing -ok -Trying: - a.setbgoutputdimensions(width=21, height=29.7, units='cm') # A4 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a.setcolormap("AMIP") -Expecting nothing -ok -Trying: - a.setcolorcell(11,0,0,0) -Expecting nothing -ok -Trying: - a.setcolorcell(21,100,0,0) -Expecting nothing -ok -Trying: - a.setcolorcell(31,0,100,0) -Expecting nothing -ok -Trying: - a.setcolorcell(41,0,0,100) -Expecting nothing -ok -Trying: - a.setcolorcell(51,100,100,100) -Expecting nothing -ok -Trying: - a.setcolorcell(61,70,70,70) -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a.setcolormap("AMIP") -Expecting nothing -ok -Trying: - a.plot(array,'default','isofill','quick') -Expecting: - -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - line = vcs.createline() -Expecting nothing -ok -Trying: - line.width = 5 -Expecting nothing -ok -Trying: - a.setcontinentsline(line) # Use custom continents line -Expecting nothing -ok -Trying: - a.setcontinentsline("default") # Use default line -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.setcontinentstype(4) # "Political Borders" -Expecting nothing -ok -Trying: - import cdms2 # We need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - v = f('v') # use the data file to create a slab -Expecting nothing -ok -Trying: - a.plot(v,'default','isofill','quick') # map with borders -Expecting: - -ok -Trying: - vcs.show() # show all vcs object types -Expecting: - ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', ...] -ok -Trying: - vcs.show('boxfill') # List boxfill objects -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - vcs.show('3d_vector') # List 3d_vector objects -Expecting: - *******************3d_vector Names List********************** - ... - *******************End 3d_vector Names List********************** -ok -Trying: - vcs.show('3d_scalar') # List 3d_scalar objects -Expecting: - *******************3d_scalar Names List********************** - ... - *******************End 3d_scalar Names List********************** -ok -Trying: - vcs.show('3d_dual_scalar') # List 3d_dual_scalar objects -Expecting: - *******************3d_dual_scalar Names List********************** - ... - *******************End 3d_dual_scalar Names List********************** -ok -Trying: - vcs.show('1d') # List 1d objects -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array = [range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.plot(array) -Expecting: - -ok -Trying: - a.svg('example') # Overwrite a postscript file -Expecting nothing -ok -Trying: - a.svg('example', width=11.5, height= 8.5) # US Legal -Expecting nothing -ok -Trying: - a.svg('example', width=21, height=29.7, units='cm') # A4 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - maths1 = a.getfontnumber('Maths1') # store font number -Expecting nothing -ok -Trying: - maths2 = a.getfontnumber('Maths2') # store font number -Expecting nothing -ok -Trying: - a.switchfonts('Maths1','Maths2') # switch font numbers -Expecting nothing -ok -Trying: - new_maths1 = a.getfontnumber('Maths1') -Expecting nothing -ok -Trying: - new_maths2 = a.getfontnumber('Maths2') -Expecting nothing -ok -Trying: - maths1 == new_maths2 and maths2 == new_maths1 # check -Expecting: - True -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('taylordiagram') # Show all the existing taylordiagram graphics methods -Expecting: - *******************Taylordiagram Names List********************** - ... - *******************End Taylordiagram Names List********************** -ok -Trying: - td= a.gettaylordiagram() # Create instance of 'default' -Expecting nothing -ok -Trying: - array=[range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.taylordiagram(array,td) # Plot array using specified iso and default template -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - template=a.gettemplate('hovmuller') -Expecting nothing -ok -Trying: - a.taylordiagram(array,td,template) # Plot array using specified iso and template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.clean_auto_generated_objects() -Expecting nothing -ok -Trying: - a.show('texttable') # Show all the existing texttable objects -Expecting: - *******************Texttable Names List********************** - ... - *******************End Texttable Names List********************** -ok -Trying: - a.show('textorientation') # Show all the existing textorientation objects -Expecting: - *******************Textorientation Names List********************** - ... - *******************End Textorientation Names List********************** -ok -Trying: - vcs.createtext('qa_tta', 'qa', '7left_tto', '7left') # Create instance of 'std_tt' and '7left_to' -Expecting: - -ok -Trying: - tc=a.gettext('qa_tta', '7left_tto') -Expecting nothing -ok -Trying: - tc.string='Text1' # Show the string "Text1" on the VCS Canvas -Expecting nothing -ok -Trying: - tc.font=2 # Set the text size -Expecting nothing -ok -Trying: - tc.color=242 # Set the text color -Expecting nothing -ok -Trying: - tc.angle=45 # Set the text angle -Expecting nothing -ok -Trying: - tc.x=[0.5] -Expecting nothing -ok -Trying: - tc.y=[0.5] -Expecting nothing -ok -Trying: - a.textcombined(tc) # Plot using specified text object -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # We need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - s = f('clt') # use the data file to create a slab -Expecting nothing -ok -Trying: - a.plot(s,'default','boxfill','quick') -Expecting: - -ok -Trying: - a.mode = 0 # Go to manual mode -Expecting nothing -ok -Trying: - box=a.getboxfill('quick') -Expecting nothing -ok -Trying: - box.color_1=100 -Expecting nothing -ok -Trying: - box.xticlabels('lon30','lon30') -Expecting nothing -ok -Trying: - box.xticlabels('','') -Expecting nothing -ok -Trying: - box.datawc(1e20,1e20,1e20,1e20) -Expecting nothing -ok -Trying: - box.datawc(-45.0, 45.0, -90.0, 90.0) -Expecting nothing -ok -Trying: - a.update() # Update the changes manually -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('vector') # Show all the existing vector graphics methods -Expecting: - *******************Vector Names List********************** - ... - *******************End Vector Names List********************** -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # vector needs 2 slabs, so get another -Expecting nothing -ok -Trying: - a.vector(slab1, slab2) # plot vector using slab and default vector -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - template=a.gettemplate('hovmuller') -Expecting nothing -ok -Trying: - a.vector(slab1, slab2, template) # Plot array using default vector and specified template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('3d_vector') # Show all 3d_vectors -Expecting: - *******************3d_vector Names List********************** - ... - *******************End 3d_vector Names List********************** -ok -Trying: - dv3=a.get3d_vector() # default 3d_vector -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file -Expecting nothing -ok -Trying: - s = f('u') # use data file to create a cdms2 slab -Expecting nothing -ok -Trying: - s2 = f('v') # need two slabs, so get another -Expecting nothing -ok -Trying: - a.vector3d(dv3,s,s2) # Plot slabs -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/Canvas.py", line 1455, in vcs.Canvas.Canvas.vector3d -Failed example: - a.vector3d(dv3,s,s2) # Plot slabs -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('xvsy') # Show all the existing XvsY graphics methods -Expecting: - *******************Xvsy Names List********************** - ... - *******************End Xvsy Names List********************** -ok -Trying: - xy=a.getxvsy('default_xvsy_') # Create instance of default xvsy -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # use cdms2 to open a data file -Expecting nothing -ok -Trying: - slab1 = f('u') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - slab2 = f('v') # use the data file to create a cdms2 slab -Expecting nothing -ok -Trying: - a.xvsy(slab1,slab2,xy) # Plot array using specified xy and default template -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - template=a.gettemplate('hovmuller') -Expecting nothing -ok -Trying: - a.xvsy(slab1,slab2,xy,template) # Plot array using specified xy and template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('xyvsy') # Show all the existing Xyvsy graphics methods -Expecting: - *******************Xyvsy Names List********************** - ... - *******************End Xyvsy Names List********************** -ok -Trying: - xyy=a.getxyvsy('default_xyvsy_') # Create instance of default xyvsy -Expecting nothing -ok -Trying: - array=[range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.xyvsy(array,xyy) # Plot array using specified xyy and default template -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - template=a.gettemplate('hovmuller') -Expecting nothing -ok -Trying: - a.xyvsy(array,xyy,template) # Plot array using specified xyy and template -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('yxvsx') # Show all the existing Yxvsx graphics methods -Expecting: - *******************Yxvsx Names List********************** - ... - *******************End Yxvsx Names List********************** -ok -Trying: - yxx=a.getyxvsx('default_yxvsx_') # Create instance of default yxvsx -Expecting nothing -ok -Trying: - array=[range(1, 11) for _ in range(1, 11)] -Expecting nothing -ok -Trying: - a.yxvsx(array,yxx) # Plot array using specified yxx and default template -Expecting: - -ok -Trying: - a.clear() # Clear VCS canvas -Expecting nothing -ok -Trying: - template=a.gettemplate('hovmuller') -Expecting nothing -ok -Trying: - a.yxvsx(array,yxx,template) # Plot array using specified yxx and template -Expecting: - -ok -78 items had no tests: - vcs.Canvas - vcs.Canvas.Canvas - vcs.Canvas.Canvas._Canvas__new_elts - vcs.Canvas.Canvas._Canvas__plot - vcs.Canvas.Canvas.__init__ - vcs.Canvas.Canvas._compute_margins - vcs.Canvas.Canvas._compute_width_height - vcs.Canvas.Canvas._continentspath - vcs.Canvas.Canvas._datawc_tv - vcs.Canvas.Canvas._get_user_actions - vcs.Canvas.Canvas._get_user_actions_names - vcs.Canvas.Canvas._getanimate - vcs.Canvas.Canvas._getanimate_info - vcs.Canvas.Canvas._getcanvas - vcs.Canvas.Canvas._getisplottinggridded - vcs.Canvas.Canvas._getmode - vcs.Canvas.Canvas._getpausetime - vcs.Canvas.Canvas._getvarglist - vcs.Canvas.Canvas._getviewport - vcs.Canvas.Canvas._getwinfo_id - vcs.Canvas.Canvas._getworldcoordinate - vcs.Canvas.Canvas._reconstruct_tv - vcs.Canvas.Canvas._scriptrun - vcs.Canvas.Canvas._set_user_actions - vcs.Canvas.Canvas._set_user_actions_names - vcs.Canvas.Canvas._setanimate - vcs.Canvas.Canvas._setanimate_info - vcs.Canvas.Canvas._setcanvas - vcs.Canvas.Canvas._setisplottinggridded - vcs.Canvas.Canvas._setmode - vcs.Canvas.Canvas._setpausetime - vcs.Canvas.Canvas._setvarglist - vcs.Canvas.Canvas._setviewport - vcs.Canvas.Canvas._setwinfo_id - vcs.Canvas.Canvas._setworldcoordinate - vcs.Canvas.Canvas.addfont - vcs.Canvas.Canvas.animate - vcs.Canvas.Canvas.animate_info - vcs.Canvas.Canvas.canvas - vcs.Canvas.Canvas.cgm - vcs.Canvas.Canvas.configure - vcs.Canvas.Canvas.copyfontto - vcs.Canvas.Canvas.endconfigure - vcs.Canvas.Canvas.get_selected_display - vcs.Canvas.Canvas.getplot - vcs.Canvas.Canvas.gif - vcs.Canvas.Canvas.grid - vcs.Canvas.Canvas.gs - vcs.Canvas.Canvas.interact - vcs.Canvas.Canvas.isplottinggridded - vcs.Canvas.Canvas.mode - vcs.Canvas.Canvas.onClosing - vcs.Canvas.Canvas.pause_time - vcs.Canvas.Canvas.plot_annotation - vcs.Canvas.Canvas.plot_filledcontinents - vcs.Canvas.Canvas.processParameterChange - vcs.Canvas.Canvas.removeP - vcs.Canvas.Canvas.savecontinentstype - vcs.Canvas.Canvas.setAnimationStepper - vcs.Canvas.Canvas.setdefaultfont - vcs.Canvas.Canvas.start - vcs.Canvas.Canvas.updateorientation - vcs.Canvas.Canvas.user_actions - vcs.Canvas.Canvas.user_actions_names - vcs.Canvas.Canvas.varglist - vcs.Canvas.Canvas.viewport - vcs.Canvas.Canvas.winfo_id - vcs.Canvas.Canvas.worldcoordinate - vcs.Canvas.SIGNAL - vcs.Canvas.SIGNAL.__call__ - vcs.Canvas.SIGNAL.__init__ - vcs.Canvas.SIGNAL.clear - vcs.Canvas.SIGNAL.connect - vcs.Canvas.SIGNAL.disconnect - vcs.Canvas._determine_arg_list - vcs.Canvas._process_keyword - vcs.Canvas.change_date_time - vcs.Canvas.dictionarytovcslist -119 items passed all tests: - 14 tests in vcs.Canvas.Canvas.boxfill - 2 tests in vcs.Canvas.Canvas.canvasid - 5 tests in vcs.Canvas.Canvas.canvasinfo - 6 tests in vcs.Canvas.Canvas.change_display_graphic_method - 4 tests in vcs.Canvas.Canvas.check_name_source - 11 tests in vcs.Canvas.Canvas.clean_auto_generated_objects - 4 tests in vcs.Canvas.Canvas.clear - 4 tests in vcs.Canvas.Canvas.close - 4 tests in vcs.Canvas.Canvas.create1d - 3 tests in vcs.Canvas.Canvas.create3d_dual_scalar - 3 tests in vcs.Canvas.Canvas.create3d_scalar - 3 tests in vcs.Canvas.Canvas.create3d_vector - 5 tests in vcs.Canvas.Canvas.createboxfill - 5 tests in vcs.Canvas.Canvas.createcolormap - 3 tests in vcs.Canvas.Canvas.createfillarea - 5 tests in vcs.Canvas.Canvas.createisofill - 5 tests in vcs.Canvas.Canvas.createisoline - 5 tests in vcs.Canvas.Canvas.createline - 5 tests in vcs.Canvas.Canvas.createmarker - 5 tests in vcs.Canvas.Canvas.createmeshfill - 5 tests in vcs.Canvas.Canvas.createprojection - 3 tests in vcs.Canvas.Canvas.createscatter - 3 tests in vcs.Canvas.Canvas.createtaylordiagram - 5 tests in vcs.Canvas.Canvas.createtemplate - 5 tests in vcs.Canvas.Canvas.createtextorientation - 5 tests in vcs.Canvas.Canvas.createtexttable - 3 tests in vcs.Canvas.Canvas.createvector - 3 tests in vcs.Canvas.Canvas.createxvsy - 3 tests in vcs.Canvas.Canvas.createxyvsy - 3 tests in vcs.Canvas.Canvas.createyxvsx - 4 tests in vcs.Canvas.Canvas.destroy - 4 tests in vcs.Canvas.Canvas.drawfillarea - 4 tests in vcs.Canvas.Canvas.drawline - 3 tests in vcs.Canvas.Canvas.drawlogooff - 3 tests in vcs.Canvas.Canvas.drawlogoon - 4 tests in vcs.Canvas.Canvas.drawmarker - 6 tests in vcs.Canvas.Canvas.drawtext - 3 tests in vcs.Canvas.Canvas.dummy_user_action - 9 tests in vcs.Canvas.Canvas.eps - 10 tests in vcs.Canvas.Canvas.ffmpeg - 9 tests in vcs.Canvas.Canvas.fillarea - 4 tests in vcs.Canvas.Canvas.flush - 4 tests in vcs.Canvas.Canvas.geometry - 2 tests in vcs.Canvas.Canvas.get1d - 3 tests in vcs.Canvas.Canvas.getantialiasing - 9 tests in vcs.Canvas.Canvas.getboxfill - 4 tests in vcs.Canvas.Canvas.getcolorcell - 4 tests in vcs.Canvas.Canvas.getcolormap - 4 tests in vcs.Canvas.Canvas.getcolormapname - 3 tests in vcs.Canvas.Canvas.getcontinentsline - 3 tests in vcs.Canvas.Canvas.getcontinentstype - 4 tests in vcs.Canvas.Canvas.getdrawlogo - 4 tests in vcs.Canvas.Canvas.getfillarea - 7 tests in vcs.Canvas.Canvas.getfont - 2 tests in vcs.Canvas.Canvas.getfontname - 2 tests in vcs.Canvas.Canvas.getfontnumber - 9 tests in vcs.Canvas.Canvas.getisofill - 9 tests in vcs.Canvas.Canvas.getisoline - 6 tests in vcs.Canvas.Canvas.getline - 6 tests in vcs.Canvas.Canvas.getmarker - 9 tests in vcs.Canvas.Canvas.getmeshfill - 7 tests in vcs.Canvas.Canvas.getprojection - 8 tests in vcs.Canvas.Canvas.getscatter - 5 tests in vcs.Canvas.Canvas.gettaylordiagram - 7 tests in vcs.Canvas.Canvas.gettemplate - 5 tests in vcs.Canvas.Canvas.gettextcombined - 6 tests in vcs.Canvas.Canvas.gettextextent - 4 tests in vcs.Canvas.Canvas.gettextorientation - 4 tests in vcs.Canvas.Canvas.gettexttable - 8 tests in vcs.Canvas.Canvas.getvector - 8 tests in vcs.Canvas.Canvas.getxvsy - 7 tests in vcs.Canvas.Canvas.getxyvsy - 7 tests in vcs.Canvas.Canvas.getyxvsx - 4 tests in vcs.Canvas.Canvas.initLogoDrawing - 4 tests in vcs.Canvas.Canvas.islandscape - 10 tests in vcs.Canvas.Canvas.isofill - 8 tests in vcs.Canvas.Canvas.isoline - 5 tests in vcs.Canvas.Canvas.isopened - 4 tests in vcs.Canvas.Canvas.isportrait - 8 tests in vcs.Canvas.Canvas.landscape - 9 tests in vcs.Canvas.Canvas.line - 2 tests in vcs.Canvas.Canvas.listelements - 9 tests in vcs.Canvas.Canvas.marker - 4 tests in vcs.Canvas.Canvas.match_color - 10 tests in vcs.Canvas.Canvas.meshfill - 3 tests in vcs.Canvas.Canvas.objecthelp - 3 tests in vcs.Canvas.Canvas.open - 2 tests in vcs.Canvas.Canvas.orientation - 6 tests in vcs.Canvas.Canvas.pdf - 20 tests in vcs.Canvas.Canvas.plot - 4 tests in vcs.Canvas.Canvas.png - 8 tests in vcs.Canvas.Canvas.portrait - 9 tests in vcs.Canvas.Canvas.postscript - 6 tests in vcs.Canvas.Canvas.pstogif - 6 tests in vcs.Canvas.Canvas.put_png_on_canvas - 3 tests in vcs.Canvas.Canvas.raisecanvas - 7 tests in vcs.Canvas.Canvas.remove_display_name - 3 tests in vcs.Canvas.Canvas.removeobject - 5 tests in vcs.Canvas.Canvas.return_display_names - 2 tests in vcs.Canvas.Canvas.saveinitialfile - 10 tests in vcs.Canvas.Canvas.scatter - 4 tests in vcs.Canvas.Canvas.scriptobject - 12 tests in vcs.Canvas.Canvas.scriptrun - 3 tests in vcs.Canvas.Canvas.setantialiasing - 3 tests in vcs.Canvas.Canvas.setbgoutputdimensions - 11 tests in vcs.Canvas.Canvas.setcolorcell - 5 tests in vcs.Canvas.Canvas.setcolormap - 5 tests in vcs.Canvas.Canvas.setcontinentsline - 6 tests in vcs.Canvas.Canvas.setcontinentstype - 6 tests in vcs.Canvas.Canvas.show - 6 tests in vcs.Canvas.Canvas.svg - 7 tests in vcs.Canvas.Canvas.switchfonts - 8 tests in vcs.Canvas.Canvas.taylordiagram - 13 tests in vcs.Canvas.Canvas.text - 13 tests in vcs.Canvas.Canvas.update - 10 tests in vcs.Canvas.Canvas.vector - 11 tests in vcs.Canvas.Canvas.xvsy - 8 tests in vcs.Canvas.Canvas.xyvsy - 8 tests in vcs.Canvas.Canvas.yxvsx -********************************************************************** -8 items had failures: - 1 of 3 in vcs.Canvas.Canvas.createtext - 3 of 11 in vcs.Canvas.Canvas.dual_scalar3d - 1 of 8 in vcs.Canvas.Canvas.get3d_dual_scalar - 1 of 7 in vcs.Canvas.Canvas.get3d_scalar - 1 of 8 in vcs.Canvas.Canvas.get3d_vector - 1 of 4 in vcs.Canvas.Canvas.isinfile - 3 of 10 in vcs.Canvas.Canvas.scalar3d - 3 of 11 in vcs.Canvas.Canvas.vector3d -747 tests in 205 items. -733 passed and 14 failed. -***Test Failed*** 14 failures. diff --git a/docs/doctest_info/reports/Pboxeslines.report b/docs/doctest_info/reports/Pboxeslines.report deleted file mode 100644 index f44c6c085..000000000 --- a/docs/doctest_info/reports/Pboxeslines.report +++ /dev/null @@ -1,14 +0,0 @@ -10 items had no tests: - vcs.Pboxeslines - vcs.Pboxeslines.Pbl - vcs.Pboxeslines.Pbl.__init__ - vcs.Pboxeslines.Pbl.line - vcs.Pboxeslines.Pbl.list - vcs.Pboxeslines.Pbl.priority - vcs.Pboxeslines.Pbl.x1 - vcs.Pboxeslines.Pbl.x2 - vcs.Pboxeslines.Pbl.y1 - vcs.Pboxeslines.Pbl.y2 -0 tests in 10 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/Pdata.report b/docs/doctest_info/reports/Pdata.report deleted file mode 100644 index 0f53231f4..000000000 --- a/docs/doctest_info/reports/Pdata.report +++ /dev/null @@ -1,13 +0,0 @@ -9 items had no tests: - vcs.Pdata - vcs.Pdata.Pds - vcs.Pdata.Pds.__init__ - vcs.Pdata.Pds.list - vcs.Pdata.Pds.priority - vcs.Pdata.Pds.x1 - vcs.Pdata.Pds.x2 - vcs.Pdata.Pds.y1 - vcs.Pdata.Pds.y2 -0 tests in 9 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/Pformat.report b/docs/doctest_info/reports/Pformat.report deleted file mode 100644 index 705d8804d..000000000 --- a/docs/doctest_info/reports/Pformat.report +++ /dev/null @@ -1,16 +0,0 @@ -12 items had no tests: - vcs.Pformat - vcs.Pformat.Pf - vcs.Pformat.Pf.__init__ - vcs.Pformat.Pf._getformat - vcs.Pformat.Pf._setformat - vcs.Pformat.Pf.format - vcs.Pformat.Pf.list - vcs.Pformat.Pf.priority - vcs.Pformat.Pf.textorientation - vcs.Pformat.Pf.texttable - vcs.Pformat.Pf.x - vcs.Pformat.Pf.y -0 tests in 12 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/Plegend.report b/docs/doctest_info/reports/Plegend.report deleted file mode 100644 index 6fab3ae67..000000000 --- a/docs/doctest_info/reports/Plegend.report +++ /dev/null @@ -1,18 +0,0 @@ -14 items had no tests: - vcs.Plegend - vcs.Plegend.Pls - vcs.Plegend.Pls.__init__ - vcs.Plegend.Pls.arrow - vcs.Plegend.Pls.line - vcs.Plegend.Pls.list - vcs.Plegend.Pls.offset - vcs.Plegend.Pls.priority - vcs.Plegend.Pls.textorientation - vcs.Plegend.Pls.texttable - vcs.Plegend.Pls.x1 - vcs.Plegend.Pls.x2 - vcs.Plegend.Pls.y1 - vcs.Plegend.Pls.y2 -0 tests in 14 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/Ptext.report b/docs/doctest_info/reports/Ptext.report deleted file mode 100644 index 1cf3e141e..000000000 --- a/docs/doctest_info/reports/Ptext.report +++ /dev/null @@ -1,13 +0,0 @@ -9 items had no tests: - vcs.Ptext - vcs.Ptext.Pt - vcs.Ptext.Pt.__init__ - vcs.Ptext.Pt.list - vcs.Ptext.Pt.priority - vcs.Ptext.Pt.textorientation - vcs.Ptext.Pt.texttable - vcs.Ptext.Pt.x - vcs.Ptext.Pt.y -0 tests in 9 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/Pxlabels.report b/docs/doctest_info/reports/Pxlabels.report deleted file mode 100644 index 9925e7be9..000000000 --- a/docs/doctest_info/reports/Pxlabels.report +++ /dev/null @@ -1,12 +0,0 @@ -8 items had no tests: - vcs.Pxlabels - vcs.Pxlabels.Pxl - vcs.Pxlabels.Pxl.__init__ - vcs.Pxlabels.Pxl.list - vcs.Pxlabels.Pxl.priority - vcs.Pxlabels.Pxl.textorientation - vcs.Pxlabels.Pxl.texttable - vcs.Pxlabels.Pxl.y -0 tests in 8 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/Pxtickmarks.report b/docs/doctest_info/reports/Pxtickmarks.report deleted file mode 100644 index 2a8730005..000000000 --- a/docs/doctest_info/reports/Pxtickmarks.report +++ /dev/null @@ -1,12 +0,0 @@ -8 items had no tests: - vcs.Pxtickmarks - vcs.Pxtickmarks.Pxt - vcs.Pxtickmarks.Pxt.__init__ - vcs.Pxtickmarks.Pxt.line - vcs.Pxtickmarks.Pxt.list - vcs.Pxtickmarks.Pxt.priority - vcs.Pxtickmarks.Pxt.y1 - vcs.Pxtickmarks.Pxt.y2 -0 tests in 8 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/Pylabels.report b/docs/doctest_info/reports/Pylabels.report deleted file mode 100644 index b1f5ecec5..000000000 --- a/docs/doctest_info/reports/Pylabels.report +++ /dev/null @@ -1,12 +0,0 @@ -8 items had no tests: - vcs.Pylabels - vcs.Pylabels.Pyl - vcs.Pylabels.Pyl.__init__ - vcs.Pylabels.Pyl.list - vcs.Pylabels.Pyl.priority - vcs.Pylabels.Pyl.textorientation - vcs.Pylabels.Pyl.texttable - vcs.Pylabels.Pyl.x -0 tests in 8 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/Pytickmarks.report b/docs/doctest_info/reports/Pytickmarks.report deleted file mode 100644 index a129bdcf5..000000000 --- a/docs/doctest_info/reports/Pytickmarks.report +++ /dev/null @@ -1,12 +0,0 @@ -8 items had no tests: - vcs.Pytickmarks - vcs.Pytickmarks.Pyt - vcs.Pytickmarks.Pyt.__init__ - vcs.Pytickmarks.Pyt.line - vcs.Pytickmarks.Pyt.list - vcs.Pytickmarks.Pyt.priority - vcs.Pytickmarks.Pyt.x1 - vcs.Pytickmarks.Pyt.x2 -0 tests in 8 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/README.md b/docs/doctest_info/reports/README.md deleted file mode 100644 index 0c61d64c1..000000000 --- a/docs/doctest_info/reports/README.md +++ /dev/null @@ -1,6 +0,0 @@ -Doctest Report Logs -------------------- - -The $MODULE_NAME.report files contain the full output for doctests run through doctest_vcs.py. -Mainly they are generated so that a more readable .md file can be created, but they are handy to look through -if you need more detail on what is going on during the doctest process. diff --git a/docs/doctest_info/reports/VCS_validation_functions.report b/docs/doctest_info/reports/VCS_validation_functions.report deleted file mode 100644 index cac2d926f..000000000 --- a/docs/doctest_info/reports/VCS_validation_functions.report +++ /dev/null @@ -1,103 +0,0 @@ -99 items had no tests: - vcs.VCS_validation_functions - vcs.VCS_validation_functions.DMS2deg - vcs.VCS_validation_functions.PPE - vcs.VCS_validation_functions.PPE.__init__ - vcs.VCS_validation_functions.PPE.__str__ - vcs.VCS_validation_functions._getLine - vcs.VCS_validation_functions._getX - vcs.VCS_validation_functions._getX2 - vcs.VCS_validation_functions._getY - vcs.VCS_validation_functions._getY1 - vcs.VCS_validation_functions._getY2 - vcs.VCS_validation_functions._getcolormap - vcs.VCS_validation_functions._getfillareacolors - vcs.VCS_validation_functions._getfillareaopacity - vcs.VCS_validation_functions._getlegend - vcs.VCS_validation_functions._getpriority - vcs.VCS_validation_functions._getprojection - vcs.VCS_validation_functions._gettextorientation - vcs.VCS_validation_functions._gettexttable - vcs.VCS_validation_functions._getvp - vcs.VCS_validation_functions._getwc - vcs.VCS_validation_functions._setLine - vcs.VCS_validation_functions._setX - vcs.VCS_validation_functions._setX2 - vcs.VCS_validation_functions._setY - vcs.VCS_validation_functions._setY1 - vcs.VCS_validation_functions._setY2 - vcs.VCS_validation_functions._setcolormap - vcs.VCS_validation_functions._setfillareacolors - vcs.VCS_validation_functions._setfillareaopacity - vcs.VCS_validation_functions._setlegend - vcs.VCS_validation_functions._setpriority - vcs.VCS_validation_functions._setprojection - vcs.VCS_validation_functions._settexorientation - vcs.VCS_validation_functions._settextable - vcs.VCS_validation_functions._setvp - vcs.VCS_validation_functions._setwc - vcs.VCS_validation_functions.add_level_ext_1 - vcs.VCS_validation_functions.add_level_ext_2 - vcs.VCS_validation_functions.checkAxisConvert - vcs.VCS_validation_functions.checkBoolean - vcs.VCS_validation_functions.checkBoxfillType - vcs.VCS_validation_functions.checkCalendar - vcs.VCS_validation_functions.checkCallable - vcs.VCS_validation_functions.checkColor - vcs.VCS_validation_functions.checkColorList - vcs.VCS_validation_functions.checkContType - vcs.VCS_validation_functions.checkContinents - vcs.VCS_validation_functions.checkDatawc - vcs.VCS_validation_functions.checkElements - vcs.VCS_validation_functions.checkExt - vcs.VCS_validation_functions.checkFillAreaStyle - vcs.VCS_validation_functions.checkFont - vcs.VCS_validation_functions.checkFuzzyBoolean - vcs.VCS_validation_functions.checkInStringList - vcs.VCS_validation_functions.checkInStringsListInt - vcs.VCS_validation_functions.checkIndex - vcs.VCS_validation_functions.checkIndicesList - vcs.VCS_validation_functions.checkInt - vcs.VCS_validation_functions.checkIntFloat - vcs.VCS_validation_functions.checkIsolineLevels - vcs.VCS_validation_functions.checkLegend - vcs.VCS_validation_functions.checkLine - vcs.VCS_validation_functions.checkLineType - vcs.VCS_validation_functions.checkLineTypeList - vcs.VCS_validation_functions.checkListElements - vcs.VCS_validation_functions.checkListOfNumbers - vcs.VCS_validation_functions.checkListTuple - vcs.VCS_validation_functions.checkMarker - vcs.VCS_validation_functions.checkMarkersList - vcs.VCS_validation_functions.checkName - vcs.VCS_validation_functions.checkNumber - vcs.VCS_validation_functions.checkOnOff - vcs.VCS_validation_functions.checkOpacitiesList - vcs.VCS_validation_functions.checkOpacity - vcs.VCS_validation_functions.checkProjParameters - vcs.VCS_validation_functions.checkProjType - vcs.VCS_validation_functions.checkProjection - vcs.VCS_validation_functions.checkString - vcs.VCS_validation_functions.checkStringDictionary - vcs.VCS_validation_functions.checkTextOrientation - vcs.VCS_validation_functions.checkTextTable - vcs.VCS_validation_functions.checkTextsList - vcs.VCS_validation_functions.checkTicks - vcs.VCS_validation_functions.checkTimeUnits - vcs.VCS_validation_functions.checkTrueFalse - vcs.VCS_validation_functions.checkVectorAlignment - vcs.VCS_validation_functions.checkVectorType - vcs.VCS_validation_functions.checkWrap - vcs.VCS_validation_functions.checkYesNo - vcs.VCS_validation_functions.checkedRaise - vcs.VCS_validation_functions.checkname - vcs.VCS_validation_functions.color2vcs - vcs.VCS_validation_functions.deg2DMS - vcs.VCS_validation_functions.getProjType - vcs.VCS_validation_functions.isListorTuple - vcs.VCS_validation_functions.isNumber - vcs.VCS_validation_functions.matchVcsColor - vcs.VCS_validation_functions.setProjParameter -0 tests in 99 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/boxfill.report b/docs/doctest_info/reports/boxfill.report deleted file mode 100644 index e6c6d01a9..000000000 --- a/docs/doctest_info/reports/boxfill.report +++ /dev/null @@ -1,324 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - ex=a.createboxfill() -Expecting nothing -ok -Trying: - ex.colors(0, 64) # use colorcells 0-64 of colormap -Expecting nothing -ok -Trying: - a.plot(ex, array) -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.createboxfill('boxfill_dwc') -Expecting nothing -ok -Trying: - ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 -Expecting nothing -ok -Trying: - ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 -Expecting: - (0.0, 0.1, 1.0, 1.1) -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - ex=a.createboxfill() -Expecting nothing -ok -Trying: - ex.exts(True, True) # arrows on both ends -Expecting nothing -ok -Trying: - a.plot(ex, array) -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - obj=a.getboxfill() # default -Expecting nothing -ok -Trying: - obj.list() # print boxfill attributes -Expecting: - ---------- ... ---------- - ... -ok -Trying: - b=vcs.createboxfill() -Expecting nothing -ok -Trying: - b.name -Expecting: - '...' -ok -Trying: - vcs.listelements('boxfill') # list will include the name show above -Expecting: - [...] -ok -Trying: - b.rename('foo') -Expecting nothing -ok -Trying: - b.name -Expecting: - 'foo' -ok -Trying: - vcs.listelements('boxfill') # list will include 'foo', but not the old name -Expecting: - [...'foo'...] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getboxfill() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.createboxfill() -Expecting nothing -ok -Trying: - ex.xmtics("lon5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.xmintic1.priority = 1 # plotting shows xmtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.createboxfill() -Expecting nothing -ok -Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.createboxfill('boxfill_xys') # make a boxfill -Expecting nothing -ok -Trying: - ex.xyscale(xat='linear', yat='linear') -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.createboxfill() -Expecting nothing -ok -Trying: - ex.ymtics("lat5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.ymintic1.priority = 1 # plotting shows ymtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.createboxfill() -Expecting nothing -ok -Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -89 items had no tests: - vcs.boxfill - vcs.boxfill.Gfb - vcs.boxfill.Gfb.__init__ - vcs.boxfill.Gfb._getboxfilltype - vcs.boxfill.Gfb._getcalendar - vcs.boxfill.Gfb._getcolor_1 - vcs.boxfill.Gfb._getcolor_2 - vcs.boxfill.Gfb._getdatawc_x1 - vcs.boxfill.Gfb._getdatawc_x2 - vcs.boxfill.Gfb._getdatawc_y1 - vcs.boxfill.Gfb._getdatawc_y2 - vcs.boxfill.Gfb._getfillareaindices - vcs.boxfill.Gfb._getfillareastyle - vcs.boxfill.Gfb._getlevel_1 - vcs.boxfill.Gfb._getlevel_2 - vcs.boxfill.Gfb._getmissing - vcs.boxfill.Gfb._getname - vcs.boxfill.Gfb._gettimeunits - vcs.boxfill.Gfb._getxaxisconvert - vcs.boxfill.Gfb._getxmtics1 - vcs.boxfill.Gfb._getxmtics2 - vcs.boxfill.Gfb._getxticlabels1 - vcs.boxfill.Gfb._getxticlabels2 - vcs.boxfill.Gfb._getyaxisconvert - vcs.boxfill.Gfb._getymtics1 - vcs.boxfill.Gfb._getymtics2 - vcs.boxfill.Gfb._getyticlabels1 - vcs.boxfill.Gfb._getyticlabels2 - vcs.boxfill.Gfb._setboxfilltype - vcs.boxfill.Gfb._setcalendar - vcs.boxfill.Gfb._setcolor_1 - vcs.boxfill.Gfb._setcolor_2 - vcs.boxfill.Gfb._setdatawc_x1 - vcs.boxfill.Gfb._setdatawc_x2 - vcs.boxfill.Gfb._setdatawc_y1 - vcs.boxfill.Gfb._setdatawc_y2 - vcs.boxfill.Gfb._setfillareaindices - vcs.boxfill.Gfb._setfillareastyle - vcs.boxfill.Gfb._setlevel_1 - vcs.boxfill.Gfb._setlevel_2 - vcs.boxfill.Gfb._setmissing - vcs.boxfill.Gfb._setname - vcs.boxfill.Gfb._settimeunits - vcs.boxfill.Gfb._setxaxisconvert - vcs.boxfill.Gfb._setxmtics1 - vcs.boxfill.Gfb._setxmtics2 - vcs.boxfill.Gfb._setxticlabels1 - vcs.boxfill.Gfb._setxticlabels2 - vcs.boxfill.Gfb._setyaxisconvert - vcs.boxfill.Gfb._setymtics1 - vcs.boxfill.Gfb._setymtics2 - vcs.boxfill.Gfb._setyticlabels1 - vcs.boxfill.Gfb._setyticlabels2 - vcs.boxfill.Gfb.boxfill_type - vcs.boxfill.Gfb.color_1 - vcs.boxfill.Gfb.color_2 - vcs.boxfill.Gfb.colormap - vcs.boxfill.Gfb.datawc_calendar - vcs.boxfill.Gfb.datawc_timeunits - vcs.boxfill.Gfb.datawc_x1 - vcs.boxfill.Gfb.datawc_x2 - vcs.boxfill.Gfb.datawc_y1 - vcs.boxfill.Gfb.datawc_y2 - vcs.boxfill.Gfb.ext_1 - vcs.boxfill.Gfb.ext_2 - vcs.boxfill.Gfb.fillareacolors - vcs.boxfill.Gfb.fillareaindices - vcs.boxfill.Gfb.fillareaopacity - vcs.boxfill.Gfb.fillareastyle - vcs.boxfill.Gfb.getlegendlabels - vcs.boxfill.Gfb.getlevels - vcs.boxfill.Gfb.legend - vcs.boxfill.Gfb.level_1 - vcs.boxfill.Gfb.level_2 - vcs.boxfill.Gfb.levels - vcs.boxfill.Gfb.missing - vcs.boxfill.Gfb.name - vcs.boxfill.Gfb.projection - vcs.boxfill.Gfb.xaxisconvert - vcs.boxfill.Gfb.xmtics1 - vcs.boxfill.Gfb.xmtics2 - vcs.boxfill.Gfb.xticlabels1 - vcs.boxfill.Gfb.xticlabels2 - vcs.boxfill.Gfb.yaxisconvert - vcs.boxfill.Gfb.ymtics1 - vcs.boxfill.Gfb.ymtics2 - vcs.boxfill.Gfb.yticlabels1 - vcs.boxfill.Gfb.yticlabels2 - vcs.boxfill.process_src -11 items passed all tests: - 5 tests in vcs.boxfill.Gfb.colors - 4 tests in vcs.boxfill.Gfb.datawc - 5 tests in vcs.boxfill.Gfb.exts - 3 tests in vcs.boxfill.Gfb.list - 6 tests in vcs.boxfill.Gfb.rename - 4 tests in vcs.boxfill.Gfb.script - 5 tests in vcs.boxfill.Gfb.xmtics - 6 tests in vcs.boxfill.Gfb.xticlabels - 3 tests in vcs.boxfill.Gfb.xyscale - 5 tests in vcs.boxfill.Gfb.ymtics - 6 tests in vcs.boxfill.Gfb.yticlabels -52 tests in 100 items. -52 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/colormap.report b/docs/doctest_info/reports/colormap.report deleted file mode 100644 index bb108f6d4..000000000 --- a/docs/doctest_info/reports/colormap.report +++ /dev/null @@ -1,64 +0,0 @@ -Trying: - a=vcs.init() # Create a vcs Canvas -Expecting nothing -ok -Trying: - cmap = a.createcolormap('gcc_cmap') # Create a colormap -Expecting nothing -ok -Trying: - cmap.getcolorcell(1) # Get RGBA values -Expecting: - [26, 0, 33, 100] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getcolormap() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -Trying: - a = vcs.init() # Create a vcs Canvas -Expecting nothing -ok -Trying: - cmap = a.createcolormap('scc_cmap') # Create a colormap -Expecting nothing -ok -Trying: - cmap.setcolorcell(40,80,95,1.0) # Set RGBA values -Expecting nothing -ok -15 items had no tests: - vcs.colormap - vcs.colormap.Cp - vcs.colormap.Cp.__init__ - vcs.colormap.Cp.getindex - vcs.colormap.Cp.getname - vcs.colormap.Cp.index - vcs.colormap.Cp.list - vcs.colormap.Cp.name - vcs.colormap.Cp.setindex - vcs.colormap.Cp.setname - vcs.colormap.RGB_Table - vcs.colormap.RGB_Table.__getitem__ - vcs.colormap.RGB_Table.__init__ - vcs.colormap.RGB_Table.__setitem__ - vcs.colormap.process_src -3 items passed all tests: - 3 tests in vcs.colormap.Cp.getcolorcell - 4 tests in vcs.colormap.Cp.script - 3 tests in vcs.colormap.Cp.setcolorcell -10 tests in 18 items. -10 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/colors.report b/docs/doctest_info/reports/colors.report deleted file mode 100644 index d48d48aeb..000000000 --- a/docs/doctest_info/reports/colors.report +++ /dev/null @@ -1,6 +0,0 @@ -2 items had no tests: - vcs.colors - vcs.colors.matplotlib2vcs -0 tests in 2 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/configurator.report b/docs/doctest_info/reports/configurator.report deleted file mode 100644 index 7f319d308..000000000 --- a/docs/doctest_info/reports/configurator.report +++ /dev/null @@ -1,56 +0,0 @@ -52 items had no tests: - vcs.configurator - vcs.configurator.Configurator - vcs.configurator.Configurator.__init__ - vcs.configurator.Configurator.activate - vcs.configurator.Configurator.actor_at_point - vcs.configurator.Configurator.animate - vcs.configurator.Configurator.click - vcs.configurator.Configurator.create - vcs.configurator.Configurator.creator_disabled - vcs.configurator.Configurator.creator_enabled - vcs.configurator.Configurator.deactivate - vcs.configurator.Configurator.delete - vcs.configurator.Configurator.detach - vcs.configurator.Configurator.display_and_key_for_actor - vcs.configurator.Configurator.fill_click - vcs.configurator.Configurator.get_save_path - vcs.configurator.Configurator.hover - vcs.configurator.Configurator.init_buttons - vcs.configurator.Configurator.init_toolbar - vcs.configurator.Configurator.line_click - vcs.configurator.Configurator.marker_click - vcs.configurator.Configurator.place - vcs.configurator.Configurator.release - vcs.configurator.Configurator.render_window - vcs.configurator.Configurator.save - vcs.configurator.Configurator.save_animation - vcs.configurator.Configurator.save_animation_press - vcs.configurator.Configurator.save_tick - vcs.configurator.Configurator.set_animation_frame - vcs.configurator.Configurator.set_animation_speed - vcs.configurator.Configurator.set_background_blue - vcs.configurator.Configurator.set_background_green - vcs.configurator.Configurator.set_background_red - vcs.configurator.Configurator.setup_animation - vcs.configurator.Configurator.shift - vcs.configurator.Configurator.show - vcs.configurator.Configurator.start_animating - vcs.configurator.Configurator.step_back - vcs.configurator.Configurator.step_forward - vcs.configurator.Configurator.stop_animating - vcs.configurator.Configurator.text_click - vcs.configurator.Configurator.update - vcs.configurator.display_supports_animation - vcs.configurator.editable_type - vcs.configurator.get_attribute - vcs.configurator.is_box - vcs.configurator.is_label - vcs.configurator.is_point - vcs.configurator.is_point_in_box - vcs.configurator.safe_get - vcs.configurator.sync_template - vcs.configurator.vcstemp -0 tests in 52 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/displayplot.report b/docs/doctest_info/reports/displayplot.report deleted file mode 100644 index 9e6c41c0a..000000000 --- a/docs/doctest_info/reports/displayplot.report +++ /dev/null @@ -1,45 +0,0 @@ -41 items had no tests: - vcs.displayplot - vcs.displayplot.Dp - vcs.displayplot.Dp.__init__ - vcs.displayplot.Dp._get_backend - vcs.displayplot.Dp._getarray - vcs.displayplot.Dp._getcontinents - vcs.displayplot.Dp._getcontinents_line - vcs.displayplot.Dp._getg_name - vcs.displayplot.Dp._getg_type - vcs.displayplot.Dp._getname - vcs.displayplot.Dp._getnewelements - vcs.displayplot.Dp._getoff - vcs.displayplot.Dp._getpriority - vcs.displayplot.Dp._gettemplate - vcs.displayplot.Dp._gettemplate_origin - vcs.displayplot.Dp._repr_png_ - vcs.displayplot.Dp._set_backend - vcs.displayplot.Dp._setarray - vcs.displayplot.Dp._setcontinents - vcs.displayplot.Dp._setcontinents_line - vcs.displayplot.Dp._setg_name - vcs.displayplot.Dp._setg_type - vcs.displayplot.Dp._setname - vcs.displayplot.Dp._setnewelements - vcs.displayplot.Dp._setoff - vcs.displayplot.Dp._setpriority - vcs.displayplot.Dp._settemplate - vcs.displayplot.Dp._settemplate_origin - vcs.displayplot.Dp._template_origin - vcs.displayplot.Dp.array - vcs.displayplot.Dp.backend - vcs.displayplot.Dp.continents - vcs.displayplot.Dp.continents_line - vcs.displayplot.Dp.g_name - vcs.displayplot.Dp.g_type - vcs.displayplot.Dp.list - vcs.displayplot.Dp.name - vcs.displayplot.Dp.newelements - vcs.displayplot.Dp.off - vcs.displayplot.Dp.priority - vcs.displayplot.Dp.template -0 tests in 41 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/dv3d.report b/docs/doctest_info/reports/dv3d.report deleted file mode 100644 index 38bae8de1..000000000 --- a/docs/doctest_info/reports/dv3d.report +++ /dev/null @@ -1,99 +0,0 @@ -95 items had no tests: - vcs.dv3d - vcs.dv3d.Gf3DDualScalar - vcs.dv3d.Gf3DDualScalar.Animation - vcs.dv3d.Gf3DDualScalar.BasemapOpacity - vcs.dv3d.Gf3DDualScalar.Camera - vcs.dv3d.Gf3DDualScalar.ChooseColormap - vcs.dv3d.Gf3DDualScalar.Colorbar - vcs.dv3d.Gf3DDualScalar.Configure - vcs.dv3d.Gf3DDualScalar.IsosurfaceValue - vcs.dv3d.Gf3DDualScalar.PointSize - vcs.dv3d.Gf3DDualScalar.ScaleColormap - vcs.dv3d.Gf3DDualScalar.ScaleOpacity - vcs.dv3d.Gf3DDualScalar.ScaleTransferFunction - vcs.dv3d.Gf3DDualScalar.SliceThickness - vcs.dv3d.Gf3DDualScalar.ToggleClipping - vcs.dv3d.Gf3DDualScalar.ToggleSphericalProj - vcs.dv3d.Gf3DDualScalar.ToggleSurfacePlot - vcs.dv3d.Gf3DDualScalar.ToggleVolumePlot - vcs.dv3d.Gf3DDualScalar.VerticalScaling - vcs.dv3d.Gf3DDualScalar.XSlider - vcs.dv3d.Gf3DDualScalar.YSlider - vcs.dv3d.Gf3DDualScalar.ZSlider - vcs.dv3d.Gf3DDualScalar.__init__ - vcs.dv3d.Gf3Dscalar - vcs.dv3d.Gf3Dscalar.Animation - vcs.dv3d.Gf3Dscalar.BasemapOpacity - vcs.dv3d.Gf3Dscalar.Camera - vcs.dv3d.Gf3Dscalar.ChooseColormap - vcs.dv3d.Gf3Dscalar.Colorbar - vcs.dv3d.Gf3Dscalar.Configure - vcs.dv3d.Gf3Dscalar.IsosurfaceValue - vcs.dv3d.Gf3Dscalar.PointSize - vcs.dv3d.Gf3Dscalar.ScaleColormap - vcs.dv3d.Gf3Dscalar.ScaleOpacity - vcs.dv3d.Gf3Dscalar.ScaleTransferFunction - vcs.dv3d.Gf3Dscalar.SliceThickness - vcs.dv3d.Gf3Dscalar.ToggleClipping - vcs.dv3d.Gf3Dscalar.ToggleSphericalProj - vcs.dv3d.Gf3Dscalar.ToggleSurfacePlot - vcs.dv3d.Gf3Dscalar.ToggleVolumePlot - vcs.dv3d.Gf3Dscalar.VerticalScaling - vcs.dv3d.Gf3Dscalar.XSlider - vcs.dv3d.Gf3Dscalar.YSlider - vcs.dv3d.Gf3Dscalar.ZSlider - vcs.dv3d.Gf3Dscalar.__init__ - vcs.dv3d.Gf3Dvector - vcs.dv3d.Gf3Dvector.Animation - vcs.dv3d.Gf3Dvector.BasemapOpacity - vcs.dv3d.Gf3Dvector.Camera - vcs.dv3d.Gf3Dvector.ChooseColormap - vcs.dv3d.Gf3Dvector.Colorbar - vcs.dv3d.Gf3Dvector.Configure - vcs.dv3d.Gf3Dvector.IsosurfaceValue - vcs.dv3d.Gf3Dvector.PointSize - vcs.dv3d.Gf3Dvector.ScaleColormap - vcs.dv3d.Gf3Dvector.ScaleOpacity - vcs.dv3d.Gf3Dvector.ScaleTransferFunction - vcs.dv3d.Gf3Dvector.SliceThickness - vcs.dv3d.Gf3Dvector.ToggleClipping - vcs.dv3d.Gf3Dvector.ToggleSphericalProj - vcs.dv3d.Gf3Dvector.ToggleSurfacePlot - vcs.dv3d.Gf3Dvector.ToggleVolumePlot - vcs.dv3d.Gf3Dvector.VerticalScaling - vcs.dv3d.Gf3Dvector.XSlider - vcs.dv3d.Gf3Dvector.YSlider - vcs.dv3d.Gf3Dvector.ZSlider - vcs.dv3d.Gf3Dvector.__init__ - vcs.dv3d.Gfdv3d - vcs.dv3d.Gfdv3d.NumCores - vcs.dv3d.Gfdv3d.__init__ - vcs.dv3d.Gfdv3d._getNumCores - vcs.dv3d.Gfdv3d._getaxes - vcs.dv3d.Gfdv3d._getname - vcs.dv3d.Gfdv3d._setNumCores - vcs.dv3d.Gfdv3d._setaxes - vcs.dv3d.Gfdv3d._setname - vcs.dv3d.Gfdv3d.addParameters - vcs.dv3d.Gfdv3d.addPlotAttribute - vcs.dv3d.Gfdv3d.add_property - vcs.dv3d.Gfdv3d.axes - vcs.dv3d.Gfdv3d.getConfigurationData - vcs.dv3d.Gfdv3d.getConfigurationParms - vcs.dv3d.Gfdv3d.getConfigurationState - vcs.dv3d.Gfdv3d.getParameter - vcs.dv3d.Gfdv3d.getParameterList - vcs.dv3d.Gfdv3d.getPlotAttribute - vcs.dv3d.Gfdv3d.getPlotAttributes - vcs.dv3d.Gfdv3d.getStateData - vcs.dv3d.Gfdv3d.initDefaultState - vcs.dv3d.Gfdv3d.list - vcs.dv3d.Gfdv3d.name - vcs.dv3d.Gfdv3d.restoreState - vcs.dv3d.Gfdv3d.script - vcs.dv3d.Gfdv3d.setParameter - vcs.dv3d.Gfdv3d.setProvenanceHandler -0 tests in 95 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/editors.report b/docs/doctest_info/reports/editors.report deleted file mode 100644 index a5d9e9088..000000000 --- a/docs/doctest_info/reports/editors.report +++ /dev/null @@ -1,5 +0,0 @@ -1 items had no tests: - vcs.editors -0 tests in 1 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/error.report b/docs/doctest_info/reports/error.report deleted file mode 100644 index fceb46201..000000000 --- a/docs/doctest_info/reports/error.report +++ /dev/null @@ -1,8 +0,0 @@ -4 items had no tests: - vcs.error - vcs.error.vcsError - vcs.error.vcsError.__init__ - vcs.error.vcsError.__str__ -0 tests in 4 items. -0 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/fillarea.report b/docs/doctest_info/reports/fillarea.report deleted file mode 100644 index f1b751639..000000000 --- a/docs/doctest_info/reports/fillarea.report +++ /dev/null @@ -1,56 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getfillarea() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -34 items had no tests: - vcs.fillarea - vcs.fillarea.Tf - vcs.fillarea.Tf.__init__ - vcs.fillarea.Tf._getfillareacolors - vcs.fillarea.Tf._getfillareaindices - vcs.fillarea.Tf._getfillareaopacity - vcs.fillarea.Tf._getfillareastyle - vcs.fillarea.Tf._getname - vcs.fillarea.Tf._getpriority - vcs.fillarea.Tf._getx - vcs.fillarea.Tf._gety - vcs.fillarea.Tf._setfillareacolors - vcs.fillarea.Tf._setfillareaindices - vcs.fillarea.Tf._setfillareaopacity - vcs.fillarea.Tf._setfillareastyle - vcs.fillarea.Tf._setname - vcs.fillarea.Tf._setpriority - vcs.fillarea.Tf._setx - vcs.fillarea.Tf._sety - vcs.fillarea.Tf.color - vcs.fillarea.Tf.colormap - vcs.fillarea.Tf.index - vcs.fillarea.Tf.list - vcs.fillarea.Tf.name - vcs.fillarea.Tf.opacity - vcs.fillarea.Tf.priority - vcs.fillarea.Tf.projection - vcs.fillarea.Tf.style - vcs.fillarea.Tf.viewport - vcs.fillarea.Tf.worldcoordinate - vcs.fillarea.Tf.x - vcs.fillarea.Tf.y - vcs.fillarea.getmember - vcs.fillarea.process_src -1 items passed all tests: - 4 tests in vcs.fillarea.Tf.script -4 tests in 35 items. -4 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/isofill.report b/docs/doctest_info/reports/isofill.report deleted file mode 100644 index b1d03e5e3..000000000 --- a/docs/doctest_info/reports/isofill.report +++ /dev/null @@ -1,295 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - ex=a.createisofill() -Expecting nothing -ok -Trying: - ex.colors(0, 64) # use colorcells 0-64 of colormap -Expecting nothing -ok -Trying: - a.plot(ex, array) -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.createisofill('isofill_dwc') -Expecting nothing -ok -Trying: - ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 -Expecting nothing -ok -Trying: - ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 -Expecting: - (0.0, 0.1, 1.0, 1.1) -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - ex=a.createisofill() -Expecting nothing -ok -Trying: - ex.exts(True, True) # arrows on both ends -Expecting nothing -ok -Trying: - a.plot(ex, array) -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - obj=a.getisofill() # default -Expecting nothing -ok -Trying: - obj.list() # print isofill attributes -Expecting: - ---------- ... ---------- - ... -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getisofill() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 775, in vcs.isofill.Gfi.script -Failed example: - ex.script('filename.py') # append to 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # append to 'filename.py' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/isofill.py", line 856, in script - fp.write("%s.missing = %g\n" % (unique_name, self.missing)) - TypeError: float argument required, not tuple -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.createisofill() -Expecting nothing -ok -Trying: - ex.xmtics("lon5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.xmintic1.priority = 1 # plotting shows xmtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.createisofill() -Expecting nothing -ok -Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.createisofill('isofill_xys') # make a isofill -Expecting nothing -ok -Trying: - ex.xyscale(xat='linear', yat='linear') -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.createisofill() -Expecting nothing -ok -Trying: - ex.ymtics("lat5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.ymintic1.priority = 1 # plotting shows ymtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.createisofill() -Expecting nothing -ok -Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -75 items had no tests: - vcs.isofill - vcs.isofill.Gfi - vcs.isofill.Gfi.__init__ - vcs.isofill.Gfi._getcalendar - vcs.isofill.Gfi._getdatawc_x1 - vcs.isofill.Gfi._getdatawc_x2 - vcs.isofill.Gfi._getdatawc_y1 - vcs.isofill.Gfi._getdatawc_y2 - vcs.isofill.Gfi._getfillareacolors - vcs.isofill.Gfi._getfillareaindices - vcs.isofill.Gfi._getfillareastyle - vcs.isofill.Gfi._getmissing - vcs.isofill.Gfi._getname - vcs.isofill.Gfi._gettimeunits - vcs.isofill.Gfi._getxaxisconvert - vcs.isofill.Gfi._getxmtics1 - vcs.isofill.Gfi._getxmtics2 - vcs.isofill.Gfi._getxticlabels1 - vcs.isofill.Gfi._getxticlabels2 - vcs.isofill.Gfi._getyaxisconvert - vcs.isofill.Gfi._getymtics1 - vcs.isofill.Gfi._getymtics2 - vcs.isofill.Gfi._getyticlabels1 - vcs.isofill.Gfi._getyticlabels2 - vcs.isofill.Gfi._setcalendar - vcs.isofill.Gfi._setdatawc_x1 - vcs.isofill.Gfi._setdatawc_x2 - vcs.isofill.Gfi._setdatawc_y1 - vcs.isofill.Gfi._setdatawc_y2 - vcs.isofill.Gfi._setfillareacolors - vcs.isofill.Gfi._setfillareaindices - vcs.isofill.Gfi._setfillareastyle - vcs.isofill.Gfi._setmissing - vcs.isofill.Gfi._setname - vcs.isofill.Gfi._settimeunits - vcs.isofill.Gfi._setxaxisconvert - vcs.isofill.Gfi._setxmtics1 - vcs.isofill.Gfi._setxmtics2 - vcs.isofill.Gfi._setxticlabels1 - vcs.isofill.Gfi._setxticlabels2 - vcs.isofill.Gfi._setyaxisconvert - vcs.isofill.Gfi._setymtics1 - vcs.isofill.Gfi._setymtics2 - vcs.isofill.Gfi._setyticlabels1 - vcs.isofill.Gfi._setyticlabels2 - vcs.isofill.Gfi.colormap - vcs.isofill.Gfi.datawc_calendar - vcs.isofill.Gfi.datawc_timeunits - vcs.isofill.Gfi.datawc_x1 - vcs.isofill.Gfi.datawc_x2 - vcs.isofill.Gfi.datawc_y1 - vcs.isofill.Gfi.datawc_y2 - vcs.isofill.Gfi.ext_1 - vcs.isofill.Gfi.ext_2 - vcs.isofill.Gfi.fillareacolors - vcs.isofill.Gfi.fillareaindices - vcs.isofill.Gfi.fillareaopacity - vcs.isofill.Gfi.fillareastyle - vcs.isofill.Gfi.legend - vcs.isofill.Gfi.levels - vcs.isofill.Gfi.missing - vcs.isofill.Gfi.name - vcs.isofill.Gfi.projection - vcs.isofill.Gfi.xaxisconvert - vcs.isofill.Gfi.xmtics1 - vcs.isofill.Gfi.xmtics2 - vcs.isofill.Gfi.xticlabels1 - vcs.isofill.Gfi.xticlabels2 - vcs.isofill.Gfi.yaxisconvert - vcs.isofill.Gfi.ymtics1 - vcs.isofill.Gfi.ymtics2 - vcs.isofill.Gfi.yticlabels1 - vcs.isofill.Gfi.yticlabels2 - vcs.isofill.load - vcs.isofill.process_src -9 items passed all tests: - 5 tests in vcs.isofill.Gfi.colors - 4 tests in vcs.isofill.Gfi.datawc - 5 tests in vcs.isofill.Gfi.exts - 3 tests in vcs.isofill.Gfi.list - 5 tests in vcs.isofill.Gfi.xmtics - 6 tests in vcs.isofill.Gfi.xticlabels - 3 tests in vcs.isofill.Gfi.xyscale - 5 tests in vcs.isofill.Gfi.ymtics - 6 tests in vcs.isofill.Gfi.yticlabels -********************************************************************** -1 items had failures: - 1 of 4 in vcs.isofill.Gfi.script -46 tests in 85 items. -45 passed and 1 failed. -***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/isoline.report b/docs/doctest_info/reports/isoline.report deleted file mode 100644 index 2d23646d8..000000000 --- a/docs/doctest_info/reports/isoline.report +++ /dev/null @@ -1,270 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.createisoline('isoline_dwc') -Expecting nothing -ok -Trying: - ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 -Expecting nothing -ok -Trying: - ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 -Expecting: - (0.0, 0.1, 1.0, 1.1) -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - obj=a.getisoline() # default -Expecting nothing -ok -Trying: - obj.list() # print isoline attributes -Expecting: - ---------- ... ---------- - ... -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getisoline() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.createisoline() -Expecting nothing -ok -Trying: - ex.xmtics("lon5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.xmintic1.priority = 1 # plotting shows xmtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.createisoline() -Expecting nothing -ok -Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.createisoline('isoline_xys') # make a isoline -Expecting nothing -ok -Trying: - ex.xyscale(xat='linear', yat='linear') -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.createisoline() -Expecting nothing -ok -Trying: - ex.ymtics("lat5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.ymintic1.priority = 1 # plotting shows ymtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.createisoline() -Expecting nothing -ok -Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -108 items had no tests: - vcs.isoline - vcs.isoline.Gi - vcs.isoline.Gi.__init__ - vcs.isoline.Gi._getangle - vcs.isoline.Gi._getcalendar - vcs.isoline.Gi._getclockwise - vcs.isoline.Gi._getdatawc_x1 - vcs.isoline.Gi._getdatawc_x2 - vcs.isoline.Gi._getdatawc_y1 - vcs.isoline.Gi._getdatawc_y2 - vcs.isoline.Gi._getlabel - vcs.isoline.Gi._getlabelbackgroundcolors - vcs.isoline.Gi._getlabelbackgroundopacities - vcs.isoline.Gi._getlabelskipdistance - vcs.isoline.Gi._getlevels - vcs.isoline.Gi._getline - vcs.isoline.Gi._getlinecolors - vcs.isoline.Gi._getlinetypes - vcs.isoline.Gi._getlinewidths - vcs.isoline.Gi._getname - vcs.isoline.Gi._getprojection - vcs.isoline.Gi._getscale - vcs.isoline.Gi._getspacing - vcs.isoline.Gi._gettext - vcs.isoline.Gi._gettextcolors - vcs.isoline.Gi._gettimeunits - vcs.isoline.Gi._getxaxisconvert - vcs.isoline.Gi._getxmtics1 - vcs.isoline.Gi._getxmtics2 - vcs.isoline.Gi._getxticlabels1 - vcs.isoline.Gi._getxticlabels2 - vcs.isoline.Gi._getyaxisconvert - vcs.isoline.Gi._getymtics1 - vcs.isoline.Gi._getymtics2 - vcs.isoline.Gi._getyticlabels1 - vcs.isoline.Gi._getyticlabels2 - vcs.isoline.Gi._setangle - vcs.isoline.Gi._setcalendar - vcs.isoline.Gi._setclockwise - vcs.isoline.Gi._setdatawc_x1 - vcs.isoline.Gi._setdatawc_x2 - vcs.isoline.Gi._setdatawc_y1 - vcs.isoline.Gi._setdatawc_y2 - vcs.isoline.Gi._setlabel - vcs.isoline.Gi._setlabelbackgroundcolors - vcs.isoline.Gi._setlabelbackgroundopacities - vcs.isoline.Gi._setlabelskipdistance - vcs.isoline.Gi._setlevels - vcs.isoline.Gi._setline - vcs.isoline.Gi._setlinecolors - vcs.isoline.Gi._setlinetypes - vcs.isoline.Gi._setlinewidths - vcs.isoline.Gi._setname - vcs.isoline.Gi._setprojection - vcs.isoline.Gi._setscale - vcs.isoline.Gi._setspacing - vcs.isoline.Gi._settext - vcs.isoline.Gi._settextcolors - vcs.isoline.Gi._settimeunits - vcs.isoline.Gi._setxaxisconvert - vcs.isoline.Gi._setxmtics1 - vcs.isoline.Gi._setxmtics2 - vcs.isoline.Gi._setxticlabels1 - vcs.isoline.Gi._setxticlabels2 - vcs.isoline.Gi._setyaxisconvert - vcs.isoline.Gi._setymtics1 - vcs.isoline.Gi._setymtics2 - vcs.isoline.Gi._setyticlabels1 - vcs.isoline.Gi._setyticlabels2 - vcs.isoline.Gi.angle - vcs.isoline.Gi.clockwise - vcs.isoline.Gi.colormap - vcs.isoline.Gi.datawc_calendar - vcs.isoline.Gi.datawc_timeunits - vcs.isoline.Gi.datawc_x1 - vcs.isoline.Gi.datawc_x2 - vcs.isoline.Gi.datawc_y1 - vcs.isoline.Gi.datawc_y2 - vcs.isoline.Gi.label - vcs.isoline.Gi.labelbackgroundcolors - vcs.isoline.Gi.labelbackgroundopacities - vcs.isoline.Gi.labelskipdistance - vcs.isoline.Gi.level - vcs.isoline.Gi.levels - vcs.isoline.Gi.line - vcs.isoline.Gi.linecolors - vcs.isoline.Gi.linetypes - vcs.isoline.Gi.linewidths - vcs.isoline.Gi.name - vcs.isoline.Gi.projection - vcs.isoline.Gi.scale - vcs.isoline.Gi.setLineAttributes - vcs.isoline.Gi.spacing - vcs.isoline.Gi.text - vcs.isoline.Gi.textcolors - vcs.isoline.Gi.xaxisconvert - vcs.isoline.Gi.xmtics1 - vcs.isoline.Gi.xmtics2 - vcs.isoline.Gi.xticlabels1 - vcs.isoline.Gi.xticlabels2 - vcs.isoline.Gi.yaxisconvert - vcs.isoline.Gi.ymtics1 - vcs.isoline.Gi.ymtics2 - vcs.isoline.Gi.yticlabels1 - vcs.isoline.Gi.yticlabels2 - vcs.isoline.get_att_from_sub - vcs.isoline.load - vcs.isoline.process_src -8 items passed all tests: - 4 tests in vcs.isoline.Gi.datawc - 3 tests in vcs.isoline.Gi.list - 4 tests in vcs.isoline.Gi.script - 5 tests in vcs.isoline.Gi.xmtics - 6 tests in vcs.isoline.Gi.xticlabels - 3 tests in vcs.isoline.Gi.xyscale - 5 tests in vcs.isoline.Gi.ymtics - 6 tests in vcs.isoline.Gi.yticlabels -36 tests in 116 items. -36 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/line.report b/docs/doctest_info/reports/line.report deleted file mode 100644 index c7fa15940..000000000 --- a/docs/doctest_info/reports/line.report +++ /dev/null @@ -1,139 +0,0 @@ -Trying: - a=vcs.init() # VCS Canvas Constructor -Expecting nothing -ok -Trying: - a.show('line') # Show predefined line objects -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - a.getline('red').list() # show properties of 'red' line -Expecting: - ---------- ... ---------- - ... -ok -Trying: - a.update() # manually update canvas -Expecting nothing -ok -Trying: - ln=a.createline('new','red') # Copies 'red' to 'new' -Expecting nothing -ok -Trying: - ln=a.createline('new2') # Copies 'default' to 'new2' -Expecting nothing -ok -Trying: - ln=a.getline('red') -Expecting nothing -ok -Trying: - ln.color=100 # Range from 1 to 256 -Expecting nothing -ok -Trying: - ln.width=100 # Range from 1 to 300 -Expecting nothing -ok -Trying: - ln.type='solid' # Same as ln.type=0 -Expecting nothing -ok -Trying: - ln.type='dash' # Same as ln.type=1 -Expecting nothing -ok -Trying: - ln.type='dot' # Same as ln.type=2 -Expecting nothing -ok -Trying: - ln.type='dash-dot' # Same as ln.type=3 -Expecting nothing -ok -Trying: - ln.type='long-dash' # Same as ln.type=4 -Expecting nothing -ok -Trying: - ln.priority=1 -Expecting nothing -ok -Trying: - ln.viewport=[0, 1.0, 0,1.0] # float [0,1]x[0,1] -Expecting nothing -ok -Trying: - ln.worldcoordinate=[0,1.0,0,1.0] # float [#,#]x[#,#] -Expecting nothing -ok -Trying: - ln.x=[[0,.1,.2], [.3,.4,.5]] # List of floats -Expecting nothing -ok -Trying: - ln.y=[[.5,.4,.3], [.2,.1,0]] # List of floats -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getline() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -35 items had no tests: - vcs.line - vcs.line.Tl.__init__ - vcs.line.Tl._getfillareacolors - vcs.line.Tl._getname - vcs.line.Tl._getpriority - vcs.line.Tl._getprojection - vcs.line.Tl._gettype - vcs.line.Tl._getvp - vcs.line.Tl._getwc - vcs.line.Tl._getwidth - vcs.line.Tl._getx - vcs.line.Tl._gety - vcs.line.Tl._setfillareacolors - vcs.line.Tl._setname - vcs.line.Tl._setpriority - vcs.line.Tl._setprojection - vcs.line.Tl._settype - vcs.line.Tl._setvp - vcs.line.Tl._setwc - vcs.line.Tl._setwidth - vcs.line.Tl._setx - vcs.line.Tl._sety - vcs.line.Tl.color - vcs.line.Tl.colormap - vcs.line.Tl.list - vcs.line.Tl.name - vcs.line.Tl.priority - vcs.line.Tl.projection - vcs.line.Tl.type - vcs.line.Tl.viewport - vcs.line.Tl.width - vcs.line.Tl.worldcoordinate - vcs.line.Tl.x - vcs.line.Tl.y - vcs.line.process_src -2 items passed all tests: - 19 tests in vcs.line.Tl - 4 tests in vcs.line.Tl.script -23 tests in 37 items. -23 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/manageElements.report b/docs/doctest_info/reports/manageElements.report deleted file mode 100644 index 220670415..000000000 --- a/docs/doctest_info/reports/manageElements.report +++ /dev/null @@ -1,1320 +0,0 @@ -Trying: - cns=vcs.check_name_source # alias for long function name -Expecting nothing -ok -Trying: - vcs.show('boxfill') -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - cns('NEW', 'quick', 'boxfill') # name 'NEW' should be available -Expecting: - ('NEW', 'quick') -ok -Trying: - cns(None, 'default', 'boxfill') # generate unique boxfill name -Expecting: - ('__boxfill_...', 'default') -ok -Trying: - vcs.show('1d') -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - vcs.create1d() # inherits default, name generated -Expecting: - -ok -Trying: - vcs.create1d("one_D") # inherits default, name "one_D" -Expecting: - -ok -Trying: - vcs.create1d(source="one_D") # inherits from "one_D" -Expecting: - -ok -Trying: - vcs.show('3d_dual_scalar') # available 3d_dual_scalars -Expecting: - *******************3d_dual_scalar Names List********************** - ... - *******************End 3d_dual_scalar Names List********************** -ok -Trying: - ex=vcs.create3d_dual_scalar('3d_dual_scalar_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('3d_dual_scalar') # includes new object -Expecting: - [...'3d_dual_scalar_ex1'...] -ok -Trying: - vcs.show('3d_scalar') # available 3d_scalars -Expecting: - *******************3d_scalar Names List********************** - ... - *******************End 3d_scalar Names List********************** -ok -Trying: - ex=vcs.create3d_scalar('3d_scalar_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('3d_scalar') # includes new object -Expecting: - [...'3d_scalar_ex1'...] -ok -Trying: - vcs.show('3d_vector') # available 3d_vectors -Expecting: - *******************3d_vector Names List********************** - ... - *******************End 3d_vector Names List********************** -ok -Trying: - ex=vcs.create3d_vector('3d_vector_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('3d_vector') # includes new object -Expecting: - [...'3d_vector_ex1'...] -ok -Trying: - vcs.show('boxfill') # available boxfills -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - ex=vcs.createboxfill('boxfill_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # includes new object -Expecting: - [...'boxfill_ex1'...] -ok -Trying: - ex2=vcs.createboxfill('boxfill_ex2','polar') -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # includes new object -Expecting: - [...'boxfill_ex2'...] -ok -Trying: - vcs.show('colormap') # available colormaps -Expecting: - *******************Colormap Names List********************** - ... - *******************End Colormap Names List********************** -ok -Trying: - ex=vcs.createcolormap('colormap_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # includes new object -Expecting: - [...'colormap_ex1'...] -ok -Trying: - ex2=vcs.createcolormap('colormap_ex2','rainbow') -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # includes new object -Expecting: - [...'colormap_ex2'...] -ok -Trying: - vcs.show('fillarea') # available fillareas -Expecting: - *******************Fillarea Names List********************** - ... - *******************End Fillarea Names List********************** -ok -Trying: - ex=vcs.createfillarea('fillarea_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('fillarea') # includes new object -Expecting: - [...'fillarea_ex1'...] -ok -Trying: - vcs.show('isofill') # available isofills -Expecting: - *******************Isofill Names List********************** - ... - *******************End Isofill Names List********************** -ok -Trying: - ex=vcs.createisofill('isofill_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # includes new object -Expecting: - [...'isofill_ex1'...] -ok -Trying: - ex2=vcs.createisofill('isofill_ex2','polar') -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # includes new object -Expecting: - [...'isofill_ex2'...] -ok -Trying: - vcs.show('isoline') # available isolines -Expecting: - *******************Isoline Names List********************** - ... - *******************End Isoline Names List********************** -ok -Trying: - ex=vcs.createisoline('isoline_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # includes new object -Expecting: - [...'isoline_ex1'...] -ok -Trying: - ex2=vcs.createisoline('isoline_ex2','polar') -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # includes new object -Expecting: - [...'isoline_ex2'...] -ok -Trying: - vcs.show('line') # available lines -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - ex=vcs.createline('line_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('line') # includes new object -Expecting: - [...'line_ex1'...] -ok -Trying: - ex2=vcs.createline('line_ex2','red') -Expecting nothing -ok -Trying: - vcs.listelements('line') # includes new object -Expecting: - [...'line_ex2'...] -ok -Trying: - vcs.show('marker') # available markers -Expecting: - *******************Marker Names List********************** - ... - *******************End Marker Names List********************** -ok -Trying: - ex=vcs.createmarker('marker_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('marker') # includes new object -Expecting: - [...'marker_ex1'...] -ok -Trying: - ex2=vcs.createmarker('marker_ex2','red') -Expecting nothing -ok -Trying: - vcs.listelements('marker') # includes new object -Expecting: - [...'marker_ex2'...] -ok -Trying: - vcs.show('meshfill') # available meshfills -Expecting: - *******************Meshfill Names List********************** - ... - *******************End Meshfill Names List********************** -ok -Trying: - ex=vcs.createmeshfill('meshfill_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # includes new object -Expecting: - [...'meshfill_ex1'...] -ok -Trying: - ex2=vcs.createmeshfill('meshfill_ex2','a_polar_meshfill') -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # includes new object -Expecting: - [...'meshfill_ex2'...] -ok -Trying: - vcs.show('projection') # available projections -Expecting: - *******************Projection Names List********************** - ... - *******************End Projection Names List********************** -ok -Trying: - ex=vcs.createprojection('projection_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('projection') # includes new object -Expecting: - [...'projection_ex1'...] -ok -Trying: - ex2=vcs.createprojection('projection_ex2','orthographic') -Expecting nothing -ok -Trying: - vcs.listelements('projection') # includes new object -Expecting: - [...'projection_ex2'...] -ok -Trying: - vcs.show('scatter') # available scatters -Expecting: - *******************Scatter Names List********************** - ... - *******************End Scatter Names List********************** -ok -Trying: - ex=vcs.createscatter('scatter_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('scatter') # includes new object -Expecting: - [...'scatter_ex1'...] -ok -Trying: - vcs.show('taylordiagram') # available taylordiagrams -Expecting: - *******************Taylordiagram Names List********************** - ... - *******************End Taylordiagram Names List********************** -ok -Trying: - ex=vcs.createtaylordiagram('taylordiagram_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('taylordiagram') # includes new object -Expecting: - [...'taylordiagram_ex1'...] -ok -Trying: - vcs.show('template') # available templates -Expecting: - *******************Template Names List********************** - ... - *******************End Template Names List********************** -ok -Trying: - ex=vcs.createtemplate('template_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('template') # includes new object -Expecting: - [...'template_ex1'...] -ok -Trying: - ex2=vcs.createtemplate('template_ex2','polar') -Expecting nothing -ok -Trying: - vcs.listelements('template') # includes new object -Expecting: - [...'template_ex2'...] -ok -Trying: - vcs.show('textcombined') # available textcombineds -Expecting: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1296, in vcs.manageElements.createtext -Failed example: - vcs.show('textcombined') # available textcombineds -Expected: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -Got: - *******************Textcombined Names List********************** - *******************End Textcombined Names List********************** -Trying: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1300, in vcs.manageElements.createtext -Failed example: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expected nothing -Got: - -Trying: - vcs.listelements('textcombined') # includes new object -Expecting: - [...'EXAMPLE_tt:::EXAMPLE_tto'...] -ok -Trying: - vcs.show('textorientation') # available textorientations -Expecting: - *******************Textorientation Names List********************** - ... - *******************End Textorientation Names List********************** -ok -Trying: - ex=vcs.createtextorientation('textorientation_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # includes new object -Expecting: - [...'textorientation_ex1'...] -ok -Trying: - ex2=vcs.createtextorientation('textorientation_ex2','bigger') -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # includes new object -Expecting: - [...'textorientation_ex2'...] -ok -Trying: - vcs.show('texttable') # available texttables -Expecting: - *******************Texttable Names List********************** - ... - *******************End Texttable Names List********************** -ok -Trying: - ex=vcs.createtexttable('texttable_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # includes new object -Expecting: - [...'texttable_ex1'...] -ok -Trying: - ex2=vcs.createtexttable('texttable_ex2','bigger') -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # includes new object -Expecting: - [...'texttable_ex2'...] -ok -Trying: - vcs.show('vector') # available vectors -Expecting: - *******************Vector Names List********************** - ... - *******************End Vector Names List********************** -ok -Trying: - ex=vcs.createvector('vector_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('vector') # includes new object -Expecting: - [...'vector_ex1'...] -ok -Trying: - vcs.show('xvsy') # available xvsys -Expecting: - *******************Xvsy Names List********************** - ... - *******************End Xvsy Names List********************** -ok -Trying: - ex=vcs.createxvsy('xvsy_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('xvsy') # includes new object -Expecting: - [...'xvsy_ex1'...] -ok -Trying: - vcs.show('xyvsy') # available xyvsys -Expecting: - *******************Xyvsy Names List********************** - ... - *******************End Xyvsy Names List********************** -ok -Trying: - ex=vcs.createxyvsy('xyvsy_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('xyvsy') # includes new object -Expecting: - [...'xyvsy_ex1'...] -ok -Trying: - vcs.show('yxvsx') # available yxvsxs -Expecting: - *******************Yxvsx Names List********************** - ... - *******************End Yxvsx Names List********************** -ok -Trying: - ex=vcs.createyxvsx('yxvsx_ex1') -Expecting nothing -ok -Trying: - vcs.listelements('yxvsx') # includes new object -Expecting: - [...'yxvsx_ex1'...] -ok -Trying: - vcs.show('1d') -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - vcs.get1d('blue_yxvsx') -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_dual_scalar') # list all 3d_dual_scalars -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_dual_scalar() # 'default' 3d_dual_scalar -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(ex, slab1, slab2) # plot 3d_dual_scalar -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1561, in vcs.manageElements.get3d_dual_scalar -Failed example: - a.plot(ex, slab1, slab2) # plot 3d_dual_scalar -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_scalar') # list all 3d_scalars -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_scalar() # 'default' 3d_scalar -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.plot(ex, slab1) # plot 3d_scalar -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1521, in vcs.manageElements.get3d_scalar -Failed example: - a.plot(ex, slab1) # plot 3d_scalar -Expected: - -Got: - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('3d_vector') # list all 3d_vectors -Expecting: - [...] -ok -Trying: - ex=vcs.get3d_vector() # 'default' 3d_vector -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.plot(ex, slab1, slab2) # plot 3d_vector -Expecting: - -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/manageElements.py", line 1600, in vcs.manageElements.get3d_vector -Failed example: - a.plot(ex, slab1, slab2) # plot 3d_vector -Expected: - -Got: - Sample rate: 6 - Sample rate: 6 - initCamera: Camera => ((0.0, 0.0, 540.0), (0.0, 0.0, 0.0), (0.0, 1.0, 0.0)) - -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('boxfill') # list all boxfills -Expecting: - [...] -ok -Trying: - ex=vcs.getboxfill() # 'default' boxfill -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.boxfill(ex, slab1) # plot boxfill -Expecting: - -ok -Trying: - ex2=vcs.getboxfill('polar') # boxfill #2 -Expecting nothing -ok -Trying: - a.boxfill(ex2, slab1) # plot boxfill -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('colormap') # list all colormaps -Expecting: - [...] -ok -Trying: - ex=vcs.getcolormap() # 'default' colormap -Expecting nothing -ok -Trying: - ex2=vcs.getcolormap('rainbow') # colormap #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('fillarea') # list all fillareas -Expecting: - [...] -ok -Trying: - ex=vcs.getfillarea() # 'default' fillarea -Expecting nothing -ok -Trying: - a.fillarea(ex) # plot fillarea -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('isofill') # list all isofills -Expecting: - [...] -ok -Trying: - ex=vcs.getisofill() # 'default' isofill -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.isofill(ex, slab1) # plot isofill -Expecting: - -ok -Trying: - ex2=vcs.getisofill('polar') # isofill #2 -Expecting nothing -ok -Trying: - a.isofill(ex2, slab1) # plot isofill -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('isoline') # list all isolines -Expecting: - [...] -ok -Trying: - ex=vcs.getisoline() # 'default' isoline -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.isoline(ex, slab1) # plot isoline -Expecting: - -ok -Trying: - ex2=vcs.getisoline('polar') # isoline #2 -Expecting nothing -ok -Trying: - a.isoline(ex2, slab1) # plot isoline -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('line') # list all lines -Expecting: - [...] -ok -Trying: - ex=vcs.getline() # 'default' line -Expecting nothing -ok -Trying: - a.line(ex) # plot line -Expecting: - -ok -Trying: - ex2=vcs.getline('red') # line #2 -Expecting nothing -ok -Trying: - a.line(ex2) # plot line -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('marker') # list all markers -Expecting: - [...] -ok -Trying: - ex=vcs.getmarker() # 'default' marker -Expecting nothing -ok -Trying: - a.marker(ex) # plot marker -Expecting: - -ok -Trying: - ex2=vcs.getmarker('red') # marker #2 -Expecting nothing -ok -Trying: - a.marker(ex2) # plot marker -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('meshfill') # list all meshfills -Expecting: - [...] -ok -Trying: - ex=vcs.getmeshfill() # 'default' meshfill -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.meshfill(ex, slab1) # plot meshfill -Expecting: - -ok -Trying: - ex2=vcs.getmeshfill('a_polar_meshfill') # meshfill #2 -Expecting nothing -ok -Trying: - a.meshfill(ex2, slab1) # plot meshfill -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('projection') # list all projections -Expecting: - [...] -ok -Trying: - ex=vcs.getprojection() # 'default' projection -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - ex2=vcs.getprojection('orthographic') # projection #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('scatter') # list all scatters -Expecting: - [...] -ok -Trying: - ex=vcs.getscatter('default_scatter_') # ''default_scatter_'' scatter -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.scatter(ex, slab1, slab2) # plot scatter -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('taylordiagram') # list all taylordiagrams -Expecting: - [...] -ok -Trying: - ex=vcs.gettaylordiagram() # 'default' taylordiagram -Expecting nothing -ok -Trying: - slab1 = [[0, 1, 2, 3, 4], [0.1, 0.2, 0.3, 0.4, 0.5]] # data -Expecting nothing -ok -Trying: - a.taylordiagram(ex, slab1) # plot taylordiagram -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('template') # list all templates -Expecting: - [...] -ok -Trying: - ex=vcs.gettemplate() # 'default' template -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - ex2=vcs.gettemplate('polar') # template #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('textcombined') # list all textcombineds -Expecting: - [...] -ok -Trying: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expecting nothing -ok -Trying: - ex=vcs.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') # 'EXAMPLE_tt:::EXAMPLE_tto' textcombined -Expecting nothing -ok -Trying: - a.textcombined(ex) # plot textcombined -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('textorientation') # list all textorientations -Expecting: - [...] -ok -Trying: - ex=vcs.gettextorientation() # 'default' textorientation -Expecting nothing -ok -Trying: - ex2=vcs.gettextorientation('bigger') # textorientation #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('texttable') # list all texttables -Expecting: - [...] -ok -Trying: - ex=vcs.gettexttable() # 'default' texttable -Expecting nothing -ok -Trying: - ex2=vcs.gettexttable('bigger') # texttable #2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('vector') # list all vectors -Expecting: - [...] -ok -Trying: - ex=vcs.getvector() # 'default' vector -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.vector(ex, slab1, slab2) # plot vector -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('xvsy') # list all xvsys -Expecting: - [...] -ok -Trying: - ex=vcs.getxvsy() # 'default_xvsy_' xvsy -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - slab2 = f('v') # need 2 slabs, so get another -Expecting nothing -ok -Trying: - a.xvsy(ex, slab1, slab2) # plot xvsy -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('xyvsy') # list all xyvsys -Expecting: - [...] -ok -Trying: - ex=vcs.getxyvsy('default_xyvsy_') # ''default_xyvsy_'' xyvsy -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.xyvsy(ex, slab1) # plot xyvsy -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.listelements('yxvsx') # list all yxvsxs -Expecting: - [...] -ok -Trying: - ex=vcs.getyxvsx() # 'default_yxvsx_' yxvsx -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 -Expecting nothing -ok -Trying: - slab1 = f('u') # take a slab from the data -Expecting nothing -ok -Trying: - a.yxvsx(ex, slab1) # plot yxvsx -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - iso=a.createisoline('dean') # Create an instance of an isoline object -Expecting nothing -ok -Trying: - a.removeobject(iso) # Remove isoline object from VCS list -Expecting: - 'Removed isoline object dean' -ok -Trying: - vcs.show('line') -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - new_isoline = vcs.createisoline('new_iso') -Expecting nothing -ok -Trying: - vcs.setLineAttributes(new_isoline, 'continents') -Expecting nothing -ok -Trying: - new_vector = vcs.createvector('new_vec') -Expecting nothing -ok -Trying: - vcs.setLineAttributes(new_vector, 'continents') -Expecting nothing -ok -Trying: - new_1d = vcs.create1d('new_1d', 'blue_yxvsx') -Expecting nothing -ok -Trying: - vcs.setLineAttributes(new_1d, 'continents') -Expecting nothing -ok -22 items had no tests: - vcs.manageElements - vcs.manageElements.removeCp - vcs.manageElements.removeG - vcs.manageElements.removeG1d - vcs.manageElements.removeGSp - vcs.manageElements.removeGXY - vcs.manageElements.removeGXy - vcs.manageElements.removeGYx - vcs.manageElements.removeGfb - vcs.manageElements.removeGfi - vcs.manageElements.removeGfm - vcs.manageElements.removeGi - vcs.manageElements.removeGtd - vcs.manageElements.removeGv - vcs.manageElements.removeP - vcs.manageElements.removeProj - vcs.manageElements.removeTc - vcs.manageElements.removeTf - vcs.manageElements.removeTl - vcs.manageElements.removeTm - vcs.manageElements.removeTo - vcs.manageElements.removeTt -45 items passed all tests: - 4 tests in vcs.manageElements.check_name_source - 4 tests in vcs.manageElements.create1d - 3 tests in vcs.manageElements.create3d_dual_scalar - 3 tests in vcs.manageElements.create3d_scalar - 3 tests in vcs.manageElements.create3d_vector - 5 tests in vcs.manageElements.createboxfill - 5 tests in vcs.manageElements.createcolormap - 3 tests in vcs.manageElements.createfillarea - 5 tests in vcs.manageElements.createisofill - 5 tests in vcs.manageElements.createisoline - 5 tests in vcs.manageElements.createline - 5 tests in vcs.manageElements.createmarker - 5 tests in vcs.manageElements.createmeshfill - 5 tests in vcs.manageElements.createprojection - 3 tests in vcs.manageElements.createscatter - 3 tests in vcs.manageElements.createtaylordiagram - 5 tests in vcs.manageElements.createtemplate - 5 tests in vcs.manageElements.createtextorientation - 5 tests in vcs.manageElements.createtexttable - 3 tests in vcs.manageElements.createvector - 3 tests in vcs.manageElements.createxvsy - 3 tests in vcs.manageElements.createxyvsy - 3 tests in vcs.manageElements.createyxvsx - 2 tests in vcs.manageElements.get1d - 9 tests in vcs.manageElements.getboxfill - 4 tests in vcs.manageElements.getcolormap - 4 tests in vcs.manageElements.getfillarea - 9 tests in vcs.manageElements.getisofill - 9 tests in vcs.manageElements.getisoline - 6 tests in vcs.manageElements.getline - 6 tests in vcs.manageElements.getmarker - 9 tests in vcs.manageElements.getmeshfill - 7 tests in vcs.manageElements.getprojection - 8 tests in vcs.manageElements.getscatter - 5 tests in vcs.manageElements.gettaylordiagram - 7 tests in vcs.manageElements.gettemplate - 5 tests in vcs.manageElements.gettextcombined - 4 tests in vcs.manageElements.gettextorientation - 4 tests in vcs.manageElements.gettexttable - 8 tests in vcs.manageElements.getvector - 8 tests in vcs.manageElements.getxvsy - 7 tests in vcs.manageElements.getxyvsy - 7 tests in vcs.manageElements.getyxvsx - 3 tests in vcs.manageElements.removeobject - 7 tests in vcs.manageElements.setLineAttributes -********************************************************************** -4 items had failures: - 2 of 3 in vcs.manageElements.createtext - 1 of 8 in vcs.manageElements.get3d_dual_scalar - 1 of 7 in vcs.manageElements.get3d_scalar - 1 of 8 in vcs.manageElements.get3d_vector -257 tests in 71 items. -252 passed and 5 failed. -***Test Failed*** 5 failures. diff --git a/docs/doctest_info/reports/marker.report b/docs/doctest_info/reports/marker.report deleted file mode 100644 index 65b298571..000000000 --- a/docs/doctest_info/reports/marker.report +++ /dev/null @@ -1,58 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getmarker() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -36 items had no tests: - vcs.marker - vcs.marker.Tm - vcs.marker.Tm.__init__ - vcs.marker.Tm._getfillareacolors - vcs.marker.Tm._getname - vcs.marker.Tm._getpriority - vcs.marker.Tm._getprojection - vcs.marker.Tm._getsize - vcs.marker.Tm._gettype - vcs.marker.Tm._getvp - vcs.marker.Tm._getwc - vcs.marker.Tm._getx - vcs.marker.Tm._gety - vcs.marker.Tm._setfillareacolors - vcs.marker.Tm._setname - vcs.marker.Tm._setpriority - vcs.marker.Tm._setprojection - vcs.marker.Tm._setsize - vcs.marker.Tm._settype - vcs.marker.Tm._setvp - vcs.marker.Tm._setwc - vcs.marker.Tm._setx - vcs.marker.Tm._sety - vcs.marker.Tm.color - vcs.marker.Tm.colormap - vcs.marker.Tm.list - vcs.marker.Tm.name - vcs.marker.Tm.priority - vcs.marker.Tm.projection - vcs.marker.Tm.size - vcs.marker.Tm.type - vcs.marker.Tm.viewport - vcs.marker.Tm.worldcoordinate - vcs.marker.Tm.x - vcs.marker.Tm.y - vcs.marker.process_src -1 items passed all tests: - 4 tests in vcs.marker.Tm.script -4 tests in 37 items. -4 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/meshfill.report b/docs/doctest_info/reports/meshfill.report deleted file mode 100644 index 986a44be6..000000000 --- a/docs/doctest_info/reports/meshfill.report +++ /dev/null @@ -1,339 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - ex=a.createmeshfill() -Expecting nothing -ok -Trying: - ex.colors(0, 64) # use colorcells 0-64 of colormap -Expecting nothing -ok -Trying: - a.plot(ex, array, array) -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.createmeshfill('meshfill_dwc') -Expecting nothing -ok -Trying: - ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 -Expecting nothing -ok -Trying: - ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 -Expecting: - (0.0, 0.1, 1.0, 1.1) -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - ex=a.createmeshfill() -Expecting nothing -ok -Trying: - ex.exts(True, True) # arrows on both ends -Expecting nothing -ok -Trying: - a.plot(ex, array, array) -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - obj=a.getmeshfill() # default -Expecting nothing -ok -Trying: - obj.list() # print meshfill attributes -Expecting: - ---------- ... ---------- - ... -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 779, in vcs.meshfill.Gfm.list -Failed example: - obj.list() # print meshfill attributes -Expected: - ---------- ... ---------- - ... -Got: - ---------- Meshfill (Gmf) member (attribute) listings --------- - graphics method = Gfm - name = default - projection = linear - xticlabels1 = * - xticlabels2 = * - xmtics1 = - xmtics2 = - yticlabels1 = * - yticlabels2 = * - ymtics1 = - ymtics2 = - datawc_x1 = 1e+20 - datawc_y1 = 1e+20 - datawc_x2 = 1e+20 - datawc_y2 = 1e+20 - datawc_timeunits = days since 2000 - datawc_calendar = 135441 - xaxisconvert = linear - yaxisconvert = linear - levels = ([1.0000000200408773e+20, 1.0000000200408773e+20],) - fillareacolors = [1] - fillareastyle = solid - fillareaindices = None - legend = None - ext_1 = False - ext_2 = False - missing = (0.0, 0.0, 0.0, 100.0) - mesh = 0 - wrap = [0.0, 0.0] - colormap = None -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getmeshfill() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 802, in vcs.meshfill.Gfm.script -Failed example: - ex.script('filename.py') # append to 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # append to 'filename.py' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/meshfill.py", line 900, in script - fp.write("%s.missing = %g\n\n" % (unique_name, self.missing)) - TypeError: float argument required, not tuple -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.createmeshfill() -Expecting nothing -ok -Trying: - ex.xmtics("lon5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.xmintic1.priority = 1 # plotting shows xmtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.createmeshfill() -Expecting nothing -ok -Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.createmeshfill('meshfill_xys') # make a meshfill -Expecting nothing -ok -Trying: - ex.xyscale(xat='linear', yat='linear') -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.createmeshfill() -Expecting nothing -ok -Trying: - ex.ymtics("lat5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.ymintic1.priority = 1 # plotting shows ymtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.createmeshfill() -Expecting nothing -ok -Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -81 items had no tests: - vcs.meshfill - vcs.meshfill.Gfm - vcs.meshfill.Gfm.__init__ - vcs.meshfill.Gfm._getcalendar - vcs.meshfill.Gfm._getdatawc_x1 - vcs.meshfill.Gfm._getdatawc_x2 - vcs.meshfill.Gfm._getdatawc_y1 - vcs.meshfill.Gfm._getdatawc_y2 - vcs.meshfill.Gfm._getfillareaindices - vcs.meshfill.Gfm._getfillareastyle - vcs.meshfill.Gfm._getmesh - vcs.meshfill.Gfm._getmissing - vcs.meshfill.Gfm._getname - vcs.meshfill.Gfm._getprojection - vcs.meshfill.Gfm._gettimeunits - vcs.meshfill.Gfm._getwrap - vcs.meshfill.Gfm._getxaxisconvert - vcs.meshfill.Gfm._getxmtics1 - vcs.meshfill.Gfm._getxmtics2 - vcs.meshfill.Gfm._getxticlabels1 - vcs.meshfill.Gfm._getxticlabels2 - vcs.meshfill.Gfm._getyaxisconvert - vcs.meshfill.Gfm._getymtics1 - vcs.meshfill.Gfm._getymtics2 - vcs.meshfill.Gfm._getyticlabels1 - vcs.meshfill.Gfm._getyticlabels2 - vcs.meshfill.Gfm._setcalendar - vcs.meshfill.Gfm._setdatawc_x1 - vcs.meshfill.Gfm._setdatawc_x2 - vcs.meshfill.Gfm._setdatawc_y1 - vcs.meshfill.Gfm._setdatawc_y2 - vcs.meshfill.Gfm._setfillareaindices - vcs.meshfill.Gfm._setfillareastyle - vcs.meshfill.Gfm._setmesh - vcs.meshfill.Gfm._setmissing - vcs.meshfill.Gfm._setname - vcs.meshfill.Gfm._setprojection - vcs.meshfill.Gfm._settimeunits - vcs.meshfill.Gfm._setwrap - vcs.meshfill.Gfm._setxaxisconvert - vcs.meshfill.Gfm._setxmtics1 - vcs.meshfill.Gfm._setxmtics2 - vcs.meshfill.Gfm._setxticlabels1 - vcs.meshfill.Gfm._setxticlabels2 - vcs.meshfill.Gfm._setyaxisconvert - vcs.meshfill.Gfm._setymtics1 - vcs.meshfill.Gfm._setymtics2 - vcs.meshfill.Gfm._setyticlabels1 - vcs.meshfill.Gfm._setyticlabels2 - vcs.meshfill.Gfm.colormap - vcs.meshfill.Gfm.datawc_calendar - vcs.meshfill.Gfm.datawc_timeunits - vcs.meshfill.Gfm.datawc_x1 - vcs.meshfill.Gfm.datawc_x2 - vcs.meshfill.Gfm.datawc_y1 - vcs.meshfill.Gfm.datawc_y2 - vcs.meshfill.Gfm.ext_1 - vcs.meshfill.Gfm.ext_2 - vcs.meshfill.Gfm.fillareacolors - vcs.meshfill.Gfm.fillareaindices - vcs.meshfill.Gfm.fillareaopacity - vcs.meshfill.Gfm.fillareastyle - vcs.meshfill.Gfm.legend - vcs.meshfill.Gfm.levels - vcs.meshfill.Gfm.mesh - vcs.meshfill.Gfm.missing - vcs.meshfill.Gfm.name - vcs.meshfill.Gfm.projection - vcs.meshfill.Gfm.wrap - vcs.meshfill.Gfm.xaxisconvert - vcs.meshfill.Gfm.xmtics1 - vcs.meshfill.Gfm.xmtics2 - vcs.meshfill.Gfm.xticlabels1 - vcs.meshfill.Gfm.xticlabels2 - vcs.meshfill.Gfm.yaxisconvert - vcs.meshfill.Gfm.ymtics1 - vcs.meshfill.Gfm.ymtics2 - vcs.meshfill.Gfm.yticlabels1 - vcs.meshfill.Gfm.yticlabels2 - vcs.meshfill.load - vcs.meshfill.process_src -8 items passed all tests: - 5 tests in vcs.meshfill.Gfm.colors - 4 tests in vcs.meshfill.Gfm.datawc - 5 tests in vcs.meshfill.Gfm.exts - 5 tests in vcs.meshfill.Gfm.xmtics - 6 tests in vcs.meshfill.Gfm.xticlabels - 3 tests in vcs.meshfill.Gfm.xyscale - 5 tests in vcs.meshfill.Gfm.ymtics - 6 tests in vcs.meshfill.Gfm.yticlabels -********************************************************************** -2 items had failures: - 1 of 3 in vcs.meshfill.Gfm.list - 1 of 4 in vcs.meshfill.Gfm.script -46 tests in 91 items. -44 passed and 2 failed. -***Test Failed*** 2 failures. diff --git a/docs/doctest_info/reports/projection.report b/docs/doctest_info/reports/projection.report deleted file mode 100644 index 7966393a3..000000000 --- a/docs/doctest_info/reports/projection.report +++ /dev/null @@ -1,134 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getprojection() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -112 items had no tests: - vcs.projection - vcs.projection.Proj - vcs.projection.Proj.__init__ - vcs.projection.Proj._getangle - vcs.projection.Proj._getazimuthalangle - vcs.projection.Proj._getazimuthallongitude - vcs.projection.Proj._getcenterlatitude - vcs.projection.Proj._getcenterlongitude - vcs.projection.Proj._getcentralmeridian - vcs.projection.Proj._getfactor - vcs.projection.Proj._getfalseeasting - vcs.projection.Proj._getfalsenorthing - vcs.projection.Proj._getheight - vcs.projection.Proj._getlandsatcompensationratio - vcs.projection.Proj._getlatitude1 - vcs.projection.Proj._getlatitude2 - vcs.projection.Proj._getlongitude1 - vcs.projection.Proj._getlongitude2 - vcs.projection.Proj._getname - vcs.projection.Proj._getorbitinclination - vcs.projection.Proj._getorbitlongitude - vcs.projection.Proj._getoriginlatitude - vcs.projection.Proj._getparameters - vcs.projection.Proj._getpath - vcs.projection.Proj._getpathflag - vcs.projection.Proj._getsatellite - vcs.projection.Proj._getsatelliterevolutionperiod - vcs.projection.Proj._getshapem - vcs.projection.Proj._getshapen - vcs.projection.Proj._getsmajor - vcs.projection.Proj._getsminor - vcs.projection.Proj._getsphere - vcs.projection.Proj._getstandardparallel - vcs.projection.Proj._getstandardparallel1 - vcs.projection.Proj._getstandardparallel2 - vcs.projection.Proj._getsubtype - vcs.projection.Proj._gettruescale - vcs.projection.Proj._gettype - vcs.projection.Proj._setangle - vcs.projection.Proj._setazimuthalangle - vcs.projection.Proj._setazimuthallongitude - vcs.projection.Proj._setcenterlatitude - vcs.projection.Proj._setcenterlongitude - vcs.projection.Proj._setcentralmeridian - vcs.projection.Proj._setfactor - vcs.projection.Proj._setfalseeasting - vcs.projection.Proj._setfalsenorthing - vcs.projection.Proj._setheight - vcs.projection.Proj._setlandsatcompensationratio - vcs.projection.Proj._setlatitude1 - vcs.projection.Proj._setlatitude2 - vcs.projection.Proj._setlongitude1 - vcs.projection.Proj._setlongitude2 - vcs.projection.Proj._setname - vcs.projection.Proj._setorbitinclination - vcs.projection.Proj._setorbitlongitude - vcs.projection.Proj._setoriginlatitude - vcs.projection.Proj._setparameters - vcs.projection.Proj._setpath - vcs.projection.Proj._setpathflag - vcs.projection.Proj._setsatellite - vcs.projection.Proj._setsatelliterevolutionperiod - vcs.projection.Proj._setshapem - vcs.projection.Proj._setshapen - vcs.projection.Proj._setsmajor - vcs.projection.Proj._setsminor - vcs.projection.Proj._setsphere - vcs.projection.Proj._setstandardparallel - vcs.projection.Proj._setstandardparallel1 - vcs.projection.Proj._setstandardparallel2 - vcs.projection.Proj._setsubtype - vcs.projection.Proj._settruescale - vcs.projection.Proj._settype - vcs.projection.Proj.angle - vcs.projection.Proj.attributes - vcs.projection.Proj.azimuthalangle - vcs.projection.Proj.azimuthallongitude - vcs.projection.Proj.centerlatitude - vcs.projection.Proj.centerlongitude - vcs.projection.Proj.centralmeridian - vcs.projection.Proj.checkPP - vcs.projection.Proj.factor - vcs.projection.Proj.falseeasting - vcs.projection.Proj.falsenorthing - vcs.projection.Proj.height - vcs.projection.Proj.landsatcompensationratio - vcs.projection.Proj.latitude1 - vcs.projection.Proj.latitude2 - vcs.projection.Proj.list - vcs.projection.Proj.longitude1 - vcs.projection.Proj.longitude2 - vcs.projection.Proj.name - vcs.projection.Proj.orbitinclination - vcs.projection.Proj.orbitlongitude - vcs.projection.Proj.originlatitude - vcs.projection.Proj.parameters - vcs.projection.Proj.path - vcs.projection.Proj.pathflag - vcs.projection.Proj.satellite - vcs.projection.Proj.satelliterevolutionperiod - vcs.projection.Proj.shapem - vcs.projection.Proj.shapen - vcs.projection.Proj.smajor - vcs.projection.Proj.sminor - vcs.projection.Proj.sphere - vcs.projection.Proj.standardparallel - vcs.projection.Proj.standardparallel1 - vcs.projection.Proj.standardparallel2 - vcs.projection.Proj.subtype - vcs.projection.Proj.truescale - vcs.projection.Proj.type - vcs.projection.process_src -1 items passed all tests: - 4 tests in vcs.projection.Proj.script -4 tests in 113 items. -4 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/queries.report b/docs/doctest_info/reports/queries.report deleted file mode 100644 index 538bb8dc4..000000000 --- a/docs/doctest_info/reports/queries.report +++ /dev/null @@ -1,604 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - vcs.graphicsmethodlist() # Return graphics method list -Expecting: - [...] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - box=a.getboxfill() # Get default boxfill graphics method -Expecting nothing -ok -Trying: - iso=a.getisofill() # Get default isofill graphics method -Expecting nothing -ok -Trying: - ln=a.getline() # Get default line element -Expecting nothing -ok -Trying: - vcs.graphicsmethodtype(box) -Expecting: - 'boxfill' -ok -Trying: - vcs.graphicsmethodtype(iso) -Expecting: - 'isofill' -ok -Trying: - vcs.graphicsmethodtype(ln) -Expecting: - Traceback (most recent call last): - ... - vcsError: The object passed is not a graphics method object. -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('1d') # available 1ds -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - ex = a.get1d('default') -Expecting nothing -ok -Trying: - vcs.queries.is1d(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('3d_dual_scalar') # available 3d_dual_scalars -Expecting: - *******************3d_dual_scalar Names List********************** - ... - *******************End 3d_dual_scalar Names List********************** -ok -Trying: - ex = a.get3d_dual_scalar() -Expecting nothing -ok -Trying: - vcs.queries.is3d_dual_scalar(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('3d_scalar') # available 3d_scalars -Expecting: - *******************3d_scalar Names List********************** - ... - *******************End 3d_scalar Names List********************** -ok -Trying: - ex = a.get3d_scalar() -Expecting nothing -ok -Trying: - vcs.queries.is3d_scalar(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('3d_vector') # available 3d_vectors -Expecting: - *******************3d_vector Names List********************** - ... - *******************End 3d_vector Names List********************** -ok -Trying: - ex = a.get3d_vector() -Expecting nothing -ok -Trying: - vcs.queries.is3d_vector(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('boxfill') # available boxfills -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - ex = a.getboxfill() -Expecting nothing -ok -Trying: - vcs.queries.isboxfill(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('colormap') # available colormaps -Expecting: - *******************Colormap Names List********************** - ... - *******************End Colormap Names List********************** -ok -Trying: - ex = a.getcolormap() -Expecting nothing -ok -Trying: - vcs.queries.iscolormap(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('fillarea') # available fillareas -Expecting: - *******************Fillarea Names List********************** - ... - *******************End Fillarea Names List********************** -ok -Trying: - ex = a.getfillarea() -Expecting nothing -ok -Trying: - vcs.queries.isfillarea(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - box=a.getboxfill() # get default boxfill object -Expecting nothing -ok -Trying: - vcs.isgraphicsmethod(box) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('isofill') # available isofills -Expecting: - *******************Isofill Names List********************** - ... - *******************End Isofill Names List********************** -ok -Trying: - ex = a.getisofill() -Expecting nothing -ok -Trying: - vcs.queries.isisofill(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('isoline') # available isolines -Expecting: - *******************Isoline Names List********************** - ... - *******************End Isoline Names List********************** -ok -Trying: - ex = a.getisoline() -Expecting nothing -ok -Trying: - vcs.queries.isisoline(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('line') # available lines -Expecting: - *******************Line Names List********************** - ... - *******************End Line Names List********************** -ok -Trying: - ex = a.getline() -Expecting nothing -ok -Trying: - vcs.queries.isline(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('marker') # available markers -Expecting: - *******************Marker Names List********************** - ... - *******************End Marker Names List********************** -ok -Trying: - ex = a.getmarker() -Expecting nothing -ok -Trying: - vcs.queries.ismarker(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('meshfill') # available meshfills -Expecting: - *******************Meshfill Names List********************** - ... - *******************End Meshfill Names List********************** -ok -Trying: - ex = a.getmeshfill() -Expecting nothing -ok -Trying: - vcs.queries.ismeshfill(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - dsp=a.plot(array) # plotting should return a displayplot object -Expecting nothing -ok -Trying: - vcs.queries.isplot(dsp) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('projection') # available projections -Expecting: - *******************Projection Names List********************** - ... - *******************End Projection Names List********************** -ok -Trying: - ex = a.getprojection() -Expecting nothing -ok -Trying: - vcs.queries.isprojection(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('scatter') # available scatters -Expecting: - *******************Scatter Names List********************** - ... - *******************End Scatter Names List********************** -ok -Trying: - ex = a.getscatter('default_scatter_') -Expecting nothing -ok -Trying: - vcs.queries.isscatter(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('projection') # Show all available projections -Expecting: - *******************Projection Names List********************** - ... - *******************End Projection Names List********************** -ok -Trying: - ex = a.getprojection('default') # To test an existing line object -Expecting nothing -ok -Trying: - vcs.issecondaryobject(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('taylordiagram') # available taylordiagrams -Expecting: - *******************Taylordiagram Names List********************** - ... - *******************End Taylordiagram Names List********************** -ok -Trying: - ex = a.gettaylordiagram() -Expecting nothing -ok -Trying: - vcs.queries.istaylordiagram(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('template') # available templates -Expecting: - *******************Template Names List********************** - ... - *******************End Template Names List********************** -ok -Trying: - ex = a.gettemplate() -Expecting nothing -ok -Trying: - vcs.queries.istemplate(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/queries.py", line ?, in vcs.queries.istextcombined -Failed example: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expected nothing -Got: - -Trying: - a.show('textcombined') # available textcombineds -Expecting: - *******************Textcombined Names List********************** - ... - *******************End Textcombined Names List********************** -ok -Trying: - ex = a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') -Expecting nothing -ok -Trying: - vcs.queries.istextcombined(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('textorientation') # available textorientations -Expecting: - *******************Textorientation Names List********************** - ... - *******************End Textorientation Names List********************** -ok -Trying: - ex = a.gettextorientation() -Expecting nothing -ok -Trying: - vcs.queries.istextorientation(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('texttable') # available texttables -Expecting: - *******************Texttable Names List********************** - ... - *******************End Texttable Names List********************** -ok -Trying: - ex = a.gettexttable() -Expecting nothing -ok -Trying: - vcs.queries.istexttable(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('1d') # available 1ds -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -Trying: - ex = a.get1d('default') -Expecting nothing -ok -Trying: - vcs.queries.is1d(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('xvsy') # available xvsys -Expecting: - *******************Xvsy Names List********************** - ... - *******************End Xvsy Names List********************** -ok -Trying: - ex = a.getxvsy() -Expecting nothing -ok -Trying: - vcs.queries.isxvsy(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('xyvsy') # available xyvsys -Expecting: - *******************Xyvsy Names List********************** - ... - *******************End Xyvsy Names List********************** -ok -Trying: - ex = a.getxyvsy('default_xyvsy_') -Expecting nothing -ok -Trying: - vcs.queries.isxyvsy(ex) -Expecting: - 1 -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('yxvsx') # available yxvsxs -Expecting: - *******************Yxvsx Names List********************** - ... - *******************End Yxvsx Names List********************** -ok -Trying: - ex = a.getyxvsx() -Expecting nothing -ok -Trying: - vcs.queries.isyxvsx(ex) -Expecting: - 1 -ok -1 items had no tests: - vcs.queries -27 items passed all tests: - 2 tests in vcs.queries.graphicsmethodlist - 7 tests in vcs.queries.graphicsmethodtype - 4 tests in vcs.queries.is1d - 4 tests in vcs.queries.is3d_dual_scalar - 4 tests in vcs.queries.is3d_scalar - 4 tests in vcs.queries.is3d_vector - 4 tests in vcs.queries.isboxfill - 4 tests in vcs.queries.iscolormap - 4 tests in vcs.queries.isfillarea - 3 tests in vcs.queries.isgraphicsmethod - 4 tests in vcs.queries.isisofill - 4 tests in vcs.queries.isisoline - 4 tests in vcs.queries.isline - 4 tests in vcs.queries.ismarker - 4 tests in vcs.queries.ismeshfill - 4 tests in vcs.queries.isplot - 4 tests in vcs.queries.isprojection - 4 tests in vcs.queries.isscatter - 4 tests in vcs.queries.issecondaryobject - 4 tests in vcs.queries.istaylordiagram - 4 tests in vcs.queries.istemplate - 4 tests in vcs.queries.istextorientation - 4 tests in vcs.queries.istexttable - 4 tests in vcs.queries.isvector - 4 tests in vcs.queries.isxvsy - 4 tests in vcs.queries.isxyvsy - 4 tests in vcs.queries.isyxvsx -********************************************************************** -1 items had failures: - 1 of 5 in vcs.queries.istextcombined -113 tests in 29 items. -112 passed and 1 failed. -***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/taylor.report b/docs/doctest_info/reports/taylor.report deleted file mode 100644 index dac844984..000000000 --- a/docs/doctest_info/reports/taylor.report +++ /dev/null @@ -1,155 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.gettaylordiagram() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -133 items had no tests: - vcs.taylor - vcs.taylor.Gtd - vcs.taylor.Gtd.Marker - vcs.taylor.Gtd.__init__ - vcs.taylor.Gtd._getMarker - vcs.taylor.Gtd._getarrowangle - vcs.taylor.Gtd._getarrowbase - vcs.taylor.Gtd._getarrowlength - vcs.taylor.Gtd._getcmtics1 - vcs.taylor.Gtd._getcticlabels1 - vcs.taylor.Gtd._getdetail - vcs.taylor.Gtd._getmax - vcs.taylor.Gtd._getname - vcs.taylor.Gtd._getquadrans - vcs.taylor.Gtd._getreferencevalue - vcs.taylor.Gtd._getskillDrawLabels - vcs.taylor.Gtd._getskillcoefficient - vcs.taylor.Gtd._getskillcolor - vcs.taylor.Gtd._getskillvalues - vcs.taylor.Gtd._getxmtics1 - vcs.taylor.Gtd._getxticlabels1 - vcs.taylor.Gtd._getymtics1 - vcs.taylor.Gtd._getyticlabels1 - vcs.taylor.Gtd._setMarker - vcs.taylor.Gtd._setarrowangle - vcs.taylor.Gtd._setarrowbase - vcs.taylor.Gtd._setarrowlength - vcs.taylor.Gtd._setcmtics1 - vcs.taylor.Gtd._setcticlabels1 - vcs.taylor.Gtd._setdetail - vcs.taylor.Gtd._setmax - vcs.taylor.Gtd._setname - vcs.taylor.Gtd._setquadrans - vcs.taylor.Gtd._setreferencevalue - vcs.taylor.Gtd._setskillDrawLabels - vcs.taylor.Gtd._setskillcoefficient - vcs.taylor.Gtd._setskillcolor - vcs.taylor.Gtd._setskillvalues - vcs.taylor.Gtd._setxmtics1 - vcs.taylor.Gtd._setxticlabels1 - vcs.taylor.Gtd._setymtics1 - vcs.taylor.Gtd._setyticlabels1 - vcs.taylor.Gtd.addMarker - vcs.taylor.Gtd.arrowangle - vcs.taylor.Gtd.arrowbase - vcs.taylor.Gtd.arrowlength - vcs.taylor.Gtd.cmtics1 - vcs.taylor.Gtd.convert - vcs.taylor.Gtd.cticlabels1 - vcs.taylor.Gtd.defaultSkillFunction - vcs.taylor.Gtd.detail - vcs.taylor.Gtd.draw - vcs.taylor.Gtd.drawFrame - vcs.taylor.Gtd.drawSkill - vcs.taylor.Gtd.drawarrow - vcs.taylor.Gtd.getArc - vcs.taylor.Gtd.list - vcs.taylor.Gtd.max - vcs.taylor.Gtd.name - vcs.taylor.Gtd.plot - vcs.taylor.Gtd.quadrans - vcs.taylor.Gtd.referencevalue - vcs.taylor.Gtd.rename - vcs.taylor.Gtd.setWorldCoordinate - vcs.taylor.Gtd.skillCoefficient - vcs.taylor.Gtd.skillColor - vcs.taylor.Gtd.skillDrawLabels - vcs.taylor.Gtd.skillValues - vcs.taylor.Gtd.viewport - vcs.taylor.Gtd.worldcoordinate - vcs.taylor.Gtd.xmtics1 - vcs.taylor.Gtd.xticlabels1 - vcs.taylor.Gtd.ymtics1 - vcs.taylor.Gtd.yticlabels1 - vcs.taylor.TDMarker - vcs.taylor.TDMarker.__getstate__ - vcs.taylor.TDMarker.__init__ - vcs.taylor.TDMarker.__len__ - vcs.taylor.TDMarker.__setstate__ - vcs.taylor.TDMarker._getcolor - vcs.taylor.TDMarker._getid - vcs.taylor.TDMarker._getid_color - vcs.taylor.TDMarker._getid_font - vcs.taylor.TDMarker._getid_size - vcs.taylor.TDMarker._getline - vcs.taylor.TDMarker._getline_color - vcs.taylor.TDMarker._getline_size - vcs.taylor.TDMarker._getline_type - vcs.taylor.TDMarker._getnumber - vcs.taylor.TDMarker._getsize - vcs.taylor.TDMarker._getstatus - vcs.taylor.TDMarker._getsymbol - vcs.taylor.TDMarker._getxoffset - vcs.taylor.TDMarker._getyoffset - vcs.taylor.TDMarker._setcolor - vcs.taylor.TDMarker._setid - vcs.taylor.TDMarker._setid_color - vcs.taylor.TDMarker._setid_font - vcs.taylor.TDMarker._setid_size - vcs.taylor.TDMarker._setline - vcs.taylor.TDMarker._setline_color - vcs.taylor.TDMarker._setline_size - vcs.taylor.TDMarker._setline_type - vcs.taylor.TDMarker._setnumber - vcs.taylor.TDMarker._setsize - vcs.taylor.TDMarker._setstatus - vcs.taylor.TDMarker._setsymbol - vcs.taylor.TDMarker._setxoffset - vcs.taylor.TDMarker._setyoffset - vcs.taylor.TDMarker.addMarker - vcs.taylor.TDMarker.checklineconnectingtype - vcs.taylor.TDMarker.color - vcs.taylor.TDMarker.eq - vcs.taylor.TDMarker.equalize - vcs.taylor.TDMarker.id - vcs.taylor.TDMarker.id_color - vcs.taylor.TDMarker.id_font - vcs.taylor.TDMarker.id_size - vcs.taylor.TDMarker.insert - vcs.taylor.TDMarker.line - vcs.taylor.TDMarker.line_color - vcs.taylor.TDMarker.line_size - vcs.taylor.TDMarker.line_type - vcs.taylor.TDMarker.list - vcs.taylor.TDMarker.number - vcs.taylor.TDMarker.pop - vcs.taylor.TDMarker.size - vcs.taylor.TDMarker.status - vcs.taylor.TDMarker.symbol - vcs.taylor.TDMarker.xoffset - vcs.taylor.TDMarker.yoffset - vcs.taylor.createnewvcsobj - vcs.taylor.process_src -1 items passed all tests: - 4 tests in vcs.taylor.Gtd.script -4 tests in 134 items. -4 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/template.report b/docs/doctest_info/reports/template.report deleted file mode 100644 index 901397f7c..000000000 --- a/docs/doctest_info/reports/template.report +++ /dev/null @@ -1,595 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # We need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - s = f('clt') # use the data file to create a slab -Expecting nothing -ok -Trying: - t=a.gettemplate() -Expecting nothing -ok -Trying: - b=a.getboxfill() # boxfill gm -Expecting nothing -ok -Trying: - t.drawAttributes(a,s,b) # shows attributes of s on canvas -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 1579, in vcs.template.P.drawAttributes -Failed example: - t.drawAttributes(a,s,b) # shows attributes of s on canvas -Expected nothing -Got: - [, , , , ] -Trying: - x = vcs.init() -Expecting nothing -ok -Trying: - t = vcs.createtemplate() -Expecting nothing -ok -Trying: - l_colors=["red","blue","green"] -Expecting nothing -ok -Trying: - l_types=["solid","dash","dot"] -Expecting nothing -ok -Trying: - l_widths=[1,4,8] -Expecting nothing -ok -Trying: - m_colors=["blue","green","red"] -Expecting nothing -ok -Trying: - m_types=["cross","square","dot"] -Expecting nothing -ok -Trying: - m_sizes=[3,4,5] -Expecting nothing -ok -Trying: - strings=["sample A","type B","thing C"] -Expecting nothing -ok -Trying: - scratch=[True,False,True] -Expecting nothing -ok -Trying: - t.drawLinesAndMarkersLegend(x, l_colors, l_types, l_widths, - m_colors, m_types, m_sizes, strings, scratch) -Expecting nothing -ok -Trying: - x.png("sample") -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - obj=a.gettemplate() # default -Expecting nothing -ok -Trying: - obj.list() # print template attributes -Expecting: - ---------- ... ---------- - ... -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/template.py", line 546, in vcs.template.P.list -Failed example: - obj.list() # print template attributes -Expected: - ---------- ... ---------- - ... -Got: - ---------- Template (P) member (attribute) listings ---------- - method = P - name = default - orientation = 0 - member = file - priority = 1 - x = 0.0500000007451 - y = 0.0130000002682 - texttable = default - textorientation = default - member = function - priority = 1 - x = 0.0500000007451 - y = 0.0130000002682 - texttable = default - textorientation = default - member = logicalmask - priority = 1 - x = 0.0500000007451 - y = 0.0329999998212 - texttable = default - textorientation = default - member = transformation - priority = 1 - x = 0.0500000007451 - y = 0.0529999993742 - texttable = default - textorientation = default - member = source - priority = 1 - x = 0.0500000007451 - y = 0.941999971867 - texttable = default - textorientation = default - member = dataname - priority = 1 - x = 0.0500000007451 - y = 0.922999978065 - texttable = default - textorientation = default - member = title - priority = 1 - x = 0.15000000596 - y = 0.922999978065 - texttable = default - textorientation = default - member = units - priority = 1 - x = 0.670000016689 - y = 0.922999978065 - texttable = default - textorientation = default - member = crdate - priority = 1 - x = 0.75 - y = 0.922999978065 - texttable = default - textorientation = default - member = crtime - priority = 1 - x = 0.850000023842 - y = 0.922999978065 - texttable = default - textorientation = default - member = comment1 - priority = 1 - x = 0.10000000149 - y = 0.954999983311 - texttable = default - textorientation = default - member = comment2 - priority = 1 - x = 0.10000000149 - y = 0.975000023842 - texttable = default - textorientation = default - member = comment3 - priority = 1 - x = 0.10000000149 - y = 0.995000004768 - texttable = default - textorientation = default - member = comment4 - priority = 1 - x = 0.10000000149 - y = 0.999000012875 - texttable = default - textorientation = default - member = xname - priority = 1 - x = 0.5 - y = 0.21 - texttable = default - textorientation = defcenter - member = yname - priority = 1 - x = 0.006 - y = 0.56 - texttable = default - textorientation = defup - member = zname - priority = 0 - x = 0.0 - y = 0.995000004768 - texttable = default - textorientation = default - member = tname - priority = 1 - x = 0.0 - y = 0.995000004768 - texttable = default - textorientation = default - member = xunits - priority = 1 - x = 0.600000023842 - y = 0.277000010014 - texttable = default - textorientation = default - member = yunits - priority = 1 - x = 0.019999999553 - y = 0.658999979496 - texttable = default - textorientation = default - member = zunits - priority = 0 - x = 0.0 - y = 0.995000004768 - texttable = default - textorientation = default - member = tunits - priority = 0 - x = 0.0 - y = 0.995000004768 - texttable = default - textorientation = default - member = xvalue - priority = 1 - x = 0.800000011921 - y = 0.941999971867 - format = default - texttable = default - textorientation = default - member = yvalue - priority = 1 - x = 0.800000011921 - y = 0.922999978065 - format = default - texttable = default - textorientation = default - member = zvalue - priority = 1 - x = 0.800000011921 - y = 0.902999997139 - format = default - texttable = default - textorientation = default - member = tvalue - priority = 1 - x = 0.800000011921 - y = 0.883000016212 - format = default - texttable = default - textorientation = default - member = mean - priority = 1 - x = 0.0500000007451 - y = 0.899999976158 - format = default - texttable = default - textorientation = default - member = min - priority = 1 - x = 0.449999988079 - y = 0.899999976158 - format = default - texttable = default - textorientation = default - member = max - priority = 1 - x = 0.25 - y = 0.899999976158 - format = default - texttable = default - textorientation = default - member = xtic1 - priority = 1 - y1 = 0.259999990463 - y2 = 0.24699999392 - line = default - member = xtic2 - priority = 1 - y1 = 0.860000014305 - y2 = 0.871999979019 - line = default - member = xmintic1 - priority = 0 - y1 = 0.259999990463 - y2 = 0.256999999285 - line = default - member = xmintic2 - priority = 0 - y1 = 0.860000014305 - y2 = 0.860000014305 - line = default - member = ytic1 - priority = 1 - x1 = 0.0500000007451 - x2 = 0.0399999991059 - line = default - member = ytic2 - priority = 1 - x1 = 0.949999988079 - x2 = 0.959999978542 - line = default - member = ymintic1 - priority = 0 - x1 = 0.0500000007451 - x2 = 0.0450000017881 - line = default - member = ymintic2 - priority = 0 - x1 = 0.949999988079 - x2 = 0.954999983311 - line = default - member = xlabel1 - priority = 1 - y = 0.234999999404 - texttable = default - textorientation = defcenter - member = xlabel2 - priority = 0 - y = 0.870000004768 - texttable = default - textorientation = defcenter - member = ylabel1 - priority = 1 - x = 0.0399999991059 - texttable = default - textorientation = defright - member = ylabel2 - priority = 0 - x = 0.959999978542 - texttable = default - textorientation = default - member = box1 - priority = 1 - x1 = 0.0500000007451 - y1 = 0.259999990463 - x2 = 0.949999988079 - y2 = 0.860000014305 - line = default - member = box2 - priority = 0 - x1 = 0.0 - y1 = 0.300000011921 - x2 = 0.920000016689 - y2 = 0.879999995232 - line = default - member = box3 - priority = 0 - x1 = 0.0 - y1 = 0.319999992847 - x2 = 0.910000026226 - y2 = 0.860000014305 - line = default - member = box4 - priority = 0 - x1 = 0.0 - y1 = 0.0 - x2 = 0.0 - y2 = 0.0 - line = default - member = line1 - priority = 0 - x1 = 0.0500000007451 - y1 = 0.560000002384 - x2 = 0.949999988079 - y2 = 0.560000002384 - line = default - member = line2 - priority = 0 - x1 = 0.5 - y1 = 0.259999990463 - x2 = 0.5 - y2 = 0.860000014305 - line = default - member = line3 - priority = 0 - x1 = 0.0 - y1 = 0.52999997139 - x2 = 0.899999976158 - y2 = 0.52999997139 - line = default - member = line4 - priority = 0 - x1 = 0.0 - y1 = 0.990000009537 - x2 = 0.899999976158 - y2 = 0.990000009537 - line = default - member = legend - priority = 1 - x1 = 0.0500000007451 - y1 = 0.129999995232 - x2 = 0.949999988079 - y2 = 0.159999996424 - line = default - texttable = default - textorientation = defcenter - offset = 0.01 - member = data - priority = 1 - x1 = 0.0500000007451 - y1 = 0.259999990463 - x2 = 0.949999988079 - y2 = 0.860000014305 -Trying: - t=vcs.createtemplate('t_move') # inherits default template -Expecting nothing -ok -Trying: - t.move(0.2,'x') # Move everything right by 20% -Expecting nothing -ok -Trying: - t.move(0.2,'y') # Move everything up by 20% -Expecting nothing -ok -Trying: - t=vcs.createtemplate('t_move2') # inherits default template -Expecting nothing -ok -Trying: - t.moveto(0.2, 0.2) # Move template so x1 and y1 are 0.2 -Expecting nothing -ok -Trying: - t=vcs.gettemplate() -Expecting nothing -ok -Trying: - t.ratio(2) # y is twice x -Expecting nothing -ok -Trying: - t=vcs.gettemplate() -Expecting nothing -ok -Trying: - t.ratio_linear_projection(-135,-50,20,50) # USA -Expecting nothing -ok -Trying: - t=vcs.createtemplate('t_reset') # inherits from 'default' -Expecting nothing -ok -Trying: - data, data2 = t.data.x1, t.data.x2 -Expecting nothing -ok -Trying: - t.reset('x',0.15,0.5,data,data2) # Set x1 to 0.15, x2 to 0.5 -Expecting nothing -ok -Trying: - t=vcs.createtemplate('t_scale') # inherits default template -Expecting nothing -ok -Trying: - t.scale(0.5) # Halves the template size -Expecting nothing -ok -Trying: - t.scale(1.2) # Increases size by 20% -Expecting nothing -ok -Trying: - t.scale(2,'x') # Double the x axis -Expecting nothing -ok -Trying: - t=vcs.createtemplate('t_scfnt') # inherits default template -Expecting nothing -ok -Trying: - t.scalefont(0.5) # reduces the fonts size by 2 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.gettemplate() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -68 items had no tests: - vcs.template - vcs.template.P - vcs.template.P.__init__ - vcs.template.P._getName - vcs.template.P._getOrientation - vcs.template.P._setOrientation - vcs.template.P.blank - vcs.template.P.box1 - vcs.template.P.box2 - vcs.template.P.box3 - vcs.template.P.box4 - vcs.template.P.comment1 - vcs.template.P.comment2 - vcs.template.P.comment3 - vcs.template.P.comment4 - vcs.template.P.crdate - vcs.template.P.crtime - vcs.template.P.data - vcs.template.P.dataname - vcs.template.P.drawColorBar - vcs.template.P.drawTicks - vcs.template.P.file - vcs.template.P.function - vcs.template.P.legend - vcs.template.P.line1 - vcs.template.P.line2 - vcs.template.P.line3 - vcs.template.P.line4 - vcs.template.P.logicalmask - vcs.template.P.max - vcs.template.P.mean - vcs.template.P.min - vcs.template.P.name - vcs.template.P.orientation - vcs.template.P.plot - vcs.template.P.source - vcs.template.P.title - vcs.template.P.tname - vcs.template.P.transformation - vcs.template.P.tunits - vcs.template.P.tvalue - vcs.template.P.units - vcs.template.P.xlabel1 - vcs.template.P.xlabel2 - vcs.template.P.xmintic1 - vcs.template.P.xmintic2 - vcs.template.P.xname - vcs.template.P.xtic1 - vcs.template.P.xtic2 - vcs.template.P.xunits - vcs.template.P.xvalue - vcs.template.P.ylabel1 - vcs.template.P.ylabel2 - vcs.template.P.ymintic1 - vcs.template.P.ymintic2 - vcs.template.P.yname - vcs.template.P.ytic1 - vcs.template.P.ytic2 - vcs.template.P.yunits - vcs.template.P.yvalue - vcs.template.P.zname - vcs.template.P.zunits - vcs.template.P.zvalue - vcs.template._getgen - vcs.template._setgen - vcs.template.epsilon_gte - vcs.template.epsilon_lte - vcs.template.process_src -9 items passed all tests: - 12 tests in vcs.template.P.drawLinesAndMarkersLegend - 3 tests in vcs.template.P.move - 2 tests in vcs.template.P.moveto - 2 tests in vcs.template.P.ratio - 2 tests in vcs.template.P.ratio_linear_projection - 3 tests in vcs.template.P.reset - 4 tests in vcs.template.P.scale - 2 tests in vcs.template.P.scalefont - 4 tests in vcs.template.P.script -********************************************************************** -2 items had failures: - 1 of 7 in vcs.template.P.drawAttributes - 1 of 3 in vcs.template.P.list -44 tests in 79 items. -42 passed and 2 failed. -***Test Failed*** 2 failures. diff --git a/docs/doctest_info/reports/textcombined.report b/docs/doctest_info/reports/textcombined.report deleted file mode 100644 index 122cd19ba..000000000 --- a/docs/doctest_info/reports/textcombined.report +++ /dev/null @@ -1,115 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 471, in vcs.textcombined.Tc.script -Failed example: - try: # try to create a new textcombined, in case none exist - vcs.createtextcombined('EXAMPLE_tt', 'qa', 'EXAMPLE_tto', '7left') - except: - pass -Expected nothing -Got: - -Trying: - ex=a.gettextcombined('EXAMPLE_tt', 'EXAMPLE_tto') -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 476, in vcs.textcombined.Tc.script -Failed example: - ex.script('filename.py') # append to 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # append to 'filename.py' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/textcombined.py", line 503, in script - fp.write("%s.color = %g\n\n" % (unique_name, self.color)) - TypeError: float argument required, not list -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -64 items had no tests: - vcs.textcombined - vcs.textcombined.Tc - vcs.textcombined.Tc.To_name - vcs.textcombined.Tc.Tt_name - vcs.textcombined.Tc.__init__ - vcs.textcombined.Tc._getToname - vcs.textcombined.Tc._getTtname - vcs.textcombined.Tc._getangle - vcs.textcombined.Tc._getcolor - vcs.textcombined.Tc._getcolormap - vcs.textcombined.Tc._getexpansion - vcs.textcombined.Tc._getfcolor - vcs.textcombined.Tc._getfont - vcs.textcombined.Tc._gethalign - vcs.textcombined.Tc._getheight - vcs.textcombined.Tc._getpath - vcs.textcombined.Tc._getpriority - vcs.textcombined.Tc._getprojection - vcs.textcombined.Tc._getspacing - vcs.textcombined.Tc._getstring - vcs.textcombined.Tc._getvalign - vcs.textcombined.Tc._getviewport - vcs.textcombined.Tc._getworldcoordinate - vcs.textcombined.Tc._getx - vcs.textcombined.Tc._gety - vcs.textcombined.Tc._setToname - vcs.textcombined.Tc._setTtname - vcs.textcombined.Tc._setangle - vcs.textcombined.Tc._setcolor - vcs.textcombined.Tc._setcolormap - vcs.textcombined.Tc._setexpansion - vcs.textcombined.Tc._setfcolor - vcs.textcombined.Tc._setfont - vcs.textcombined.Tc._sethalign - vcs.textcombined.Tc._setheight - vcs.textcombined.Tc._setpath - vcs.textcombined.Tc._setpriority - vcs.textcombined.Tc._setprojection - vcs.textcombined.Tc._setspacing - vcs.textcombined.Tc._setstring - vcs.textcombined.Tc._setvalign - vcs.textcombined.Tc._setviewport - vcs.textcombined.Tc._setworldcoordinate - vcs.textcombined.Tc._setx - vcs.textcombined.Tc._sety - vcs.textcombined.Tc.angle - vcs.textcombined.Tc.color - vcs.textcombined.Tc.colormap - vcs.textcombined.Tc.expansion - vcs.textcombined.Tc.fillincolor - vcs.textcombined.Tc.font - vcs.textcombined.Tc.halign - vcs.textcombined.Tc.height - vcs.textcombined.Tc.list - vcs.textcombined.Tc.path - vcs.textcombined.Tc.priority - vcs.textcombined.Tc.projection - vcs.textcombined.Tc.spacing - vcs.textcombined.Tc.string - vcs.textcombined.Tc.valign - vcs.textcombined.Tc.viewport - vcs.textcombined.Tc.worldcoordinate - vcs.textcombined.Tc.x - vcs.textcombined.Tc.y -********************************************************************** -1 items had failures: - 2 of 5 in vcs.textcombined.Tc.script -5 tests in 65 items. -3 passed and 2 failed. -***Test Failed*** 2 failures. diff --git a/docs/doctest_info/reports/textorientation.report b/docs/doctest_info/reports/textorientation.report deleted file mode 100644 index 49718750a..000000000 --- a/docs/doctest_info/reports/textorientation.report +++ /dev/null @@ -1,45 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.gettextorientation() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -23 items had no tests: - vcs.textorientation - vcs.textorientation.To - vcs.textorientation.To.__init__ - vcs.textorientation.To._getangle - vcs.textorientation.To._gethalign - vcs.textorientation.To._getheight - vcs.textorientation.To._getname - vcs.textorientation.To._getpath - vcs.textorientation.To._getvalign - vcs.textorientation.To._setangle - vcs.textorientation.To._sethalign - vcs.textorientation.To._setheight - vcs.textorientation.To._setname - vcs.textorientation.To._setpath - vcs.textorientation.To._setvalign - vcs.textorientation.To.angle - vcs.textorientation.To.halign - vcs.textorientation.To.height - vcs.textorientation.To.list - vcs.textorientation.To.name - vcs.textorientation.To.path - vcs.textorientation.To.valign - vcs.textorientation.process_src -1 items passed all tests: - 4 tests in vcs.textorientation.To.script -4 tests in 24 items. -4 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/texttable.report b/docs/doctest_info/reports/texttable.report deleted file mode 100644 index f47057358..000000000 --- a/docs/doctest_info/reports/texttable.report +++ /dev/null @@ -1,86 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.gettexttable() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 527, in vcs.texttable.Tt.script -Failed example: - ex.script('filename.py') # append to 'filename.py' -Exception raised: - Traceback (most recent call last): - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/doctest.py", line 1315, in __run - compileflags, 1) in test.globs - File "", line 1, in - ex.script('filename.py') # append to 'filename.py' - File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/texttable.py", line 558, in script - fp.write("%s.color = %g\n\n" % (unique_name, self.color)) - TypeError: float argument required, not tuple -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -51 items had no tests: - vcs.texttable - vcs.texttable.Tt - vcs.texttable.Tt.__init__ - vcs.texttable.Tt._getbackgroundcolor - vcs.texttable.Tt._getbackgroundopacity - vcs.texttable.Tt._getcolor - vcs.texttable.Tt._getexpansion - vcs.texttable.Tt._getfillincolor - vcs.texttable.Tt._getfont - vcs.texttable.Tt._getname - vcs.texttable.Tt._getpriority - vcs.texttable.Tt._getprojection - vcs.texttable.Tt._getspacing - vcs.texttable.Tt._getstring - vcs.texttable.Tt._getvp - vcs.texttable.Tt._getwc - vcs.texttable.Tt._getx - vcs.texttable.Tt._gety - vcs.texttable.Tt._setbackgroundcolor - vcs.texttable.Tt._setbackgroundopacity - vcs.texttable.Tt._setcolor - vcs.texttable.Tt._setexpansion - vcs.texttable.Tt._setfillincolor - vcs.texttable.Tt._setfont - vcs.texttable.Tt._setname - vcs.texttable.Tt._setpriority - vcs.texttable.Tt._setprojection - vcs.texttable.Tt._setspacing - vcs.texttable.Tt._setstring - vcs.texttable.Tt._setvp - vcs.texttable.Tt._setwc - vcs.texttable.Tt._setx - vcs.texttable.Tt._sety - vcs.texttable.Tt.backgroundcolor - vcs.texttable.Tt.backgroundopacity - vcs.texttable.Tt.color - vcs.texttable.Tt.colormap - vcs.texttable.Tt.expansion - vcs.texttable.Tt.fillincolor - vcs.texttable.Tt.font - vcs.texttable.Tt.list - vcs.texttable.Tt.name - vcs.texttable.Tt.priority - vcs.texttable.Tt.projection - vcs.texttable.Tt.spacing - vcs.texttable.Tt.string - vcs.texttable.Tt.viewport - vcs.texttable.Tt.worldcoordinate - vcs.texttable.Tt.x - vcs.texttable.Tt.y - vcs.texttable.process_src -********************************************************************** -1 items had failures: - 1 of 4 in vcs.texttable.Tt.script -4 tests in 52 items. -3 passed and 1 failed. -***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/unified1D.report b/docs/doctest_info/reports/unified1D.report deleted file mode 100644 index e9f3b88be..000000000 --- a/docs/doctest_info/reports/unified1D.report +++ /dev/null @@ -1,239 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.create1d('1d_dwc') -Expecting nothing -ok -Trying: - ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 -Expecting nothing -ok -Trying: - ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 -Expecting: - (0.0, 0.1, 1.0, 1.1) -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - obj=a.get1d('default') # default -Expecting nothing -ok -Trying: - obj.list() # print 1d attributes -Expecting: - ---------- ... ---------- - ... -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getyxvsx() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -ok -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.create1d() -Expecting nothing -ok -Trying: - ex.xmtics("lon5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.xmintic1.priority = 1 # plotting shows xmtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.create1d() -Expecting nothing -ok -Trying: - ex.xticlabels({0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=vcs.create1d() -Expecting nothing -ok -Trying: - ex.ymtics("lat5") # minitick every 5 degrees -Expecting nothing -ok -Trying: - tmp=vcs.createtemplate() # custom template to plot minitics -Expecting nothing -ok -Trying: - tmp.ymintic1.priority = 1 # plotting shows ymtics -Expecting nothing -ok -Trying: - a = vcs.init() -Expecting nothing -ok -Trying: - import cdms2 # Need cdms2 to create a slab -Expecting nothing -ok -Trying: - f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file -Expecting nothing -ok -Trying: - ex = a.create1d() -Expecting nothing -ok -Trying: - ex.yticlabels({0: "Eq.", 37.6819: "L", 55.7558: "M"}) -Expecting nothing -ok -Trying: - a.plot(ex, f('u')) # plot shows labels -Expecting: - -ok -90 items had no tests: - vcs.unified1D - vcs.unified1D.G1d - vcs.unified1D.G1d.__init__ - vcs.unified1D.G1d._getcalendar - vcs.unified1D.G1d._getdatawc_x1 - vcs.unified1D.G1d._getdatawc_x2 - vcs.unified1D.G1d._getdatawc_y1 - vcs.unified1D.G1d._getdatawc_y2 - vcs.unified1D.G1d._getflip - vcs.unified1D.G1d._getline - vcs.unified1D.G1d._getlinecolor - vcs.unified1D.G1d._getlinetype - vcs.unified1D.G1d._getlinewidth - vcs.unified1D.G1d._getmarker - vcs.unified1D.G1d._getmarkercolor - vcs.unified1D.G1d._getmarkersize - vcs.unified1D.G1d._getname - vcs.unified1D.G1d._getprojection - vcs.unified1D.G1d._getsmooth - vcs.unified1D.G1d._gettimeunits - vcs.unified1D.G1d._getxaxisconvert - vcs.unified1D.G1d._getxmtics1 - vcs.unified1D.G1d._getxmtics2 - vcs.unified1D.G1d._getxticlabels1 - vcs.unified1D.G1d._getxticlabels2 - vcs.unified1D.G1d._getyaxisconvert - vcs.unified1D.G1d._getymtics1 - vcs.unified1D.G1d._getymtics2 - vcs.unified1D.G1d._getyticlabels1 - vcs.unified1D.G1d._getyticlabels2 - vcs.unified1D.G1d._gtype - vcs.unified1D.G1d._setcalendar - vcs.unified1D.G1d._setdatawc_x1 - vcs.unified1D.G1d._setdatawc_x2 - vcs.unified1D.G1d._setdatawc_y1 - vcs.unified1D.G1d._setdatawc_y2 - vcs.unified1D.G1d._setflip - vcs.unified1D.G1d._setline - vcs.unified1D.G1d._setlinecolor - vcs.unified1D.G1d._setlinetype - vcs.unified1D.G1d._setlinewidth - vcs.unified1D.G1d._setmarker - vcs.unified1D.G1d._setmarkercolor - vcs.unified1D.G1d._setmarkersize - vcs.unified1D.G1d._setname - vcs.unified1D.G1d._setprojection - vcs.unified1D.G1d._setsmooth - vcs.unified1D.G1d._settimeunits - vcs.unified1D.G1d._setxaxisconvert - vcs.unified1D.G1d._setxmtics1 - vcs.unified1D.G1d._setxmtics2 - vcs.unified1D.G1d._setxticlabels1 - vcs.unified1D.G1d._setxticlabels2 - vcs.unified1D.G1d._setyaxisconvert - vcs.unified1D.G1d._setymtics1 - vcs.unified1D.G1d._setymtics2 - vcs.unified1D.G1d._setyticlabels1 - vcs.unified1D.G1d._setyticlabels2 - vcs.unified1D.G1d.colormap - vcs.unified1D.G1d.datawc_calendar - vcs.unified1D.G1d.datawc_timeunits - vcs.unified1D.G1d.datawc_x1 - vcs.unified1D.G1d.datawc_x2 - vcs.unified1D.G1d.datawc_y1 - vcs.unified1D.G1d.datawc_y2 - vcs.unified1D.G1d.flip - vcs.unified1D.G1d.g_type - vcs.unified1D.G1d.line - vcs.unified1D.G1d.linecolor - vcs.unified1D.G1d.linetype - vcs.unified1D.G1d.linewidth - vcs.unified1D.G1d.marker - vcs.unified1D.G1d.markercolor - vcs.unified1D.G1d.markersize - vcs.unified1D.G1d.name - vcs.unified1D.G1d.projection - vcs.unified1D.G1d.setLineAttributes - vcs.unified1D.G1d.smooth - vcs.unified1D.G1d.xaxisconvert - vcs.unified1D.G1d.xmtics1 - vcs.unified1D.G1d.xmtics2 - vcs.unified1D.G1d.xticlabels1 - vcs.unified1D.G1d.xticlabels2 - vcs.unified1D.G1d.yaxisconvert - vcs.unified1D.G1d.ymtics1 - vcs.unified1D.G1d.ymtics2 - vcs.unified1D.G1d.yticlabels1 - vcs.unified1D.G1d.yticlabels2 - vcs.unified1D.load - vcs.unified1D.process_src -7 items passed all tests: - 4 tests in vcs.unified1D.G1d.datawc - 3 tests in vcs.unified1D.G1d.list - 4 tests in vcs.unified1D.G1d.script - 5 tests in vcs.unified1D.G1d.xmtics - 6 tests in vcs.unified1D.G1d.xticlabels - 5 tests in vcs.unified1D.G1d.ymtics - 6 tests in vcs.unified1D.G1d.yticlabels -33 tests in 97 items. -33 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/utils.report b/docs/doctest_info/reports/utils.report deleted file mode 100644 index 9a111e4ae..000000000 --- a/docs/doctest_info/reports/utils.report +++ /dev/null @@ -1,694 +0,0 @@ -Trying: - import os, sys -Expecting nothing -ok -Trying: - x=vcs.init() -Expecting nothing -ok -Trying: - x.open() -Expecting nothing -ok -Trying: - path=os.path.join(sys.prefix,"share","vcs","uvcdat.png") -Expecting nothing -ok -Trying: - logo1=vcs.utils.Logo(path) -Expecting nothing -ok -Trying: - logo1.x=.7 -Expecting nothing -ok -Trying: - logo1.y=.8 -Expecting nothing -ok -Trying: - logo2 = vcs.utils.Logo("My Test Logo") -Expecting nothing -ok -Trying: - logo2.x = .2 -Expecting nothing -ok -Trying: - logo2.y = .2 -Expecting nothing -ok -Trying: - logo1.plot(x) -Expecting nothing -ok -Trying: - logo2.plot(x) -Expecting nothing -ok -Trying: - import os, sys -Expecting nothing -ok -Trying: - x=vcs.init() -Expecting nothing -ok -Trying: - x.open() -Expecting nothing -ok -Trying: - path=os.path.join(sys.prefix,"share/vcs/uvcdat.png") -Expecting nothing -ok -Trying: - logo1 = vcs.utils.Logo(path) -Expecting nothing -ok -Trying: - logo1.x=.7 -Expecting nothing -ok -Trying: - logo1.y=.8 -Expecting nothing -ok -Trying: - logo2 = vcs.utils.Logo("My Test Logo") -Expecting nothing -ok -Trying: - logo2.x = .2 -Expecting nothing -ok -Trying: - logo2.y = .2 -Expecting nothing -ok -Trying: - logo1.plot(x) -Expecting nothing -ok -Trying: - logo2.plot(x) -Expecting nothing -ok -Trying: - cgm=vcs.creategraphicsmethod # alias long name -Expecting nothing -ok -Trying: - cgm('Gfm') # meshfill inherits default; name generated -Expecting: - -ok -Trying: - cgm('boxfill','polar') # boxfill inherits polar; name generated -Expecting: - -ok -Trying: - cgm('Gfi',name='my_gfi') # isofill inherits default; user-named -Expecting: - -ok -Trying: - import os # use this to check if sample data already exists -Expecting nothing -ok -Trying: - if not os.path.isdir(vcs.sample_data): - vcs.download_sample_data_files() -Expecting nothing -ok -Trying: - import vcs -Expecting nothing -ok -Trying: - x = vcs.init() -Expecting nothing -ok -Trying: - t = vcs.createtemplate() -Expecting nothing -ok -Trying: - vcs.utils.drawLinesAndMarkersLegend(x,t.legend, - ["red","blue","green"], ["solid","dash","dot"],[1,4,8], - ["blue","green","red"], ["cross","square","dot"],[3,4,5], - ["sample A","type B","thing C"], bg=True) -Expecting nothing -ok -Trying: - x.png("sample") -Expecting nothing -ok -Trying: - b=vcs.getboxfill() -Expecting nothing -ok -Trying: - t=vcs.gettemplate() -Expecting nothing -ok -Trying: - bd=vcs.dumpToDict(b) # serializes all properties -Expecting nothing -ok -Trying: - td=vcs.dumpToDict(t, skipped=['legend']) # skip legend property -Expecting nothing -ok -Trying: - 'legend' in td[0].keys() # 'legend' should not be in dictionary -Expecting: - False -ok -Trying: - box=vcs.getboxfill() -Expecting nothing -ok -Trying: - vcs.dumpToJson(box, 'box.json') # output properties to file -Expecting nothing -ok -Trying: - vcs.dumpToJson(box,None) # returns JSON string -Expecting: - '{...}' -ok -Trying: - import cdtime -Expecting nothing -ok -Trying: - lbls = vcs.generate_time_labels(cdtime.reltime(0,'months since 2000'), - cdtime.reltime(12,'months since 2000'), - 'days since 1800') # for the year 2000 in units of 'days since 1800' -Expecting nothing -ok -Trying: - lbls = vcs.generate_time_labels(cdtime.reltime(0,'months since 2000'), - cdtime.comptime(2001), - 'days since 1800') # for the year 2000 in units of 'days since 1800' -Expecting nothing -ok -Trying: - lbls = vcs.generate_time_labels(0, 12, 'months since 2000') # time labels for year 2000 -Expecting nothing -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - box=vcs.getboxfill('polar') -Expecting nothing -ok -Trying: - array=[range(10) for _ in range(10)] -Expecting nothing -ok -Trying: - a.plot(box,array) # plot something on canvas -Expecting: - -ok -Trying: - a.png('box.png') # make a png -Expecting nothing -ok -Trying: - vcs.get_png_dims('box.png') # get (width, height) of 'box.png' -Expecting: - (1536, 1186) -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - b=vcs.createboxfill() -Expecting nothing -ok -Trying: - b.colormap='rainbow' -Expecting nothing -ok -Trying: - a.getcolorcell(2,b) -Expecting: - [26, 1, 34, 100] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - a.show('colormap') # Show all colormap secondary methods -Expecting: - *******************Colormap Names List********************** - ... - *******************End Colormap Names List********************** -ok -Trying: - cp=a.getcolormap() # 'default' colormap -Expecting nothing -ok -Trying: - cp2=a.getcolormap('rainbow') # 'rainbow' colormap -Expecting nothing -ok -Trying: - a=[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] -Expecting nothing -ok -Trying: - vcs.getcolors (a) -Expecting: - [0, 28, 57, 85, 113, 142, 170, 198, 227, 255] -ok -Trying: - vcs.getcolors (a,colors=range(16,200)) -Expecting: - [16, 36, 57, 77, 97, 118, 138, 158, 179, 199] -ok -Trying: - vcs.getcolors(a,colors=[16,25,15,56,35,234,12,11,19,32,132,17]) -Expecting: - [16, 25, 15, 35, 234, 12, 11, 32, 132, 17] -ok -Trying: - a=[-6.0, -2.0, 2.0, 6.0, 10.0, 14.0, 18.0, 22.0, 26.0] -Expecting nothing -ok -Trying: - vcs.getcolors (a,white=241) -Expecting: - [0, 241, 128, 153, 179, 204, 230, 255] -ok -Trying: - vcs.getcolors (a,white=241,split=0) -Expecting: - [0, 36, 73, 109, 146, 182, 219, 255] -ok -Trying: - vcs.getfontname(1) -Expecting: - 'default' -ok -Trying: - vcs.getfontname(4) -Expecting: - 'Helvetica' -ok -Trying: - vcs.getfontnumber('default') -Expecting: - 1 -ok -Trying: - vcs.getfontnumber('Helvetica') -Expecting: - 4 -ok -Trying: - vcs.show('boxfill') # list available boxfills -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - vcs.getgraphicsmethod('boxfill','polar') # get polar boxfill -Expecting: - -ok -Trying: - import cdms2, os -Expecting nothing -ok -Trying: - if not os.path.exists(vcs.sample_data): - vcs.download_sample_data_files() # get some data for cdms2 -Expecting nothing -ok -Trying: - f=cdms2.open(vcs.sample_data + '/clt.nc') -Expecting nothing -ok -Trying: - v=f('v') # read variable v from clt.nc -Expecting nothing -ok -Trying: - xax=v.getAxis(3) # X axis -Expecting nothing -ok -Trying: - yax=v.getAxis(2) # Y axis -Expecting nothing -ok -Trying: - box=vcs.getboxfill() -Expecting nothing -ok -Trying: - vcs.getworldcoordinates(box, xax, yax) -Expecting: - [-180.0, 180.0, -88.288399, 88.288399] -ok -Trying: - vcs.listelements() # list all vcs object types -Expecting: - ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', ...] -ok -Trying: - vcs.listelements('1d') -Expecting: - [...] -ok -Trying: - vcs.listelements('boxfill') -Expecting: - [...] -ok -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - print vcs.match_color('salmon', 'magma') -Expecting: - 192 -ok -Trying: - print vcs.match_color('red', 'rainbow') -Expecting: - 242 -ok -Trying: - print vcs.match_color([0,0,100],'default') # closest color from blue -Expecting: - 52 -ok -Trying: - s=range(7) -Expecting nothing -ok -Trying: - vcs.minmax(s) -Expecting: - (0.0, 6.0) -ok -Trying: - vcs.minmax([s,s]) -Expecting: - (0.0, 6.0) -ok -Trying: - vcs.minmax([[s,s*2],4.,[6.,7.,s]],[5.,-7.,8,(6.,1.)]) -Expecting: - (-7.0, 8.0) -ok -Trying: - vcs.mkevenlevels(0,100) -Expecting: - [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0] -ok -Trying: - vcs.mkevenlevels(0,100,nlev=5) -Expecting: - [0.0, 20.0, 40.0, 60.0, 80.0, 100.0] -ok -Trying: - vcs.mkevenlevels(100,0,nlev=5) -Expecting: - [100.0, 80.0, 60.0, 40.0, 20.0, 0.0] -ok -Trying: - scale=vcs.mkscale(2,20,zero=2) -Expecting nothing -ok -Trying: - labels=vcs.mklabels(scale) -Expecting nothing -ok -Trying: - keys=labels.keys() -Expecting nothing -ok -Trying: - keys.sort() -Expecting nothing -ok -Trying: - for key in keys: - print key, ':', labels[key] -Expecting: - 0.0 : 0 - 2.0 : 2 - 4.0 : 4 - 6.0 : 6 - 8.0 : 8 - 10.0 : 10 - 12.0 : 12 - 14.0 : 14 - 16.0 : 16 - 18.0 : 18 - 20.0 : 20 -ok -Trying: - labels=vcs.mklabels([.00002,.00003,.00005]) -Expecting nothing -ok -Trying: - keys=labels.keys() -Expecting nothing -ok -Trying: - keys.sort() -Expecting nothing -ok -Trying: - for key in keys: - print key, ':', labels[key] -Expecting: - 2e-05 : 2E-5 - 3e-05 : 3E-5 - 5e-05 : 5E-5 -ok -Trying: - vcs.mklabels ([.00002,.00005],output='list') -Expecting: - ['2E-5', '5E-5'] -ok -Trying: - vcs.mkscale(0,100) -Expecting: - [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0] -ok -Trying: - vcs.mkscale(0,100,nc=5) -Expecting: - [0.0, 20.0, 40.0, 60.0, 80.0, 100.0] -ok -Trying: - vcs.mkscale(-10,100,nc=5) -Expecting: - [-25.0, 0.0, 25.0, 50.0, 75.0, 100.0] -ok -Trying: - vcs.mkscale(-10,100,nc=5,zero=-1) -Expecting: - [-20.0, 20.0, 60.0, 100.0] -ok -Trying: - vcs.mkscale(2,20) -Expecting: - [2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] -ok -Trying: - vcs.mkscale(2,20,zero=2) -Expecting: - [0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] -ok -Trying: - import numpy, cdms2, os -Expecting nothing -ok -Trying: - from random import randint -Expecting nothing -ok -Trying: - array=numpy.array([range(10) for _ in range(10)]) -Expecting nothing -ok -Trying: - mask=[] # we will use this to create a random mask -Expecting nothing -ok -Trying: - for _ in range(10): - mask.append([randint(0,1) for _ in range(10)]) -Expecting nothing -ok -Trying: - ma=numpy.ma.MaskedArray(array, mask) -Expecting nothing -ok -Trying: - if not os.path.exists(vcs.sample_data): - vcs.download_sample_data_files() # get some data for cdms2 -Expecting nothing -ok -Trying: - f=cdms2.open(vcs.sample_data + '/clt.nc') -Expecting nothing -ok -Trying: - v=f('v') # get variable 'v' from clt.nc -Expecting nothing -ok -Trying: - vcs.monotonic(array) # monotonicity of 2D numpy array -Expecting: - True -ok -Trying: - vcs.monotonic(ma) # monotonicity of simple masked array -Expecting: - True -ok -Trying: - vcs.monotonic(v) # monotonicity of cdms2 variable -Expecting: - False -ok -Trying: - cp = vcs.getcolormap() # Get a copy of the default colormap -Expecting nothing -ok -Trying: - vcs.rgba_color('black', cp) # Find the rgba equivalent for black -Expecting: - [0.0, 0.0, 0.0, 100] -ok -Trying: - vcs.setcolorcell("AMIP",11,0,0,0) -Expecting nothing -ok -Trying: - vcs.setcolorcell("AMIP",21,100,0,0) -Expecting nothing -ok -Trying: - vcs.setcolorcell("AMIP",31,0,100,0) -Expecting nothing -ok -Trying: - vcs.setcolorcell("AMIP",41,0,0,100) -Expecting nothing -ok -Trying: - vcs.setcolorcell("AMIP",51,100,100,100) -Expecting nothing -ok -Trying: - vcs.setcolorcell("AMIP",61,70,70,70) -Expecting nothing -ok -Trying: - vcs.show() # show all vcs object types -Expecting: - ['1d', '3d_dual_scalar', '3d_scalar', '3d_vector', 'boxfill', ...] -ok -Trying: - vcs.show('boxfill') # List boxfill objects -Expecting: - *******************Boxfill Names List********************** - ... - *******************End Boxfill Names List********************** -ok -Trying: - vcs.show('3d_vector') # List 3d_vector objects -Expecting: - *******************3d_vector Names List********************** - ... - *******************End 3d_vector Names List********************** -ok -Trying: - vcs.show('3d_scalar') # List 3d_scalar objects -Expecting: - *******************3d_scalar Names List********************** - ... - *******************End 3d_scalar Names List********************** -ok -Trying: - vcs.show('3d_dual_scalar') # List 3d_dual_scalar objects -Expecting: - *******************3d_dual_scalar Names List********************** - ... - *******************End 3d_dual_scalar Names List********************** -ok -Trying: - vcs.show('1d') # List 1d objects -Expecting: - *******************1d Names List********************** - ... - *******************End 1d Names List********************** -ok -20 items had no tests: - vcs.utils - vcs.utils.Logo.__init__ - vcs.utils.VCSUtilsError - vcs.utils.VCSUtilsError.__init__ - vcs.utils.VCSUtilsError.__str__ - vcs.utils.__split2contiguous - vcs.utils._scriptrun - vcs.utils.getDataWcValue - vcs.utils.getdotdirectory - vcs.utils.loadTemplate - vcs.utils.loadVCSItem - vcs.utils.png_read_metadata - vcs.utils.prettifyAxisLabels - vcs.utils.process_range_from_old_scr - vcs.utils.process_src_element - vcs.utils.return_display_names - vcs.utils.saveinitialfile - vcs.utils.scriptrun - vcs.utils.scriptrun_scr - vcs.utils.setTicksandLabels -26 items passed all tests: - 12 tests in vcs.utils.Logo - 12 tests in vcs.utils.Logo.plot - 4 tests in vcs.utils.creategraphicsmethod - 2 tests in vcs.utils.download_sample_data_files - 5 tests in vcs.utils.drawLinesAndMarkersLegend - 5 tests in vcs.utils.dumpToDict - 3 tests in vcs.utils.dumpToJson - 4 tests in vcs.utils.generate_time_labels - 6 tests in vcs.utils.get_png_dims - 4 tests in vcs.utils.getcolorcell - 4 tests in vcs.utils.getcolormap - 7 tests in vcs.utils.getcolors - 2 tests in vcs.utils.getfontname - 2 tests in vcs.utils.getfontnumber - 2 tests in vcs.utils.getgraphicsmethod - 8 tests in vcs.utils.getworldcoordinates - 3 tests in vcs.utils.listelements - 4 tests in vcs.utils.match_color - 4 tests in vcs.utils.minmax - 3 tests in vcs.utils.mkevenlevels - 10 tests in vcs.utils.mklabels - 6 tests in vcs.utils.mkscale - 12 tests in vcs.utils.monotonic - 2 tests in vcs.utils.rgba_color - 6 tests in vcs.utils.setcolorcell - 6 tests in vcs.utils.show -138 tests in 46 items. -138 passed and 0 failed. -Test passed. diff --git a/docs/doctest_info/reports/vcshelp.report b/docs/doctest_info/reports/vcshelp.report deleted file mode 100644 index dddc2003c..000000000 --- a/docs/doctest_info/reports/vcshelp.report +++ /dev/null @@ -1,71 +0,0 @@ -Trying: - vcs.help('fillareaobject') # show fillarea help -Expecting: - The Fillarea class ... -ok -Trying: - vcs.help('getboxfill') -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vcshelp.py", line 58, in vcs.vcshelp.help -Failed example: - vcs.help('getboxfill') -Expected nothing -Got: - VCS contains a list of graphics methods. This function - will create a boxfill object from an existing - VCS boxfill graphics method. If no boxfill name is given, - then default boxfill will be used. - - .. note:: - - VCS does not allow the modification of 'default' attribute sets. - However, a 'default' attribute set that has been copied under a - different name can be modified. - (See the :py:func:`vcs.manageElements.createboxfill` function.) - - :Example: - - .. doctest:: manageElements_get - - >>> a=vcs.init() - >>> vcs.listelements('boxfill') # list all boxfills - [...] - >>> ex=vcs.getboxfill() # 'default' boxfill - >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data with cdms2 - >>> slab1 = f('u') # take a slab from the data - >>> a.boxfill(ex, slab1) # plot boxfill - - >>> ex2=vcs.getboxfill('polar') # boxfill #2 - >>> a.boxfill(ex2, slab1) # plot boxfill - - - - :param Gfb_name_src: String name of an existing boxfill VCS object - :type Gfb_name_src: :py:class:`str` - - :return: A pre-existing boxfill graphics method - :rtype: vcs.boxfill.Gfb - -Trying: - fa=vcs.getfillarea() -Expecting nothing -ok -Trying: - vcs.objecthelp(fa) # print fillarea class documentation -Expecting: - The Fillarea class ... -ok -3 items had no tests: - vcs.vcshelp - vcs.vcshelp.help__doc__ - vcs.vcshelp.mode__doc__ -1 items passed all tests: - 2 tests in vcs.vcshelp.objecthelp -********************************************************************** -1 items had failures: - 1 of 2 in vcs.vcshelp.help -4 tests in 5 items. -3 passed and 1 failed. -***Test Failed*** 1 failures. diff --git a/docs/doctest_info/reports/vector.report b/docs/doctest_info/reports/vector.report deleted file mode 100644 index d9e6e7afa..000000000 --- a/docs/doctest_info/reports/vector.report +++ /dev/null @@ -1,127 +0,0 @@ -Trying: - a=vcs.init() -Expecting nothing -ok -Trying: - ex=a.getvector() -Expecting nothing -ok -Trying: - ex.script('filename.py') # append to 'filename.py' -Expecting nothing -********************************************************************** -File "/Users/brown308/anaconda/envs/2.8/lib/python2.7/site-packages/vcs/vector.py", line 836, in vcs.vector.Gv.script -Failed example: - ex.script('filename.py') # append to 'filename.py' -Expected nothing -Got: - DEPRECATED: Use linetype or setLineAttributes instead. -Trying: - ex.script('filename','w') # make/overwrite 'filename.json' -Expecting nothing -ok -98 items had no tests: - vcs.vector - vcs.vector.Gv - vcs.vector.Gv.__init__ - vcs.vector.Gv._getalignment - vcs.vector.Gv._getcalendar - vcs.vector.Gv._getdatawc_x1 - vcs.vector.Gv._getdatawc_x2 - vcs.vector.Gv._getdatawc_y1 - vcs.vector.Gv._getdatawc_y2 - vcs.vector.Gv._getline - vcs.vector.Gv._getlinecolor - vcs.vector.Gv._getlinetype - vcs.vector.Gv._getlinewidth - vcs.vector.Gv._getname - vcs.vector.Gv._getprojection - vcs.vector.Gv._getreference - vcs.vector.Gv._getscale - vcs.vector.Gv._getscalerange - vcs.vector.Gv._getscaletype - vcs.vector.Gv._gettimeunits - vcs.vector.Gv._gettype - vcs.vector.Gv._getxaxisconvert - vcs.vector.Gv._getxmtics1 - vcs.vector.Gv._getxmtics2 - vcs.vector.Gv._getxticlabels1 - vcs.vector.Gv._getxticlabels2 - vcs.vector.Gv._getyaxisconvert - vcs.vector.Gv._getymtics1 - vcs.vector.Gv._getymtics2 - vcs.vector.Gv._getyticlabels1 - vcs.vector.Gv._getyticlabels2 - vcs.vector.Gv._setalignment - vcs.vector.Gv._setcalendar - vcs.vector.Gv._setdatawc_x1 - vcs.vector.Gv._setdatawc_x2 - vcs.vector.Gv._setdatawc_y1 - vcs.vector.Gv._setdatawc_y2 - vcs.vector.Gv._setline - vcs.vector.Gv._setlinecolor - vcs.vector.Gv._setlinetype - vcs.vector.Gv._setlinewidth - vcs.vector.Gv._setname - vcs.vector.Gv._setprojection - vcs.vector.Gv._setreference - vcs.vector.Gv._setscale - vcs.vector.Gv._setscalerange - vcs.vector.Gv._setscaletype - vcs.vector.Gv._settimeunits - vcs.vector.Gv._settype - vcs.vector.Gv._setxaxisconvert - vcs.vector.Gv._setxmtics1 - vcs.vector.Gv._setxmtics2 - vcs.vector.Gv._setxticlabels1 - vcs.vector.Gv._setxticlabels2 - vcs.vector.Gv._setyaxisconvert - vcs.vector.Gv._setymtics1 - vcs.vector.Gv._setymtics2 - vcs.vector.Gv._setyticlabels1 - vcs.vector.Gv._setyticlabels2 - vcs.vector.Gv.alignment - vcs.vector.Gv.colormap - vcs.vector.Gv.datawc - vcs.vector.Gv.datawc_calendar - vcs.vector.Gv.datawc_timeunits - vcs.vector.Gv.datawc_x1 - vcs.vector.Gv.datawc_x2 - vcs.vector.Gv.datawc_y1 - vcs.vector.Gv.datawc_y2 - vcs.vector.Gv.line - vcs.vector.Gv.linecolor - vcs.vector.Gv.linetype - vcs.vector.Gv.linewidth - vcs.vector.Gv.list - vcs.vector.Gv.name - vcs.vector.Gv.projection - vcs.vector.Gv.reference - vcs.vector.Gv.scale - vcs.vector.Gv.scalerange - vcs.vector.Gv.scaletype - vcs.vector.Gv.setLineAttributes - vcs.vector.Gv.type - vcs.vector.Gv.xaxisconvert - vcs.vector.Gv.xmtics - vcs.vector.Gv.xmtics1 - vcs.vector.Gv.xmtics2 - vcs.vector.Gv.xticlabels - vcs.vector.Gv.xticlabels1 - vcs.vector.Gv.xticlabels2 - vcs.vector.Gv.xyscale - vcs.vector.Gv.yaxisconvert - vcs.vector.Gv.ymtics - vcs.vector.Gv.ymtics1 - vcs.vector.Gv.ymtics2 - vcs.vector.Gv.yticlabels - vcs.vector.Gv.yticlabels1 - vcs.vector.Gv.yticlabels2 - vcs.vector.load - vcs.vector.process_src -********************************************************************** -1 items had failures: - 1 of 4 in vcs.vector.Gv.script -4 tests in 99 items. -3 passed and 1 failed. -***Test Failed*** 1 failures. diff --git a/docs/doctest_info/scripts/README.md b/docs/doctest_info/scripts/README.md deleted file mode 100644 index 3a293f5ce..000000000 --- a/docs/doctest_info/scripts/README.md +++ /dev/null @@ -1,43 +0,0 @@ -Doctest Scripts ---------------- - -This directory contains the scripts used to run VCS's modules through doctest.testmod. - -#### doctest_vcs.py #### - -doctest_vcs.py lets us run doctests on a single module. It can also be used to generate reports and .md logs of important -details from the doctests, such as which tests aren't passing along with the errors that they have, and which parts of the module are missing doctests. - -##### using doctest_vcs ##### - -__These scripts need to be run from the doctest_info/scripts directory (I'm sure that can be fixed, but I haven't done so yet).__ - -If you want to run all the VCS modules through doctest_vcs, all you have to do is run ```./run_all_doctests.sh``` in the terminal (make sure it has executable permissions on your machine) - -Testing individual modules can require several more steps. - -To test a module and have it output to the screen: - - $ python doctest_vcs.py $MODULE_NAME - -is all you need. This will print the simplest form of doctest output, which contains all of the failing doctest in the module. - -Currently to obtain the log information you have to use the terminal to redirect doctest output to a file: - - $ doctest.py -v -r $MODULE_NAME > ../reports/$MODULE_NAME.report - $ doctest.py --LO $MODULE_NAME - -The second step parses the report file for doctest errors and missing doctests. You can omit it and redirect output to anywhere if you just want a report. -The report file MUST be named $MODULE_NAME.report and be located in doctest_info/reports if you want to generate the markdown-formatted summary log. - -If there are things being reported in the 'Missing Doctests' section of the .md summary that shouldn't be there, follow the instructions in doctest_info/ignore/README.md -to add an ignore file for the module (if one does not exist). Then, when you run the logging function provide that file as the --ifile option: - - $ doctest.py --LO --ifile ../ignore/$MODULE_NAME.ignore $MODULE_NAME - -#### run_all_doctest.sh #### - -This script runs all of the modules in VCS through doctest.py, redirects their output to doctest_info/reports/$MODULE_NAME.report, -and runs the logging function on the .report using the appropriate .ignore file. - -If you find that the script is missing some modules, simply add their names to the MODULES array declared at the start of the script. diff --git a/docs/doctest_info/scripts/doctest_vcs.py b/docs/doctest_info/scripts/doctest_vcs.py deleted file mode 100644 index a00d4632a..000000000 --- a/docs/doctest_info/scripts/doctest_vcs.py +++ /dev/null @@ -1,161 +0,0 @@ -import doctest, argparse, importlib, re, os - - -def log_stats(module_name, ignore): - """Parses a .report file for the given module and writes the doctest errors to a .md file. - The .md file will be named to match the module_name. - If the report was generated using the --verbose or -v flag, the .md file will also contain a list of locations - within the module where therea re no doctests. - - The .report file is assumed to exist in ../reports/ directory. - - :param module_name: String name of the module for which the .report file will be parsed. - If no .report file exists for that module, this function exits with a SystemError. - :param verbose: Boolean to indicate whether the parsed report was produced using the verbose flag. - :return: - """ - # open .results file to read, and .md file to log - try: - results = open("../reports/" + module_name + ".report", "r+") - except: - raise SystemError("File not found: " + "../reports/" + module_name + ".results") - else: - log = open("../markdown/" + module_name + '.md', 'w+') - missing_header = re.compile("^[0-9]+ items had no tests:$") - # missing tests will be followed by either passed all tests or "tests in items" entry - passing_header = re.compile("^[0-9]+ items passed all tests:$") - tests_in_items = re.compile("^[0-9]+ tests in [0-9]+ items\.$") - no_tests = re.compile("^[0-9]+ items had no tests:$") - trying = re.compile("^Trying:$") - err_header = re.compile('File "') - err_indicator = re.compile('\*\*\*\*') - line = results.readline() - err_endpoints = [trying, no_tests, err_indicator] - missing_endpoints = [passing_header, tests_in_items, err_indicator] - while line != '': - if re.match(err_header, line): - where = line.split()[-1] - log.write(where + "\n") - map(lambda x: log.write('-'), range(len(where))) - log.write("\n```python\n") - consume_entry(results, log, err_endpoints) - log.write("```\n\n") - if re.match(missing_header, line): - header="Missing Doctests" - log.write(header+"\n") - map(lambda x: log.write('-'), range(len(header))) - log.write("\n") - consume_entry(results, log, missing_endpoints, ":x:```", "```\n", ignore) - line = results.readline() - log.close() - results.close() - print ("Done logging " + module_name + ".md") - - -# note: will only consume the first full error (maybe) -# TODO: re-factor to use python file object's iterator... totally didn't realize those were a thing when I wrote this. -def consume_entry(readfile, writefile, endpoints, prepend="", append="", ignore=[]): - """Consumes a log entry from readfile up to one of a list of possible endpoints. - Writes each line in the entry to writefile. - - :param readfile: File to read from - :param writefile: File to write to - :param endpoints: List of compiled regular expressions which are the possible points at which a log entry can end. - :param prepend: A string to prepend to the line from readfile before outputting to writefile - :param append: A string to append to the line from readfile before outputting to writefile - :param ignore: A list of regular expressions containing function signatures to ignore (for logging missing doctests - only). Gets brought in through commandline or a file via ArgParse. - """ - more = True - sigs = [re.compile("_[_A-z0-9]+")] # func signatures to ignore. Add private functions by default. - if len(ignore): - for sig in ignore: - sigs.append(re.compile(sig)) - line = readfile.readline() - while more and line != '': - no_write = False - for sig in sigs: - if re.match(sig, line.split('.')[-1]): - no_write = True - if not no_write: - if append != "": - index = line.find("\n") - new_line = prepend + line[:index] + append + line[index:] - writefile.write(new_line) - else: - writefile.write(prepend + line + append) - line = readfile.readline() - for endpoint in endpoints: - if re.match(endpoint, line): - more = False - - -def cleanup(): - """Cleanup for the doctests. If some files aren't being deleted after testing, add their glob signature to the - patterns list. - - .. warning:: - - Do NOT add a "*.py" glob, or anything that would delete a name matching either doctest_vcs.py - or run_all_doctests.sh. The files that get cleaned up are generated in this directory. - - """ - import glob, os - gb = glob.glob - patterns = ["example.*", "*.json", "*.svg", "ex_*", "my*", "filename.*", "*.png", "deft_box.py", "*.mpeg"] - for pattern in patterns: - fnames = gb(pattern) - for name in fnames: - try: - os.remove(name) - except: - continue - - -# Make parser and add options -parser = argparse.ArgumentParser() -parser.add_argument('module', type=str, help="Name of the VCS module to test.") -parser.add_argument('-v', '--verbose', action='store_true', default=False, - help='Passing doctests logged. Report includes number of missing doctests, minus any for ' + - 'function signatures explicitly ignored via -i or --ifile options.') -parser.add_argument('-r', '--report', action='store_true', default=False, help='Print a report after running tests.') -parser.add_argument('-l', '--log', action='store_true', default=False, help='Log stats in a .md file.\nImplies -r.') -parser.add_argument('--LO', action='store_true', default=False, help='ONLY read .results and make .md log.') -parser.add_argument('-p', '--package', type=str, default='vcs', - help="Supply a package name in which to look for the module.\nDefault is vcs.") -parser.add_argument('-a', '--all', action="store_true", default=False, - help="Report all failures.\nIf not set, will report only the first failure in each doctest") -parser.add_argument('-i', '--ignore', nargs='*', default=[], - help="List of regular expressions representing function signatures to ignore, when parsing report " - + "output for missing doctests.\n" + "Used for logging purposes only. If -i is provided, --ifile " - + "will be ignored.\n If provided, -i must be specified after the module name.") -parser.add_argument('--ifile', type=file, default=None, help="File containing a list of function signatures to ignore" - + "when parsing report output for missing doctests. The file must be a newline-delimited list of " - + "regular expressions. Only provide --ifile if -i(--ignore) has not been provided.") -# Check parser args -args = parser.parse_args() - -ignore = [] -if len(args.ignore): - ignore = args.ignore -elif args.ifile: - for line in args.ifile: - ignore.append(line) -if not args.LO: - import vcs - if not os.path.exists(vcs.sample_data): - vcs.download_sample_data_files() - if args.log and not args.report: - args.report = True - options=doctest.ELLIPSIS - if not args.all: - options=options|doctest.REPORT_ONLY_FIRST_FAILURE - # Import module and run doctests - m = importlib.import_module(args.package + '.' + args.module) - doctest.testmod(m, optionflags=options, report=args.report, verbose=args.verbose) - cleanup() - if args.log: - log_stats(args.module, ignore) -else: - log_stats(args.module, ignore) -exit() diff --git a/docs/doctest_info/scripts/run_all_doctests.sh b/docs/doctest_info/scripts/run_all_doctests.sh deleted file mode 100755 index 6e361d5fa..000000000 --- a/docs/doctest_info/scripts/run_all_doctests.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -MODULES=("Canvas" "Pboxeslines" "Pdata" "Pformat" "Plegend" "Ptext" "Pxlabels" -"Pxtickmarks" "Pylabels" "Pytickmarks" "VCS_validation_functions" "boxfill" -"colormap" "colors" "configurator" "displayplot" -"dv3d" "editors" "error" "fillarea" "isofill" "isoline" "line" "manageElements" -"marker" "meshfill" "projection" "queries" "taylor" "template" "textcombined" -"textorientation" "texttable" "unified1D" "utils" "vcshelp" "vector") - - -for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -a -v -r > ../reports/"$module.report"; done; -for module in "${MODULES[@]}"; do python doctest_vcs.py "$module" -v -r --LO; done; diff --git a/vcs/Canvas.py b/vcs/Canvas.py index dcf8cd84a..1efe6bf0b 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -2067,16 +2067,16 @@ def fillarea(self, *args, **parms): .. doctest:: canvas_fillarea >>> a=vcs.init() - >>> a.show('fillarea') # Show all the existing fillarea objects + >>> a.show('fillarea') # Show all fillarea objects *******************Fillarea Names List********************** ... *******************End Fillarea Names List********************** - >>> fa=a.createfillarea() # Create instance of default fillarea - >>> fa.style=1 # Set the fillarea style - >>> fa.index=4 # Set the fillarea index - >>> fa.color = 242 # Set the fillarea color - >>> fa.x=[0.25,0.75] # Set the x value points - >>> fa.y=[0.2,0.5] # Set the y value points + >>> fa=a.createfillarea() # instance of default fillarea + >>> fa.style=1 # Set fillarea style + >>> fa.index=4 # Set fillarea index + >>> fa.color = 242 # Set fillarea color + >>> fa.x=[0.25,0.75] # Set x value points + >>> fa.y=[0.2,0.5] # Set y value points >>> a.fillarea(fa) # Plot using specified fillarea object diff --git a/vcs/VCS_validation_functions.py b/vcs/VCS_validation_functions.py index 7a08a5d8b..c2c2768f9 100644 --- a/vcs/VCS_validation_functions.py +++ b/vcs/VCS_validation_functions.py @@ -556,7 +556,7 @@ def checkBoolean(self, name, value): def checkFuzzyBoolean(self, name, value): - """Checks if a value can be interpreted as true or false. + __doc__ = """Checks if a value can be interpreted as true or false. Accepted values are %s. """ % fuzzy_boolean_valid_value_string diff --git a/vcs/boxfill.py b/vcs/boxfill.py index 67bd1f356..402a1e142 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -830,7 +830,7 @@ def colors(self, color1=0, color2=255): def exts(self, ext1='n', ext2='y'): self.ext_1 = ext1 self.ext_2 = ext2 - exts.__doc__ = xmldocs.extsdoc % {"name": "boxfill", "data": "array"} + exts.__doc__ = xmldocs.extsdoc.format(name="boxfill", data="array") # # Doesn't make sense to inherit. This would mean more coding in C. # I put this code back. @@ -839,34 +839,34 @@ def exts(self, ext1='n', ext2='y'): def xticlabels(self, xtl1='', xtl2=''): self.xticlabels1 = xtl1 self.xticlabels2 = xtl2 - xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name" : "boxfill", "data": "f('u')"} + xticlabels.__doc__ = xmldocs.xticlabelsdoc % {"name": "boxfill", "data": "f('u')"} def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc % {"name" : "boxfill"} + xmtics.__doc__ = xmldocs.xmticsdoc.format(name="boxfill") def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 self.yticlabels2 = ytl2 - yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name" : "boxfill", "data": "f('u')"} + yticlabels.__doc__ = xmldocs.yticlabelsdoc % {"name": "boxfill", "data": "f('u')"} def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc % {"name" : "boxfill"} + ymtics.__doc__ = xmldocs.xmticsdoc.format(name="boxfill") def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc % {"name": "boxfill"} + datawc.__doc__ = xmldocs.datawcdoc.format(name="boxfill") def xyscale(self, xat='linear', yat='linear'): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('boxfill',) * 4) + xyscale.__doc__ = xmldocs.xyscaledoc.format(name='boxfill') def getlevels(self, varmin, varmax): """Given a minimum and a maximum, will generate levels for the boxfill diff --git a/vcs/dv3d.py b/vcs/dv3d.py index e5db325dc..e16fb55bf 100644 --- a/vcs/dv3d.py +++ b/vcs/dv3d.py @@ -1,22 +1,41 @@ -''' -Created on Jun 18, 2014 - -@author: tpmaxwel -''' - +""" +If in interact mode (see :func:`vcs.Canvas.Canvas.interact`), these attributes can be configured interactively, via the +method described in the **Interact Mode** section of the attribute description. +""" +# @author: tpmaxwel import VCS_validation_functions import multiprocessing import vcs import time from DV3D.ConfigurationFunctions import ConfigManager +from xmldocs import toggle_surface, toggle_volume, xslider, yslider, zslider, verticalscaling, scalecolormap, \ + scaletransferfunction, toggleclipping, isosurfacevalue, scaleopacity, basemapopacity, camera class Gfdv3d(object): - """ + __doc__ = """ Gfdv3d is class from which Gf3Dvector, Gf3Dscalar, and Gf3DDualScalar inherit. It sets up properties and functions common to all of the 3d graphics method objects. - """ + + Attributes + ---------- + + %s + %s + %s + %s + %s + %s + %s + %s + %s + %s + %s + %s + %s + """ % (toggle_surface, toggle_volume, xslider, yslider, zslider, verticalscaling, scalecolormap, + scaletransferfunction, toggleclipping, isosurfacevalue, scaleopacity, basemapopacity, camera) __slots__ = [ '__doc__', 'name', diff --git a/vcs/isofill.py b/vcs/isofill.py index 7ae31024a..e5fc09432 100755 --- a/vcs/isofill.py +++ b/vcs/isofill.py @@ -673,7 +673,7 @@ def colors(self, color1=16, color2=239): def exts(self, ext1='n', ext2='y'): self.ext_1 = ext1 self.ext_2 = ext2 - exts.__doc__ = xmldocs.extsdoc % {"name": "isofill", "data": "array"} + exts.__doc__ = xmldocs.extsdoc.format(name="isofill", data="array") # # Doesn't make sense to inherit. This would mean more coding in C. # I put this code back. @@ -687,7 +687,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc % {"name": "isofill"} + xmtics.__doc__ = xmldocs.xmticsdoc.format(name="isofill") def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -697,19 +697,19 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc % {"name": "isofill"} + ymtics.__doc__ = xmldocs.xmticsdoc.format(name="isofill") def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc % {"name": "isofill"} + datawc.__doc__ = xmldocs.datawcdoc.format(name="isofill") def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('isofill',) * 4) + xyscale.__doc__ = xmldocs.xyscaledoc.format(name='isofill') def list(self): print "", "---------- Isofill (Gfi) member (attribute) listings ----------" diff --git a/vcs/isoline.py b/vcs/isoline.py index f065ca852..793e3eda8 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -995,7 +995,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc % {"name": "isoline"} + xmtics.__doc__ = xmldocs.xmticsdoc.format(name="isoline") def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -1005,19 +1005,19 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc % {"name": "isoline"} + ymtics.__doc__ = xmldocs.xmticsdoc.format(name="isoline") def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc % {"name": "isoline"} + datawc.__doc__ = xmldocs.datawcdoc.format(name="isoline") def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('isoline',) * 4) + xyscale.__doc__ = xmldocs.xyscaledoc.format(name='isoline') def list(self): if (self.name == '__removed_from_VCS__'): diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 8d168f9da..949caae32 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -1,8 +1,15 @@ -# This file aims at removing elets creation from dpeending on a Canvas, we will try to simply have -# b = vcs.createboxfill() -# rather than -# x=vcs.init() -# b=x.createboxfill() +""" + .. _list: https://docs.python.org/2/library/functions.html#list + .. _tuple: https://docs.python.org/2/library/functions.html#tuple + .. _dict: https://docs.python.org/2/library/stdtypes.html#mapping-types-dict + .. _None: https://docs.python.org/2/library/constants.html?highlight=none#None + .. _str: https://docs.python.org/2/library/functions.html?highlight=str#str + .. _bool: https://docs.python.org/2/library/functions.html?highlight=bool#bool + .. _float: https://docs.python.org/2/library/functions.html?highlight=float#float + .. _int: https://docs.python.org/2/library/functions.html?highlight=float#int + .. _long: https://docs.python.org/2/library/functions.html?highlight=float#long + .. _file: https://docs.python.org/2/library/functions.html?highlight=open#file +""" import vcs import boxfill import meshfill @@ -46,11 +53,11 @@ def check_name_source(name, source, typ): :param name: Desired string name for an object of type *typ*, inheriting from source object *source*. If name is None, a unique name will be generated. - :type name: :py:class:`str` or None + :type name: `str`_ or None :param source: Source from which the new object is meant to inherit. Can be a VCS object or a string name of a VCS object. - :type source: :py:class:`str` or VCS Object + :type source: `str`_ or VCS Object :param typ: String name of a VCS object type. (e.g. 'boxfill', 'isofill', 'marker', etc.) @@ -59,7 +66,7 @@ def check_name_source(name, source, typ): :returns: A tuple containing two strings: a unique name and a source name. If *name* was provided and an object of type *typ* with that name already exists, an error is raised. - :rtype: :py:class:`tuple` + :rtype: `tuple`_ """ elts = vcs.listelements(typ) if name is None: @@ -99,11 +106,11 @@ def createtemplate(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a template, or a string name of a template - :type source: :py:class:`str` or vcs.template.P + :type source: `str`_ or :class:`vcs.template.P` :returns: A template :rtype: vcs.template.P @@ -119,7 +126,7 @@ def gettemplate(Pt_name_src='default'): """%s :param Pt_name_src: String name of an existing template VCS object - :type Pt_name_src: :py:class:`str` + :type Pt_name_src: `str`_ :returns: A VCS template object :rtype: vcs.template.P @@ -138,11 +145,11 @@ def createprojection(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a projection, or a string name of a projection. - :type source: :py:class:`str` or vcs.projection.Proj + :type source: `str`_ or :class:`vcs.projection.Proj` :returns: A projection graphics method object :rtype: vcs.projection.Proj @@ -157,7 +164,7 @@ def getprojection(Proj_name_src='default'): """%s :param Proj_name_src: String name of an existing VCS projection object - :type Proj_name_src: :py:class:`str` + :type Proj_name_src: `str`_ :returns: A VCS projection object :rtype: vcs.projection.Proj @@ -177,11 +184,11 @@ def createboxfill(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. can be a boxfill, or a string name of a boxfill. - :type source: :py:class:`str` or vcs.boxfill.Gfb + :type source: `str`_ or :class:`vcs.boxfill.Gfb` :return: A boxfill graphics method object :rtype: vcs.boxfill.Gfb @@ -196,7 +203,7 @@ def getboxfill(Gfb_name_src='default'): """%s :param Gfb_name_src: String name of an existing boxfill VCS object - :type Gfb_name_src: :py:class:`str` + :type Gfb_name_src: `str`_ :return: A pre-existing boxfill graphics method :rtype: vcs.boxfill.Gfb @@ -215,11 +222,11 @@ def createtaylordiagram(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a a taylordiagram, or a string name of a taylordiagram. - :type source: :py:class:`str` or vcs.taylor.Gtd + :type source: `str`_ or :class:`vcs.taylor.Gtd` :returns: A taylordiagram graphics method object :rtype: vcs.taylor.Gtd @@ -245,7 +252,7 @@ def gettaylordiagram(Gtd_name_src='default'): """%s :param Gtd_name_src: String name of an existing taylordiagram VCS object - :type Gtd_name_src: :py:class:`str` + :type Gtd_name_src: `str`_ :returns: A taylordiagram VCS object :rtype: vcs.taylor.Gtd @@ -268,11 +275,11 @@ def createmeshfill(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a meshfill, or a string name of a meshfill. - :type source: :py:class:`str` or vcs.meshfill.Gfm + :type source: `str`_ or :class:`vcs.meshfill.Gfm` :returns: A meshfill graphics method object :rtype: vcs.meshfill.Gfm @@ -286,7 +293,7 @@ def getmeshfill(Gfm_name_src='default'): """%s :param Gfm_name_src: String name of an existing meshfill VCS object - :type Gfm_name_src: :py:class:`str` + :type Gfm_name_src: `str`_ :returns: A meshfill VCS object :rtype: vcs.meshfill.Gfm @@ -307,11 +314,11 @@ def createisofill(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be an isofill object, or string name of an isofill object. - :type source: :py:class:`str` or vcs.isofill.Gfi + :type source: `str`_ or :class:`vcs.isofill.Gfi` :returns: An isofill graphics method :rtype: vcs.isofill.Gfi @@ -326,7 +333,7 @@ def getisofill(Gfi_name_src='default'): """%s :param Gfi_name_src: String name of an existing isofill VCS object - :type Gfi_name_src: :py:class:`str` + :type Gfi_name_src: `str`_ :returns: The specified isofill VCS object :rtype: vcs.isofill.Gfi @@ -346,11 +353,11 @@ def createisoline(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be an isoline object, or string name of an isoline object. - :type source: :py:class:`str` or vcs.isoline.Gi + :type source: `str`_ or :class:`vcs.isoline.Gi` :returns: An isoline graphics method object :rtype: vcs.isoline.Gi @@ -366,7 +373,7 @@ def getisoline(Gi_name_src='default'): """%s :param Gi_name_src: String name of an existing isoline VCS object - :type Gi_name_src: :py:class:`str` + :type Gi_name_src: `str`_ :returns: The requested isoline VCS object :rtype: vcs.isoline.Gi @@ -400,13 +407,13 @@ def create1d(name=None, source='default'): :param name: A string name for the 1d to be created. If None, a unique name will be created. - :type name: :py:class:`str` + :type name: `str`_ :param source: A 1d object or string name of a 1d object from which the new 1d will inherit. - :type source: :py:class:`str` or :py:class:`vcs.unified1D.G1d` + :type source: `str`_ or :py:class:`vcs.unified1D.G1d` :return: A new 1d object, inheriting from source. - :rtype: :py:class:`vcs.unified1d.G1d` + :rtype: :py:class:`vcs.unified1D.G1d` """ name, source = check_name_source(name, source, '1d') return unified1D.G1d(name, source) @@ -428,7 +435,7 @@ def get1d(name): :param name: String name of a 1d in vcs. If there is no 1d with that name, an error will be raised. - :type name: :py:class:`str` + :type name: `str`_ :return: A 1d from vcs with the given name. :rtype: :py:class:`vcs.unified1d.G1d` @@ -446,12 +453,12 @@ def createxyvsy(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a xyvsy, or a string name of a xyvsy. - :type source: :py:class:`str` or vcs.unified1D.G1d + :type source: `str`_ or :class:`vcs.unified1D.G1d` :returns: A XYvsY graphics method object :rtype: vcs.unified1D.G1d @@ -475,7 +482,7 @@ def getxyvsy(GXy_name_src='default'): """%s :param GXy_name_src: String name of an existing Xyvsy graphics method - :type GXy_name_src: :py:class:`str` + :type GXy_name_src: `str`_ :returns: An XYvsY graphics method object :rtype: vcs.unified1D.G1d @@ -492,11 +499,11 @@ def createyxvsx(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a yxvsy, or a string name of a yxvsy. - :type source: :py:class:`str` or vcs.unified1D.G1d + :type source: `str`_ or :class:`vcs.unified1D.G1d` :returns: A YXvsX graphics method object :rtype: vcs.unified1D.G1d @@ -537,11 +544,11 @@ def createxvsy(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a xvsy, or a string name of a xvsy. - :type source: :py:class:`str` or vcs.unified1D.G1d + :type source: `str`_ or :class:`vcs.unified1D.G1d` :returns: A XvsY graphics method object :rtype: vcs.unified1D.G1d @@ -565,7 +572,7 @@ def getxvsy(GXY_name_src='default'): """%s :param GXY_name_src: String name of a 1d graphics method - :type GXY_name_src: :py:class:`str` + :type GXY_name_src: `str`_ :returns: A XvsY graphics method object :rtype: vcs.unified1D.G1d @@ -583,11 +590,11 @@ def createvector(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a vector, or a string name of a vector. - :type source: :py:class:`str` or vcs.vector.Gv + :type source: `str`_ or :class:`vcs.vector.Gv` :returns: A vector graphics method object :rtype: vcs.vector.Gv @@ -601,7 +608,7 @@ def getvector(Gv_name_src='default'): """%s :param Gv_name_src: String name of an existing vector VCS object - :type Gv_name_src: :py:class:`str` + :type Gv_name_src: `str`_ :returns: A vector graphics method object :rtype: vcs.vector.Gv @@ -620,11 +627,11 @@ def createscatter(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a scatter or, a string name of a scatter. - :type source: :py:class:`str` or vcs.unified1D.G1d + :type source: `str`_ or :class:`vcs.unified1D.G1d` :return: A scatter graphics method :rtype: vcs.unified1D.G1d @@ -649,7 +656,7 @@ def getscatter(GSp_name_src='default'): """%s :param GSp_name_src: String name of an existing scatter VCS object. - :type GSp_name_src: :py:class:`str` + :type GSp_name_src: `str`_ :returns: A scatter graphics method object :rtype: vcs.unified1D.G1d @@ -669,38 +676,38 @@ def createline(name=None, source='default', ltype=None, """%s :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param source: a line, or string name of a line - :type source: :py:class:`str` + :type source: `str`_ :param ltype: One of "dash", "dash-dot", "solid", "dot", or "long-dash". - :type ltype: :py:class:`str` + :type ltype: `str`_ :param width: Thickness of the line to be created - :type width: :py:class:`int` + :type width: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or :py:class:`int` + :type color: `str`_ or `int`_ :param priority: The layer on which the line will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :param projection: Specify a geographic projection used to convert x/y from spherical coordinates to 2D coordinates. - :type projection: :py:class:`str` or projection object + :type projection: `str`_ or projection object :returns: A VCS line secondary method object :rtype: vcs.line.Tl @@ -782,32 +789,32 @@ def getline(name='default', ltype=None, width=None, color=None, """%s :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param ltype: One of "dash", "dash-dot", "solid", "dot", or "long-dash". - :type ltype: :py:class:`str` + :type ltype: `str`_ :param width: Thickness of the line to be created - :type width: :py:class:`int` + :type width: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the marker will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :returns: A VCS line object :rtype: vcs.line.Tl @@ -849,35 +856,35 @@ def createmarker(name=None, source='default', mtype=None, """%s :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param source: A marker, or string name of a marker - :type source: :py:class:`str` + :type source: `str`_ :param mtype: Specifies the type of marker, i.e. "dot", "circle" - :type mtype: :py:class:`str` + :type mtype: `str`_ :param size: - :type size: :py:class:`int` + :type size: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the marker will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :returns: A secondary marker method :rtype: vcs.marker.Tm @@ -914,35 +921,35 @@ def getmarker(name='default', mtype=None, size=None, color=None, """%s :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param source: A marker, or string name of a marker - :type source: :py:class:`str` + :type source: `str`_ :param mtype: Specifies the type of marker, i.e. "dot", "circle" - :type mtype: :py:class:`str` + :type mtype: `str`_ :param size: Size of the marker - :type size: :py:class:`int` + :type size: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the marker will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :returns: A marker graphics method object :rtype: vcs.marker.Tm @@ -982,37 +989,37 @@ def createfillarea(name=None, source='default', style=None, """%s :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param source: a fillarea, or string name of a fillarea - :type source: :py:class:`str` + :type source: `str`_ :param style: One of "hatch", "solid", or "pattern". - :type style: :py:class:`str` + :type style: `str`_ :param index: Specifies which `pattern `_ to fill with. Accepts ints from 1-20. - :type index: :py:class:`int` + :type index: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the fillarea will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :returns: A fillarea object :rtype: vcs.fillarea.Tf @@ -1049,34 +1056,34 @@ def getfillarea(name='default', style=None, """%s :param name: String name of an existing fillarea VCS object - :type name: :py:class:`str` + :type name: `str`_ :param style: One of "hatch", "solid", or "pattern". - :type style: :py:class:`str` + :type style: `str`_ :param index: Specifies which `pattern `_ to fill with. Accepts ints from 1-20. - :type index: :py:class:`int` + :type index: `int`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the texttable will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :returns: A fillarea secondary object :rtype: vcs.fillarea.Tf @@ -1116,34 +1123,34 @@ def createtexttable(name=None, source='default', font=None, """%s :param name: Name of created object - :type name: :py:class:`str` + :type name: `str`_ :param source: a texttable, or string name of a texttable - :type source: :py:class:`str` + :type source: `str`_ :param font: Which font to use (index or name). - :type font: :py:class:`int` or :py:class:`str` + :type font: `int`_ or `str`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the texttable will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :returns: A texttable graphics method object :rtype: vcs.texttable.Tt @@ -1189,29 +1196,29 @@ def gettexttable(name='default', font=None, """%s :param name: String name of an existing VCS texttable object - :type name: :py:class:`str` + :type name: `str`_ :param font: Which font to use (index or name). - :type font: :py:class:`int` or :py:class:`str` + :type font: `int`_ or `str`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the texttable will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :returns: A texttable graphics method object :rtype: vcs.texttable.Tt @@ -1235,11 +1242,11 @@ def createtextorientation(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a textorientation, or a string name of a textorientation. - :type source: :py:class:`str` or vcs.textorientation.To + :type source: `str`_ or :class:`vcs.textorientation.To` :returns: A textorientation secondary method :rtype: vcs.textorientation.To @@ -1255,7 +1262,7 @@ def gettextorientation(To_name_src='default'): """%s :param To_name_src: String name of an existing textorientation VCS object - :type To_name_src: :py:class:`str` + :type To_name_src: `str`_ :returns: A textorientation VCS object :rtype: vcs.textorientation.To @@ -1280,54 +1287,54 @@ def createtextcombined(Tt_name=None, Tt_source='default', To_name=None, To_sourc """%s :param Tt_name: Name of created object - :type Tt_name: :py:class:`str` + :type Tt_name: `str`_ :param Tt_source: Texttable object to inherit from. Can be a texttable, or a string name of a texttable. - :type Tt_source: :py:class:`str` or vcs.texttable.Tt + :type Tt_source: `str`_ or :class:`vcs.texttable.Tt` :param To_name: Name of the textcombined's text orientation (to be created) - :type To_name: :py:class:`str` + :type To_name: `str`_ :param To_source: Name of the textorientation to inherit. Can be a textorientation, or a string name of a textorientation. - :type To_source: :py:class:`str` or vcs.textorientation.To + :type To_source: `str`_ or :class:`vcs.textorientation.To` :param font: Which font to use (index or name). - :type font: :py:class:`int` or :py:class:`str` + :type font: `int`_ or `str`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the object will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :param height: Size of the font - :type height: :py:class:`int` + :type height: `int`_ :param angle: Angle of the text, in degrees - :type angle: :py:class:`int` + :type angle: `int`_ :param halign: Horizontal alignment of the text. One of ["left", "center", "right"]. - :type halign: :py:class:`str` + :type halign: `str`_ :param valign: Vertical alignment of the text. One of ["top", "center", "botom"]. - :type valign: :py:class:`str` + :type valign: `str`_ :param projection: Specify a geographic projection used to convert x/y from spherical coordinates to 2D coordinates. - :type projection: :py:class:`str` or projection object + :type projection: `str`_ or projection object :returns: A VCS text object :rtype: vcs.textcombined.Tc @@ -1388,47 +1395,49 @@ def gettextcombined(Tt_name_src='default', To_name_src=None, string=None, font=N """%s :param Tt_name_src: Name of created object - :type Tt_name_src: :py:class:`str` + :type Tt_name_src: `str`_ :param To_name_src: Name of parent textorientation object - :type To_name_src: :py:class:`str` + :type To_name_src: `str`_ :param string: Text to render - :type string: list of str + :type string: `list`_ :param font: Which font to use (index or name) - :type font: :py:class:`int` or :py:class:`str` + :type font: `int`_ or `str`_ :param color: A color name from the `X11 Color Names list `_, or an integer value from 0-255, or an RGB/RGBA tuple/list (e.g. (0,100,0), (100,100,0,50)) - :type color: :py:class:`str` or int + :type color: `str`_ or int :param priority: The layer on which the object will be drawn. - :type priority: :py:class:`int` + :type priority: `int`_ :param viewport: 4 floats between 0 and 1 which specify the area that X/Y values are mapped to inside of the canvas. - :type viewport: list of floats + :type viewport: `list`_ :param worldcoordinate: List of 4 floats (xmin, xmax, ymin, ymax) - :type worldcoordinate: list of floats + :type worldcoordinate: `list`_ - :param x: List of lists of x coordinates. Values must be between worldcoordinate[0] and worldcoordinate[1]. - :type x: list of floats + :param x: List of lists of x coordinates. + Values must be between worldcoordinate[0] and worldcoordinate[1]. + :type x: `list`_ :param y: List of lists of y coordinates. Values must be between worldcoordinate[2] and worldcoordinate[3]. - :type y: list of floats + :type y: `list`_ :param height: Size of the font - :type height: :py:class:`int` + :type height: `int`_ - :param angle: Angle of the rendered text, in degrees - :type angle: list of int + :param angle: Angle of the rendered text, in degrees. + Must be a list of integers. + :type angle: `list`_ :param halign: Horizontal alignment of the text. One of ["left", "center", "right"] - :type halign: :py:class:`str` + :type halign: `str`_ :param valign: Vertical alignment of the text. One of ["top", "center", "bottom"] - :type valign: :py:class:`str` + :type valign: `str`_ :returns: A textcombined object :rtype: vcs.textcombined.Tc @@ -1519,11 +1528,11 @@ def create3d_scalar(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a 3d_scalar, or a string name of a 3d_scalar. - :type source: :py:class:`str` or vcs.dv3d.Gf3Dscalar + :type source: `str`_ or :class:`vcs.dv3d.Gf3Dscalar` :returns: A 3d_scalar graphics method object :rtype: vcs.dv3d.Gf3Dscalar @@ -1537,7 +1546,7 @@ def get3d_dual_scalar(Gfdv3d_name_src='default'): """%s :param Gfdv3d_name_src: String name of an existing 3d_dual_scalar VCS object - :type Gfdv3d_name_src: :py:class:`str` + :type Gfdv3d_name_src: `str`_ :returns: A pre-existing 3d_dual_scalar VCS object :rtype: vcs.dv3d.Gf3DDualScalar @@ -1557,11 +1566,11 @@ def create3d_dual_scalar(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a 3d_dual_scalar, or a string name of a 3d_dual_scalar. - :type source: :py:class:`str` or vcs.dv3d.Gf3DDualScalar + :type source: `str`_ or :class:`vcs.dv3d.Gf3DDualScalar` :returns: A 3d_dual_scalar graphics method object :rtype: vcs.dv3d.Gf3DDualScalar @@ -1576,7 +1585,7 @@ def get3d_vector(Gfdv3d_name_src='default'): """%s :param Gfdv3d_name_src: String name of an existing 3d_vector VCS object - :type Gfdv3d_name_src: :py:class:`str` + :type Gfdv3d_name_src: `str`_ :returns: A pre-existing 3d_vector VCS object :rtype: vcs.dv3d.Gf3Dvector @@ -1597,11 +1606,11 @@ def create3d_vector(name=None, source='default'): """%s :param name: The name of the created object - :type name: :py:class:`str` + :type name: `str`_ :param source: The object to inherit from. Can be a 3d_vector, or a string name of a 3d_vector. - :type source: :py:class:`str` or vcs.dv3d.Gf3Dvector + :type source: `str`_ or :class:`vcs.dv3d.Gf3Dvector` :returns: A 3d_vector graphics method object :rtype: vcs.dv3d.Gf3Dvector @@ -1622,11 +1631,11 @@ def createcolormap(Cp_name=None, Cp_name_src='default'): """%s :param Cp_name: The name of the created object - :type Cp_name: :py:class:`str` + :type Cp_name: `str`_ :param Cp_name_src: The object to inherit from. Can be a colormap or a string name of a colormap. - :type Cp_name_src: :py:class:`str` or vcs.colormap.Cp + :type Cp_name_src: `str`_ or :class:`vcs.colormap.Cp` :returns: A VCS colormap object :rtype: vcs.colormap.Cp @@ -1641,7 +1650,7 @@ def getcolormap(Cp_name_src='default'): """%s :param Cp_name_src: String name of an existing colormap VCS object - :type Cp_name_src: :py:class:`str` + :type Cp_name_src: `str`_ :returns: A pre-existing VCS colormap object :rtype: vcs.colormap.Cp diff --git a/vcs/meshfill.py b/vcs/meshfill.py index 763467286..e93701d49 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -690,7 +690,7 @@ def colors(self, color1=16, color2=239): def exts(self, ext1='n', ext2='y'): self.ext_1 = ext1 self.ext_2 = ext2 - exts.__doc__ = xmldocs.extsdoc % {"name": "meshfill", "data": "array, array"} + exts.__doc__ = xmldocs.extsdoc.format(name="meshfill", data="array, array") # # Doesn't make sense to inherit. This would mean more coding in C. @@ -704,7 +704,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc % {"name": "meshfill"} + xmtics.__doc__ = xmldocs.xmticsdoc.format(name="meshfill") def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -714,19 +714,19 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc % {"name": "meshfill"} + ymtics.__doc__ = xmldocs.xmticsdoc.format(name="meshfill") def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc % {"name": "meshfill"} + datawc.__doc__ = xmldocs.datawcdoc.format(name="meshfill") def xyscale(self, xat='', yat=''): self.xaxisconvert = xat self.yaxisconvert = yat - xyscale.__doc__ = xmldocs.xyscaledoc % (('meshfill',) * 4) + xyscale.__doc__ = xmldocs.xyscaledoc.format(name='meshfill') ########################################################################## # # diff --git a/vcs/textorientation.py b/vcs/textorientation.py index f8b4e6423..6d0df0682 100755 --- a/vcs/textorientation.py +++ b/vcs/textorientation.py @@ -24,7 +24,7 @@ # import VCS_validation_functions import vcs -from xmldocs import scriptdocs +from xmldocs import scriptdocs, listdoc def process_src(nm, code): @@ -293,6 +293,7 @@ def list(self): print "path =", self.path print "halign =", self.halign print "valign =", self.valign + list.__doc__ = listdoc % {"name": "textorientation", "parent": ""} ########################################################################## # # diff --git a/vcs/texttable.py b/vcs/texttable.py index 868562ac2..8dce5f459 100755 --- a/vcs/texttable.py +++ b/vcs/texttable.py @@ -25,7 +25,7 @@ import VCS_validation_functions import vcs import genutil -from xmldocs import scriptdocs +from xmldocs import scriptdocs, listdoc def process_src(nm, code): @@ -494,7 +494,7 @@ def list(self): print "x =", self.x print "y =", self.y print 'colormap =', self.colormap - + list.__doc__ = listdoc % {"name": "texttable", "parent": ""} ########################################################################## # # # Script out secondary text table method in VCS to a file. # diff --git a/vcs/unified1D.py b/vcs/unified1D.py index 38adc1dcc..330a8eab2 100644 --- a/vcs/unified1D.py +++ b/vcs/unified1D.py @@ -764,7 +764,7 @@ def xticlabels(self, xtl1='', xtl2=''): def xmtics(self, xmt1='', xmt2=''): self.xmtics1 = xmt1 self.xmtics2 = xmt2 - xmtics.__doc__ = xmldocs.xmticsdoc % {"name": "1d"} + xmtics.__doc__ = xmldocs.xmticsdoc.format(name="1d") def yticlabels(self, ytl1='', ytl2=''): self.yticlabels1 = ytl1 @@ -774,14 +774,14 @@ def yticlabels(self, ytl1='', ytl2=''): def ymtics(self, ymt1='', ymt2=''): self.ymtics1 = ymt1 self.ymtics2 = ymt2 - ymtics.__doc__ = xmldocs.ymticsdoc % {"name": "1d"} + ymtics.__doc__ = xmldocs.ymticsdoc.format(name="1d") def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): self.datawc_y1 = dsp1 self.datawc_y2 = dsp2 self.datawc_x1 = dsp3 self.datawc_x2 = dsp4 - datawc.__doc__ = xmldocs.datawcdoc % {"name": "1d"} + datawc.__doc__ = xmldocs.datawcdoc.format(name="1d") def list(self): if (self.name == '__removed_from_VCS__'): diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index 613b5e704..e0fbf5c19 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -197,6 +197,18 @@ xaxisconvert = axisconvert.format(axis="x") yaxisconvert = axisconvert.format(axis="y") axesconvert = xaxisconvert + yaxisconvert +# for these docs, use string.format() when you use them +# Keys: +# {name}: String name to complete the call to vcs.(get|create)$OBJ_TYPE() +# {parent}: String argument for calls to vcs.(get|create)$OBJ_TYPE() that require specification of an obj to +# inherit from. Mainly used for get1d, but possible uses for text objects also exist (maybe others too). +# If providing a parent name, use either double quotes in a string literal, or a string literal in double +# quotes (i.e. '"$PARENT"' or "'$PARENT'"). Else, use an empty string. +# {data}: String used for plugging in plotting information. Plug in whatever data is set up in the docstring +# in a way that VCS will correctly plot the object. +# {x_y}: Literally will be the string "x" or "y". +# {axis}: "lat" or "lon", corresponding to the value you put in for {x_y} + colorsdoc = """ Sets the color_1 and color_2 properties of the object. @@ -230,13 +242,13 @@ :Example: - .. doctest %(name)s_exts + .. doctest {name}_exts >>> a=vcs.init() >>> array=[range(10) for _ in range(10)] - >>> ex=a.create%(name)s() + >>> ex=a.create{name}() >>> ex.exts(True, True) # arrows on both ends - >>> a.plot(ex, %(data)s) + >>> a.plot(ex, {data}) :param ext1: Sets the :py:attr:`ext_1` value on the object. @@ -249,74 +261,45 @@ True or False can be used in lieu of 'y' and 'n'. :type ext2: str or bool """ -ticlabelsdoc = """ - Sets the %(x_y)sticlabels1 and %(x_y)sticlabels2 values on the object - - :Example: - - .. doctest:: %(name)s_%(x_y)sticlabels - - >>> a = vcs.init() - >>> import cdms2 # Need cdms2 to create a slab - >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file - >>> ex = a.create%(name)s() - >>> ex.%(x_y)sticlabels(%(labels)s) - >>> a.plot(ex, %(data)s) # plot shows labels - - - :param %(x_y)stl1: Sets the object's value for :py:attr:`%(x_y)sticlabels1`. - Must be a str, or a dictionary object with float:str mappings. - :type %(x_y)stl1: dict or str - - :param %(x_y)stl2: Sets the object's value for :py:attr:`%(x_y)sticlabels2`. - Must be a str, or a dictionary object with float:str mappings. - :type %(x_y)stl2: dict or str - """ -xticlabelsdoc = ticlabelsdoc % {"x_y": "x", "labels":'{0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}', - "name": "%(name)s", "data": "%(data)s"} -yticlabelsdoc = ticlabelsdoc % {"x_y": "y", "labels":'{0: "Eq.", 37.6819: "L", 55.7558: "M"}', "name": "%(name)s", - "data": "%(data)s"} - mticsdoc = """ - Sets the %(x_y)smtics1 and %(x_y)smtics2 values on the object. + Sets the {x_y}mtics1 and {x_y}mtics2 values on the object. .. note:: The mtics attributes are not inherently plotted by the default template. The example below shows how to apply a custom template and enable it to - plot mtics. To plot a the %(name)s after setting the mtics and template, - refer to :py:func:`vcs.Canvas.plot` or :py:func:`vcs.Canvas.%(name)s`. + plot mtics. To plot a the {name} after setting the mtics and template, + refer to :py:func:`vcs.Canvas.plot` or :py:func:`vcs.Canvas.{name}`. :Example: - .. doctest:: %(name)s_%(x_y)smtics + .. doctest:: {name}_{x_y}mtics >>> a=vcs.init() - >>> ex=vcs.create%(name)s() - >>> ex.%(x_y)smtics("%(axis)s5") # minitick every 5 degrees + >>> ex=vcs.create{name}() + >>> ex.{x_y}mtics("{axis}5") # minitick every 5 degrees >>> tmp=vcs.createtemplate() # custom template to plot minitics - >>> tmp.%(x_y)smintic1.priority = 1 # plotting shows %(x_y)smtics + >>> tmp.{x_y}mintic1.priority = 1 # plotting shows {x_y}mtics - :param %(x_y)smt1: Value for :py:attr:`%(x_y)smtics1`. + :param {x_y}mt1: Value for :py:attr:`{x_y}mtics1`. Must be a str, or a dictionary object with float:str mappings. - :type %(x_y)smt1: dict or str + :type {x_y}mt1: dict or str - :param %(x_y)smt2: Value for :py:attr:`%(x_y)smtics2`. + :param {x_y}mt2: Value for :py:attr:`{x_y}mtics2`. Must be a str, or a dictionary object with float:str mappings. - :type %(x_y)smt2: dict or str + :type {x_y}mt2: dict or str """ -xmticsdoc = mticsdoc % {"x_y": "x", "axis": "lon", "name": "%(name)s"} -ymticsdoc = mticsdoc % {"x_y": "y", "axis": "lat", "name": "%(name)s"} - +xmticsdoc = mticsdoc.format(x_y="x", axis="lon", name="{name}") +ymticsdoc = mticsdoc.format(x_y="x", axis="lat", name="{name}") datawcdoc = """ Sets the data world coordinates for object :Example: - .. doctest:: datawc_%(name)s + .. doctest:: datawc_{name} >>> a=vcs.init() - >>> ex=a.create%(name)s('%(name)s_dwc') + >>> ex=a.create{name}('{name}_dwc') >>> ex.datawc(0.0, 0.1, 1.0, 1.1) # sets datawc y1, y2, x1, x2 >>> ex.datawc_y1, ex.datawc_y2, ex.datawc_x1, ex.datawc_x2 (0.0, 0.1, 1.0, 1.1) @@ -338,10 +321,10 @@ :Example: - .. doctest:: xyscale_%s + .. doctest:: xyscale_{name} >>> a=vcs.init() - >>> ex=a.create%s('%s_xys') # make a %s + >>> ex=a.create{name}('{name}_xys') # make a {name} >>> ex.xyscale(xat='linear', yat='linear') :param xat: Set value for x axis conversion. @@ -350,14 +333,6 @@ :param yat: Set value for y axis conversion. :type yat: str """ - -# for listdoc, plug in a dictionary where you use it -# Dict Keys: -# "name": String name to complete the call to vcs.get$OBJ_TYPE() -# "parent": String argument for calls to vcs.get$OBJ_TYPE() that require specification of an obj to inherit from. -# mainly used for get1d, but possible uses for text objects also exist (maybe others too). -# If providing a parent name, use either double quotes in a string literal, or a string literal in double -# quotes (i.e. '"parent"' or "'parent'"). Else, use an empty string. listdoc = """Lists the current values of object attributes :Example: @@ -365,11 +340,40 @@ .. doctest:: listdoc >>> a=vcs.init() - >>> obj=a.get%(name)s(%(parent)s) # default - >>> obj.list() # print %(name)s attributes + >>> obj=a.get{name}({parent}) # default + >>> obj.list() # print {name} attributes ---------- ... ---------- ... """ +# due to the labels being plugged in below, we have to use a dictionary to format this docstring. +# .format() messes up because it tries to interpret the labels dictionary as a keyword. +ticlabelsdoc = """ + Sets the %(x_y)sticlabels1 and %(x_y)sticlabels2 values on the object + + :Example: + + .. doctest:: %(name)s_%(x_y)sticlabels + + >>> a = vcs.init() + >>> import cdms2 # Need cdms2 to create a slab + >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # open data file + >>> ex = a.create%(name)s() + >>> ex.%(x_y)sticlabels(%(labels)s) + >>> a.plot(ex, %(data)s) # plot shows labels + + + :param %(x_y)stl1: Sets the object's value for :py:attr:`%(x_y)sticlabels1`. + Must be a str, or a dictionary object with float:str mappings. + :type %(x_y)stl1: dict or str + + :param %(x_y)stl2: Sets the object's value for :py:attr:`%(x_y)sticlabels2`. + Must be a str, or a dictionary object with float:str mappings. + :type %(x_y)stl2: dict or str + """ +xticlabelsdoc = ticlabelsdoc % {"x_y": "x", "labels": '{0: "Prime Meridian", -121.7680: "Livermore", 37.6173: "Moscow"}', + "name": "%(name)s", "data": "%(data)s"} +yticlabelsdoc = ticlabelsdoc % {"x_y": "y", "labels": '{0: "Eq.", 37.6819: "L", 55.7558: "M"}', "name": "%(name)s", + "data": "%(data)s"} def populate_docstrings(type_dict, target_dict, docstring, method): """ @@ -853,6 +857,12 @@ def populate_docstrings(type_dict, target_dict, docstring, method): for method in docstrings.keys(): populate_docstrings(obj_details, docstrings[method][0], docstrings[method][1], method) +############################################################################# +# # +# Attributes section # +# # +############################################################################# + exts_attrs = """ .. py:attribute:: ext_1 (str) @@ -908,6 +918,93 @@ def populate_docstrings(type_dict, target_dict, docstring, method): Color to use for missing value or values not in defined ranges """ +# 3d plot attributes +toggle_vs = """ + .. py:attribute:: Toggle{v_s}Plot (vcs.on or vcs.off) + + Toggles the visibility of the :ref:`dv3d-{v_s}` ({i_e}) plot constituent. + + **Interact Mode:** Toggle visibility with button click. +""" +toggle_volume = toggle_vs.format(v_s="Volume", i_e="volume render") +toggle_surface = toggle_vs.format(v_s="Surface", i_e="isosurface") +axisslider = """ + .. py:attribute:: {axis}Slider (float, vcs.on or vcs.off) + + Sets the position and visibility of the {axis} :term:`Slice` plane. + The position is in {coord} coordinates. + + **Interact Mode:** Adjust position with the slider. +""" +xslider = axisslider.format(axis="X", coord="longitude") +yslider = axisslider.format(axis="Y", coord="latitude") +zslider = axisslider.format(axis="Z", coord="relative (0.0 = bottom, > 1.0 = top)") +verticalscaling = """ + .. py:attribute:: VerticalScaling (float) + + Scales the vertical dimension of the plot. + + Accepts values from ~ 0.1 -- 10.0 + + **Interact Mode:** Adjust position with the slider. +""" +scalecolormap = """ + .. py:attribute:: ScaleColormap (floats: [max,min]) + + Sets the value range of the current colormap. + Initialized to the max (full) range value of the data. + + **Interact Mode:** Adjust colormap range (min, max) with the pair of sliders. +""" +scaletransferfunction = """ + .. py:attribute:: ScaleTransferFunction (floats: [max,min]) + + Sets the value range of the :term:`Volume` plot constituent, which maps this range of variable + values to opacity. Initialized to the max (full) range value of the data. + + **Interact Mode:** Adjust TF range (min, max) with the pair of sliders. +""" +toggleclipping = """ + .. py:attribute:: ToggleClipping (Up to six floats: [ xmin, xmax, ymin, ymax, zmin, zmax ]) + + Sets the clip bounds for the :term:`Volume` plot constituent. + + **Interact Mode:** Drag the spheres on the adjustable frame. +""" +isosurfacevalue = """ + .. py:attribute:: IsosurfaceValue (float between the variable max and min values) + + Sets the variable value that defines the isosurface (:term:`Surface`). + + **Interact Mode:** Adjust the isosurface value using the slider. +""" +scaleopacity = """ + .. py:attribute:: ScaleOpacity (floats: [ max, min ]) + + Sets the opacity range of the :term:`Volume` plot constituent, + which maps the selected range of variable values to this opacity range. + Initialized to [1,1] + + **Interact Mode:** Adjust opacity range (min, max) with the pair of sliders. +""" +basemapopacity = """ + .. py:attribute:: BasemapOpacity (float between 0.0 and 1.0.) + + Sets the opacity of the underlying earth map. + + **Interact Mode:** Adjust the opacity with the slider. +""" +camera = """ + .. py:attribute:: Camera (dict with three keys: 'Position', 'ViewUp', and 'FocalPoint') + + Sets the position and orientation of the camera. + + The values of Position and FocalPoint are positions in model coordinates, and ViewUp is a unit vector. + + **Interact Mode:** Left-click in window and drag to rotate. Right-click and drag to zoom/pan. + Shift-Left-click and drag to translate. +""" + meshfill_doc = """ %s %s From 6c75ccd91a720a77ac574f54394fe62530e579d6 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 11 Jan 2017 12:52:28 -0800 Subject: [PATCH 40/45] Added '.. pragma: skip-doctest' statements in some places they are needed for vcs's test suite. Updated output for 3d graphics methods to match VCS's output. These will need to be changed after https://github.com/UV-CDAT/dv3d/issues/14 is resolved. --- docs/conf.py | 2 +- vcs/Canvas.py | 17 +++++++++++++++-- vcs/queries.py | 8 +++++--- vcs/xmldocs.py | 35 +++++++++++++++++------------------ 4 files changed, 38 insertions(+), 24 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index c298d53f9..7338b8fd7 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -304,7 +304,7 @@ latex_show_pagerefs = True # If true, show URL addresses after external links. -latex_show_urls = 'footnote' +latex_show_urls = 'no' # Documents to append as an appendix to all manuals. #latex_appendices = [] diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 1efe6bf0b..12d9a11de 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -3,6 +3,8 @@ visible window. This gives users an easy way to preview how changes to data representation in VCS will change the visualization of that data. + .. pragma: skip-doctest + .. _list: https://docs.python.org/2/library/functions.html#list .. _tuple: https://docs.python.org/2/library/functions.html#tuple .. _dict: https://docs.python.org/2/library/stdtypes.html#mapping-types-dict @@ -301,6 +303,8 @@ class Canvas(object): See :py:func:`vcs.Canvas.Canvas.plot` for more information on the type of data that can be plotted on a Canvas object. + + .. pragma: skip-doctest """ __slots__ = [ '_mode', @@ -499,6 +503,7 @@ def interact(self, *args, **kargs): a.plot(b,array) a.interact() # interactively configure Canvas + .. pragma: skip-doctest """ self.configure() self.backend.interact(*args, **kargs) @@ -1276,8 +1281,6 @@ def boxfill(self, *args, **parms): The first string provided is assumed to be a template name. The second is assumed to be a boxfill name. - - %s %s %s @@ -1410,6 +1413,7 @@ def scalar3d(self, *args, **parms): >>> f = cdms2.open(vcs.sample_data+'/clt.nc') # get data file >>> s = f('clt') # use data file to create a cdms2 slab >>> a.scalar3d(ds,s) # Plot slab with defaults + initCamera: Camera => (...) >>> a.clear() # Clear VCS canvas >>> t = a.gettemplate('polar') @@ -1453,10 +1457,16 @@ def vector3d(self, *args, **parms): >>> s = f('u') # use data file to create a cdms2 slab >>> s2 = f('v') # need two slabs, so get another >>> a.vector3d(dv3,s,s2) # Plot slabs + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => (...) >>> a.clear() # Clear VCS canvas >>> t = a.gettemplate('polar') >>> a.vector3d(s,s2,dv3,t) # Plot with 'polar' template + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => (...) """ arglist = _determine_arg_list('3d_vector', args) @@ -1496,10 +1506,13 @@ def dual_scalar3d(self, *args, **parms): >>> s = f('clt') # use data file to create a cdms2 slab >>> s2 = f('v') # need two slabs, so get another >>> a.dual_scalar3d(ds3,s,s2) # Plot slabs + initCamera: Camera => (...) >>> a.clear() # Clear VCS canvas + saved state data to file <...> >>> t = a.gettemplate('polar') >>> a.dual_scalar3d(s,s2,ds3,t) # Plot w/ 'polar' template + initCamera: Camera => (...) """ arglist = _determine_arg_list('3d_dual_scalar', args) diff --git a/vcs/queries.py b/vcs/queries.py index 1431185f0..92b76f9b0 100644 --- a/vcs/queries.py +++ b/vcs/queries.py @@ -30,6 +30,8 @@ .. _int: https://docs.python.org/2/library/functions.html?highlight=float#int .. _long: https://docs.python.org/2/library/functions.html?highlight=float#long .. _file: https://docs.python.org/2/library/functions.html?highlight=open#file + + .. pragma: skip-doctest """ import boxfill import isofill @@ -145,9 +147,9 @@ def graphicsmethodtype(gobj): vcsError: The object passed is not a graphics method object. :returns: If gobj is a graphics method object, returns its type: 'boxfill', 'isofill', 'isoline', 'meshfill', - 'scatter', 'vector', 'xvsy', 'xyvsy', 'yxvsx', 'taylordiagram', '1d', '3d_scalar', '3d_dual_scalar', - '3d_vector'. - If gobj is not a graphics method object, raises an exception and prints a vcsError message. + 'scatter', 'vector', 'xvsy', 'xyvsy', 'yxvsx', 'taylordiagram', '1d', '3d_scalar', '3d_dual_scalar', + '3d_vector'. + If gobj is not a graphics method object, raises an exception and prints a vcsError message. :rtype: `str`_ or `None`_ """ import vcsaddons diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index e0fbf5c19..ba43b6ead 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -412,7 +412,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): elif obj_name in ['1d', 'scatter', 'textcombined', 'xyvsy']: if obj_name == 'textcombined': d['tc'] = """>>> try: # try to create a new textcombined, in case none exist - ... vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') + ... tc = vcs.createtextcombined('EX_tt', 'qa', 'EX_tto', '7left') ... except: ... pass """ @@ -472,6 +472,22 @@ def populate_docstrings(type_dict, target_dict, docstring, method): plot2 = """ >>> a.plot(ex2%(args)s) # plot %(name)s """ + if obj_name.find('3d') >= 0: + if obj_name is "3d_vector": + plot = """ + >>> a.plot(ex%(args)s) # plot %(name)s + Sample rate: 6 + Sample rate: 6 + initCamera: Camera => (...) + + """ + else: + plot = """ + >>> a.plot(ex%(args)s) # plot %(name)s + initCamera: Camera => (...) + + """ + if d['slabs'] is not '': plot = d['slabs'] + plot example1 += plot @@ -1004,7 +1020,6 @@ def populate_docstrings(type_dict, target_dict, docstring, method): **Interact Mode:** Left-click in window and drag to rotate. Right-click and drag to zoom/pan. Shift-Left-click and drag to translate. """ - meshfill_doc = """ %s %s @@ -1013,9 +1028,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): %s %s """ % (levels_attr, fillarea_colors_attr, fillarea_attrs, legend_attr, exts_attrs, missing_attr) - isofill_doc = meshfill_doc - fillareadoc = """ .. py:attribute:: fillareacolor (int) @@ -1029,7 +1042,6 @@ def populate_docstrings(type_dict, target_dict, docstring, method): pattern to use when filling a level and using pattern/hatch """ # noqa - linesdoc = """ .. py:attribute:: line ([str,...]/[vcs.line.Tl,...]/[int,...]) @@ -1056,7 +1068,6 @@ def populate_docstrings(type_dict, target_dict, docstring, method): width for each isoline """ # noqa - textsdoc = """ .. py:attribute:: text (None/[vcs.textcombined.Tc,...]) @@ -1066,7 +1077,6 @@ def populate_docstrings(type_dict, target_dict, docstring, method): colors to use for each countour label """ # noqa - markerdoc = """ .. py:attribute:: marker (None/int/str/vcs.marker.Tm) @@ -1080,7 +1090,6 @@ def populate_docstrings(type_dict, target_dict, docstring, method): size of markers """ - color_one_two_doc = """ .. py:attribute:: color_1 (float) @@ -1092,7 +1101,6 @@ def populate_docstrings(type_dict, target_dict, docstring, method): Used in conjunction with boxfill_type linear/log10. Sets the last value of the legend's color range. """ - ############################################################################# # # # Graphics Method input section. # @@ -1148,39 +1156,30 @@ def populate_docstrings(type_dict, target_dict, docstring, method): :return: A VCS displayplot object. :rtype: vcs.displayplot.Dp """ - boxfill_output = """ boxfill :: (Ex: 0) no default """ - isofill_output = """ isofill :: (Ex: 0) no default """ - isoline_output = """ isoline :: (Ex: 0) no default """ - yxvsx_output = """ yxvsx :: (Ex: 0) no default """ - xyvsy_output = """ xyvsy :: (Ex: 0) no default """ - xvsy_output = """ xvsy :: (Ex: 0) no default """ - scatter_output = """ scatter :: (Ex: 0) no default """ - outfill_output = """ outfill :: (Ex: 0) no default """ - outline_output = """ outline :: (Ex: 0) no default """ From 3b2635bd9b3b87f2e576f4be23149c2594fddc82 Mon Sep 17 00:00:00 2001 From: embrown Date: Wed, 11 Jan 2017 16:45:44 -0800 Subject: [PATCH 41/45] Added lots of '.. pragma: skip-doctest' and fixed some broken tests. --- vcs/Canvas.py | 27 ++++++++++++++++++++++++--- vcs/boxfill.py | 6 ++++-- vcs/isofill.py | 7 +++++-- vcs/isoline.py | 2 +- vcs/line.py | 3 +-- vcs/manageElements.py | 2 ++ vcs/meshfill.py | 2 +- vcs/template.py | 2 +- vcs/textorientation.py | 2 +- vcs/texttable.py | 2 +- vcs/unified1D.py | 2 +- vcs/xmldocs.py | 6 ++---- 12 files changed, 44 insertions(+), 19 deletions(-) diff --git a/vcs/Canvas.py b/vcs/Canvas.py index 12d9a11de..a33efea12 100644 --- a/vcs/Canvas.py +++ b/vcs/Canvas.py @@ -503,7 +503,7 @@ def interact(self, *args, **kargs): a.plot(b,array) a.interact() # interactively configure Canvas - .. pragma: skip-doctest + .. pragma: skip-doctest Because testing interact() can't be handled in a doctest """ self.configure() self.backend.interact(*args, **kargs) @@ -822,8 +822,7 @@ def objecthelp(self, *arg): >>> a=vcs.init() >>> ln=a.getline('red') # Get a VCS line object >>> a.objecthelp(ln) # This will print out information on how to use ln - - ... The Line object ... + The Line object ... """ for x in arg: @@ -1416,8 +1415,10 @@ def scalar3d(self, *args, **parms): initCamera: Camera => (...) >>> a.clear() # Clear VCS canvas + saved state data to file <...> >>> t = a.gettemplate('polar') >>> a.scalar3d(s,ds,t) # Plot with 'polar' template + initCamera: Camera => (...) """ arglist = _determine_arg_list('3d_scalar', args) @@ -1462,6 +1463,7 @@ def vector3d(self, *args, **parms): initCamera: Camera => (...) >>> a.clear() # Clear VCS canvas + saved state data to file <...> >>> t = a.gettemplate('polar') >>> a.vector3d(s,s2,dv3,t) # Plot with 'polar' template Sample rate: 6 @@ -4102,6 +4104,8 @@ def cgm(self, file, mode='w'): :param file: Filename to save :param mode: Ignored. + + .. pragma: skip-doctest REMOVE WHEN IT WORKS AGAIN! """ if mode != 'w': @@ -4232,6 +4236,8 @@ def get_selected_display(self): This function does not currently work. It will be implemented in the future. + + .. pragma: skip-doctest REMOVE WHEN IT WORKS AGAIN! """ return self.canvas.get_selected_display(*()) @@ -4385,6 +4391,8 @@ def grid(self, *args): This function does not currently work. It will be implemented in the future. + + .. pragma: skip-doctest REMOVE WHEN IT WORKS AGAIN! """ p = self.canvas.grid(*args) @@ -4501,6 +4509,8 @@ def updateorientation(self, *args): It will be implemented in the future. Use :func:`landscape` or :func:`portrait` instead. + + .. pragma: skip-doctest REMOVE WHEN IT WORKS AGAIN! """ a = self.canvas.updateorientation(*args) @@ -5471,6 +5481,8 @@ def gif(self, filename='noname.gif', merge='r', orientation=None, This function does not currently work. It will be implemented in the future. + + .. pragma: skip-doctest REMOVE WHEN IT WORKS AGAIN! """ if orientation is None: orientation = self.orientation()[0] @@ -5563,6 +5575,8 @@ def isinfile(self, GM, file=None): :type file: `str`_ :returns: 1 if the graphic method is stored in the file, nothing if it is not. + + .. pragma: skip-doctest This function needs to be fixed """ nm = GM.name gm = GM.g_name @@ -5689,6 +5703,8 @@ def getplot(self, Dp_name_src='default', template=None): This function does not currently work. It will be implemented in the future. + + .. pragma: skip-doctest REMOVE WHEN IT WORKS AGAIN! """ if not isinstance(Dp_name_src, str): raise ValueError('Error - The argument must be a string.') @@ -5715,6 +5731,8 @@ def addfont(self, path, name=""): :param name: Name to use to represent the font. :type name: `str`_ + + .. pragma: skip-doctest If you can reliably test it, please do. """ if not os.path.exists(path): raise ValueError('Error - The font path does not exists') @@ -5849,6 +5867,7 @@ def copyfontto(self, font1, font2): This function does not currently work. It will be added in the future. + .. pragma: skip-doctest REMOVE WHEN IT WORKS AGAIN! """ if isinstance(font1, str): index1 = self.getfont(font1) @@ -5880,6 +5899,8 @@ def setdefaultfont(self, font): This function does not currently work. It will be implemented in the future. + + .. pragma: skip-doctest REMOVE WHEN IT WORKS AGAIN! """ if isinstance(font, str): font = self.getfont(font) diff --git a/vcs/boxfill.py b/vcs/boxfill.py index 402a1e142..c0b0dd921 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -369,6 +369,8 @@ class Gfb(object): * More boxfill attributes: %s + + .. pragma: skip-doctest """ % xmldocs.graphics_method_core # noqa def rename(self, newname): @@ -878,7 +880,7 @@ def getlevels(self, varmin, varmax): >>> b=vcs.createboxfill() >>> lvls = b.getlevels(0,100) # 257 levels from 0-100 - >>> b.levels = lvls # set boxfill's levels attribute + >>> b.levels = list(lvls) # set boxfill's levels attribute :param varmin: The smallest number desired for the boxfill's levels attribute. @@ -1003,7 +1005,7 @@ def list(self): print "ext_1 = ", self.ext_1 print "ext_2 = ", self.ext_2 print "missing = ", self.missing - list.__doc__ = xmldocs.listdoc % {"name": "boxfill", "parent": ""} + list.__doc__ = xmldocs.listdoc.format(name="boxfill", parent="") ########################################################################### # # # Script out primary boxfill graphics method in VCS to a file. # diff --git a/vcs/isofill.py b/vcs/isofill.py index e5fc09432..ea2fc4bd4 100755 --- a/vcs/isofill.py +++ b/vcs/isofill.py @@ -306,7 +306,10 @@ class Gfi(object): .. describe:: Attribute descriptions: %s - %s""" % (xmldocs.graphics_method_core, xmldocs.isofill_doc) + %s + + .. pragma: skip-doctest + """ % (xmldocs.graphics_method_core, xmldocs.isofill_doc) colormap = VCS_validation_functions.colormap __slots__ = [ @@ -741,7 +744,7 @@ def list(self): print "fillareaopacity = ", self.fillareaopacity print "levels = ", self.levels print "legend = ", self.legend - list.__doc__ = xmldocs.listdoc % {"name": "isofill", "parent": ""} + list.__doc__ = xmldocs.listdoc.format(name="isofill", parent="") # # diff --git a/vcs/isoline.py b/vcs/isoline.py index 793e3eda8..aabc2bbe0 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -1056,7 +1056,7 @@ def list(self): print "scale = ", self.scale print "angle = ", self.angle print "spacing = ", self.spacing - list.__doc__ = xmldocs.listdoc % {"name": "isoline", "parent": ""} + list.__doc__ = xmldocs.listdoc.format(name="isoline", parent="") ########################################################################## # # diff --git a/vcs/line.py b/vcs/line.py index 9567daffc..94a4b50ae 100755 --- a/vcs/line.py +++ b/vcs/line.py @@ -72,8 +72,7 @@ def process_src(nm, code): class Tl(object): - """ - The Line object allows the manipulation of line type, width, color index, + """The Line object allows the manipulation of line type, width, color index, view port, world coordinates, and (x,y) points. This class is used to define an line table entry used in VCS, or it diff --git a/vcs/manageElements.py b/vcs/manageElements.py index 949caae32..db4a22f76 100644 --- a/vcs/manageElements.py +++ b/vcs/manageElements.py @@ -9,6 +9,8 @@ .. _int: https://docs.python.org/2/library/functions.html?highlight=float#int .. _long: https://docs.python.org/2/library/functions.html?highlight=float#long .. _file: https://docs.python.org/2/library/functions.html?highlight=open#file + + .. pragma: skip-doctest """ import vcs import boxfill diff --git a/vcs/meshfill.py b/vcs/meshfill.py index e93701d49..d14212826 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -768,7 +768,7 @@ def list(self): print 'wrap =', self.wrap print 'colormap = ', self.colormap return - list.__doc__ = xmldocs.listdoc % {"name": "meshfill", "parent": ""} + list.__doc__ = xmldocs.listdoc.format(name="meshfill", parent="") ########################################################################## # # diff --git a/vcs/template.py b/vcs/template.py index 632bed0b1..c66247856 100644 --- a/vcs/template.py +++ b/vcs/template.py @@ -762,7 +762,7 @@ def list(self, single=None): self.legend.list() elif (single == 'data'): self.data.list() - list.__doc__ = list.__doc__ % (listdoc % {"name": "template", "parent": ""}) + list.__doc__ = list.__doc__ % (listdoc.format(name="template", parent="")) ########################################################################### # # diff --git a/vcs/textorientation.py b/vcs/textorientation.py index 6d0df0682..ab32ccc05 100755 --- a/vcs/textorientation.py +++ b/vcs/textorientation.py @@ -293,7 +293,7 @@ def list(self): print "path =", self.path print "halign =", self.halign print "valign =", self.valign - list.__doc__ = listdoc % {"name": "textorientation", "parent": ""} + list.__doc__ = listdoc.format(name="textorientation", parent="") ########################################################################## # # diff --git a/vcs/texttable.py b/vcs/texttable.py index 8dce5f459..6729b0047 100755 --- a/vcs/texttable.py +++ b/vcs/texttable.py @@ -494,7 +494,7 @@ def list(self): print "x =", self.x print "y =", self.y print 'colormap =', self.colormap - list.__doc__ = listdoc % {"name": "texttable", "parent": ""} + list.__doc__ = listdoc.format(name="texttable", parent="") ########################################################################## # # # Script out secondary text table method in VCS to a file. # diff --git a/vcs/unified1D.py b/vcs/unified1D.py index 330a8eab2..d928237d1 100644 --- a/vcs/unified1D.py +++ b/vcs/unified1D.py @@ -813,7 +813,7 @@ def list(self): print "markercolor = ", self.markercolor print "markersize = ", self.markersize print "flip = ", self.flip - list.__doc__ = xmldocs.listdoc % {"name": "1d", "parent": "'default'"} + list.__doc__ = xmldocs.listdoc.format(name="1d", parent="'default'") ########################################################################### # # diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index ba43b6ead..dce00efe7 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -853,10 +853,8 @@ def populate_docstrings(type_dict, target_dict, docstring, method): .. doctest:: manageElements_create - >>> vcs.show('%(name)s') # available %(name)ss - *******************%(cap)s Names List********************** - ... - *******************End %(cap)s Names List********************** + >>> vcs.listelements('%(name)s') # list %(name)ss + [...] %(example)s """ From d9b1313529939dcf53a24461d9f548e62abd807b Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 12 Jan 2017 09:17:12 -0800 Subject: [PATCH 42/45] Added skip-doctest to some docstrings. --- vcs/isoline.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vcs/isoline.py b/vcs/isoline.py index aabc2bbe0..6d5ac4987 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -428,6 +428,8 @@ class Gi(object): %s %s %s + + .. pragma: skip-doctest """ % (xmldocs.graphics_method_core, xmldocs.linesdoc, xmldocs.textsdoc) colormap = VCS_validation_functions.colormap @@ -752,6 +754,8 @@ def setLineAttributes(self, mixed): """ Add either a (linetype, 1, 1) or (linetype, linecolor, linewidth) based on if mixed[i] is a linetype or a line object name. + + .. pragma: skip-doctest TODO: add a setLineAttributes example """ import queries types = [] From ee36e7b770c49a5850bbde7fde0405891ffc8e2c Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 12 Jan 2017 10:50:22 -0800 Subject: [PATCH 43/45] Standardized print statements for .list() --- vcs/boxfill.py | 2 +- vcs/colormap.py | 2 +- vcs/displayplot.py | 2 +- vcs/dv3d.py | 2 +- vcs/fillarea.py | 2 +- vcs/isofill.py | 2 +- vcs/isoline.py | 2 +- vcs/line.py | 2 +- vcs/marker.py | 2 +- vcs/meshfill.py | 2 +- vcs/png.py | 2 +- vcs/projection.py | 2 +- vcs/taylor.py | 2 +- vcs/textcombined.py | 2 +- vcs/textorientation.py | 2 +- vcs/texttable.py | 2 +- vcs/unified1D.py | 2 +- vcs/vector.py | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/vcs/boxfill.py b/vcs/boxfill.py index c0b0dd921..d46a1c603 100755 --- a/vcs/boxfill.py +++ b/vcs/boxfill.py @@ -971,7 +971,7 @@ def getlegendlabels(self, levels): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Boxfill (Gfb) member (attribute) listings ----------" + print "---------- Boxfill (Gfb) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/colormap.py b/vcs/colormap.py index 2511ad7b9..dc87716c8 100644 --- a/vcs/colormap.py +++ b/vcs/colormap.py @@ -368,7 +368,7 @@ def getcolorcell(self, index): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Colormap (Cp) member (attribute) listings ----------" + print "---------- Colormap (Cp) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "index =", self.index diff --git a/vcs/displayplot.py b/vcs/displayplot.py index 56c4b66f9..99f7940ce 100755 --- a/vcs/displayplot.py +++ b/vcs/displayplot.py @@ -300,7 +300,7 @@ def __init__(self, Dp_name, Dp_name_src='default', parent=None): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Display Plot (Dp) member (attribute) listings ----------" + print "---------- Display Plot (Dp) member (attribute) listings ----------" print "Display plot method =", self.s_name print "name =", self.name print "off =", self.off diff --git a/vcs/dv3d.py b/vcs/dv3d.py index e16fb55bf..ea9e1651e 100644 --- a/vcs/dv3d.py +++ b/vcs/dv3d.py @@ -244,7 +244,7 @@ def initDefaultState(self): self.cfgManager.initDefaultState() def list(self): - print ' ---------- DV3D (Gfdv3d) member (attribute) listings ---------' + print '---------- DV3D (Gfdv3d) member (attribute) listings ----------' print 'name =', self.name print 'axes =', self.axes for pname in self.parameter_names: diff --git a/vcs/fillarea.py b/vcs/fillarea.py index 9ad76de16..1a9f84412 100755 --- a/vcs/fillarea.py +++ b/vcs/fillarea.py @@ -425,7 +425,7 @@ def __init__(self, Tf_name=None, Tf_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Fillarea (Tf) member (attribute) listings ----------" + print "---------- Fillarea (Tf) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "style =", self.style diff --git a/vcs/isofill.py b/vcs/isofill.py index ea2fc4bd4..67c54eecf 100755 --- a/vcs/isofill.py +++ b/vcs/isofill.py @@ -715,7 +715,7 @@ def xyscale(self, xat='', yat=''): xyscale.__doc__ = xmldocs.xyscaledoc.format(name='isofill') def list(self): - print "", "---------- Isofill (Gfi) member (attribute) listings ----------" + print "---------- Isofill (Gfi) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/isoline.py b/vcs/isoline.py index 6d5ac4987..e5a28f4e6 100755 --- a/vcs/isoline.py +++ b/vcs/isoline.py @@ -1026,7 +1026,7 @@ def xyscale(self, xat='', yat=''): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Isoline (Gi) member (attribute) listings ----------" + print "---------- Isoline (Gi) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/line.py b/vcs/line.py index 94a4b50ae..045df1b92 100755 --- a/vcs/line.py +++ b/vcs/line.py @@ -374,7 +374,7 @@ def __init__(self, Tl_name, Tl_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Line (Tl) member (attribute) listings ----------" + print "---------- Line (Tl) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "type =", self.type diff --git a/vcs/marker.py b/vcs/marker.py index ae93fd0a2..3d622b768 100755 --- a/vcs/marker.py +++ b/vcs/marker.py @@ -429,7 +429,7 @@ def __init__(self, Tm_name, Tm_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Marker (Tm) member (attribute) listings ----------" + print "---------- Marker (Tm) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "type =", self.type diff --git a/vcs/meshfill.py b/vcs/meshfill.py index d14212826..a25ed146b 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -736,7 +736,7 @@ def xyscale(self, xat='', yat=''): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print ' ---------- Meshfill (Gmf) member (attribute) listings ---------' + print '---------- Meshfill (Gmf) member (attribute) listings ----------' print 'graphics method =', self.g_name print 'name =', self.name print 'projection =', self.projection diff --git a/vcs/png.py b/vcs/png.py index 6ebfc716d..45475e3d6 100644 --- a/vcs/png.py +++ b/vcs/png.py @@ -339,7 +339,7 @@ def __init__( def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Fillarea (Tf) member (attribute) listings ----------" + print "---------- Fillarea (Tf) member (attribute) listings ----------" print 'Canvas Mode =', self.parent.mode print "secondary method =", self.s_name print "name =", self.name diff --git a/vcs/projection.py b/vcs/projection.py index 6768fe18e..771aa370d 100644 --- a/vcs/projection.py +++ b/vcs/projection.py @@ -443,7 +443,7 @@ def __init__(self, Proj_name=None, Proj_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print ' ---------- Projection (Proj) member (attribute) listings ---------' + print '---------- Projection (Proj) member (attribute) listings ----------' print 'secondary method =', self.s_name print 'name =', self.name print 'type =', self.type diff --git a/vcs/taylor.py b/vcs/taylor.py index 10183f865..24cbf340a 100644 --- a/vcs/taylor.py +++ b/vcs/taylor.py @@ -1019,7 +1019,7 @@ def drawSkill(self, canvas, values, function=None): return canvas.plot(a, iso, tmpl, bg=self.bg) def list(self): - print ' ---------- Taylordiagram (Gtd) member (attribute) listings ----------' + print '---------- Taylordiagram (Gtd) member (attribute) listings ----------' print 'graphic method = Gtd' print 'name =', self.name print 'detail =', self.detail diff --git a/vcs/textcombined.py b/vcs/textcombined.py index 93001bab1..cd442809f 100644 --- a/vcs/textcombined.py +++ b/vcs/textcombined.py @@ -416,7 +416,7 @@ def list(self): if ((self.Tt_name == '__removed_from_VCS__') or (self.To_name == '__removed_from_VCS__')): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Text combined (Tc) member (attribute) listings ----------" + print "---------- Text combined (Tc) member (attribute) listings ----------" print "secondary method =", self.s_name print "", "---------- Text Table (Tt) member (attribute) listings ----------" print "Tt_name =", self.Tt_name diff --git a/vcs/textorientation.py b/vcs/textorientation.py index ab32ccc05..1c5ebf3c7 100755 --- a/vcs/textorientation.py +++ b/vcs/textorientation.py @@ -285,7 +285,7 @@ def __init__(self, To_name, To_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Text Orientation (To) member (attribute) listings ----------" + print "---------- Text Orientation (To) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "height =", self.height diff --git a/vcs/texttable.py b/vcs/texttable.py index 6729b0047..3c27576a2 100755 --- a/vcs/texttable.py +++ b/vcs/texttable.py @@ -477,7 +477,7 @@ def __init__(self, Tt_name=None, Tt_name_src='default'): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Text Table (Tt) member (attribute) listings ----------" + print "---------- Text Table (Tt) member (attribute) listings ----------" print "secondary method =", self.s_name print "name =", self.name print "string =", self.string diff --git a/vcs/unified1D.py b/vcs/unified1D.py index d928237d1..a519a4d1a 100644 --- a/vcs/unified1D.py +++ b/vcs/unified1D.py @@ -786,7 +786,7 @@ def datawc(self, dsp1=1e20, dsp2=1e20, dsp3=1e20, dsp4=1e20): def list(self): if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') - print "", "---------- Yxvsx (GYx) member (attribute) listings ----------" + print "---------- Yxvsx (GYx) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection diff --git a/vcs/vector.py b/vcs/vector.py index 36cfc2622..b06a56020 100755 --- a/vcs/vector.py +++ b/vcs/vector.py @@ -774,7 +774,7 @@ def xyscale(self, xat='', yat=''): self.yaxisconvert = yat def list(self): - print "", "---------- Vector (Gv) member (attribute) listings ----------" + print "---------- Vector (Gv) member (attribute) listings ----------" print "graphics method =", self.g_name print "name =", self.name print "projection =", self.projection From 572fba46a8656f0eefb89c4116eb667ee2f9dad9 Mon Sep 17 00:00:00 2001 From: embrown Date: Thu, 12 Jan 2017 12:34:06 -0800 Subject: [PATCH 44/45] Added things to stop tests from breaking --- vcs/colormap.py | 2 ++ vcs/displayplot.py | 17 +++++++++++++++++ vcs/dv3d.py | 5 ++++- vcs/fillarea.py | 6 ++++-- vcs/line.py | 5 ++++- vcs/marker.py | 8 ++++---- vcs/meshfill.py | 2 ++ vcs/projection.py | 4 +++- vcs/taylor.py | 10 ++++++++++ vcs/template.py | 11 ++++++++++- vcs/textcombined.py | 17 ++++++++++++++++- vcs/textorientation.py | 2 ++ vcs/texttable.py | 1 + vcs/xmldocs.py | 2 +- 14 files changed, 80 insertions(+), 12 deletions(-) diff --git a/vcs/colormap.py b/vcs/colormap.py index dc87716c8..763e72a48 100644 --- a/vcs/colormap.py +++ b/vcs/colormap.py @@ -242,6 +242,7 @@ class Cp(object): # R, G, B values range from 0 to 100, where 0 is low intensity and 100 is highest intensity cp.color=17,0,0,100 + .. pragma: skip-doctest """ __slots__ = ["s_name", "name", "_name", "index", "_index"] @@ -372,6 +373,7 @@ def list(self): print "secondary method =", self.s_name print "name =", self.name print "index =", self.index + list.__doc__ = xmldocs.listdoc.format(name="colormap", parent="") ########################################################################## # # diff --git a/vcs/displayplot.py b/vcs/displayplot.py index 99f7940ce..036f4a9d3 100755 --- a/vcs/displayplot.py +++ b/vcs/displayplot.py @@ -25,6 +25,7 @@ # import VCS_validation_functions import vcs +from xmldocs import listdoc class Dp(object): @@ -78,6 +79,8 @@ class Dp(object): p1.g_name='quick' # List of all the array names p1.array=['a1'] + + .. pragma: skip-doctest """ __slots__ = ["name", "_name", @@ -298,6 +301,20 @@ def __init__(self, Dp_name, Dp_name_src='default', parent=None): ########################################################################## def list(self): + """Lists the current values of object attributes + + :Example: + + .. doctest:: displayplot_listdoc + + >>> a=vcs.init() + >>> array = [range(10) for _ in range(10)] + >>> obj=a.getboxfill() # default boxfill + >>> dsp = a.plot(obj,array) # store displayplot + >>> dsp.list() + ---------- ... ---------- + ... + """ if (self.name == '__removed_from_VCS__'): raise ValueError('This instance has been removed from VCS.') print "---------- Display Plot (Dp) member (attribute) listings ----------" diff --git a/vcs/dv3d.py b/vcs/dv3d.py index ea9e1651e..b10651c37 100644 --- a/vcs/dv3d.py +++ b/vcs/dv3d.py @@ -9,7 +9,7 @@ import time from DV3D.ConfigurationFunctions import ConfigManager from xmldocs import toggle_surface, toggle_volume, xslider, yslider, zslider, verticalscaling, scalecolormap, \ - scaletransferfunction, toggleclipping, isosurfacevalue, scaleopacity, basemapopacity, camera + scaletransferfunction, toggleclipping, isosurfacevalue, scaleopacity, basemapopacity, camera, scriptdocs class Gfdv3d(object): @@ -34,6 +34,8 @@ class Gfdv3d(object): %s %s %s + + .. pragma: skip-doctest """ % (toggle_surface, toggle_volume, xslider, yslider, zslider, verticalscaling, scalecolormap, scaletransferfunction, toggleclipping, isosurfacevalue, scaleopacity, basemapopacity, camera) __slots__ = [ @@ -136,6 +138,7 @@ def script(self, script_filename=None, mode=None): f = open(script_filename, mode) vcs.utils.dumpToJson(self, f) f.close() + # can we add a scriptdocs[g_name] here and have each derived class pick up the documentation correctly? def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'): if not isinstance(Gfdv3d_name, str): diff --git a/vcs/fillarea.py b/vcs/fillarea.py index 1a9f84412..7747b8222 100755 --- a/vcs/fillarea.py +++ b/vcs/fillarea.py @@ -25,7 +25,7 @@ import VCS_validation_functions import vcs import genutil -from xmldocs import scriptdocs +from xmldocs import scriptdocs, listdoc def getmember(self, name): @@ -97,7 +97,7 @@ def process_src(nm, code): # # -# Fillarea (Tm) Class. # +# Fillarea (Tf) Class. # # # @@ -188,6 +188,7 @@ class Tf(object): # List of FloatTypes fa.y=[[.5,.4,.3], [.2,.1,0]] + .. pragma: skip-doctest """ __slots__ = [ 'name', @@ -439,6 +440,7 @@ def list(self): print "y =", self.y print "projection =", self.projection print "colormap =", self.colormap + list.__doc__ = listdoc.format(name="fillarea", parent="") # # diff --git a/vcs/line.py b/vcs/line.py index 045df1b92..4e653735f 100755 --- a/vcs/line.py +++ b/vcs/line.py @@ -25,7 +25,7 @@ import VCS_validation_functions import vcs import genutil -from xmldocs import scriptdocs +from xmldocs import scriptdocs, listdoc def process_src(nm, code): @@ -145,6 +145,8 @@ class Tl(object): >>> ln.x=[[0,.1,.2], [.3,.4,.5]] # List of floats >>> ln.y=[[.5,.4,.3], [.2,.1,0]] # List of floats + .. ln.x and ln.y above cause ln to be unplottable. Need a better example. + .. Use doctests in this class as a model for converting other class docstrings to use doctests. """ __slots__ = [ 's_name', @@ -387,6 +389,7 @@ def list(self): print "y =", self.y print "projection =", self.projection print "colormap =", self.colormap + list.__doc__ = listdoc.format(name="line", parent="") ########################################################################## # # diff --git a/vcs/marker.py b/vcs/marker.py index 3d622b768..b24f2edb3 100755 --- a/vcs/marker.py +++ b/vcs/marker.py @@ -24,7 +24,7 @@ import VCS_validation_functions import vcs import genutil -from xmldocs import scriptdocs +from xmldocs import scriptdocs, listdoc def process_src(nm, code): @@ -211,6 +211,8 @@ class Tm(object): mk.x=[[0,.1,.2], [.3,.4,.5]] # List of FloatTypes mk.y=[[.5,.4,.3], [.2,.1,0]] + + .. pragma: skip-doctest """ __slots__ = [ 's_name', @@ -442,11 +444,9 @@ def list(self): print "y =", self.y print "projection =", self.projection print "colormap =", self.colormap + list.__doc__ = listdoc.format(name="marker", parent="") def script(self, script_filename=None, mode=None): - """ - script.__doc__ = xmldocs.marker_script -""" if (script_filename is None): raise ValueError( 'Error - Must provide an output script file name.') diff --git a/vcs/meshfill.py b/vcs/meshfill.py index a25ed146b..9ff66797f 100644 --- a/vcs/meshfill.py +++ b/vcs/meshfill.py @@ -305,6 +305,8 @@ class Gfm(object): %s mesh :: (str/int) (0) Draws the mesh wrap :: ([float,float]) ([0.,0.]) Modulo to wrap around on either axis (automatically set to 360 for longitude axes) + + .. pragma: skip-doctest """ % (xmldocs.graphics_method_core, xmldocs.meshfill_doc) ########################################################################## diff --git a/vcs/projection.py b/vcs/projection.py index 771aa370d..0b5719f47 100644 --- a/vcs/projection.py +++ b/vcs/projection.py @@ -15,7 +15,7 @@ import VCS_validation_functions import vcs import copy -from xmldocs import scriptdocs +from xmldocs import scriptdocs, listdoc # used to decide if we show longitude labels for round projections or # latitude labels for elliptical projections @@ -382,6 +382,7 @@ class Proj(object): # or iso.projection='lambert' + .. pragma: skip-doctest """ def __init__(self, Proj_name=None, Proj_name_src='default'): @@ -451,6 +452,7 @@ def list(self): for att in self.attributes: print att, '=', getattr(self, att) + list.__doc__ = listdoc.format(name="projection", parent="") @property def attributes(self): diff --git a/vcs/taylor.py b/vcs/taylor.py index 24cbf340a..e6935a66a 100644 --- a/vcs/taylor.py +++ b/vcs/taylor.py @@ -548,6 +548,8 @@ class Gtd(object): `Taylor diagrams`_ provide a way of graphically summarizing how closely a pattern matches observations. .. _Taylor diagrams: http://www-pcmdi.llnl.gov/about/staff/Taylor/CV/Taylor_diagram_primer.pdf + + .. pragma: skip-doctest """ __slots__ = [ 'template', @@ -919,6 +921,8 @@ def defaultSkillFunction(self, s, R): :rtype: float .. _`skill`: https://en.wikipedia.org/wiki/Forecast_skill + + .. pragma: skip-doctest TODO: add an example/doctest """ alpha = self.skillCoefficient[0] # default is 1. beta = self.skillCoefficient[1] # default is 1. @@ -960,6 +964,8 @@ def drawSkill(self, canvas, values, function=None): :param function: A function for determining the skill score of a model. :type function: function + + .. pragma: skip-doctest TODO add an example/doctest """ if function is None: return @@ -1404,6 +1410,8 @@ def getArc(self, value, val1=0., val2=90., convert=True): :returns: The coordinates for the calculated arc. :rtype: tuple + + .. pragma: skip-doctest TODO add an example/doctest """ xs = [] ys = [] @@ -1929,6 +1937,8 @@ def plot(self, data, template='deftaylor', skill=None, bg=0, canvas=None): :param canvas: A VCS Canvas object on which the diagram will be plotted. :type canvas: vcs.Canvas.Canvas + + .. pragma: skip-doctest TODO add an example/doctest """ self.bg = bg self.displays = [] diff --git a/vcs/template.py b/vcs/template.py index c66247856..1ad7702b9 100644 --- a/vcs/template.py +++ b/vcs/template.py @@ -192,6 +192,7 @@ class P(object): .. code-block:: python temp=a.gettemplate('hovmuller') + .. pragma: skip-doctest TODO convert examples to working doctests """ __slots__ = ["name", "_name", "_p_name", "p_name", "_orientation", "_orientation", "_file", "file", @@ -1024,6 +1025,8 @@ def drawTicks(self, slab, gm, x, axis, number, using the label passed by the graphic method vp and wc are from the actual canvas, they have been reset when they get here... + + .. pragma: skip-doctest TODO add example/doctest """ kargs["donotstoredisplay"] = True @@ -1243,6 +1246,8 @@ def blank(self, attribute=None): which should be turned off. If attribute is left blank, or is None, all elements of the template will be turned off. :type attribute: `None`_ or `str`_ or `list`_ + + .. pragma: skip-doctest TODO add example/doctest """ if attribute is None: attribute = self.__slots__ @@ -1577,6 +1582,7 @@ def drawAttributes(self, x, slab, gm, bg=False, **kargs): >>> t=a.gettemplate() >>> b=a.getboxfill() # boxfill gm >>> t.drawAttributes(a,s,b) # shows attributes of s on canvas + [...] :param x: vcs canvas onto which attributes will be drawn :type x: vcs.Canvas.Canvas @@ -1659,6 +1665,8 @@ def plot(self, x, slab, gm, bg=False, min=None, max=None, X=None, Y=None, **kargs): """This plots the template stuff on the Canvas. It needs a slab and a graphic method. + + .. pragma: skip-doctest TODO add example/doctest """ displays = [] @@ -1855,6 +1863,8 @@ def drawColorBar(self, colors, levels, legend=None, ext_1='n', :param opacity: :param kargs: :return: + + .. pragma: skip-doctest TODO add example/doctest. And more documentation... """ kargs["donotstoredisplay"] = True @@ -2164,7 +2174,6 @@ def ratio_linear_projection(self, lon1, lon2, lat1, lat2, box_and_ticks: Also redefine box and ticks to the new region. If None, Rout will be determined automatically. :type Rout: `float`_ or `int`_ - """ # Converts lat/lon to rad diff --git a/vcs/textcombined.py b/vcs/textcombined.py index cd442809f..bf5a9bf39 100644 --- a/vcs/textcombined.py +++ b/vcs/textcombined.py @@ -2,7 +2,7 @@ # Text Combined (Tc) module """ import vcs -from xmldocs import scriptdocs +from xmldocs import scriptdocs, listdoc # Adapted for numpy/ma/cdms2 by convertcdms.py ############################################################################### @@ -201,6 +201,8 @@ class together. From combining the two classess, the user will be able to set tc.valign='base' # Same as tcvalign=4 tc.valign='bottom' + + .. pragma: skip-doctest TODO: convert examples to doctests """ __slots__ = [ @@ -413,6 +415,19 @@ def __init__(self, Tt_name=None, Tt_name_src='default', # # ########################################################################## def list(self): + """Lists the current values of object attributes + + :Example: + + .. doctest:: listdoc + + >>> a=vcs.init() + >>> ctc = vcs.createtextcombined # alias long name + >>> obj=ctc('list_tt', 'qa', 'list_tto', '7left') + >>> obj.list() # print textcombined attributes + ---------- ... ---------- + ... + """ if ((self.Tt_name == '__removed_from_VCS__') or (self.To_name == '__removed_from_VCS__')): raise ValueError('This instance has been removed from VCS.') diff --git a/vcs/textorientation.py b/vcs/textorientation.py index 1c5ebf3c7..fad37536d 100755 --- a/vcs/textorientation.py +++ b/vcs/textorientation.py @@ -151,6 +151,8 @@ class To(object): to.valign='base' # Same as tovalign=4 to.valign='bottom' + + .. pragma: skip-doctest TODO: convert examples to doctests """ __slots__ = [ 's_name', diff --git a/vcs/texttable.py b/vcs/texttable.py index 3c27576a2..b6a07623c 100755 --- a/vcs/texttable.py +++ b/vcs/texttable.py @@ -174,6 +174,7 @@ class Tt(object): # List of FloatTypes tt.y=[[.5,.4,.3], [.2,.1,0]] + .. pragma: skip-doctest TODO: convert examples to doctests """ __slots__ = [ 's_name', diff --git a/vcs/xmldocs.py b/vcs/xmldocs.py index dce00efe7..1de1eea18 100644 --- a/vcs/xmldocs.py +++ b/vcs/xmldocs.py @@ -546,7 +546,7 @@ def populate_docstrings(type_dict, target_dict, docstring, method): # "graphics method" / "secondary method" : These top-level keys specify the type of objects described within # "callable"(bool): specifies whether the object has a self-named plotting function, i.e. fillarea() # "parent"(str): specifies the name of the object to be used in inheritance for a first example. -# Usually 'default', but it can change based on situation. +# Usually 'default', but it can change based on situation (textcombined, 1d, xyvsy, etc.). # "parent2"(str): specifies a name for object inheritance in a second example. If there is no reliable second # object, (i.e. vcs only has a 'default' object pre-made), use an empty string. # "rtype"(VCS object type): the type of the object to be returned. This is only used for manageElements 'get' and From 8c2eb1fa7127458399a19c3ab5698cd99adb1f20 Mon Sep 17 00:00:00 2001 From: Sam Fries Date: Fri, 24 Feb 2017 15:41:08 -0800 Subject: [PATCH 45/45] Removed some unused files, fixed one context-dependent doctest --- vcs/png.py | 447 -------------------------------------------- vcs/testtemplate.py | 123 ------------ vcs/utils.py | 4 +- 3 files changed, 2 insertions(+), 572 deletions(-) delete mode 100644 vcs/png.py delete mode 100644 vcs/testtemplate.py diff --git a/vcs/png.py b/vcs/png.py deleted file mode 100644 index 45475e3d6..000000000 --- a/vcs/png.py +++ /dev/null @@ -1,447 +0,0 @@ -# Adapted for numpy/ma/cdms2 by convertcdms.py -""" -# Fillarea (Tf) module -""" -########################################################################## -# # -# Module: fillarea (Tf) module # -# # -# Copyright: 2000, Regents of the University of California # -# This software may not be distributed to others without # -# permission of the author. # -# # -# Author: PCMDI Software Team # -# Lawrence Livermore NationalLaboratory: # -# support@pcmdi.llnl.gov # -# # -# Description: Python command wrapper for VCS's fill area secondary object. # -# # -# Version: 4.0 # -# # -########################################################################## -# -# -# -########################################################################## -# # -# Import: VCS C extension module. # -# # -########################################################################## -import _vcs -import Canvas -import VCS_validation_functions - -########################################################################## -# # -# Function: setTimember # -# # -# Description of Function: # -# Private function to update the VCS canvas plot. If the canvas mode is # -# set to 0, then this function does nothing. # -# # -# # -# Example of Use: # -# setTimember(self,name,value) # -# where: self is the class (e.g., Ti) # -# name is the name of the member that is being changed # -# value is the new value of the member (or attribute) # -# # -########################################################################## - - -def setTimember(self, member, value): - # If the VCS Canvas is displayed, then bring the canvas to the front before - # redisplaying the updated contents. - if (self.parent.mode == 1) and (self.parent.iscanvasdisplayed()): - Canvas.finish_queued_X_server_requests(self.parent) - self.parent.canvas.BLOCK_X_SERVER() - self.parent.canvasraised() - - _vcs.setifmember(self, member, value, self.parent.mode) - - # If the VCS Canvas is displayed, then update the backing store - if (self.parent.mode == 1) and (self.parent.iscanvasdisplayed()): - self.parent.flush() - self.parent.backing_store() - self.parent.canvas.UNBLOCK_X_SERVER() - -setmember = setTimember # for validation functions... -########################################################################## -# # -# Function: getTimember # -# # -# Description of Function: # -# Private function that retrieves the fillarea members from the C # -# structure and passes it back to Python. # -# # -# # -# Example of Use: # -# return_value = # -# getTimember(self,name) # -# where: self is the class (e.g., Ti) # -# name is the name of the member that is being found # -# # -########################################################################## - - -def getTimember(self, member): - return _vcs.getTimember(self, member) -getmember = getTimember - -########################################################################## -# # -# Function: renameTi # -# # -# Description of Function: # -# Private function that renames the name of an existing fillarea # -# graphics method. # -# # -# # -# Example of Use: # -# renameTi(old_name, new_name) # -# where: old_name is the current name of fillarea graphics method # -# new_name is the new name for the fillarea graphics method # -# # -########################################################################## - - -def renameTi(self, old_name, new_name): - return _vcs.renameTi(old_name, new_name) - -############################################################################# -# # -# Fillarea (Tm) Class. # -# # -############################################################################# - - -class Ti(object): - - """ - Class: Ti # Fillarea - - Description of Ti Class: - The Fillarea class object allows the user to edit fillarea attributes, including - fillarea interior style, style index, and color index. - - This class is used to define an fillarea table entry used in VCS, or it - can be used to change some or all of the fillarea attributes in an - existing fillarea table entry. - - Other Useful Functions: - a=vcs.init() # Constructor - a.show('fillarea') # Show predefined fillarea objects - a.update() # Updates the VCS Canvas at user's request - a.mode=1, or 0 # If 1, then automatic update, else if - 0, then use update function to - update the VCS Canvas. - - Example of Use: - a=vcs.init() - To Create a new instance of fillarea use: - fa=a.createfillarea('new','def37') # Copies content of 'def37' to 'new' - fa=a.createfillarea('new') # Copies content of 'default' to 'new' - - To Modify an existing fillarea use: - fa=a.getfillarea('red') - - fa.list() # Will list all the fillarea attribute values - - There are three possibilities for setting the isofill style (Ex): - fa.style = 'solid' - fa.style = 'hatch' - fa.style = 'pattern' - fa.index=1 # Range from 1 to 20 - fa.color=100 # Range from 1 to 256 - - Specify the fillarea index: - fa.index=1 - fa.index=2 - fa.index=3 - fa.index=4 - fa.index=5 - fa.index=6 - fa.index=7 - fa.index=8 - fa.index=9 - fa.index=10 - fa.index=11 - fa.index=12 - fa.index=13 - fa.index=14 - fa.index=15 - fa.index=16 - fa.index=17 - fa.index=18 - fa.index=19 - fa.index=20 - - fa.priority=1 # Set the graphics priority on the canvas - fa.viewport=[0, 1.0, 0,1.0] # FloatType [0,1]x[0,1] - fa.worldcoordinate=[0,1.0,0,1.0] # FloatType [#,#]x[#,#] - - fa.x=[[0,.1,.2], [.3,.4,.5]] # List of FloatTypes - fa.y=[[.5,.4,.3], [.2,.1,0]] # List of FloatTypes -""" - __slots__ = [ - 'setmember', - 'parent', - 'name', - 's_name', - 'color', - 'priority', - 'style', - 'index', - 'viewport', - 'worldcoordinate', - 'x', - 'y', - 'projection', - '_name', - ] - - def _getname(self): - return self._name - - def _setname(self, value): - value = VCS_validation_functions.checkname(self, 'name', value) - if value is not None: - self._name = value - setmember(self, 'name', value) - name = property(_getname, _setname) - - def _getpriority(self): - return getmember(self, 'priority') - - def _setpriority(self, value): - value = VCS_validation_functions.checkInt( - self, - 'priority', - value, - minvalue=0) - setmember(self, 'priority', value) - priority = property(_getpriority, _setpriority) - - def _getprojection(self): - return getmember(self, 'projection') - - def _setprojection(self, value): - value = VCS_validation_functions.checkProjection( - self, - 'projection', - value) - setmember(self, 'projection', value) - projection = property(_getprojection, _setprojection) - - def _getwc(self): - return getmember(self, 'worldcoordinate') - - def _setwc(self, value): - value = VCS_validation_functions.checkListOfNumbers( - self, - 'worldcoordinate', - value, - maxelements=4) - setmember(self, 'worldcoordinate', value) - worldcoordinate = property(_getwc, _setwc) - - def _getvp(self): - return getmember(self, 'viewport') - - def _setvp(self, value): - value = VCS_validation_functions.checkListOfNumbers( - self, - 'viewport', - value, - maxelements=4, - minvalue=0., - maxvalue=1.) - setmember(self, 'viewport', value) - viewport = property(_getvp, _setvp) - - def _getx(self): - return getmember(self, 'x') - - def _setx(self, value): - if not isinstance(value, (list, tuple)): - raise ValueError('%s must be a tuple or list of values.') - try: - # first we'll see if it is simply a list of values - value = VCS_validation_functions.checkListOfNumbers( - self, - 'x', - value) - except: - # ok it was not, so it maybe a list of list of numbers ? - val = [] - for v in value: - tmp = VCS_validation_functions.checkListOfNumbers(self, 'x', v) - val.append(tmp) - value = val - # ok it worked - setmember(self, 'x', value) - x = property(_getx, _setx) - - def _gety(self): - return getmember(self, 'y') - - def _sety(self, value): - if not isinstance(value, (list, tuple)): - raise ValueError('%s must be a tuple or list of values.') - try: - # first we'll see if it is simply a list of values - value = VCS_validation_functions.checkListOfNumbers( - self, - 'y', - value) - except: - # ok it was not, so it maybe a list of list of numbers ? - val = [] - for v in value: - tmp = VCS_validation_functions.checkListOfNumbers(self, 'y', v) - val.append(tmp) - value = val - # ok it worked - setmember(self, 'y', value) - y = property(_gety, _sety) - - ########################################################################## - # # - # Initialize the fillarea attributes. # - # # - ########################################################################## - def __init__( - self, parent, Ti_name=None, Ti_name_src='default', createTi=0): - # # - ########################################################### - # Initialize the fillarea class and its members # - # The getTimember function retrieves the values of the # - # fillarea members in the C structure and passes back the # - # appropriate Python Object. # - ########################################################### - # # - if (createTi == 0): - if (Ti_name is None): - raise ValueError('Must provide a fillarea name.') - else: - _vcs.copyTi(Ti_name_src, Ti_name) - self._name = Ti_name - else: - self._name = Ti_name_src - self.s_name = 'Ti' - self.parent = parent - - ########################################################################## - # # - # Fillarea out line members (attributes). # - # # - ########################################################################## - def list(self): - if (self.name == '__removed_from_VCS__'): - raise ValueError('This instance has been removed from VCS.') - print "---------- Fillarea (Tf) member (attribute) listings ----------" - print 'Canvas Mode =', self.parent.mode - print "secondary method =", self.s_name - print "name =", self.name - print "style =", self.style - print "index =", self.index - print "color =", self.color - print "priority =", self.priority - print "viewport =", self.viewport - print "worldcoordinate =", self.worldcoordinate - print "x =", self.x - print "y =", self.y - print "projection =", self.projection - - ########################################################################## - # # - # Script out secondary fillarea method in VCS to a file. # - # # - ########################################################################## - def script(self, script_filename=None, mode=None): - """ - Function: script # Calls _vcs.scriptTf - - Description of Function: - Saves out a fillarea graphics method in Python or VCS script form to a - designated file. - - Example of Use: - script(scriptfile_name) - where: scriptfile_name is the output name of the script file. - mode is either "w" for replace or "a" for append. - - Note: If the the filename has a ".py" at the end, it will produce a - Python script. If the filename has a ".scr" at the end, it will - produce a VCS script. If neither extensions are give, then by - default a Python script will be produced. - - a=vcs.init() - fa=a.createfillarea('temp') - fa.script('filename.py') # Append to a Python file "filename.py" - fa.script('filename.scr') # Append to a VCS file "filename.scr" - fa.script('filename','w') # Create or overwrite to a Python file "filename.py" - """ - if (script_filename is None): - raise ValueError( - 'Error - Must provide an output script file name.') - - if (mode is None): - mode = 'a' - elif (mode not in ('w', 'a')): - raise ValueError( - 'Error - Mode can only be "w" for replace or "a" for append.') - - # By default, save file in python script mode - scr_type = script_filename[ - len(script_filename) - - 4:len(script_filename)] - if (scr_type == '.scr'): - print _vcs.scriptTf(self.name, script_filename, mode) - else: - mode = mode + '+' - py_type = script_filename[ - len(script_filename) - - 3:len(script_filename)] - if (py_type != '.py'): - script_filename = script_filename + '.py' - - # Write to file - fp = open(script_filename, mode) - if (fp.tell() == 0): # Must be a new file, so include below - fp.write("#####################################\n") - fp.write("# #\n") - fp.write("# Import and Initialize VCS #\n") - fp.write("# #\n") - fp.write("#############################\n") - fp.write("import vcs\n") - fp.write("v=vcs.init()\n\n") - - unique_name = '__Tf__' + self.name - fp.write( - "#----------Fillarea (Tf) member (attribute) listings ----------\n") - fp.write("tf_list=v.listelements('fillarea')\n") - fp.write("if ('%s' in tf_list):\n" % self.name) - fp.write( - " %s = v.getfillarea('%s')\n" % - (unique_name, self.name)) - fp.write("else:\n") - fp.write( - " %s = v.createfillarea('%s')\n" % - (unique_name, self.name)) - fp.write("%s.style = %s\n" % (unique_name, self.style)) - fp.write("%s.index = %s\n" % (unique_name, self.index)) - fp.write("%s.color = %s\n\n" % (unique_name, self.color)) - fp.write("%s.priority = %d\n" % (unique_name, self.priority)) - fp.write("%s.viewport = %s\n" % (unique_name, self.viewport)) - fp.write( - "%s.worldcoordinate = %s\n" % - (unique_name, self.worldcoordinate)) - fp.write("%s.x = %s\n" % (unique_name, self.x)) - fp.write("%s.y = %s\n\n" % (unique_name, self.y)) - fp.write("%s.projection = %s\n\n" % (unique_name, self.projection)) - - -########################################################################## -# END OF FILE # -########################################################################## diff --git a/vcs/testtemplate.py b/vcs/testtemplate.py deleted file mode 100644 index 1ceb283c3..000000000 --- a/vcs/testtemplate.py +++ /dev/null @@ -1,123 +0,0 @@ -""" -# Test Template (P) module -""" -############################################################################### -# # -# Module: testtemplate module # -# # -# Copyright: 2000, Regents of the University of California # -# This software may not be distributed to others without # -# permission of the author. # -# # -# Author: PCMDI Software Team # -# Lawrence Livermore NationalLaboratory: # -# support@pcmdi.llnl.gov # -# # -# Description: Used to test VCS's template object. # -# # -# Version: 4.0 # -# # -############################################################################### -# -# -# -############################################################################ -# # -# Import: VCS and cu modules. # -# # -############################################################################ - - -def test(): - import vcs - import cu # import vcs and cu - - f = cu.open('clt.nc') # open clt file - s = f.getslab('clt') # get slab clt - x = vcs.init() # construct vcs canvas - - x.show('template') # show the list of templates - t = x.createtemplate('test', 'AMIP') # create template 'test' from AMIP - x.show('template') # show the list of templates - - t.script('test', 'w') # save test template as a Python script - - # create isofill 'test' from 'default' isofill - g = x.createisofill('test') - - x.plot(g, s, t) # make isofill plot -# x.isofill(g,s,t) # make isofill plot - - ########################################################################## - # Show the many different ways to show the template members (attributes) # - # and their values. # - ########################################################################## - t.list() # list the templates members - t.list('text') # list only text members, same as t.list('Pt') - t.list('format') # list only format members, same as t.list('Pf') - # list only xtickmarks members, same as t.list('Pxt') - t.list('xtickmarks') - # list only ytickmarks members, same as t.list('Pyt') - t.list('ytickmarks') - t.list('xlabels') # list only xlabels members, same as t.list('Pxl') - t.list('ylabels') # list only ylabels members, same as t.list('Pyl') - # list only boxeslines members, same as t.list('Pbl') - t.list('boxeslines') - t.list('legend') # list only legend member, same as t.list('Pls') - t.list('data') # list only data member, same as t.list('Pds') - t.list('file') # list only file member and its values - t.file.list() # list only file member and its values - t.list('mean') # list only mean member and its values - t.mean.list() # list only mean member and its values - - ########################################################################## - # The screen x and y positions on the screen are normalized between 0 and 1 # - # for both the x and y axis. # - ########################################################################## - t.mean.priority = 0 # remove the "Mean" text from the plot - t.mean.priority = 1 # re-display the "Mean" text on the plot - t.mean.x = 0.5 # move the "Mean" text to x-axis center - t.mean.y = 0.5 # move the "Mean" text to y-axis center - - ########################################################################## - # Position the data in front of the "Mean" text, then move the "Mean" text # - # in front of the data. # - ########################################################################## - t.data.priority = 2 - t.data.priority = 3 -# The above does not work. I will fix this later when time permits. - - ########################################################################## - # Change the font representation for the "Mean" text. # - # You can set the text by using text objects or text names. # - ########################################################################## - tt = x.createtexttable('test') - to = x.createtextorientation('test') - t.mean.texttable = tt # set texttable by using texttable object - # set textorientation by using textorientation name - t.mean.textorientation = 'test' - # show the mean member and their new values - t.mean.list() - tt.font = 2 # change the font - to.height = 40 # change the height - - ########################################################################## - # Change the legend space. # - ########################################################################## - t.legend.list() # list the legend members - x.mode = 0 # turn the automatic update off - t.legend.x1 = 0.85 - t.legend.y1 = 0.90 - t.legend.x2 = 0.95 - t.legend.y2 = 0.16 - x.update() -# The above does not work. I will fix this later when time permits. - - print '***************************************************************************************' - print '****** ******' - print '****** T E M P L A T E T E S T C O M P L E T E D S U C E S S F U L L Y ******' - print '****** ******' - print '***************************************************************************************' - -if __name__ == "__main__": - test() diff --git a/vcs/utils.py b/vcs/utils.py index 874f102c8..52223f917 100644 --- a/vcs/utils.py +++ b/vcs/utils.py @@ -72,12 +72,12 @@ def get_png_dims(fnm): .. doctest:: utils_get_png_dims - >>> a=vcs.init() + >>> a=vcs.init(bg=True) >>> box=vcs.getboxfill('polar') >>> array=[range(10) for _ in range(10)] >>> a.plot(box,array) # plot something on canvas - >>> a.png('box.png') # make a png + >>> a.png('box.png', width=1536, height=1186) # make a png >>> vcs.get_png_dims('box.png') # get (width, height) of 'box.png' (1536, 1186)

fFCvmf0_3UbyHS8{oxQ;q?aKEdYpzv*jB- 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