📄 prefs.py
字号:
## Copyright 2006 Free Software Foundation, Inc.# # This file is part of GNU Radio# # GNU Radio 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, or (at your option)# any later version.# # GNU Radio 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 GNU Radio; see the file COPYING. If not, write to# the Free Software Foundation, Inc., 51 Franklin Street,# Boston, MA 02110-1301, USA.# import gnuradio_swig_python as gsp_prefs_base = gsp.gr_prefsimport ConfigParserimport osimport os.pathimport sysdef _user_prefs_filename(): return os.path.expanduser('~/.gnuradio/config.conf') def _sys_prefs_dirname(): return os.path.join(gsp.prefix(), 'etc/gnuradio/conf.d')def _bool(x): """ Try to coerce obj to a True or False """ if isinstance(x, bool): return x if isinstance(x, (float, int)): return bool(x) raise TypeError, x class _prefs(_prefs_base): """ Derive our 'real class' from the stubbed out base class that has support for SWIG directors. This allows C++ code to magically and transparently invoke the methods in this python class. """ def __init__(self): _prefs_base.__init__(self) self.cp = ConfigParser.RawConfigParser() def _sys_prefs_filenames(self): dir = _sys_prefs_dirname() try: fnames = os.listdir(dir) except (IOError, OSError): return [] fnames.sort() return [os.path.join(dir, f) for f in fnames] def _read_files(self): filenames = self._sys_prefs_filenames() filenames.append(_user_prefs_filename()) #print "filenames: ", filenames self.cp.read(filenames) def __getattr__(self, name): return getattr(self.cp, name) # ---------------------------------------------------------------- # These methods override the C++ virtual methods of the same name # ---------------------------------------------------------------- def has_section(self, section): return self.cp.has_section(section) def has_option(self, section, option): return self.cp.has_option(section, option) def get_string(self, section, option, default_val): try: return self.cp.get(section, option) except: return default_val def get_bool(self, section, option, default_val): try: return self.cp.getboolean(section, option) except: return default_val def get_long(self, section, option, default_val): try: return self.cp.getint(section, option) except: return default_val def get_double(self, section, option, default_val): try: return self.cp.getfloat(section, option) except: return default_val # ---------------------------------------------------------------- # End override of C++ virtual methods # ----------------------------------------------------------------_prefs_db = _prefs()# if GR_DONT_LOAD_PREFS is set, don't load them.# (make check uses this to avoid interactions.)if os.getenv("GR_DONT_LOAD_PREFS", None) is None: _prefs_db._read_files() _prefs_base.set_singleton(_prefs_db) # tell C++ what instance to usedef prefs(): """ Return the global preference data base """ return _prefs_db
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -