def __init__(self): self.view = MainView() #create data self.img_data = ImgData() self.calibration_data = CalibrationData(self.img_data) self.mask_data = MaskData() self.spectrum_data = SpectrumData() self.phase_data = PhaseData() self.load_directories() #create controller self.calibration_controller = CalibrationController( self.working_dir, self.view.calibration_widget, self.img_data, self.calibration_data) self.mask_controller = MaskController(self.working_dir, self.view.mask_widget, self.img_data, self.mask_data) self.integration_controller = IntegrationController( self.working_dir, self.view.integration_widget, self.img_data, self.mask_data, self.calibration_data, self.spectrum_data, self.phase_data) self.create_signals() self.raise_window()
def __init__(self, app): self.splash_img = QtGui.QPixmap("UiFiles/splash.png") self.splash_screen = QtGui.QSplashScreen( self.splash_img, QtCore.Qt.WindowStaysOnTopHint) self.splash_screen.show() app.processEvents() time.sleep(1) app.processEvents() self.view = MainView() #create data self.img_data = ImgData() self.calibration_data = CalibrationData(self.img_data) self.mask_data = MaskData() self.spectrum_data = SpectrumData() self.phase_data = PhaseData() self.load_directories() #create controller self.calibration_controller = CalibrationController( self.working_dir, self.view.calibration_widget, self.img_data, self.mask_data, self.calibration_data) self.mask_controller = MaskController(self.working_dir, self.view.mask_widget, self.img_data, self.mask_data) self.integration_controller = IntegrationController( self.working_dir, self.view.integration_widget, self.img_data, self.mask_data, self.calibration_data, self.spectrum_data, self.phase_data) self.create_signals() self.set_title() self.raise_window() self.splash_screen.finish(self.view)
def setUp(self): self.app = QtGui.QApplication(sys.argv) self.image_data = ImgData() self.calibration_data = CalibrationData(self.image_data) self.calibration_data._calibrants_working_dir = 'Data/Calibrants' self.calibration_controller = CalibrationController(img_data=self.image_data, \ calibration_data=self.calibration_data)
def __init__(self): self.view = MainView() #create data self.img_data = ImgData() self.calibration_data = CalibrationData(self.img_data) self.mask_data = MaskData() self.spectrum_data = SpectrumData() self.phase_data = PhaseData() self.load_directories() #create controller self.calibration_controller = CalibrationController(self.working_dir, self.view.calibration_widget, self.img_data, self.calibration_data) self.mask_controller = MaskController(self.working_dir, self.view.mask_widget, self.img_data, self.mask_data) self.integration_controller = IntegrationController(self.working_dir, self.view.integration_widget, self.img_data, self.mask_data, self.calibration_data, self.spectrum_data, self.phase_data) self.create_signals() self.raise_window()
def setUp(self): self.app = QtGui.QApplication(sys.argv) self.img_data = ImgData() self.mask_data = MaskData() self.calibration_data = CalibrationData(self.img_data) self.calibration_data._calibrants_working_dir = 'Data/Calibrants' self.calibration_view = CalibrationView() self.working_dir = {} self.calibration_controller = CalibrationController(working_dir=self.working_dir, img_data=self.img_data, mask_data=self.mask_data, view=self.calibration_view, calibration_data=self.calibration_data)
def __init__(self, app): self.splash_img = QtGui.QPixmap("UiFiles/splash.png") self.splash_screen = QtGui.QSplashScreen(self.splash_img, QtCore.Qt.WindowStaysOnTopHint) self.splash_screen.show() app.processEvents() time.sleep(1) app.processEvents() self.view = MainView() #create data self.img_data = ImgData() self.calibration_data = CalibrationData(self.img_data) self.mask_data = MaskData() self.spectrum_data = SpectrumData() self.phase_data = PhaseData() self.load_directories() #create controller self.calibration_controller = CalibrationController(self.working_dir, self.view.calibration_widget, self.img_data, self.mask_data, self.calibration_data) self.mask_controller = MaskController(self.working_dir, self.view.mask_widget, self.img_data, self.mask_data) self.integration_controller = IntegrationController(self.working_dir, self.view.integration_widget, self.img_data, self.mask_data, self.calibration_data, self.spectrum_data, self.phase_data) self.create_signals() self.set_title() self.raise_window() self.splash_screen.finish(self.view)
class MainController(object): def __init__(self, app): self.splash_img = QtGui.QPixmap("UiFiles/splash.png") self.splash_screen = QtGui.QSplashScreen( self.splash_img, QtCore.Qt.WindowStaysOnTopHint) self.splash_screen.show() app.processEvents() time.sleep(1) app.processEvents() self.view = MainView() #create data self.img_data = ImgData() self.calibration_data = CalibrationData(self.img_data) self.mask_data = MaskData() self.spectrum_data = SpectrumData() self.phase_data = PhaseData() self.load_directories() #create controller self.calibration_controller = CalibrationController( self.working_dir, self.view.calibration_widget, self.img_data, self.mask_data, self.calibration_data) self.mask_controller = MaskController(self.working_dir, self.view.mask_widget, self.img_data, self.mask_data) self.integration_controller = IntegrationController( self.working_dir, self.view.integration_widget, self.img_data, self.mask_data, self.calibration_data, self.spectrum_data, self.phase_data) self.create_signals() self.set_title() self.raise_window() self.splash_screen.finish(self.view) def raise_window(self): self.view.show() self.view.setWindowState(self.view.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive) self.view.activateWindow() self.view.raise_() def create_signals(self): self.view.tabWidget.currentChanged.connect(self.tab_changed) self.view.closeEvent = self.close_event self.img_data.subscribe(self.set_title) self.spectrum_data.subscribe(self.set_title) def tab_changed(self, ind): if ind == 2: self.integration_controller.image_controller.plot_mask() self.integration_controller.view.calibration_lbl.setText( self.calibration_data.calibration_name) auto_scale_previous = self.integration_controller.image_controller._auto_scale self.integration_controller.image_controller._auto_scale = False self.integration_controller.spectrum_controller.image_changed() self.integration_controller.image_controller._auto_scale = auto_scale_previous elif ind == 1: self.mask_controller.plot_mask() self.mask_controller.plot_image() elif ind == 0: self.calibration_controller.plot_mask() try: self.calibration_controller.update_calibration_parameter() except TypeError: pass def set_title(self): img_filename = os.path.basename(self.img_data.filename) spec_filename = os.path.basename(self.spectrum_data.spectrum_filename) calibration_name = self.calibration_data.calibration_name str = 'Dioptas v' + __VERSION__ if img_filename is '' and spec_filename is '': self.view.setWindowTitle(str) return if img_filename is not '' or spec_filename is not '': str += ' - [' if img_filename is not '': str += img_filename elif img_filename is '' and spec_filename is not '': str += spec_filename if not img_filename == spec_filename: str += ', ' + spec_filename if calibration_name is not None: str += ', calibration: ' + calibration_name str += ']' self.view.setWindowTitle(str) def load_directories(self): if os.path.exists('working_directories.csv'): reader = csv.reader(open('working_directories.csv', 'rb')) self.working_dir = dict(x for x in reader) else: self.working_dir = { 'calibration': '', 'mask': '', 'image': '', 'spectrum': '', 'overlay': '', 'phase': '' } def save_directories(self): writer = csv.writer(open('working_directories.csv', 'wb')) for key, value in self.working_dir.items(): writer.writerow([key, value]) def close_event(self, _): self.save_directories()
class MainController(object): def __init__(self, app): self.splash_img = QtGui.QPixmap("UiFiles/splash.png") self.splash_screen = QtGui.QSplashScreen(self.splash_img, QtCore.Qt.WindowStaysOnTopHint) self.splash_screen.show() app.processEvents() time.sleep(1) app.processEvents() self.view = MainView() #create data self.img_data = ImgData() self.calibration_data = CalibrationData(self.img_data) self.mask_data = MaskData() self.spectrum_data = SpectrumData() self.phase_data = PhaseData() self.load_directories() #create controller self.calibration_controller = CalibrationController(self.working_dir, self.view.calibration_widget, self.img_data, self.mask_data, self.calibration_data) self.mask_controller = MaskController(self.working_dir, self.view.mask_widget, self.img_data, self.mask_data) self.integration_controller = IntegrationController(self.working_dir, self.view.integration_widget, self.img_data, self.mask_data, self.calibration_data, self.spectrum_data, self.phase_data) self.create_signals() self.set_title() self.raise_window() self.splash_screen.finish(self.view) def raise_window(self): self.view.show() self.view.setWindowState(self.view.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive) self.view.activateWindow() self.view.raise_() def create_signals(self): self.view.tabWidget.currentChanged.connect(self.tab_changed) self.view.closeEvent = self.close_event self.img_data.subscribe(self.set_title) self.spectrum_data.subscribe(self.set_title) def tab_changed(self, ind): if ind == 2: self.integration_controller.image_controller.plot_mask() self.integration_controller.view.calibration_lbl.setText(self.calibration_data.calibration_name) auto_scale_previous = self.integration_controller.image_controller._auto_scale self.integration_controller.image_controller._auto_scale = False self.integration_controller.spectrum_controller.image_changed() self.integration_controller.image_controller._auto_scale = auto_scale_previous elif ind == 1: self.mask_controller.plot_mask() self.mask_controller.plot_image() elif ind == 0: self.calibration_controller.plot_mask() try: self.calibration_controller.update_calibration_parameter() except TypeError: pass def set_title(self): img_filename = os.path.basename(self.img_data.filename) spec_filename = os.path.basename(self.spectrum_data.spectrum_filename) calibration_name = self.calibration_data.calibration_name str = 'Dioptas v' + __VERSION__ if img_filename is '' and spec_filename is '': self.view.setWindowTitle(str) return if img_filename is not '' or spec_filename is not '': str += ' - [' if img_filename is not '': str += img_filename elif img_filename is '' and spec_filename is not '': str += spec_filename if not img_filename == spec_filename: str += ', ' + spec_filename if calibration_name is not None: str += ', calibration: ' + calibration_name str += ']' self.view.setWindowTitle(str) def load_directories(self): if os.path.exists('working_directories.csv'): reader = csv.reader(open('working_directories.csv', 'rb')) self.working_dir = dict(x for x in reader) else: self.working_dir = {'calibration': '', 'mask': '', 'image': '', 'spectrum': '', 'overlay': '', 'phase': ''} def save_directories(self): writer = csv.writer(open('working_directories.csv', 'wb')) for key, value in self.working_dir.items(): writer.writerow([key, value]) def close_event(self, _): self.save_directories()
class CalibrationControllerTest(unittest.TestCase): def setUp(self): self.app = QtGui.QApplication(sys.argv) self.img_data = ImgData() self.mask_data = MaskData() self.calibration_data = CalibrationData(self.img_data) self.calibration_data._calibrants_working_dir = 'Data/Calibrants' self.calibration_view = CalibrationView() self.working_dir = {} self.calibration_controller = CalibrationController(working_dir=self.working_dir, img_data=self.img_data, mask_data=self.mask_data, view=self.calibration_view, calibration_data=self.calibration_data) def tearDown(self): del self.app def test_automatic_calibration1(self): self.calibration_controller.load_img('Data/LaB6_p49_40keV_006.tif') self.calibration_controller.search_peaks(1179.6, 1129.4) self.calibration_controller.search_peaks(1268.5, 1119.8) self.calibration_controller.view.sv_wavelength_txt.setText('0.31') self.calibration_controller.view.sv_distance_txt.setText('200') self.calibration_controller.view.sv_pixel_width_txt.setText('79') self.calibration_controller.view.sv_pixel_height_txt.setText('79') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.calibration_controller.calibrate() self.calibration_controller.view.cake_view.set_vertical_line_pos(1419.8, 653.4) def test_automatic_calibration2(self): self.calibration_controller.load_img('Data/LaB6_WOS_30keV_005.tif') self.calibration_controller.search_peaks(1245.2, 1919.3) self.calibration_controller.search_peaks(1334.0, 1823.7) self.calibration_controller.view.sv_wavelength_txt.setText('0.3344') self.calibration_controller.view.sv_distance_txt.setText('500') self.calibration_controller.view.sv_pixel_width_txt.setText('200') self.calibration_controller.view.sv_pixel_height_txt.setText('200') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.calibration_controller.calibrate() self.calibration_controller.view.cake_view.set_vertical_line_pos(206.5, 171.6) def test_automatic_calibration3(self): self.calibration_controller.load_img('Data/CeO2_Oct24_2014_001_0000.tif') QTest.mouseClick(self.calibration_view.automatic_peak_num_inc_cb, QtCore.Qt.LeftButton) self.assertFalse(self.calibration_view.automatic_peak_num_inc_cb.isChecked()) self.calibration_controller.search_peaks(517.664434674, 647.529865592) self.calibration_controller.search_peaks(667.380513299, 525.252854758) self.calibration_controller.search_peaks(671.110095329, 473.571503774) self.calibration_controller.search_peaks(592.788872703, 350.495296791) self.calibration_controller.search_peaks(387.395462348, 390.987901686) self.calibration_controller.search_peaks(367.94835605, 554.290314848) self.calibration_controller.view.sv_wavelength_txt.setText('0.406626') self.calibration_controller.view.sv_distance_txt.setText('200') self.calibration_controller.view.sv_pixel_width_txt.setText('172') self.calibration_controller.view.sv_pixel_height_txt.setText('172') self.calibration_controller.view.calibrant_cb.setCurrentIndex(4) start_values = self.calibration_view.get_start_values() self.assertAlmostEqual(start_values['wavelength'], 0.406626e-10) self.assertAlmostEqual(start_values['pixel_height'], 172e-6) self.assertAlmostEqual(start_values['pixel_width'], 172e-6) self.calibration_controller.load_calibrant() self.assertAlmostEqual(self.calibration_data.calibrant.wavelength, 0.406626e-10) QTest.mouseClick(self.calibration_view.integrate_btn, QtCore.Qt.LeftButton) calibration_parameter = self.calibration_data.get_calibration_parameter()[0] self.assertAlmostEqual(calibration_parameter['dist'], .2086, places=4) def test_automatic_calibration_with_supersampling(self): self.calibration_controller.load_img('Data/LaB6_p49_40keV_006.tif') self.calibration_controller.search_peaks(1179.6, 1129.4) self.calibration_controller.search_peaks(1268.5, 1119.8) self.calibration_controller.view.sv_wavelength_txt.setText('0.31') self.calibration_controller.view.sv_distance_txt.setText('200') self.calibration_controller.view.sv_pixel_width_txt.setText('79') self.calibration_controller.view.sv_pixel_height_txt.setText('79') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.img_data.set_supersampling(2) self.calibration_data.set_supersampling(2) self.calibration_controller.calibrate() def test_automatic_calibration_with_supersampling_and_mask(self): self.calibration_controller.load_img('Data/LaB6_p49_40keV_006.tif') self.calibration_controller.search_peaks(1179.6, 1129.4) self.calibration_controller.search_peaks(1268.5, 1119.8) self.calibration_controller.view.sv_wavelength_txt.setText('0.31') self.calibration_controller.view.sv_distance_txt.setText('200') self.calibration_controller.view.sv_pixel_width_txt.setText('79') self.calibration_controller.view.sv_pixel_height_txt.setText('79') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.img_data.set_supersampling(2) self.mask_data.mask_below_threshold(self.img_data._img_data, 1) self.mask_data.set_supersampling(2) self.calibration_data.set_supersampling(2) self.calibration_controller.view.use_mask_cb.setChecked(True) self.calibration_controller.calibrate() def test_calibrating_one_image_size_and_loading_different_image_size(self): self.calibration_controller.load_img('Data/LaB6_p49_40keV_006.tif') self.calibration_controller.search_peaks(1179.6, 1129.4) self.calibration_controller.search_peaks(1268.5, 1119.8) self.calibration_controller.view.sv_wavelength_txt.setText('0.31') self.calibration_controller.view.sv_distance_txt.setText('200') self.calibration_controller.view.sv_pixel_width_txt.setText('79') self.calibration_controller.view.sv_pixel_height_txt.setText('79') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.calibration_controller.view.options_automatic_refinement_cb.setChecked(False) self.calibration_controller.view.use_mask_cb.setChecked(True) self.calibration_controller.calibrate() self.calibration_data.integrate_1d() self.calibration_data.integrate_2d() self.calibration_controller.load_img('Data/CeO2_Pilatus1M.tif') self.calibration_data.integrate_1d() self.calibration_data.integrate_2d() def test_loading_and_saving_of_calibration_files(self): self.calibration_controller.load_calibration('Data/calibration.poni') self.calibration_controller.save_calibration('Data/calibration.poni')
# -*- coding: utf8 -*- # Py2DeX - GUI program for fast processing of 2D X-ray data # Copyright (C) 2014 Clemens Prescher ([email protected]) # GSECARS, University of Chicago # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. __author__ = 'Clemens Prescher' import sys from PyQt4 import QtGui from Controller.IntegrationController import IntegrationController from Controller.CalibrationController import CalibrationController from Controller.MaskController import MaskController from Controller.IntegrationController import IntegrationController if __name__ == "__main__": app = QtGui.QApplication(sys.argv) controller = CalibrationController() app.exec_()
class CombinedDataTest(unittest.TestCase): def setUp(self): self.app = QtGui.QApplication(sys.argv) self.image_data = ImgData() self.calibration_data = CalibrationData(self.image_data) self.calibration_data._calibrants_working_dir = 'Data/Calibrants' self.calibration_controller = CalibrationController(img_data=self.image_data, \ calibration_data=self.calibration_data) def test_automatic_calibration1(self): self.calibration_controller.load_img('Data/LaB6_p49_40keV_006.tif') self.calibration_controller.search_peaks(1179.6, 1129.4) self.calibration_controller.search_peaks(1268.5, 1119.8) self.calibration_controller.view.sv_wavelength_txt.setText('0.31') self.calibration_controller.view.sv_distance_txt.setText('200') self.calibration_controller.view.sv_pixel_width_txt.setText('79') self.calibration_controller.view.sv_pixel_height_txt.setText('79') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.calibration_controller.calibrate() self.calibration_controller.view.cake_view.set_vertical_line_pos(1419.8, 653.4) def test_automatic_calibration2(self): self.calibration_controller.load_img('Data/LaB6_WOS_30keV_005.tif') self.calibration_controller.search_peaks(1245.2, 1919.3) self.calibration_controller.search_peaks(1334.0, 1823.7) self.calibration_controller.view.sv_wavelength_txt.setText('0.3344') self.calibration_controller.view.sv_distance_txt.setText('500') self.calibration_controller.view.sv_pixel_width_txt.setText('200') self.calibration_controller.view.sv_pixel_height_txt.setText('200') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.calibration_controller.calibrate() self.calibration_controller.view.cake_view.set_vertical_line_pos(206.5, 171.6) def tearDown(self): return
class MainController(object): def __init__(self): self.view = MainView() #create data self.img_data = ImgData() self.calibration_data = CalibrationData(self.img_data) self.mask_data = MaskData() self.spectrum_data = SpectrumData() self.phase_data = PhaseData() self.load_directories() #create controller self.calibration_controller = CalibrationController(self.working_dir, self.view.calibration_widget, self.img_data, self.calibration_data) self.mask_controller = MaskController(self.working_dir, self.view.mask_widget, self.img_data, self.mask_data) self.integration_controller = IntegrationController(self.working_dir, self.view.integration_widget, self.img_data, self.mask_data, self.calibration_data, self.spectrum_data, self.phase_data) self.create_signals() self.raise_window() def raise_window(self): self.view.show() self.view.setWindowState(self.view.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive) self.view.activateWindow() self.view.raise_() def create_signals(self): self.view.tabWidget.currentChanged.connect(self.tab_changed) self.view.closeEvent = self.close_event def tab_changed(self, ind): if ind == 2: self.integration_controller.image_controller.plot_mask() self.integration_controller.view.calibration_lbl.setText(self.calibration_data.calibration_name) self.img_data.notify() elif ind == 1: self.mask_controller.plot_mask() self.mask_controller.plot_image() elif ind == 0: try: self.calibration_controller.update_calibration_parameter() except TypeError: pass def load_directories(self): if os.path.exists('working_directories.csv'): reader = csv.reader(open('working_directories.csv', 'rb')) self.working_dir = dict(x for x in reader) else: self.working_dir = {'calibration': '', 'mask': '', 'image': '', 'spectrum': '', 'overlay': '', 'phase': ''} def save_directories(self): writer = csv.writer(open('working_directories.csv', 'wb')) for key, value in self.working_dir.items(): writer.writerow([key, value]) def close_event(self, _): self.save_directories()
class CombinedDataTest(unittest.TestCase): def setUp(self): self.app = QtGui.QApplication(sys.argv) self.image_data = ImgData() self.calibration_data = CalibrationData(self.image_data) self.calibration_data._calibrants_working_dir = 'Data/Calibrants' self.calibration_controller = CalibrationController(img_data=self.image_data, \ calibration_data=self.calibration_data) def test_automatic_calibration1(self): self.calibration_controller.load_img('Data/LaB6_p49_40keV_006.tif') self.calibration_controller.search_peaks(1179.6, 1129.4) self.calibration_controller.search_peaks(1268.5, 1119.8) self.calibration_controller.view.sv_wavelength_txt.setText('0.31') self.calibration_controller.view.sv_distance_txt.setText('200') self.calibration_controller.view.sv_pixel_width_txt.setText('79') self.calibration_controller.view.sv_pixel_height_txt.setText('79') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.calibration_controller.calibrate() self.calibration_controller.view.cake_view.set_vertical_line_pos( 1419.8, 653.4) def test_automatic_calibration2(self): self.calibration_controller.load_img('Data/LaB6_WOS_30keV_005.tif') self.calibration_controller.search_peaks(1245.2, 1919.3) self.calibration_controller.search_peaks(1334.0, 1823.7) self.calibration_controller.view.sv_wavelength_txt.setText('0.3344') self.calibration_controller.view.sv_distance_txt.setText('500') self.calibration_controller.view.sv_pixel_width_txt.setText('200') self.calibration_controller.view.sv_pixel_height_txt.setText('200') self.calibration_controller.view.calibrant_cb.setCurrentIndex(7) self.calibration_controller.calibrate() self.calibration_controller.view.cake_view.set_vertical_line_pos( 206.5, 171.6) def tearDown(self): return
class MainController(object): def __init__(self): self.view = MainView() #create data self.img_data = ImgData() self.calibration_data = CalibrationData(self.img_data) self.mask_data = MaskData() self.spectrum_data = SpectrumData() self.phase_data = PhaseData() self.load_directories() #create controller self.calibration_controller = CalibrationController( self.working_dir, self.view.calibration_widget, self.img_data, self.calibration_data) self.mask_controller = MaskController(self.working_dir, self.view.mask_widget, self.img_data, self.mask_data) self.integration_controller = IntegrationController( self.working_dir, self.view.integration_widget, self.img_data, self.mask_data, self.calibration_data, self.spectrum_data, self.phase_data) self.create_signals() self.raise_window() def raise_window(self): self.view.show() self.view.setWindowState(self.view.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive) self.view.activateWindow() self.view.raise_() def create_signals(self): self.view.tabWidget.currentChanged.connect(self.tab_changed) self.view.closeEvent = self.close_event def tab_changed(self, ind): if ind == 2: self.integration_controller.image_controller.plot_mask() self.integration_controller.view.calibration_lbl.setText( self.calibration_data.calibration_name) self.img_data.notify() elif ind == 1: self.mask_controller.plot_mask() self.mask_controller.plot_image() elif ind == 0: try: self.calibration_controller.update_calibration_parameter() except TypeError: pass def load_directories(self): if os.path.exists('working_directories.csv'): reader = csv.reader(open('working_directories.csv', 'rb')) self.working_dir = dict(x for x in reader) else: self.working_dir = { 'calibration': '', 'mask': '', 'image': '', 'spectrum': '', 'overlay': '', 'phase': '' } def save_directories(self): writer = csv.writer(open('working_directories.csv', 'wb')) for key, value in self.working_dir.items(): writer.writerow([key, value]) def close_event(self, _): self.save_directories()