ini-parser
An ini format parser and serializer for Python.
Sections are treated as nested dictionaries. Items before the first heading are saved on the object directly.
Usage
Consider an ini-file config.ini that looks like this:
; this comment is being ignored
scope = global
[database]
user = dbuser
password = dbpassword
database = use_this_database
[paths.default]
datadir = /var/lib/data
array[] = first value
array[] = second value
array[] = third value
You can read, manipulate and write the ini-file like so:
import ini
config = ini.parse(open('config.ini').read(), preserve_comments=True)
config['scope'] = 'local'
config['database']['database'] = 'use_another_database'
config['paths']['default']['tmpdir'] = '/tmp'
del config['paths']['default']['datadir']
config['paths']['default']['array'].append('fourth value')
with open('config_modified.ini', 'w+') as f:
f.write(ini.stringify(config, section='section'))
This will result in a file called config_modified.ini being written to the filesystem with the following content:
[section]
scope = local
[section.database]
user = dbuser
password = dbpassword
database = use_another_database
[section.paths.default]
array[] = first value
array[] = second value
array[] = third value
array[] = fourth value
tmpdir = /tmp
API
decode(inistring, on_empty_key=None, preserve_comments=True)
Decode the ini-style formatted inistring into a nested object.
on_empty_key: Value to use when a key with no value is encountered during parsing. If set, any key in the INI file that lacks a value will be assigned this value.preserve_comments: Boolean to specify whether to preserve comments when parsing. If set toTrue, comments will be included in the output and parsed from the input. Default isFalse.
parse(inistring, on_empty_key=None, preserve_comments=True)
Alias for decode(inistring)
encode(object, section=None, whitespace=True)
Encode the object object into an ini-style formatted string. If the
optional parameter section is given, then all top-level properties
of the object are put into this section and the section-string is
prepended to all sub-sections, see the usage example above.
The options object may contain the following:
section- A string which will be the first section in the encoded ini data. Defaults to none.whitespace- Boolean to specify whether to put whitespace around the=character. By default, whitespace is omitted, to be friendly to some older parsers. If set toTrue, whitespace will be added for readability.
stringify(object, section=None, whitespace=True)
Alias for encode(object, [options])
safe(val)
Escapes the string val such that it is safe to be used as a key or
value in an ini-file. Basically escapes quotes. For example
ini.safe('"unsafe string"')
would result in
"\"unsafe string\""
unsafe(val)
Unescapes the string val
Metadata
Release files for ini-parser 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ini_parser-2.0.1.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ini_parser-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.2 kB
Release files / ini_parser-2.0.1.tar.gz
| Download URL | ini_parser-2.0.1.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b4ec5176aebaa912d84af9f9d5b587cd4444f3e8b3432e66a6f7e6ca6e50c3d9
|
|
BLAKE2b-256 checksum How to use checksums |
96e2febbd0a64b63d9cb2dcb1a373339fcffe51390a79e76b885a1492d91e4fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / ini_parser-2.0.1-py3-none-any.whl
| Download URL | ini_parser-2.0.1-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
91e5db1360b33a0a9a0852de74fdad508c7683e6b4dd1c74faa4ce1d7c13e23e
|
|
BLAKE2b-256 checksum How to use checksums |
a3912de657aca501f255d79399d360aeb88987f8ece8bdfdc645a65cc742557f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|