Changeset b963b20 in sasview for src/sas/sasgui/__init__.py


Ignore:
Timestamp:
Sep 24, 2017 9:29:13 PM (7 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, 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, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
b277220, fca1f50
Parents:
d3b0c77
Message:

pull config out of sas.sasgui so it can be used without reference to wx

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/__init__.py

    rc6bdb3b rb963b20  
    1 import sys 
    2 import os 
    3 from os.path import exists, expanduser, dirname, realpath, join as joinpath 
    4  
    5  
    6 def dirn(path, n): 
    7     path = realpath(path) 
    8     for _ in range(n): 
    9         path = dirname(path) 
    10     return path 
    11  
    12 # Set up config directories 
    13 def make_user_folder(): 
    14     path = joinpath(expanduser("~"),'.sasview') 
    15     if not exists(path): 
    16         os.mkdir(path) 
    17     return path 
    18  
    19  
    20 def find_app_folder(): 
    21     # We are starting out with the following info: 
    22     #     __file__ = .../sas/sasgui/__init__.pyc 
    23     # Check if the sister path .../sas/sasview exists, and use it as the 
    24     # app directory.  This will only be the case if the app is not frozen. 
    25     path = joinpath(dirn(__file__, 2), 'sasview') 
    26     if exists(path): 
    27         return path 
    28  
    29     # If we are running frozen, then root is a parent directory 
    30     if sys.platform == 'darwin': 
    31         # Here is the path to the file on the mac: 
    32         #     .../Sasview.app/Contents/Resources/lib/python2.7/site-packages.zip/sas/sasgui/__init__.pyc 
    33         # We want the path to the Resources directory. 
    34         path = dirn(__file__, 6) 
    35     elif os.name == 'nt': 
    36         # Here is the path to the file on windows: 
    37         #     ../Sasview/library.zip/sas/sasgui/__init__.pyc 
    38         # We want the path to the Sasview directory. 
    39         path = dirn(__file__, 4) 
    40     else: 
    41         raise RuntimeError("Couldn't find the app directory") 
    42     return path 
    43  
    44 USER_FOLDER = make_user_folder() 
    45 APP_FOLDER = find_app_folder() 
    46  
    47  
    48 def get_app_dir(): 
    49     return APP_FOLDER 
    50  
    51 def get_user_dir(): 
    52     return USER_FOLDER 
    53  
    54 def get_custom_config_path(): 
    55     dirname = os.path.join(get_user_dir(), 'config') 
    56     # If the directory doesn't exist, create it 
    57     if not os.path.exists(dirname): 
    58         os.makedirs(dirname) 
    59     path = os.path.join(dirname, "custom_config.py") 
    60     return path 
    61  
    62 _config_cache = None 
    63 def get_local_config(): 
    64     global _config_cache 
    65     if not _config_cache: 
    66         _config_cache = _load_config() 
    67     return _config_cache 
    68  
    69 def _load_config(): 
    70     import os 
    71     import sys 
    72     import logging 
    73     from sasmodels.custom import load_module_from_path 
    74  
    75     logger = logging.getLogger(__name__) 
    76     dirname = get_app_dir() 
    77     filename = 'local_config.py' 
    78     path = os.path.join(dirname, filename) 
    79     try: 
    80         module = load_module_from_path('sas.sasgui.local_config', path) 
    81         logger.info("GuiManager loaded %s", path) 
    82         return module 
    83     except Exception as exc: 
    84         logger.critical("Error loading %s: %s", path, exc) 
    85         sys.exit() 
Note: See TracChangeset for help on using the changeset viewer.