Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/guiframe/gui_manager.py

    r2f22db9 rb963b20  
    2222import re 
    2323import logging 
    24 import httplib 
    2524import traceback 
    2625import urllib 
    27 import urllib2 
    2826import json 
    2927 
     28from matplotlib import _pylab_helpers 
     29 
     30from sas import get_local_config, get_custom_config, get_app_dir, get_user_dir 
    3031from sas.sasgui.guiframe.events import EVT_CATEGORY 
    3132from sas.sasgui.guiframe.events import EVT_STATUS 
     
    4647from sas.sascalc.dataloader.loader import Loader 
    4748from sas.sasgui.guiframe.proxy import Connection 
    48 from matplotlib import _pylab_helpers 
    4949 
    5050logger = logging.getLogger(__name__) 
    51  
    5251warnings.simplefilter("ignore") 
    5352 
    54 def get_app_dir(): 
    55     """ 
    56         The application directory is the one where the default custom_config.py 
    57         file resides. 
    58  
    59         :returns: app_path - the path to the applicatin directory 
    60     """ 
    61     # First, try the directory of the executable we are running 
    62     app_path = sys.path[0] 
    63     if os.path.isfile(app_path): 
    64         app_path = os.path.dirname(app_path) 
    65     if os.path.isfile(os.path.join(app_path, "custom_config.py")): 
    66         app_path = os.path.abspath(app_path) 
    67         logger.info("Using application path: %s", app_path) 
    68         return app_path 
    69  
    70     # Next, try the current working directory 
    71     if os.path.isfile(os.path.join(os.getcwd(), "custom_config.py")): 
    72         logger.info("Using application path: %s", os.getcwd()) 
    73         return os.path.abspath(os.getcwd()) 
    74  
    75     # Finally, try the directory of the sasview module 
    76     # TODO: gui_manager will have to know about sasview until we 
    77     # clean all these module variables and put them into a config class 
    78     # that can be passed by sasview.py. 
    79     logger.debug(sys.executable) 
    80     logger.debug(str(sys.argv)) 
    81     from sas import sasview as sasview 
    82     app_path = os.path.dirname(sasview.__file__) 
    83     logger.debug("Using application path: %s", app_path) 
    84     return app_path 
    85  
    86  
    87 def get_user_directory(): 
    88     """ 
    89         Returns the user's home directory 
    90     """ 
    91     userdir = os.path.join(os.path.expanduser("~"), ".sasview") 
    92     if not os.path.isdir(userdir): 
    93         os.makedirs(userdir) 
    94     return userdir 
    95  
    96  
    97 def _find_local_config(file, path): 
    98     """ 
    99         Find configuration file for the current application 
    100     """ 
    101     config_module = None 
    102     fObj = None 
    103     try: 
    104         fObj, path_config, descr = imp.find_module(file, [path]) 
    105         config_module = imp.load_module(file, fObj, path_config, descr) 
    106     except: 
    107         logger.error("Error loading %s/%s: %s" % (path, file, sys.exc_value)) 
    108     finally: 
    109         if fObj is not None: 
    110             fObj.close() 
    111     logger.debug("GuiManager loaded %s/%s" % (path, file)) 
    112     return config_module 
    113  
    114 # Get APP folder 
    115 PATH_APP = get_app_dir() 
    116 DATAPATH = PATH_APP 
    117  
    118 # GUI always starts from the App folder 
    119 # os.chdir(PATH_APP) 
    120 # Read in the local config, which can either be with the main 
    121 # application or in the installation directory 
    122 config = _find_local_config('local_config', PATH_APP) 
    123 if config is None: 
    124     config = _find_local_config('local_config', os.getcwd()) 
    125     if config is None: 
    126         # Didn't find local config, load the default 
    127         import sas.sasgui.guiframe.config as config 
    128         logger.debug("using default local_config") 
    129     else: 
    130         logger.debug("found local_config in %s" % os.getcwd()) 
    131 else: 
    132     logger.debug("found local_config in %s" % PATH_APP) 
    133  
    134 from sas.sasgui.guiframe.customdir import SetupCustom 
    135 c_conf_dir = SetupCustom().setup_dir(PATH_APP) 
    136 custom_config = _find_local_config('custom_config', c_conf_dir) 
    137 if custom_config is None: 
    138     custom_config = _find_local_config('custom_config', os.getcwd()) 
    139     if custom_config is None: 
    140         msgConfig = "Custom_config file was not imported" 
    141         logger.debug(msgConfig) 
    142     else: 
    143         logger.debug("using custom_config in %s" % os.getcwd()) 
    144 else: 
    145     logger.debug("using custom_config from %s" % c_conf_dir) 
     53config = get_local_config() 
     54custom_config = get_custom_config() 
    14655 
    14756# read some constants from config 
     
    15362SPLASH_SCREEN_HEIGHT = config.SPLASH_SCREEN_HEIGHT 
    15463SS_MAX_DISPLAY_TIME = config.SS_MAX_DISPLAY_TIME 
    155 SAS_OPENCL = config.SAS_OPENCL 
    15664if not WELCOME_PANEL_ON: 
    15765    WELCOME_PANEL_SHOW = False 
     
    17785        DEFAULT_OPEN_FOLDER = os.path.abspath(open_folder) 
    17886    else: 
    179         DEFAULT_OPEN_FOLDER = PATH_APP 
     87        DEFAULT_OPEN_FOLDER = get_app_dir() 
    18088    SAS_OPENCL = custom_config.SAS_OPENCL 
    18189except: 
     
    192100    DEFAULT_PERSPECTIVE = None 
    193101    CLEANUP_PLOT = False 
     102    DEFAULT_OPEN_FOLDER = get_app_dir() 
    194103    DEFAULT_OPEN_FOLDER = PATH_APP 
    195104    SAS_OPENCL = None 
     
    228137        CHILD_FRAME = wx.Frame 
    229138 
    230 #Initiliaze enviromental variable with custom setting but only if variable not set 
    231 if SAS_OPENCL and not "SAS_OPENCL" in os.environ: 
    232     os.environ["SAS_OPENCL"] = SAS_OPENCL 
    233  
    234139class ViewerFrame(PARENT_FRAME): 
    235140    """ 
     
    265170                if os.path.isfile(ico_file): 
    266171                    self.SetIcon(wx.Icon(ico_file, wx.BITMAP_TYPE_ICO)) 
    267         self.path = PATH_APP 
     172        self.path = get_app_dir() 
    268173        self.application_name = APPLICATION_NAME 
    269174        # Application manager 
     
    540445        try: 
    541446            fd = open(file_name, 'w') 
    542         except: 
     447        except Exception: 
    543448            # On Permission denied: IOError 
    544             temp_dir = get_user_directory() 
     449            temp_dir = get_user_dir() 
    545450            temp_file_name = os.path.join(temp_dir, name) 
    546451            fd = open(temp_file_name, 'w') 
     
    15321437            # want Analysis.  This is NOT an issue on the Mac which does not 
    15331438            # have the extra Window menu item. 
    1534             #      March 2016 Code Camp  -- PDB  
     1439            #      March 2016 Code Camp  -- PDB 
    15351440            Tools_pos = self._menubar.FindMenu("Tools") 
    15361441            self._menubar.Insert(Tools_pos+1, self._applications_menu, 
     
    21632068                logger.info("Failed to connect to www.sasview.org") 
    21642069        self._process_version(version_info, standalone=event is None) 
     2070 
    21652071 
    21662072    def _process_version(self, version_info, standalone=True): 
     
    33513257                if basename.lower() in [app_py, app_exe, app_app, app_base]: 
    33523258                    data_base = sys.argv[1] 
    3353                     input_file = os.path.normpath(os.path.join(DATAPATH, 
     3259                    input_file = os.path.normpath(os.path.join(get_app_dir(), 
    33543260                                                               data_base)) 
    33553261        if input_file is None: 
     
    33663272        # do it only the first time app loaded 
    33673273        # delete unused model folder 
    3368         model_folder = os.path.join(PATH_APP, path) 
     3274        model_folder = os.path.join(get_app_dir(), path) 
    33693275        if os.path.exists(model_folder) and os.path.isdir(model_folder): 
    33703276            if len(os.listdir(model_folder)) > 0: 
Note: See TracChangeset for help on using the changeset viewer.