Erbsland Configuration Parser for Python
Welcome to the implementation of the Erbsland Configuration Language Parser—a modern and robust configuration parser built for Python 3.12 and beyond. This implementation is designed to be secure, minimal in dependencies, and easy to integrate into your existing projects.
All you need is a Python 3.12 or newer – there are no external dependencies, no hassle.
Project Status
- Fully implements the Erbsland Configuration Language.
- Thoroughly tested and stable for use in productive development.
- The API is stable.
- The documentation covers the most important features.
Installation
pip install erbsland-conf
Quick Start
Minimal Example:
import erbsland.conf as elcl
doc = elcl.load("config.elcl")
print(doc.get_int("server.port"))
A More Realistic Example:
import erbsland.conf as elcl
def parse_configuration(file_name: str):
doc = elcl.load(file_name)
# Access required values and check the type.
server_name = doc.get_text("main.server.name")
# Provide a default if the value is optional.
port = doc.get_int("main.server.port", default=8080)
# Iterating over section lists naturally.
for client_value in doc["client"]:
name = client_value.get_text("name")
ip = client_value.get_text("ip")
port = client_value.get_int("port", default=9000)
# Reading values from optional sections.
if filter_value := client_value.get("filter", default=None):
# Requiring lists of specific types.
keywords = filter_value.get_list("keywords", str)
# ...
# ...
# ...
def main():
try:
parse_configuration("quick-intro.elcl")
# ... running the application ...
exit(0)
except elcl.Error as e:
print("Error reading the configuration.")
print(e.to_text(elcl.ErrorOutput.FILENAME_ONLY | elcl.ErrorOutput.USE_LINES))
exit(1)
if __name__ == "__main__":
main()
Documentation
Please read the documentation for more information about the parser and its features:
👉 Erbsland Configuration Parser Documentation
About the Erbsland Configuration Language
The Erbsland Configuration Language is a human-friendly format designed for writing clear and structured configuration files. It combines a strict, well-defined syntax with flexibility in formatting, making configurations easier to read and maintain.
Here’s an example of a configuration file in a more descriptive style:
# Comments are allowed almost everywhere.
---[ Main Settings ] -------------------- # A section
App Name : "ELCL Demo" # Name-Value Pair with Text Value
Version : 1 # Name-Value Pair with Integer Value
And the same data in a minimal style:
[main_settings]
app_name: "ELCL Demo"
version: 1
Supported data types include text, integer, floating-point, boolean, date, time, datetime, time-delta, regular expressions, code, and byte sequences. These can be grouped into sections, nested via name paths, or organized into lists.
A detailed language specification is available here:
👉 Erbsland Configuration Language Documentation
Requirements
- Python 3.12 or newer.
License
Copyright © 2025 Tobias Erbsland / Erbsland DEV – https://erbsland.dev/
Licensed under the Apache License, Version 2.0. You may obtain a copy at: http://www.apache.org/licenses/LICENSE-2.0 Distributed on an “AS IS” basis, without warranties or conditions of any kind. See the LICENSE file for full details.
Metadata
Release files for erbsland-conf 1.0.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| erbsland_conf-1.0.10.tar.gz | 163.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| erbsland_conf-1.0.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 262.3 kB
Release files / erbsland_conf-1.0.10.tar.gz
| Download URL | erbsland_conf-1.0.10.tar.gz |
|---|---|
| Size | 163.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
14773b168cb2b6ab87219465a52b44a3f30aa51343d00810501379c243228a6a
|
|
BLAKE2b-256 checksum How to use checksums |
472d8cb6e57bf01bbb105dd5d225eb2fa3a03dae7e6fc853ffb6a89486db91bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / erbsland_conf-1.0.10-py3-none-any.whl
| Download URL | erbsland_conf-1.0.10-py3-none-any.whl |
|---|---|
| Size | 98.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9a1e347fd33d778cba52210edd83c59b6d241b69761c6f0c72a2528cb072859c
|
|
BLAKE2b-256 checksum How to use checksums |
1e01f6d2f513876c5eb4c480ab49b053f839a6afacebf19a21a076a18a38f228
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency log