Changeset fa81e94 in sasview for src/sas/sasgui/plottools


Ignore:
Timestamp:
Nov 15, 2017 4:33:09 AM (7 years ago)
Author:
Piotr Rozyczko <rozyczko@…>
Branches:
ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
Children:
d4881f6a
Parents:
7c487846
Message:

Initial commit of the P(r) inversion perspective.
Code merged from Jeff Krzywon's ESS_GUI_Pr branch.
Also, minor 2to3 mods to sascalc/sasgui to enble error free setup.

Location:
src/sas/sasgui/plottools
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/plottools/LineModel.py

    • Property mode changed from 100644 to 100755
    ra26f67f rfa81e94  
    8383        elif x.__class__.__name__ == 'tuple': 
    8484            msg = "Tuples are not allowed as input to BaseComponent models" 
    85             raise ValueError, msg 
     85            raise ValueError(msg) 
    8686        else: 
    8787            return self._line(x) 
     
    105105        elif x.__class__.__name__ == 'tuple': 
    106106            msg = "Tuples are not allowed as input to BaseComponent models" 
    107             raise ValueError, msg 
     107            raise ValueError(msg) 
    108108        else: 
    109109            return self._line(x) 
  • src/sas/sasgui/plottools/PlotPanel.py

    • Property mode changed from 100644 to 100755
    ra1b8fee rfa81e94  
    22    Plot panel. 
    33""" 
    4 from __future__ import print_function 
     4 
    55 
    66import logging 
     
    1616from matplotlib.figure import Figure 
    1717import os 
    18 import transform 
     18from . import transform 
    1919#TODO: make the plottables interactive 
    20 from binder import BindArtist 
     20from .binder import BindArtist 
    2121from matplotlib.font_manager import FontProperties 
    2222DEBUG = False 
    2323 
    24 from plottables import Graph 
    25 from TextDialog import TextDialog 
    26 from LabelDialog import LabelDialog 
     24from .plottables import Graph 
     25from .TextDialog import TextDialog 
     26from .LabelDialog import LabelDialog 
    2727import operator 
    2828 
     
    4444        for a in obj.get_children(): show_tree(a, d + 1) 
    4545 
    46 from convert_units import convert_unit 
     46from .convert_units import convert_unit 
    4747 
    4848 
     
    116116        self.figure = Figure(None, dpi, linewidth=2.0) 
    117117        self.color = '#b3b3b3' 
    118         from canvas import FigureCanvas 
     118        from .canvas import FigureCanvas 
    119119        self.canvas = FigureCanvas(self, -1, self.figure) 
    120120        self.SetColor(color) 
     
    657657        else: 
    658658            plot_dict = plotlist 
    659         from fitDialog import LinearFit 
    660  
    661         if len(plot_dict.keys()) > 0: 
    662             first_item = plot_dict.keys()[0] 
     659        from .fitDialog import LinearFit 
     660 
     661        if len(list(plot_dict.keys())) > 0: 
     662            first_item = list(plot_dict.keys())[0] 
    663663            dlg = LinearFit(parent=None, plottable=first_item, 
    664664                            push_data=self.onFitDisplay, 
     
    691691            return 
    692692        name = menu.GetHelpString(id) 
    693         for plot in self.plots.values(): 
     693        for plot in list(self.plots.values()): 
    694694            if plot.name == name: 
    695695                self.graph.selected_plottable = plot.id 
     
    703703 
    704704        """ 
    705         from fitDialog import LinearFit 
     705        from .fitDialog import LinearFit 
    706706        if self._fit_dialog is not None: 
    707707            return 
     
    733733            self._fit_dialog = None 
    734734        plot_list = self.graph.returnPlottable() 
    735         if len(plot_list.keys()) > 0: 
    736             first_item = plot_list.keys()[0] 
     735        if len(list(plot_list.keys())) > 0: 
     736            first_item = list(plot_list.keys())[0] 
    737737            if first_item.x != []: 
    738                 from PropertyDialog import Properties 
     738                from .PropertyDialog import Properties 
    739739                dial = Properties(self, -1, 'Properties') 
    740740                dial.setValues(self.prevXtrans, self.prevYtrans, self.viewModel) 
     
    956956            hl = sorted(zip(handles, labels), 
    957957                        key=operator.itemgetter(1)) 
    958             handles2, labels2 = zip(*hl) 
     958            handles2, labels2 = list(zip(*hl)) 
    959959            self.line_collections_list = handles2 
    960960            self.legend = self.subplot.legend(handles2, labels2, 
     
    986986        hl = sorted(zip(handles, labels), 
    987987                    key=operator.itemgetter(1)) 
    988         handles2, labels2 = zip(*hl) 
     988        handles2, labels2 = list(zip(*hl)) 
    989989        self.line_collections_list = handles2 
    990990        self.legend = self.subplot.legend(handles2, labels2, 
     
    12471247                hl = sorted(zip(handles, labels), 
    12481248                            key=operator.itemgetter(1)) 
    1249                 handles2, labels2 = zip(*hl) 
     1249                handles2, labels2 = list(zip(*hl)) 
    12501250                self.line_collections_list = handles2 
    12511251                self.legend = ax.legend(handles2, labels2, 
     
    13271327        if id is None: 
    13281328            id = name 
    1329         from plottable_interactor import PointInteractor 
     1329        from .plottable_interactor import PointInteractor 
    13301330        p = PointInteractor(self, self.subplot, zorder=zorder, id=id) 
    13311331        if p.markersize is not None: 
     
    13441344        if id is None: 
    13451345            id = name 
    1346         from plottable_interactor import PointInteractor 
     1346        from .plottable_interactor import PointInteractor 
    13471347        p = PointInteractor(self, self.subplot, zorder=zorder, id=id) 
    13481348        p.curve(x, y, dy=dy, color=color, symbol=symbol, zorder=zorder, 
     
    17541754            self.graph.delete(self.fit_result) 
    17551755            if hasattr(self, 'plots'): 
    1756                 if 'fit' in self.plots.keys(): 
     1756                if 'fit' in list(self.plots.keys()): 
    17571757                    del self.plots['fit'] 
    17581758        self.ly = None 
  • src/sas/sasgui/plottools/__init__.py

    • Property mode changed from 100644 to 100755
    refe730d rfa81e94  
    1 from PlotPanel import PlotPanel 
    2 from plottables import Data1D, Theory1D 
     1from .PlotPanel import PlotPanel 
     2from .plottables import Data1D, Theory1D 
  • src/sas/sasgui/plottools/arrow3d.py

    • Property mode changed from 100644 to 100755
    r7432acb rfa81e94  
    5959            return 
    6060        xs3d, ys3d, zs3d = self._verts3d 
    61         for i in xrange(len(xs3d)): 
     61        for i in range(len(xs3d)): 
    6262            xs, ys, _ = proj3d.proj_transform(xs3d[i], ys3d[i], zs3d[i], renderer.M) 
    6363            self.set_positions((xs[0], ys[0]), (xs[1], ys[1])) 
  • src/sas/sasgui/plottools/binder.py

    • Property mode changed from 100644 to 100755
    ra1b8fee rfa81e94  
    22Extension to MPL to support the binding of artists to key/mouse events. 
    33""" 
    4 from __future__ import print_function 
     4 
    55 
    66import sys 
     
    2828        return self.artist is not other.artist 
    2929 
    30     def __nonzero__(self): 
     30    def __bool__(self): 
    3131        return self.artist is not None 
    3232 
     
    125125            for cid in self._connections: self.canvas.mpl_disconnect(cid) 
    126126        except: 
    127             logger.error("Error disconnection canvas: %s" % sys.exc_value) 
     127            logger.error("Error disconnection canvas: %s" % sys.exc_info()[1]) 
    128128        self._connections = [] 
    129129 
     
    189189        # Check that the trigger is valid 
    190190        if trigger not in self._actions: 
    191             raise ValueError, "%s invalid --- valid triggers are %s"\ 
    192                  % (trigger, ", ".join(self.events)) 
     191            raise ValueError("%s invalid --- valid triggers are %s"\ 
     192                 % (trigger, ", ".join(self.events))) 
    193193 
    194194        # Register the trigger callback 
     
    205205        """ 
    206206        if action not in self.events: 
    207             raise ValueError, "Trigger expects " + ", ".join(self.events) 
     207            raise ValueError("Trigger expects " + ", ".join(self.events)) 
    208208 
    209209        # Tag the event with modifiers 
  • src/sas/sasgui/plottools/canvas.py

    • Property mode changed from 100644 to 100755
    r7432acb rfa81e94  
    9898            dc.DrawBitmap(self.canvas.bitmap, (0, 0)) 
    9999        except: 
    100             logger.error(sys.exc_value) 
     100            logger.error(sys.exc_info()[1]) 
    101101 
    102102    # restore original figure  resolution 
     
    209209                fig.draw(self) 
    210210            except ValueError: 
    211                 logger.error(sys.exc_value) 
     211                logger.error(sys.exc_info()[1]) 
    212212        else: 
    213213            self._isRendered = False 
  • src/sas/sasgui/plottools/convert_units.py

    • Property mode changed from 100644 to 100755
    ra1b8fee rfa81e94  
    33    This is a cleaned up version of unitConverter.py 
    44""" 
    5 from __future__ import print_function 
     5 
    66 
    77import re 
     
    4444                            unit = toks[0] + "^{" + str(powerer) + "}" 
    4545                else: 
    46                     raise ValueError, "missing } in unit expression" 
     46                    raise ValueError("missing } in unit expression") 
    4747        else:  # no powerer 
    4848            if  power != 1: 
    4949                unit = "(" + unit + ")" + "^{" + str(power) + "}" 
    5050    else: 
    51         raise ValueError, "empty unit ,enter a powerer different from zero" 
     51        raise ValueError("empty unit ,enter a powerer different from zero") 
    5252    return unit 
    5353 
  • src/sas/sasgui/plottools/fitDialog.py

    • Property mode changed from 100644 to 100755
    r7432acb rfa81e94  
    11import wx 
    2 from plottables import Theory1D 
     2from .plottables import Theory1D 
    33import math 
    44import numpy as np 
    5 import fittings 
    6 import transform 
     5from . import fittings 
     6from . import transform 
    77import sys 
    88 
     
    8686        self.layout() 
    8787        # Receives the type of model for the fitting 
    88         from LineModel import LineModel 
     88        from .LineModel import LineModel 
    8989        self.model = LineModel() 
    9090        # Display the fittings values 
     
    671671                return x 
    672672            else: 
    673                 raise ValueError, "cannot compute log of a negative number" 
     673                raise ValueError("cannot compute log of a negative number") 
    674674 
    675675    def floatInvTransform(self, x): 
     
    734734        except: 
    735735            msg = "LinearFit.set_fit_region: fit range must be floats" 
    736             raise ValueError, msg 
     736            raise ValueError(msg) 
    737737        self.xminFit.SetValue(format_number(xmin)) 
    738738        self.xmaxFit.SetValue(format_number(xmax)) 
  • src/sas/sasgui/plottools/fittings.py

    • Property mode changed from 100644 to 100755
    ra1b8fee rfa81e94  
    1414 
    1515""" 
    16 from __future__ import print_function 
     16 
    1717 
    1818from scipy import optimize 
     
    101101    # Testing implementation 
    102102    # Fit a Line model 
    103     from LineModel import LineModel 
     103    from .LineModel import LineModel 
    104104    line = LineModel() 
    105105    cstA = Parameter(line, 'A', event.cstA) 
  • src/sas/sasgui/plottools/plottable_interactor.py

    • Property mode changed from 100644 to 100755
    ra1b8fee rfa81e94  
    22    This module allows more interaction with the plot 
    33""" 
    4 from __future__ import print_function 
    5  
    6 from BaseInteractor import _BaseInteractor 
     4 
     5 
     6from .BaseInteractor import _BaseInteractor 
    77 
    88 
  • src/sas/sasgui/plottools/plottables.py

    • Property mode changed from 100644 to 100755
    r2d9526d rfa81e94  
    242242        selected_color = plottable.custom_color 
    243243        selected_plottable = None 
    244         for p in self.plottables.keys(): 
     244        for p in list(self.plottables.keys()): 
    245245            if plottable.id == p.id: 
    246246                selected_plottable = p 
     
    389389 
    390390        """ 
    391         raise NotImplemented, "Not a valid transform" 
     391        raise NotImplemented("Not a valid transform") 
    392392 
    393393    # Related issues 
     
    517517                label_dict[collection[0]] = basename 
    518518            else: 
    519                 for i in xrange(len(collection)): 
     519                for i in range(len(collection)): 
    520520                    label_dict[collection[i]] = "%s %d" % (basename, i) 
    521521        return label_dict 
     
    689689                msg = "Plottable.View: Given x and dx are not" 
    690690                msg += " of the same length" 
    691                 raise ValueError, msg 
     691                raise ValueError(msg) 
    692692            # Check length of y array 
    693693            if not len(y) == len(x): 
    694694                msg = "Plottable.View: Given y " 
    695695                msg += "and x are not of the same length" 
    696                 raise ValueError, msg 
     696                raise ValueError(msg) 
    697697 
    698698            if dy is not None and not len(dy) == 0 and not len(y) == len(dy): 
    699699                msg = "Plottable.View: Given y and dy are not of the same " 
    700700                msg += "length: len(y)=%s, len(dy)=%s" % (len(y), len(dy)) 
    701                 raise ValueError, msg 
     701                raise ValueError(msg) 
    702702            self.x = [] 
    703703            self.y = [] 
     
    734734                msg = "Plottable.View: transformed x " 
    735735                msg += "and y are not of the same length" 
    736                 raise ValueError, msg 
     736                raise ValueError(msg) 
    737737            if has_err_x and not (len(self.x) == len(self.dx)): 
    738738                msg = "Plottable.View: transformed x and dx" 
    739739                msg += " are not of the same length" 
    740                 raise ValueError, msg 
     740                raise ValueError(msg) 
    741741            if has_err_y and not (len(self.y) == len(self.dy)): 
    742742                msg = "Plottable.View: transformed y" 
    743743                msg += " and dy are not of the same length" 
    744                 raise ValueError, msg 
     744                raise ValueError(msg) 
    745745            # Check that negative values are not plot on x and y axis for 
    746746            # log10 transformation 
     
    814814                except: 
    815815                    logger.error("check_data_logX: skipping point x %g", self.x[i]) 
    816                     logger.error(sys.exc_value) 
     816                    logger.error(sys.exc_info()[1]) 
    817817            self.x = tempx 
    818818            self.y = tempy 
     
    844844                except: 
    845845                    logger.error("check_data_logY: skipping point %g", self.y[i]) 
    846                     logger.error(sys.exc_value) 
     846                    logger.error(sys.exc_info()[1]) 
    847847 
    848848            self.x = tempx 
     
    11081108        Plottable.__init__(self) 
    11091109        msg = "Theory1D is no longer supported, please use Data1D and change symbol.\n" 
    1110         raise DeprecationWarning, msg 
     1110        raise DeprecationWarning(msg) 
    11111111 
    11121112class Fit1D(Plottable): 
  • src/sas/sasgui/plottools/transform.py

    • Property mode changed from 100644 to 100755
    r7432acb rfa81e94  
    2424    """ 
    2525    if not x > 0: 
    26         raise ValueError, "Transformation only accepts positive values." 
     26        raise ValueError("Transformation only accepts positive values.") 
    2727    else: 
    2828        return x 
     
    5050    """ 
    5151    if not x >= 0: 
    52         raise ValueError, "square root of a negative value " 
     52        raise ValueError("square root of a negative value ") 
    5353    else: 
    5454        return math.sqrt(x) 
     
    7676    """ 
    7777    if not x >= 0: 
    78         raise ValueError, "double square root of a negative value " 
     78        raise ValueError("double square root of a negative value ") 
    7979    else: 
    8080        return math.sqrt(math.sqrt(x)) 
     
    9090    """ 
    9191    if not x > 0: 
    92         raise ValueError, "Log(x)of a negative value " 
     92        raise ValueError("Log(x)of a negative value ") 
    9393    else: 
    9494        return math.log(x) 
     
    100100        return 1 / x 
    101101    else: 
    102         raise ValueError, "cannot divide by zero" 
     102        raise ValueError("cannot divide by zero") 
    103103 
    104104 
     
    109109        return 1 / math.sqrt(y) 
    110110    else: 
    111         raise ValueError, "transform.toOneOverSqrtX: cannot be computed" 
     111        raise ValueError("transform.toOneOverSqrtX: cannot be computed") 
    112112 
    113113 
     
    118118        return math.log(y * (x ** 2)) 
    119119    else: 
    120         raise ValueError, "transform.toLogYX2: cannot be computed" 
     120        raise ValueError("transform.toLogYX2: cannot be computed") 
    121121 
    122122 
     
    127127        return math.log(math.pow(x, 4) * y) 
    128128    else: 
    129         raise ValueError, "transform.toLogYX4: input error" 
     129        raise ValueError("transform.toLogYX4: input error") 
    130130 
    131131 
     
    149149    """ 
    150150    if not (x * y) > 0: 
    151         raise ValueError, "Log(X*Y)of a negative value " 
     151        raise ValueError("Log(X*Y)of a negative value ") 
    152152    else: 
    153153        return math.log(x * y) 
     
    211211    else: 
    212212        msg = "transform.errFromX2: can't compute error of negative x" 
    213         raise ValueError, msg 
     213        raise ValueError(msg) 
    214214 
    215215 
     
    245245    else: 
    246246        msg = "transform.errFromX4: can't compute error of negative x" 
    247         raise ValueError, msg 
     247        raise ValueError(msg) 
    248248 
    249249 
     
    264264        msg = "Transformation does not accept" 
    265265        msg += " point that are consistent with zero." 
    266         raise ValueError, msg 
     266        raise ValueError(msg) 
    267267    if x != 0: 
    268268        dx = dx / (x * math.log(10)) 
    269269    else: 
    270         raise ValueError, "errToLogX: divide by zero" 
     270        raise ValueError("errToLogX: divide by zero") 
    271271    return dx 
    272272 
     
    287287        dx = dx / x 
    288288    else: 
    289         raise ValueError, "errToLogX: divide by zero" 
     289        raise ValueError("errToLogX: divide by zero") 
    290290    return dx 
    291291 
     
    312312        msg = "Transformation does not accept point " 
    313313        msg += " that are consistent with zero." 
    314         raise ValueError, msg 
     314        raise ValueError(msg) 
    315315    if x != 0 and y != 0: 
    316316        if dx is None: 
     
    320320        err = (dx / x) ** 2 + (dy / y) ** 2 
    321321    else: 
    322         raise ValueError, "cannot compute this error" 
     322        raise ValueError("cannot compute this error") 
    323323 
    324324    return math.sqrt(math.fabs(err)) 
     
    335335        msg = "Transformation does not accept point" 
    336336        msg += " that are consistent with zero." 
    337         raise ValueError, msg 
     337        raise ValueError(msg) 
    338338    if x > 0 and y > 0: 
    339339        if dx is None: 
     
    343343        err = (2.0 * dx / x) ** 2 + (dy / y) ** 2 
    344344    else: 
    345         raise ValueError, "cannot compute this error" 
     345        raise ValueError("cannot compute this error") 
    346346    return math.sqrt(math.fabs(err)) 
    347347 
     
    357357        err = dx / x ** 2 
    358358    else: 
    359         raise ValueError, "Cannot compute this error" 
     359        raise ValueError("Cannot compute this error") 
    360360    return math.fabs(err) 
    361361 
     
    371371        err = -1 / 2 * math.pow(x, -3.0 / 2.0) * dx 
    372372    else: 
    373         raise ValueError, "Cannot compute this error" 
     373        raise ValueError("Cannot compute this error") 
    374374    return math.fabs(err) 
    375375 
     
    387387        msg = "Transformation does not accept point " 
    388388        msg += " that are consistent with zero." 
    389         raise ValueError, msg 
     389        raise ValueError(msg) 
    390390    if dx is None: 
    391391        dx = 0 
Note: See TracChangeset for help on using the changeset viewer.