Skip to main content

A pure-Python libconfig reader with permissive license

Project description

libconf is a pure-Python reader for configuration files in libconfig format, which is often used in C/C++ projects. It’s interface is similar to the json module: the two main methods are load() and loads().

Example usage:

import libconf
>>> with open('example.cfg') as f:
...     config = libconf.load(f)
>>> config
{'capabilities': {'can-do-arrays': [3, 'yes', True],
                  'can-do-lists': (True,
                                   14880,
                                   ('sublist',),
                                   {'subgroup': 'ok'})},
 'version': 7,
 'window': {'position': {'h': 600, 'w': 800, 'x': 375, 'y': 210},
            'title': 'libconfig example'}}

>>> config['window']['title']
'libconfig example'
>>> config.window.title
'libconfig example'

The data can be accessed either via indexing (['title']) or via attribute access .title.

Comparison to other Python libconfig libraries

Pylibconfig2 is another pure-Python libconfig reader. It’s API is based on the C++ interface, instead of the Python json module. It’s licensed under GPLv3, which makes it unsuitable for use in a large number of projects.

Python-libconfig is a library that provides Python bindings for the libconfig++ C++ library. While permissively licensed (BSD), it requires a compilation step upon installation, which can be a drawback.

I wrote libconf (this library) because both of the existing libraries didn’t fit my requirements. I had a work-related project which is not open source (ruling out pylibconfig2) and I didn’t want the deployment headache of python-libconfig. Further, I enjoy writing parsers and this seemed like a nice opportunity :-)

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

libconf-0.9.2.zip (13.9 kB view details)

Uploaded Source

Built Distribution

libconf-0.9.2-py2.py3-none-any.whl (8.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file libconf-0.9.2.zip.

File metadata

  • Download URL: libconf-0.9.2.zip
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for libconf-0.9.2.zip
Algorithm Hash digest
SHA256 eb279776b6ac3c46e4143120700ef9aee00191594e2e5c542ac084f11daa4624
MD5 6b9577344897290025e25ee5813e7433
BLAKE2b-256 4344bd17556a5179bdf8d2859bc3ac75df77ced3170c2d5ca26b81084157cc62

See more details on using hashes here.

Provenance

File details

Details for the file libconf-0.9.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for libconf-0.9.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cb77c938405c212d666853cb80b54255972897857cd7d6da6acf96037a3f9f30
MD5 54bb6e2064a1816f5a932826759fb1a8
BLAKE2b-256 7e02313d2459be1c660a7b476fadd031141c89ef5e0d8e628ea93def7f0f9b2f

See more details on using hashes here.

Provenance

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