- Timestamp:
- Sep 24, 2017 11:29:13 PM (7 years ago)
- 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
- Location:
- src/sas
- Files:
-
- 1 added
- 1 deleted
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/__init__.py
r79492222 rb963b20 1 __all__ = ['get_app_dir', 'get_user_dir', 2 'get_local_config', 'get_custom_config'] 3 4 _APP_DIR = None 5 def get_app_dir(): 6 """ 7 The directory where the sasview application is found. 8 9 Returns the path to sasview if running in place or installed with setup. 10 If the application is frozen, returns the parent directory of the 11 application resources such as test files and images. 12 """ 13 global _APP_DIR 14 if not _APP_DIR: 15 from ._config import find_app_dir 16 _APP_DIR = find_app_dir() 17 return _APP_DIR 18 19 _USER_DIR = None 20 def get_user_dir(): 21 """ 22 The directory where the per-user configuration is stored. 23 24 Returns ~/.sasview, creating it if it does not already exist. 25 """ 26 global _USER_DIR 27 if not _USER_DIR: 28 from ._config import make_user_dir 29 _USER_DIR = make_user_dir() 30 return _USER_DIR 31 32 def make_custom_config_path(): 33 from ._config import make_custom_config_path as _make_path 34 return _make_path(get_user_dir()) 35 36 _CUSTOM_CONFIG = None 37 def get_custom_config(): 38 """ 39 Setup the custom config dir and cat file 40 """ 41 global _CUSTOM_CONFIG 42 if not _CUSTOM_CONFIG: 43 from ._config import setup_custom_config 44 _CUSTOM_CONFIG = setup_custom_config(get_app_dir(), get_user_dir()) 45 return _CUSTOM_CONFIG 46 47 48 _LOCAL_CONFIG = None 49 def get_local_config(): 50 """ 51 Loads the local config file. 52 """ 53 global _LOCAL_CONFIG 54 if not _LOCAL_CONFIG: 55 from ._config import load_local_config 56 _LOCAL_CONFIG = load_local_config(get_app_dir()) 57 return _LOCAL_CONFIG -
src/sas/sascalc/fit/models.py
rd3b0c77 rb963b20 15 15 from sasmodels.sasview_model import load_custom_model, load_standard_models 16 16 17 from sas .sasguiimport get_user_dir17 from sas import get_user_dir 18 18 19 19 # Explicitly import from the pluginmodel module so that py2exe -
src/sas/sasgui/__init__.py
rc6bdb3b rb963b20 1 import sys2 import os3 from os.path import exists, expanduser, dirname, realpath, join as joinpath4 5 6 def dirn(path, n):7 path = realpath(path)8 for _ in range(n):9 path = dirname(path)10 return path11 12 # Set up config directories13 def make_user_folder():14 path = joinpath(expanduser("~"),'.sasview')15 if not exists(path):16 os.mkdir(path)17 return path18 19 20 def find_app_folder():21 # We are starting out with the following info:22 # __file__ = .../sas/sasgui/__init__.pyc23 # Check if the sister path .../sas/sasview exists, and use it as the24 # 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 path28 29 # If we are running frozen, then root is a parent directory30 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__.pyc33 # 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__.pyc38 # 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 path43 44 USER_FOLDER = make_user_folder()45 APP_FOLDER = find_app_folder()46 47 48 def get_app_dir():49 return APP_FOLDER50 51 def get_user_dir():52 return USER_FOLDER53 54 def get_custom_config_path():55 dirname = os.path.join(get_user_dir(), 'config')56 # If the directory doesn't exist, create it57 if not os.path.exists(dirname):58 os.makedirs(dirname)59 path = os.path.join(dirname, "custom_config.py")60 return path61 62 _config_cache = None63 def get_local_config():64 global _config_cache65 if not _config_cache:66 _config_cache = _load_config()67 return _config_cache68 69 def _load_config():70 import os71 import sys72 import logging73 from sasmodels.custom import load_module_from_path74 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 module83 except Exception as exc:84 logger.critical("Error loading %s: %s", path, exc)85 sys.exit() -
src/sas/sasgui/guiframe/CategoryInstaller.py
rd3b0c77 rb963b20 15 15 from collections import defaultdict, OrderedDict 16 16 17 from sas .sasguiimport get_user_dir17 from sas import get_user_dir 18 18 19 19 USER_FILE = 'categories.json' -
src/sas/sasgui/guiframe/aboutbox.py
r724af06 rb963b20 25 25 import os 26 26 27 from sas .sasguiimport get_local_config27 from sas import get_local_config 28 28 config = get_local_config() 29 29 -
src/sas/sasgui/guiframe/acknowledgebox.py
r914ba0a rb963b20 13 13 from wx.lib.expando import ExpandoTextCtrl 14 14 15 from sas .sasguiimport get_local_config15 from sas import get_local_config 16 16 config = get_local_config() 17 17 -
src/sas/sasgui/guiframe/config.py
r724af06 rb963b20 145 145 UPDATE_TIMEOUT = 2 146 146 147 #OpenCL option148 SAS_OPENCL = None149 150 147 # Time out for updating sasview 151 148 UPDATE_TIMEOUT = 2 -
src/sas/sasgui/guiframe/data_panel.py
rc6bdb3b rb963b20 33 33 from sas.sasgui.guiframe.local_perspectives.plotting.SimplePlot \ 34 34 import PlotFrame as QucikPlotDialog 35 from sas .sasguiimport get_local_config35 from sas import get_local_config 36 36 37 37 config = get_local_config() -
src/sas/sasgui/guiframe/documentation_window.py
r724af06 rb963b20 27 27 WX_SUPPORTS_HTML2 = False 28 28 29 from sas .sasguiimport get_app_dir29 from sas import get_app_dir 30 30 31 31 # Don't use wx html renderer on windows. -
src/sas/sasgui/guiframe/gui_manager.py
r914ba0a rb963b20 28 28 from matplotlib import _pylab_helpers 29 29 30 from sas .sasgui import get_local_config, get_app_dir, get_user_dir30 from sas import get_local_config, get_custom_config, get_app_dir, get_user_dir 31 31 from sas.sasgui.guiframe.events import EVT_CATEGORY 32 32 from sas.sasgui.guiframe.events import EVT_STATUS … … 47 47 from sas.sascalc.dataloader.loader import Loader 48 48 from sas.sasgui.guiframe.proxy import Connection 49 from sas.sasgui.guiframe.customdir import setup_custom_config50 49 51 50 logger = logging.getLogger(__name__) … … 53 52 54 53 config = get_local_config() 55 custom_config = setup_custom_config()54 custom_config = get_custom_config() 56 55 57 56 # read some constants from config … … 63 62 SPLASH_SCREEN_HEIGHT = config.SPLASH_SCREEN_HEIGHT 64 63 SS_MAX_DISPLAY_TIME = config.SS_MAX_DISPLAY_TIME 65 SAS_OPENCL = config.SAS_OPENCL66 64 if not WELCOME_PANEL_ON: 67 65 WELCOME_PANEL_SHOW = False … … 138 136 PARENT_FRAME = wx.Frame 139 137 CHILD_FRAME = wx.Frame 140 141 #Initiliaze enviromental variable with custom setting but only if variable not set142 if SAS_OPENCL and not "SAS_OPENCL" in os.environ:143 os.environ["SAS_OPENCL"] = SAS_OPENCL144 138 145 139 class ViewerFrame(PARENT_FRAME): -
src/sas/sasgui/guiframe/local_perspectives/data_loader/data_loader.py
r759a8ab rb963b20 10 10 logger = logging.getLogger(__name__) 11 11 12 from sas import get_local_config 13 12 14 from sas.sascalc.dataloader.loader import Loader 13 15 from sas.sascalc.dataloader.loader_exceptions import NoKnownLoaderException 14 16 15 from sas.sasgui import get_local_config16 17 from sas.sasgui.guiframe.plugin_base import PluginBase 17 18 from sas.sasgui.guiframe.events import StatusEvent -
src/sas/sasgui/guiframe/startup_configuration.py
r914ba0a rb963b20 13 13 import wx 14 14 15 from sas .sasgui import get_custom_config_path15 from sas import make_custom_config_path 16 16 from sas.sasgui.guiframe.events import StatusEvent 17 17 from sas.sasgui.guiframe.gui_style import GUIFRAME … … 194 194 Write custom configuration 195 195 """ 196 path = get_custom_config_path()196 path = make_custom_config_path() 197 197 with open(path, 'w') as out_f: 198 198 out_f.write("#Application appearance custom configuration\n") -
src/sas/sasview/local_config.py
r724af06 rb963b20 145 145 UPDATE_TIMEOUT = 2 146 146 147 #OpenCL option148 SAS_OPENCL = None149 150 147 # Time out for updating sasview 151 148 UPDATE_TIMEOUT = 2 -
src/sas/sasview/sasview.py
rd3b0c77 rb963b20 20 20 reload(sys) 21 21 sys.setdefaultencoding("iso-8859-1") 22 23 import sas 22 24 23 25 APP_NAME = 'SasView' … … 171 173 172 174 173 def setup_mpl(backend='WXAgg'): 174 import sas.sasgui 175 def setup_mpl(backend=None): 175 176 # Always use private .matplotlib setup to avoid conflicts with other 176 mplconfigdir = os.path.join(sas. sasgui.get_user_dir(), '.matplotlib')177 mplconfigdir = os.path.join(sas.get_user_dir(), '.matplotlib') 177 178 if not os.path.exists(mplconfigdir): 178 179 os.mkdir(mplconfigdir) … … 192 193 Prepare sasmodels for running within sasview. 193 194 """ 194 import sas.sasgui195 195 # Set SAS_MODELPATH so sasmodels can find our custom models 196 plugin_dir = os.path.join(sas. sasgui.get_user_dir(), PLUGIN_MODEL_DIR)196 plugin_dir = os.path.join(sas.get_user_dir(), PLUGIN_MODEL_DIR) 197 197 os.environ['SAS_MODELPATH'] = plugin_dir 198 # TODO: SAS_OPENCL flag belongs in setup_sasmodels 199 # this will require restructuring of the config management so that it 200 # can occur outside of sasgui. 198 #Initiliaze enviromental variable with custom setting but only if variable not set 199 SAS_OPENCL = sas.get_custom_config().SAS_OPENCL 200 if SAS_OPENCL and "SAS_OPENCL" not in os.environ: 201 os.environ["SAS_OPENCL"] = SAS_OPENCL 201 202 202 203 def run_gui(): … … 207 208 freeze_support() 208 209 setup_logging() 209 setup_mpl( )210 setup_mpl(backend='WXAgg') 210 211 setup_sasmodels() 211 212 setup_wx() … … 217 218 freeze_support() 218 219 setup_logging() 219 setup_mpl(backend='Agg') 220 # Use default matplotlib backend on mac/linux, but wx on windows. 221 # The problem on mac is that the wx backend requires pythonw. On windows 222 # we are sure to wx since it is the shipped with the app. 223 setup_mpl(backend='WXAgg' if os.name == 'nt' else None) 220 224 setup_sasmodels() 221 225 if len(sys.argv) == 1: -
src/sas/sasview/welcome_panel.py
rd66dbcc rb963b20 10 10 from wx.lib.scrolledpanel import ScrolledPanel 11 11 12 from sas .sasguiimport get_local_config12 from sas import get_local_config 13 13 from sas.sasgui.guiframe.panel_base import PanelBase 14 14 config = get_local_config()
Note: See TracChangeset
for help on using the changeset viewer.