Skip to main content

ConfigRW

ConfigRW is a simple python module which read and write config files based on key-value or INI-structure.

Key features

  • Maximum preserves formatting of the source file (indents, spaces, comments, etc)
  • Support non-section (for access for simple config files based on key-value)
  • Inserting an option on an arbitrary string in the section
  • Support multiple values of option
  • Support options without values
  • Support comments in a section
  • Support indentation for options, values
  • Secure file rewriting. Using *.new file on write, then renamed to original filename

Installation

Installation package to user python-library directory:

$ pip install --user configrw

Or you can install package to global system directory of python libraries (not recommended):

$ sudo pip install configrw

Documentation

You can find a full manual on how to use ConfigRW at readthedocs

Quick start

In next examples we will use the following INI file:

# This is comment
this is option = this is value
second option  = -100

[ SECTION1 ] # comment
    option1 = 100
    option2 = 200
    # comment
    option3 = 1.2

[ section2 ]
    param1 = 'str'
    param2 = 0 # comment
    parameter_without_value

[section3]
    extensions =
        # comment1
        ext1
        # comment2
        ext2
        ext3

Access to non-section area

This is features needed if you want use simple key-value of config file

from configrw import Config

config = Config.from_file('/path/to/file')

section = config[None]             # Getting non-section
value = section['this is option']  # Getting the value
section['this is option'] = None   # Setting the value
del section['second option']       # Deleting the option

Access to section area

This is features needed if you want use INI config file

value = config['SECTION1']['option2']       # Getting the value
config['SECTION1']['option2'] = 0           # Setting the value
config['SECTION1']['option3'] = 300         # Adding new option to section

config['section3']['extensions'].append('ext4')     # Adding new value to multiple values
config['section3']['extensions'].insert('ext0', 0)  # Inserting new value
config['section3']['extensions'][0] = 'extension0'  # Changing single value of multiple values

config.write('/path/to/file')               # Saving config to file

# Render config to screen
for line in config.to_text():
    print(line)

INI-file after changes:

# This is comment
this is option

[ SECTION1 ] # comment
    option1 = 100
    option2 = 0
    # comment
    option3 = 300

[ section2 ]
    param1 = 'str'
    param2 = 0 # comment
    parameter_without_value

[section3]
    extensions =
        extension0
        # comment1
        ext1
        # comment2
        ext2
        ext3
        ext4

Download files

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

Source Distribution

configrw-1.1.0.tar.gz (5.5 kB view details)

Uploaded Source

File details

Details for the file configrw-1.1.0.tar.gz.

File metadata

  • Download URL: configrw-1.1.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for configrw-1.1.0.tar.gz
Algorithm Hash digest
SHA256 7874e5c4ae48c19af945f6ad1cc9a713e56911f0ca5b77e8a12c99106101bcff
MD5 ca3d9d0e9f2fcba41f5e4ac436eb245a
BLAKE2b-256 0d774cca6c5aabaaee9224d533199026cb9af7e287870ee0d73445cd9282ca99

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 file

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page