Fill self.extensions with data from the default and user configs.
(self)
| 1958 | self.frame_help.grid(row=2, column=0, sticky='sew') |
| 1959 | |
| 1960 | def load_extensions(self): |
| 1961 | "Fill self.extensions with data from the default and user configs." |
| 1962 | self.extensions = {} |
| 1963 | for ext_name in idleConf.GetExtensions(active_only=False): |
| 1964 | # Former built-in extensions are already filtered out. |
| 1965 | self.extensions[ext_name] = [] |
| 1966 | |
| 1967 | for ext_name in self.extensions: |
| 1968 | opt_list = sorted(self.ext_defaultCfg.GetOptionList(ext_name)) |
| 1969 | |
| 1970 | # Bring 'enable' options to the beginning of the list. |
| 1971 | enables = [opt_name for opt_name in opt_list |
| 1972 | if opt_name.startswith('enable')] |
| 1973 | for opt_name in enables: |
| 1974 | opt_list.remove(opt_name) |
| 1975 | opt_list = enables + opt_list |
| 1976 | |
| 1977 | for opt_name in opt_list: |
| 1978 | def_str = self.ext_defaultCfg.Get( |
| 1979 | ext_name, opt_name, raw=True) |
| 1980 | try: |
| 1981 | def_obj = {'True':True, 'False':False}[def_str] |
| 1982 | opt_type = 'bool' |
| 1983 | except KeyError: |
| 1984 | try: |
| 1985 | def_obj = int(def_str) |
| 1986 | opt_type = 'int' |
| 1987 | except ValueError: |
| 1988 | def_obj = def_str |
| 1989 | opt_type = None |
| 1990 | try: |
| 1991 | value = self.ext_userCfg.Get( |
| 1992 | ext_name, opt_name, type=opt_type, raw=True, |
| 1993 | default=def_obj) |
| 1994 | except ValueError: # Need this until .Get fixed. |
| 1995 | value = def_obj # Bad values overwritten by entry. |
| 1996 | var = StringVar(self) |
| 1997 | var.set(str(value)) |
| 1998 | |
| 1999 | self.extensions[ext_name].append({'name': opt_name, |
| 2000 | 'type': opt_type, |
| 2001 | 'default': def_str, |
| 2002 | 'value': value, |
| 2003 | 'var': var, |
| 2004 | }) |
| 2005 | |
| 2006 | def extension_selected(self, event): |
| 2007 | "Handle selection of an extension from the list." |
no test coverage detected