Pre-release
This release is a pre-release and may not be stable for production use.
Comprehensive Configuration
A simple configuration library that lets you create a pydantic-like model for your configuration.
Installation
pip install comprehensiveconfig
Features
- Supports static type checking
- toml writer
- json writer
- Number Fields
- Text Fields (with regex filtering)
- List fields
- Table fields
- TableSpec (Model) fields
- Sections
- Include doc comments in Section
- auto loading
- initialize default config (with auto loader)
- yaml writer
- Tests targetting mypy and other static type checkers to ensure EVERYTHING looks good across IDE's
- section list (via a Table field)
- Field type unions (overwriting normal union syntax)
- per attribute doc comments (inline and noninline)
- enum support (Via
spec.ConfigEnumand python'senum.Enum) - fully supported string escapes
Example (Python)
# example.py
from comprehensiveconfig import ConfigSpec
from comprehensiveconfig.spec import Section, Integer, Float, Text, List
from comprehensiveconfig.toml import TomlWriter
class MyConfigSpec(ConfigSpec,
default_file="myconfig.toml",
writer=TomlWriter,
create_file=True):
class MySection(Section, name="My_Section"):
some_field = Integer(10)
other_field = Text("Some Default Text")
class SubSection(Section):
'''An example Sub Section'''
x = Integer(10)
class Credentials(Section):
'''Example credentials section'''
email = Text("example@email.com", regex=r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")
password = Text("MyPassword")
some_field = Float(6.9)
list_of_stuff = List(["12", "13", "14"], inner_type=Text())
# Accessing values from globally loaded config (if one exists, otherwise it accesses the actual Field class)
print(MyConfigSpec.some_field)
print(MyConfigSpec.MySection.other_field)
# Another way to open configuration
second_config = MyConfigSpec.load("another_config.toml", TomlWriter)
Example (toml output)
some_field = 6.9
list_of_stuff = ["12", "13", "14"]
[My_Section]
some_field = 10
other_field = "Some Default Text"
[My_Section.SubSection]
# An example Sub Section
x = 10
[Credentials]
# Example credentials section
email = "example@email.com"
password = "MyPassword"
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file comprehensiveconfig-1.1.4b0.tar.gz.
File metadata
- Download URL: comprehensiveconfig-1.1.4b0.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60864aa7fa091ee01f5c00c375f475fd3f00f34053604371ebea0b386ea33c41
|
|
| MD5 |
c5dde98136b8819c7559eff527910d3c
|
|
| BLAKE2b-256 |
656474fff256f5b3b62658a48665f5262de51b0fecdf346271df4722da9a1034
|
File details
Details for the file comprehensiveconfig-1.1.4b0-py3-none-any.whl.
File metadata
- Download URL: comprehensiveconfig-1.1.4b0-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62e26bfd46c2d107ee6ba46da605350edfc5b7a931eca9aa3cb495d79bcbf349
|
|
| MD5 |
1a5f84819b4c848269da5355227bb519
|
|
| BLAKE2b-256 |
9b53f87ffd6a073bf4589d363dfc518854a439468ac46647f779f0a695a1041f
|