Skip to main content

An ini parser/serializer in Python

Project description

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())

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)

Decode the ini-style formatted inistring into a nested object.

parse(inistring)

Alias for decode(inistring)

encode(object, [options])

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 persnickety old parsers that don't tolerate it well. But some find that it's more human-readable and pretty with the whitespace.

If a string options is passed in, then it is assumed to be the section value.

stringify(object, [options])

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ini-parser-1.2.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

ini_parser-1.2.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file ini-parser-1.2.1.tar.gz.

File metadata

  • Download URL: ini-parser-1.2.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for ini-parser-1.2.1.tar.gz
Algorithm Hash digest
SHA256 dea0d0ec1e76cbe59abce71df7286fa5c75c983ed2a2773d070384bdc6870720
MD5 16d2a316d8d97b14195b7e53ddba9f01
BLAKE2b-256 791d2354ec941e9516c09a761a4633629ea404995e478df2bd0d59b2316a367b

See more details on using hashes here.

File details

Details for the file ini_parser-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: ini_parser-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for ini_parser-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 46ace1076aeea50c7d1e60f6b7d51a52a725cebebcd1887289371ad794f227f4
MD5 b4b33ea54213abfe801ab62e2c558745
BLAKE2b-256 2e44f4113a88e7ce1189daf7a163ce9f6dd0099c55355bfaf82659ce9420af40

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page