Skip to content

Repository files navigation

Python 3.9 | 3.10 | 3.11 | 3.12 | 3.13 | 3.14Code style: blackpre-commit

pre-commit.ci statusPython tests

commented-configparser


A custom ConfigParser class that preserves comments and most formatting when writing loaded config out.

This library gives you a custom class of the standard library's configparser.ConfigParger which will preserve the comments of a loaded config file when writing that file back out.


Install via pip

From pypi:

python -m pip install commented-configparser

From github:

python -m pip install commented-configparser@git+https://github.com/Preocts/commented-configparser@x.x.x

Note: Replace x.x.x with the desired tag or branch.


Example use

fromcommentedconfigparserimportCommentedConfigParser# Load the config like normalconfig=CommentedConfigParser()
config.read("myconfig.ini")
# Use the config like normal
...
# Update the config like normal
...
# Save the config back to the filewithopen("myconfig.ini", "w") assavefile:
config.write(savefile)

Results

There is the attempt to retain the original format. Known formats that will not be preserved:

  1. Indents will not be preserved outside of multi-line values
  2. Spacing around assignments will be normalized.

Before

# Welcome to our config[DEFAULT]# This value has some meaning to someonefoo=bar
# Make sure to add this when you need ittrace=false
logging=true
; This is a comment as well# so we need to track all of them; and many could be between things[NEW SECTION]# Another commentmultiLine=
value01
value02
value03
closing=0
# Trailing comment

After

# Welcome to our config[DEFAULT]# This value has some meaning to someonefoo = bar
# Make sure to add this when you need ittrace = false
logging = true
; This is a comment as well# so we need to track all of them; and many could be between things[NEW SECTION]# Another commentmultiLine =
value01
value02
value03
closing = 0
# Trailing comment

About

A custom ConfigParser class that preserves comments and most formatting when writing loaded config out.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages