我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用six.moves.configparser.RawConfigParser()。
def load(path=None): """ Will load the configuration from a INI file or the environment :param path: The configuration file path """ global _config if path: config = configparser.RawConfigParser() config.read(path) for section_key, section_content in _config.items(): for config_key in section_content.keys(): if path: _config[section_key][config_key] = config.get( section_key, config_key ) or os.getenv(config_key, _DEFAULTS.get(config_key, '')) else: _config[section_key][config_key] = os.getenv( config_key, _DEFAULTS.get(config_key, '') )
def get_ipa_conf(): """ Return IPA configuration read from /etc/ipa/default.conf :returns: dict containing key,value """ parser = RawConfigParser() parser.read(paths.IPA_DEFAULT_CONF) result = dict() for item in ['basedn', 'realm', 'domain', 'server', 'host', 'xmlrpc_uri']: if parser.has_option('global', item): value = parser.get('global', item) else: value = None if value: result[item] = value return result
def save_to_config_file(props, save_on_global=False): """Save properties to a config file. Args: props (:class:`dict`): A :class:`dict` of properties. save_on_global (bool): A flag whether or not a new configuration will be saved globaly. """ config = configparser.RawConfigParser() for section, entries in list(props.items()): config.add_section(section) for key, value in list(entries.items()): config.set(section, key, value) if save_on_global: if not os.path.exists(GLOBAL_CONFIG_DIRECTORY): os.mkdir(GLOBAL_CONFIG_DIRECTORY) with open(os.path.join(GLOBAL_CONFIG_DIRECTORY, CONFIG_FILE_NAME), mode=FILE_WRITE_MODE) as configfile: config.write(configfile) else: with open(os.path.join(LOCAL_CONFIG_DIRECTORY, CONFIG_FILE_NAME), mode=FILE_WRITE_MODE) as configfile: config.write(configfile)
def __init__(self, *args, **kwargs): super(FunctionalTest, self).__init__(*args, **kwargs) self.emailer_config = configparser.RawConfigParser() self.emailer_config.read(os.path.join(__HERE__, 'config/kinto.ini')) # Setup the kinto clients for the source and destination. self._auth = DEFAULT_AUTH self._server_url = SERVER_URL self._bucket = "emailer" self._collection = "collection1" self.client = Client( server_url=self._server_url, auth=self._auth, bucket=self._bucket, collection=self._collection)
def search_boto_config(**kwargs): """ Look for credentials in boto config file. """ credentials = access_key = secret_key = None if 'BOTO_CONFIG' in os.environ: paths = [os.environ['BOTO_CONFIG']] else: paths = ['/etc/boto.cfg', '~/.boto'] paths = [os.path.expandvars(p) for p in paths] paths = [os.path.expanduser(p) for p in paths] cp = configparser.RawConfigParser() cp.read(paths) if cp.has_section('Credentials'): access_key = cp.get('Credentials', 'aws_access_key_id') secret_key = cp.get('Credentials', 'aws_secret_access_key') if access_key and secret_key: credentials = Credentials(access_key, secret_key) return credentials
def get_config(path=None): # type: (str) -> RawConfigParser """ Returns a ConfigParser with our current configuration. """ if path is None: path = default_config_path() defaults = { 'base_url': 'https://www.getcloak.com/', } config = RawConfigParser(defaults) config.read([path]) if not config.has_section('serverapi'): config.add_section('serverapi') return config
def _do_nothing(string): """ Make the ConfigParser case sensitive. Defines an optionxform for the units configparser that does nothing, resulting in a case-sensitive parser. Parameters ---------- string : str The string to be transformed for the ConfigParser Returns ------- str The same string that was given as a parameter. """ return string
def update_library(filename): """ Update units in current library from `filename`. Parameters ---------- filename : string or file Source of units configuration data. """ if isinstance(filename, basestring): inp = open(filename, 'rU') else: inp = filename try: cfg = ConfigParser() cfg.optionxform = _do_nothing cfg.readfp(inp) _update_library(cfg) finally: inp.close()
def _check_file(self): """ Check if the file exists and has the expected password reference. """ if not os.path.exists(self.file_path): return False self._migrate() config = configparser.RawConfigParser() config.read(self.file_path) try: config.get( escape_for_ini('keyring-setting'), escape_for_ini('password reference'), ) except (configparser.NoSectionError, configparser.NoOptionError): return False try: self._check_scheme(config) except AttributeError: # accept a missing scheme return True return self._check_version(config)
def _write_config_value(self, service, key, value): # ensure the file exists self._ensure_file_path() # load the keyring from the disk config = configparser.RawConfigParser() config.read(self.file_path) service = escape_for_ini(service) key = escape_for_ini(key) # update the keyring with the password if not config.has_section(service): config.add_section(service) config.set(service, key, value) # save the keyring back to the file with open(self.file_path, 'w') as config_file: config.write(config_file)
def delete_password(self, service, username): """Delete the password for the username of the service. """ service = escape_for_ini(service) username = escape_for_ini(username) config = configparser.RawConfigParser() if os.path.exists(self.file_path): config.read(self.file_path) try: if not config.remove_option(service, username): raise PasswordDeleteError("Password not found") except configparser.NoSectionError: raise PasswordDeleteError("Password not found") # update the file with open(self.file_path, 'w') as config_file: config.write(config_file)
def _load_config(): # Don't load in global context, since we can't assume # these modules are accessible when distutils uses # this module from six.moves import configparser from oslo_config import cfg from oslo_log import log as logging global loaded, MONITORS_VENDOR, MONITORS_PRODUCT, MONITORS_PACKAGE if loaded: return loaded = True cfgfile = cfg.CONF.find_file("release") if cfgfile is None: return try: cfg = configparser.RawConfigParser() cfg.read(cfgfile) if cfg.has_option("Masakarimonitors", "vendor"): MONITORS_VENDOR = cfg.get("Masakarimonitors", "vendor") if cfg.has_option("Masakarimonitors", "product"): MONITORS_PRODUCT = cfg.get("Masakarimonitors", "product") if cfg.has_option("Masakarimonitors", "package"): MONITORS_PACKAGE = cfg.get("Masakarimonitors", "package") except Exception as ex: LOG = logging.getLogger(__name__) LOG.error("Failed to load %(cfgfile)s: %(ex)s", {'cfgfile': cfgfile, 'ex': ex})
def read_config(): """Reads configuration storj client configuration. Mac OS X (POSIX): ~/.foo-bar Unix (POSIX): ~/.foo-bar Win XP (not roaming): ``C:\Documents and Settings\<user>\Application Data\storj`` Win 7 (not roaming): ``C:\\Users\<user>\AppData\Local\storj`` Returns: (tuple[str, str]): storj account credentials (email, password). """ # OSX: /Users/<username>/.storj cfg = os.path.join( click.get_app_dir( APP_NAME, force_posix=True), 'storj.ini') parser = RawConfigParser() parser.read([cfg]) return parser.get(APP_NAME, CFG_EMAIL), parser.get(APP_NAME, CFG_PASSWORD)
def edit_config(filename, settings, dry_run=False): """Edit a configuration file to include `settings` `settings` is a dictionary of dictionaries or ``None`` values, keyed by command/section name. A ``None`` value means to delete the entire section, while a dictionary lists settings to be changed or deleted in that section. A setting of ``None`` means to delete that setting. """ log.debug("Reading configuration from %s", filename) opts = configparser.RawConfigParser() opts.read([filename]) for section, options in settings.items(): if options is None: log.info("Deleting section [%s] from %s", section, filename) opts.remove_section(section) else: if not opts.has_section(section): log.debug("Adding new section [%s] to %s", section, filename) opts.add_section(section) for option, value in options.items(): if value is None: log.debug( "Deleting %s.%s from %s", section, option, filename ) opts.remove_option(section, option) if not opts.options(section): log.info("Deleting empty [%s] section from %s", section, filename) opts.remove_section(section) else: log.debug( "Setting %s.%s to %r in %s", section, option, value, filename ) opts.set(section, option, value) log.info("Writing %s", filename) if not dry_run: with open(filename, 'w') as f: opts.write(f)
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()
def __init__(self): """ Load from ~/.pypirc """ defaults = dict.fromkeys(['username', 'password', 'repository'], '') configparser.RawConfigParser.__init__(self, defaults) rc = os.path.join(os.path.expanduser('~'), '.pypirc') if os.path.exists(rc): self.read(rc)
def test_get_configparser(m, test_conf_dir): conf_filename = os.path.join(test_conf_dir, 'example.conf') conf_d_dir = os.path.join(test_conf_dir, 'example.conf.d') parser = get_configparser(conf_filename) assert isinstance(parser, configparser.RawConfigParser) assert parser.get('DEFAULT', 'test_option') == 'bar' assert m.mock_calls == [ mock.call.info("Found config '%s'", conf_filename), mock.call.info("Found config '%s'", os.path.join(conf_d_dir, '10-app.conf')), mock.call.info("Found config '%s'", os.path.join(conf_d_dir, '20-database.conf')), ]
def test_get_configparser_no_conf_d_dir(m, test_conf_dir): conf_filename = os.path.join(test_conf_dir, 'example2.conf') parser = get_configparser(conf_filename) assert isinstance(parser, configparser.RawConfigParser) assert parser.get('DEFAULT', 'test_option') == 'baz' expected = [ mock.call.info("Found config '%s'", conf_filename), ] assert m.mock_calls == expected
def test_get_configparser_warn(m, test_conf_dir): conf_filename = os.path.join(test_conf_dir, 'example.conf') parser = get_configparser(conf_filename) assert isinstance(parser, configparser.RawConfigParser) assert parser.get('DEFAULT', 'test_option') == 'baz' assert m.mock_calls == [ mock.call.info("Found config '%s'", conf_filename), mock.call.info("Found config '%s'", 'abc'), mock.call.warning("Error while parsing config '%s'", 'abc'), ]
def get_ipa_conf(): # Extract basedn, realm and domain from /etc/ipa/default.conf parser = RawConfigParser() parser.read(paths.IPA_DEFAULT_CONF) basedn = parser.get('global', 'basedn') realm = parser.get('global', 'realm') domain = parser.get('global', 'domain') return dict( basedn=basedn, realm=realm, domain=domain )
def load_from_config_file(config_directories=None): """Load properties from a config file. Args: config_directories (:class:`list` of :class:`str`): A path to config directory having 'config'. If not specified, locating 'config' on `GLOBAL_CONFIG_DIRECTORY` and `LOCAL_CONFIG_DIRECTORY`. Returns: A :class:`dict` of properties loaded from a config file. example:: { 'section': { 'key1': 'value1', 'key2': 'value2' } } """ if config_directories is None: config_directories = [GLOBAL_CONFIG_DIRECTORY, LOCAL_CONFIG_DIRECTORY] props = {} config = configparser.RawConfigParser() config.read([os.path.join(config_directory, CONFIG_FILE_NAME) for config_directory in config_directories]) for section in config.sections(): for key, value in config.items(section): if section not in props: props[section] = {} props[section][key] = value return props
def build_clue_api_client_from_default_test_config(): cfg = configparser.RawConfigParser() cfg.read(config_filepath) cao = clue_api_client.ClueApiClient(base_url=cfg.get(config_section, "clue_api_url"), user_key=cfg.get(config_section, "clue_api_user_key")) return cao
def raw_config_parse(config_filename): """Returns the parsed INI config contents. Each section name is a top level key. :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 kscore.exceptions.ConfigNotFound(path=path) cp = configparser.RawConfigParser() try: cp.read(path) except configparser.Error: raise kscore.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 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 kscore.exceptions.ConfigParseError( path=path) config[section][option] = config_value return config
def search_file(**kwargs): """ If the 'AWS_CREDENTIAL_FILE' environment variable exists, parse that file for credentials. """ credentials = None if 'AWS_CREDENTIAL_FILE' in os.environ: persona = kwargs.get('persona', 'default') access_key_name = kwargs['access_key_name'] secret_key_name = kwargs['secret_key_name'] access_key = secret_key = None path = os.getenv('AWS_CREDENTIAL_FILE') path = os.path.expandvars(path) path = os.path.expanduser(path) cp = configparser.RawConfigParser() cp.read(path) if not cp.has_section(persona): raise ValueError('Persona: %s not found' % persona) if cp.has_option(persona, access_key_name): access_key = cp.get(persona, access_key_name) else: access_key = None if cp.has_option(persona, secret_key_name): secret_key = cp.get(persona, secret_key_name) else: secret_key = None if access_key and secret_key: credentials = Credentials(access_key, secret_key) return credentials