Python six.moves.configparser.Error() Examples
The following are 16
code examples of six.moves.configparser.Error().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
six.moves.configparser
, or try the search function
.
Example #1
Source File: deploy.py From scrapydweb with GNU General Public License v3.0 | 6 votes |
def build_egg(self): try: egg, tmpdir = _build_egg(self.scrapy_cfg_path) except ScrapyCfgParseError as err: self.logger.error(err) self.scrapy_cfg_parse_error = err return except CalledProcessError as err: self.logger.error(err) self.build_egg_subprocess_error = err return scrapy_cfg_dir = os.path.dirname(self.scrapy_cfg_path) copyfile(egg, os.path.join(scrapy_cfg_dir, self.eggname)) copyfile(egg, self.eggpath) rmtree(tmpdir) self.logger.debug("Egg file saved to: %s", self.eggpath)
Example #2
Source File: __init__.py From treadmill with Apache License 2.0 | 6 votes |
def init_logger(name): """Initialize logger. """ try: # logging configuration files in json format conf = treadmill.logging.load_logging_conf(name) logging.config.dictConfig(conf) except configparser.Error: # TODO: Incidentally, tempfile adds 2M memory, and it is used only # in case of exception. Need to move this elsewhere. import tempfile with tempfile.NamedTemporaryFile(delete=False, mode='w') as f: traceback.print_exc(file=f) click.echo('Error parsing log conf: {name}'.format(name=name), err=True)
Example #3
Source File: easy_install.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def extract_wininst_cfg(dist_filename): """Extract configuration data from a bdist_wininst .exe Returns a configparser.RawConfigParser, or None """ f = open(dist_filename, 'rb') try: endrec = zipfile._EndRecData(f) if endrec is None: return None prepended = (endrec[9] - endrec[5]) - endrec[6] if prepended < 12: # no wininst data here return None f.seek(prepended - 12) tag, cfglen, bmlen = struct.unpack("<iii", f.read(12)) if tag not in (0x1234567A, 0x1234567B): return None # not a valid tag f.seek(prepended - (12 + cfglen)) init = {'version': '', 'target_version': ''} cfg = configparser.RawConfigParser(init) try: part = f.read(cfglen) # Read up to the first null byte. config = part.split(b'\0', 1)[0] # Now the config is in bytes, but for RawConfigParser, it should # be text, so decode it. config = config.decode(sys.getfilesystemencoding()) cfg.readfp(six.StringIO(config)) except configparser.Error: return None if not cfg.has_section('metadata') or not cfg.has_section('Setup'): return None return cfg finally: f.close()
Example #4
Source File: constants.py From ansibullbot with GNU General Public License v3.0 | 5 votes |
def load_config_file(): ''' Load Config File order(first found is used): ENV,CWD,HOME, /etc/ansible ''' p = configparser.ConfigParser() path0 = os.getenv("%s_CONFIG" % PROG_NAME.upper(), None) if path0 is not None: path0 = os.path.expanduser(path0) if os.path.isdir(path0): path0 += "/%s.cfg" % PROG_NAME try: path1 = os.getcwd() + "/%s.cfg" % PROG_NAME except OSError: path1 = None path2 = os.path.expanduser("~/.%s.cfg" % PROG_NAME) path3 = "/etc/%s/%s.cfg" % (PROG_NAME, PROG_NAME) for path in [path0, path1, path2, path3]: if path is not None and os.path.exists(path): try: p.read(path) except configparser.Error as e: print("Error reading config file: \n{0}".format(e)) sys.exit(1) return p, path return None, ''
Example #5
Source File: deploy.py From scrapydweb with GNU General Public License v3.0 | 5 votes |
def parse_scrapy_cfg(self): for (idx, scrapy_cfg) in enumerate(self.scrapy_cfg_list): folder = self.folders[idx] key = '%s (%s)' % (folder, self.modification_times[idx]) project = folder_project_dict.get(key, '') if project: self.projects.append(project) self.logger.debug('Hit %s, project %s', key, project) continue else: project = folder try: # lib/configparser.py: def get(self, section, option, *, raw=False, vars=None, fallback=_UNSET): # projectname/scrapy.cfg: [deploy] project = demo # PY2: get() got an unexpected keyword argument 'fallback' # project = get_config(scrapy_cfg).get('deploy', 'project', fallback=folder) or folder project = get_config(scrapy_cfg).get('deploy', 'project') except ScrapyCfgParseError as err: self.logger.error("%s parse error: %s", scrapy_cfg, err) finally: project = project or folder self.projects.append(project) folder_project_dict[key] = project self.logger.debug('Add %s, project %s', key, project) keys_all = list(folder_project_dict.keys()) keys_exist = ['%s (%s)' % (_folder, _modification_time) for (_folder, _modification_time) in zip(self.folders, self.modification_times)] diff = set(keys_all).difference(set(keys_exist)) for key in diff: self.logger.debug('Pop %s, project %s', key, folder_project_dict.pop(key)) self.logger.debug(self.json_dumps(folder_project_dict)) self.logger.debug('folder_project_dict length: %s', len(folder_project_dict))
Example #6
Source File: easy_install.py From PhonePi_SampleServer with MIT License | 5 votes |
def extract_wininst_cfg(dist_filename): """Extract configuration data from a bdist_wininst .exe Returns a configparser.RawConfigParser, or None """ f = open(dist_filename, 'rb') try: endrec = zipfile._EndRecData(f) if endrec is None: return None prepended = (endrec[9] - endrec[5]) - endrec[6] if prepended < 12: # no wininst data here return None f.seek(prepended - 12) tag, cfglen, bmlen = struct.unpack("<iii", f.read(12)) if tag not in (0x1234567A, 0x1234567B): return None # not a valid tag f.seek(prepended - (12 + cfglen)) init = {'version': '', 'target_version': ''} cfg = configparser.RawConfigParser(init) try: part = f.read(cfglen) # Read up to the first null byte. config = part.split(b'\0', 1)[0] # Now the config is in bytes, but for RawConfigParser, it should # be text, so decode it. config = config.decode(sys.getfilesystemencoding()) cfg.readfp(six.StringIO(config)) except configparser.Error: return None if not cfg.has_section('metadata') or not cfg.has_section('Setup'): return None return cfg finally: f.close()
Example #7
Source File: configuration.py From pycbc with GNU General Public License v3.0 | 5 votes |
def has_option_tags(self, section, option, tags): """ Supplement to ConfigParser.ConfigParser.has_option(). This will search for an option in [section] and if it doesn't find it will also try in [section-tag] for each value in tags. Returns True if the option is found and false if not. Parameters ----------- self : ConfigParser object The ConfigParser object (automatically passed when this is appended to the ConfigParser class) section : string The section of the ConfigParser object to read option : string The ConfigParser option to look for tags : list of strings The names of the subsection to look in, if not found in [section] Returns -------- Boolean Is the option in the section or [section-tag] (for tag in tags) """ try: self.get_opt_tags(section, option, tags) return True except ConfigParser.Error: return False
Example #8
Source File: configloader.py From faces with GNU General Public License v2.0 | 4 votes |
def raw_config_parse(config_filename, parse_subsections=True): """Returns the parsed INI config contents. Each section name is a top level key. :param config_filename: The name of the INI file to parse :param parse_subsections: If True, parse indented blocks as subsections that represent their own configuration dictionary. For example, if the config file had the contents:: s3 = signature_version = s3v4 addressing_style = path The resulting ``raw_config_parse`` would be:: {'s3': {'signature_version': 's3v4', 'addressing_style': 'path'}} If False, do not try to parse subsections and return the indented block as its literal value:: {'s3': '\nsignature_version = s3v4\naddressing_style = path'} :returns: A dict with keys for each profile found in the config file and the value of each key being a dict containing name value pairs found in that profile. :raises: ConfigNotFound, ConfigParseError """ config = {} path = config_filename if path is not None: path = os.path.expandvars(path) path = os.path.expanduser(path) if not os.path.isfile(path): raise botocore.exceptions.ConfigNotFound(path=path) cp = configparser.RawConfigParser() try: cp.read(path) except configparser.Error: raise botocore.exceptions.ConfigParseError(path=path) else: for section in cp.sections(): config[section] = {} for option in cp.options(section): config_value = cp.get(section, option) if parse_subsections and config_value.startswith('\n'): # Then we need to parse the inner contents as # hierarchical. We support a single level # of nesting for now. try: config_value = _parse_nested(config_value) except ValueError: raise botocore.exceptions.ConfigParseError( path=path) config[section][option] = config_value return config
Example #9
Source File: conf.py From osbs-client with BSD 3-Clause "New" or "Revised" License | 4 votes |
def _get_value(self, args_key, conf_section, conf_key, default=None, is_bool_val=False, deprecated=False): # FIXME: this is too bloated: split it into separate classes # and implement it as mixins def get_value_from_kwargs(): return self.kwargs.get(args_key) def get_value_from_cli_args(): return getattr(self.args, args_key, None) def get_value_from_conf(): try: return self.scp.get(conf_section, conf_key) except configparser.Error: return None retrieval_order = [ get_value_from_kwargs, get_value_from_cli_args, get_value_from_conf, ] for func in retrieval_order: value = func() if value is not None: # Only print deprecation warnings for cli or file arguments if deprecated and func in (get_value_from_cli_args, get_value_from_conf): logger.warning("user configuration key '%s' in section '%s' is ignored in " "arrangement %s and later. it has been deprecated in " "favor of the value in the reactor_config_map", args_key, conf_section, REACTOR_CONFIG_ARRANGEMENT_VERSION) break else: # we didn't break return default if is_bool_val: try: int_val = int(value) except ValueError: if value.lower() == 'true': return True return False except TypeError: return False else: return bool(int_val) else: return value
Example #10
Source File: conf.py From osbs-client with BSD 3-Clause "New" or "Revised" License | 4 votes |
def get_oauth2_token(self): # token overrides token_file # either in kwargs overrides cli args # either in cli args overrides conf key_names = ['token', 'token_file'] value = None found_key = None for key in key_names: value = self.kwargs.get(key) if value is not None: found_key = key break if value is None: for key in key_names: value = getattr(self.args, key, None) if value is not None: found_key = key break if value is None: for key in key_names: try: value = self.scp.get(self.conf_section, key) except configparser.Error: pass else: found_key = key break if value is None: instance_token_file = utils.get_instance_token_file_name(self.conf_section) if os.path.exists(instance_token_file): found_key = 'token_file' value = instance_token_file # For token_file, read the file if found_key == 'token_file': token_file = value try: with open(token_file, 'r') as token_fd: value = token_fd.read().strip() except IOError as ex: logger.error("exception caught while reading %s: %r", token_file, ex) return value
Example #11
Source File: collection_rules.py From insights-core with Apache License 2.0 | 4 votes |
def get_rm_conf_old(self): """ Get excluded files config from remove_file. """ # Convert config object into dict self.using_new_format = False parsedconfig = ConfigParser.RawConfigParser() if not self.remove_file: # no filename defined, return nothing logger.debug('remove_file is undefined') return None if not os.path.isfile(self.remove_file): logger.debug('%s not found. No data files, commands,' ' or patterns will be ignored, and no keyword obfuscation will occur.', self.remove_file) return None try: verify_permissions(self.remove_file) except RuntimeError as e: if self.config.validate: # exit if permissions invalid and using --validate raise RuntimeError('ERROR: %s' % e) logger.warning('WARNING: %s', e) try: parsedconfig.read(self.remove_file) sections = parsedconfig.sections() if not sections: # file has no sections, skip it logger.debug('Remove.conf exists but no parameters have been defined.') return None if sections != ['remove']: raise RuntimeError('ERROR: invalid section(s) in remove.conf. Only "remove" is valid.') expected_keys = ('commands', 'files', 'patterns', 'keywords') rm_conf = {} for item, value in parsedconfig.items('remove'): if item not in expected_keys: raise RuntimeError('ERROR: Unknown key in remove.conf: ' + item + '\nValid keys are ' + ', '.join(expected_keys) + '.') if six.PY3: rm_conf[item] = value.strip().encode('utf-8').decode('unicode-escape').split(',') else: rm_conf[item] = value.strip().decode('string-escape').split(',') self.rm_conf = rm_conf except ConfigParser.Error as e: # can't parse config file at all logger.debug(e) logger.debug('To configure using YAML, please use file-redaction.yaml and file-content-redaction.yaml.') raise RuntimeError('ERROR: Cannot parse the remove.conf file.\n' 'See %s for more information.' % self.config.logging_file) logger.warning('WARNING: remove.conf is deprecated. Please use file-redaction.yaml and file-content-redaction.yaml. See https://access.redhat.com/articles/4511681 for details.') return self.rm_conf
Example #12
Source File: config.py From insights-core with Apache License 2.0 | 4 votes |
def _load_config_file(self, fname=None): ''' Load config from config file. If fname is not specified, config is loaded from the file named by InsightsConfig.conf ''' parsedconfig = ConfigParser.RawConfigParser() try: parsedconfig.read(fname or self.conf) except ConfigParser.Error: if self._print_errors: sys.stdout.write( 'ERROR: Could not read configuration file, ' 'using defaults\n') return try: if parsedconfig.has_section(constants.app_name): d = dict(parsedconfig.items(constants.app_name)) elif parsedconfig.has_section('redhat-access-insights'): d = dict(parsedconfig.items('redhat-access-insights')) else: raise ConfigParser.Error except ConfigParser.Error: if self._print_errors: sys.stdout.write( 'ERROR: Could not read configuration file, ' 'using defaults\n') return for key in d: try: if key == 'retries' or key == 'cmd_timeout': d[key] = parsedconfig.getint(constants.app_name, key) if key == 'http_timeout': d[key] = parsedconfig.getfloat(constants.app_name, key) if key in DEFAULT_BOOLS and isinstance( d[key], six.string_types): d[key] = parsedconfig.getboolean(constants.app_name, key) except ValueError as e: if self._print_errors: sys.stdout.write( 'ERROR: {0}.\nCould not read configuration file, ' 'using defaults\n'.format(e)) return self._update_dict(d)
Example #13
Source File: __init__.py From treadmill with Apache License 2.0 | 4 votes |
def handle_exceptions(exclist): """Decorator that will handle exceptions and output friendly messages.""" def wrap(f): """Returns decorator that wraps/handles exceptions.""" exclist_copy = copy.copy(exclist) @functools.wraps(f) def wrapped_f(*args, **kwargs): """Wrapped function.""" if not exclist_copy: f(*args, **kwargs) else: exc, handler = exclist_copy.pop(0) try: wrapped_f(*args, **kwargs) except exc as err: if isinstance(handler, six.string_types): click.echo(handler, err=True) elif handler is None: click.echo(str(err), err=True) else: click.echo(handler(err), err=True) sys.exit(EXIT_CODE_DEFAULT) @functools.wraps(f) def _handle_any(*args, **kwargs): """Default exception handler.""" try: return wrapped_f(*args, **kwargs) except click.UsageError as usage_err: click.echo('Usage error: %s' % str(usage_err), err=True) sys.exit(EXIT_CODE_DEFAULT) except Exception as unhandled: # pylint: disable=W0703 # TODO: see similar comment as to why lazy import tempfile. import tempfile with tempfile.NamedTemporaryFile(delete=False, mode='w') as f: traceback.print_exc(file=f) click.echo('Error: %s [ %s ]' % (unhandled, f.name), err=True) sys.exit(EXIT_CODE_DEFAULT) return _handle_any return wrap
Example #14
Source File: configuration.py From pycbc with GNU General Public License v3.0 | 4 votes |
def get_opt_tags(self, section, option, tags): """ Supplement to ConfigParser.ConfigParser.get(). This will search for an option in [section] and if it doesn't find it will also try in [section-tag] for every value of tag in tags. Will raise a ConfigParser.Error if it cannot find a value. Parameters ----------- self : ConfigParser object The ConfigParser object (automatically passed when this is appended to the ConfigParser class) section : string The section of the ConfigParser object to read option : string The ConfigParser option to look for tags : list of strings The name of subsections to look in, if not found in [section] Returns -------- string The value of the options being searched for """ # Need lower case tag name; also exclude cases with tag=None if tags: tags = [tag.lower() for tag in tags if tag is not None] try: return self.get(section, option) except ConfigParser.Error: err_string = "No option '%s' in section [%s] " %(option,section) if not tags: raise ConfigParser.Error(err_string + ".") return_vals = [] sub_section_list = [] for sec_len in range(1, len(tags)+1): for tag_permutation in itertools.permutations(tags, sec_len): joined_name = '-'.join(tag_permutation) sub_section_list.append(joined_name) section_list = ["%s-%s" %(section, sb) for sb in sub_section_list] err_section_list = [] for sub in sub_section_list: if self.has_section('%s-%s' %(section, sub)): if self.has_option('%s-%s' %(section, sub), option): err_section_list.append("%s-%s" %(section, sub)) return_vals.append(self.get('%s-%s' %(section, sub), option)) # We also want to recursively go into sections if not return_vals: err_string += "or in sections [%s]." \ %("] [".join(section_list)) raise ConfigParser.Error(err_string) if len(return_vals) > 1: err_string += "and multiple entries found in sections [%s]."\ %("] [".join(err_section_list)) raise ConfigParser.Error(err_string) return return_vals[0]
Example #15
Source File: core.py From pycbc with GNU General Public License v3.0 | 4 votes |
def update_current_retention_level(self, value): """Set a new value for the current retention level. This updates the value of self.retain_files for an updated value of the retention level. Parameters ----------- value : int The new value to use for the retention level. """ # Determine the level at which output files should be kept self.current_retention_level = value try: global_retention_level = \ self.cp.get_opt_tags("workflow", "file-retention-level", self.tags+[self.name]) except ConfigParser.Error: msg="Cannot find file-retention-level in [workflow] section " msg+="of the configuration file. Setting a default value of " msg+="retain all files." logging.warn(msg) self.retain_files = True self.global_retention_threshold = 1 self.cp.set("workflow", "file-retention-level", "all_files") else: # FIXME: Are these names suitably descriptive? retention_choices = { 'all_files' : 1, 'all_triggers' : 2, 'merged_triggers' : 3, 'results' : 4 } try: self.global_retention_threshold = \ retention_choices[global_retention_level] except KeyError: err_msg = "Cannot recognize the file-retention-level in the " err_msg += "[workflow] section of the ini file. " err_msg += "Got : {0}.".format(global_retention_level) err_msg += "Valid options are: 'all_files', 'all_triggers'," err_msg += "'merged_triggers' or 'results' " raise ValueError(err_msg) if self.current_retention_level == 5: self.retain_files = True if type(self).__name__ in Executable._warned_classes_list: pass else: warn_msg = "Attribute current_retention_level has not " warn_msg += "been set in class {0}. ".format(type(self)) warn_msg += "This value should be set explicitly. " warn_msg += "All output from this class will be stored." logging.warn(warn_msg) Executable._warned_classes_list.append(type(self).__name__) elif self.global_retention_threshold > self.current_retention_level: self.retain_files = False else: self.retain_files = True
Example #16
Source File: psdfiles.py From pycbc with GNU General Public License v3.0 | 4 votes |
def setup_psd_pregenerated(workflow, tags=None): ''' Setup CBC workflow to use pregenerated psd files. The file given in cp.get('workflow','pregenerated-psd-file-(ifo)') will be used as the --psd-file argument to geom_nonspinbank, geom_aligned_bank and pycbc_plot_psd_file. Parameters ---------- workflow: pycbc.workflow.core.Workflow An instanced class that manages the constructed workflow. tags : list of strings If given these tags are used to uniquely name and identify output files that would be produced in multiple calls to this function. Returns -------- psd_files : pycbc.workflow.core.FileList The FileList holding the gating files ''' if tags is None: tags = [] psd_files = FileList([]) cp = workflow.cp global_seg = workflow.analysis_time user_tag = "PREGEN_PSD" # Check for one psd for all ifos try: pre_gen_file = cp.get_opt_tags('workflow-psd', 'psd-pregenerated-file', tags) pre_gen_file = resolve_url(pre_gen_file) file_url = urljoin('file:', pathname2url(pre_gen_file)) curr_file = File(workflow.ifos, user_tag, global_seg, file_url, tags=tags) curr_file.PFN(file_url, site='local') psd_files.append(curr_file) except ConfigParser.Error: # Check for one psd per ifo for ifo in workflow.ifos: try: pre_gen_file = cp.get_opt_tags('workflow-psd', 'psd-pregenerated-file-%s' % ifo.lower(), tags) pre_gen_file = resolve_url(pre_gen_file) file_url = urljoin('file:', pathname2url(pre_gen_file)) curr_file = File(ifo, user_tag, global_seg, file_url, tags=tags) curr_file.PFN(file_url, site='local') psd_files.append(curr_file) except ConfigParser.Error: # It's unlikely, but not impossible, that only some ifos # will have pregenerated PSDs logging.warn("No psd file specified for IFO %s." % (ifo,)) pass return psd_files