# Path: spimagine/models/imageprocessor.py
# class ImageProcessor(object):
#     def __init__(self,name = "",**kwargs):
#         self.name = name
#         self.set_params(**kwargs)
# 
#     def set_params(self,**kwargs):
#         self.kwargs = kwargs
# 
#     def apply(self, data):
#         raise NotImplementedError()
# 
#     def __getattr__(self,attr):
#         if attr in self.kwargs:
#             return self.kwargs[attr]
#         else:
#             return super(ImageProcessor,self).__getattr__(attr)
# 
# Path: spimagine/gui/gui_utils.py
# N_PREFETCH = 10
#     T,P = np.meshgrid(ts,ps, indexing = "ij")
# def absPath(myPath):
# def createStandardButton(parent,fName = None,method = None, width = 24, tooltip = ""):
# def createImageCheckbox(parent, img1=None, img2 = None, tooltip =""):
# def createStandardCheckbox(parent,  tooltip =""):
# def createTristateCheckbox(parent, img1=None , img2 = None,img3 = None, tooltip = ""):
# def fillTexture2d(data,tex = None, interp=True):
# def arrayFromImage(fName):
# def slice_coords(relPos,dim):
# def create_quad_coords(bounds = [-1,1.,-1,1]):
# def create_cube_coords(bounds = [-1,1.,-1,1,-1,1]):
# def create_sphere_coords(rx,ry,rz,Nphi=50, Ntheta=30, return_normals = False):


import sys
import numpy as np
import six
    import os
from PyQt5 import QtCore, QtGui, Qt, QtWidgets
from sortedcontainers import SortedDict
from spimagine.models.imageprocessor import ImageProcessor
from spimagine.gui import gui_utils
            setattr(self.proc,key, obj.checkState() !=0)
            self._stateChanged.emit(-1)
        return func

    def is_active(self):
        return self.checkActive.checkState() != 0



class ImageProcessorListView(QtWidgets.QWidget):
    _stateChanged = QtCore.pyqtSignal()
    def __init__(self, imps = []):
        super(QtWidgets.QWidget,self).__init__()

        self.impViews = [ImageProcessorView(p) for p in imps]

        vbox = QtWidgets.QVBoxLayout()
        self.gridBox = QtWidgets.QGridLayout()


        for impView in self.impViews:
            self._include_imp_view(impView)

        vbox.addLayout(self.gridBox)

        vbox.addStretch()

        self.setLayout(vbox)
        self.setSizePolicy(Qt.QSizePolicy.Minimum,Qt.QSizePolicy.Minimum)
        self.setStyleSheet("""

# Path: spimagine/models/imageprocessor.py
# class ImageProcessor(object):
#     def __init__(self,name = "",**kwargs):
#         self.name = name
#         self.set_params(**kwargs)
# 
#     def set_params(self,**kwargs):
#         self.kwargs = kwargs
# 
#     def apply(self, data):
#         raise NotImplementedError()
# 
#     def __getattr__(self,attr):
#         if attr in self.kwargs:
#             return self.kwargs[attr]
#         else:
#             return super(ImageProcessor,self).__getattr__(attr)
# 
# Path: spimagine/gui/gui_utils.py
# N_PREFETCH = 10
#     T,P = np.meshgrid(ts,ps, indexing = "ij")
# def absPath(myPath):
# def createStandardButton(parent,fName = None,method = None, width = 24, tooltip = ""):
# def createImageCheckbox(parent, img1=None, img2 = None, tooltip =""):
# def createStandardCheckbox(parent,  tooltip =""):
# def createTristateCheckbox(parent, img1=None , img2 = None,img3 = None, tooltip = ""):
# def fillTexture2d(data,tex = None, interp=True):
# def arrayFromImage(fName):
# def slice_coords(relPos,dim):
# def create_quad_coords(bounds = [-1,1.,-1,1]):
# def create_cube_coords(bounds = [-1,1.,-1,1,-1,1]):
# def create_sphere_coords(rx,ry,rz,Nphi=50, Ntheta=30, return_normals = False):


# Path: spimagine/gui/imageprocessor_view.py
import sys
import numpy as np
import six
    import os
from PyQt5 import QtCore, QtGui, Qt, QtWidgets
from sortedcontainers import SortedDict
from spimagine.models.imageprocessor import ImageProcessor
from spimagine.gui import gui_utils

            setattr(self.proc,key, obj.checkState() !=0)
            self._stateChanged.emit(-1)
        return func

    def is_active(self):
        return self.checkActive.checkState() != 0



class ImageProcessorListView(QtWidgets.QWidget):
    _stateChanged = QtCore.pyqtSignal()
    def __init__(self, imps = []):
        super(QtWidgets.QWidget,self).__init__()

        self.impViews = [ImageProcessorView(p) for p in imps]

        vbox = QtWidgets.QVBoxLayout()
        self.gridBox = QtWidgets.QGridLayout()


        for impView in self.impViews:
            self._include_imp_view(impView)

        vbox.addLayout(self.gridBox)

        vbox.addStretch()

        self.setLayout(vbox)
        self.setSizePolicy(Qt.QSizePolicy.Minimum,Qt.QSizePolicy.Minimum)
        self.setStyleSheet("""

        QFrame,QLabel,QLineEdit {