Parse configuration files and extract values from them
Project description
confget - parse configuration files
The confget
library parses configuration files (currently INI-style
files only) and allows a program to use the values defined in them.
It provides various options for selecting the variable names and
values to return and the configuration file sections to fetch them from.
The confget
library may also be used as a command-line tool with
the same interface as the C implementation.
The confget
library is fully typed.
Specifying configuration values for the backends
The confget.defs
module defines the Config
class that is used to
control the behavior of the various confget
backends. Its main
purpose is to specify the filename and, optionally, the section name for
INI-style files, but other backends may use its fields in different ways.
A Config
object is created using the following parameters:
- a list of variable names to query (may be empty)
filename
(str, optional): the name of the file to opensection
(str, default ""): the name of the section within the filesection_specified
(bool, default false): ifsection
is an empty string, only fetch variables from the unnamed section at the start of the file instead of defaulting to the first section in the file
Parsing INI-style configuration files
The confget
library's "ini" backend parses an INI-style configuration
file. Its read_file()
method parses the file and returns a dictionary
of sections and the variables and their values within them:
import confget
cfg = confget.Config([], filename='config.ini')
ini = confget.BACKENDS['ini'](cfg)
data = ini.read_file()
print('Section names: {names}'.format(names=sorted(data.keys())))
print(data['server']['address'])
Letting variables in a section override the default ones
In some cases it is useful to have default values before the first named section in a file and then override some values in various sections. This may be useful for e.g. host-specific configuration kept in a section with the same name as the host.
The format
module in the confget
library allows, among other
filtering modes, to get the list of variables with a section
overriding the default ones:
from confget import backend, format
cfg = format.FormatConfig(['foo'], filename='config.ini', section='first',
section_override=True)
ini = backend.BACKENDS['ini'](cfg)
data = ini.read_file()
res = format.filter_vars(cfg, data)
assert len(res) == 1, repr(res)
print(res[0].output_full)
cfg = format.FormatConfig(['foo'], filename='config.ini', section='second',
section_override=True)
ini = backend.BACKENDS['ini'](cfg)
data = ini.read_file()
res = format.filter_vars(cfg, data)
assert len(res) == 1, repr(res)
print(res[0].output_full)
See the documentation of the FormatConfig
class and the filter_vars()
function in the confget.format
module for more information and for
a list of the various other filtering modes, all supported when
the library is used as a command-line tool.
Comments: Peter Pentchev roam@ringlet.net
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file confget-5.1.2.tar.gz
.
File metadata
- Download URL: confget-5.1.2.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e907efa55e89d6d0e69cbcd40d480dddeb09b482face4ad7c157debbcc13445 |
|
MD5 | 30ddbb0e040aa558c7cf7c07d8c14815 |
|
BLAKE2b-256 | 6a1bc2843915d5f8c8b1c4fe3d2be2273e43a990848045b1849ccd282982843c |
File details
Details for the file confget-5.1.2-py3-none-any.whl
.
File metadata
- Download URL: confget-5.1.2-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7eebf4abc8a3343417a8afff19407320a9d97fbfba482f72283f61a609149d7f |
|
MD5 | cc7a9caa87d2f5f5f3e4909d68d3d7ce |
|
BLAKE2b-256 | ad96f1d390532f22b896276f779846061c85a41406758adeb1c71b819ec92df5 |