Skip to main content

Simplifies config management with flexible API and formats.

Project description

C41811.Config

English | 中文


支持的python版本 开源许可证 自最新版本以来的 GitHub 提交

文档 文档状态 新手教程 常见问题
PyPI PyPI包版本 PyPI - Wheel PyPI每月下载量
仓库 Github仓库 发布工作流状态
代码质量-主分支 CI状态 CodeCov覆盖率
代码质量-开发分支 CI状态 CodeCov覆盖率

文档太烂看不懂?试试AI文档!(不保证正确)
Ask DeepWiki Ask Zread

提示:点击徽章可转到相应页面。

简介

C41811.Config 旨在通过提供一套简洁的 API 和灵活的配置处理机制,来简化配置文件的管理。无论是简单的键值对配置,还是复杂的嵌套结构,都能轻松应对。它不仅支持多种配置格式,还提供了丰富的错误处理和验证功能,确保配置数据的准确性和一致性。

特性

  • 多格式支持:支持15+配置格式,包括流行的 JSON、YAML、TOML、Pickle 等,满足不同项目的需求。
  • 模块化设计:通过模块化的设计,提供了灵活地扩展机制,开发者可以根据需要添加自定义的配置处理器。
  • 验证功能:支持通过验证器来验证配置数据的合法性,确保配置数据的正确性。
  • 组件配置数据:支持多来源配置数据通过“组件配置数据”实现复杂的继承、覆盖与优先级关系。
  • 易于使用:提供了一套统一简洁的 API 和完善的类型注解支持,开发者可以轻松地加载、修改和保存配置文件。

适用场景

C41811.Config 适用于多种配置管理场景,特别是以下几种情况:

  • 大型项目:允许通过命名空间或配置池隔离项目各部分的配置,使得配置管理更加清晰和有序。
  • 分散的配置文件:通过提供统一的接口和灵活地处理机制,使得分散的配置文件能够被集中管理和访问,提高了配置的效率和一致性。
  • 复杂的数据模型:自动填充缺失的键默认值,并对配置数据进行类型验证,确保配置数据的完整性和准确性。
  • 需要对配置进行复杂操作:提供了 get、setdefault、unset 等方法,简化了对配置数据的复杂操作。
  • 多种配置格式混搭:支持根据文件后缀自动从注册的处理器中推断合适的配置格式,使得不同格式的配置文件可以无缝混用。
  • 动态配置更新:支持在运行时动态更新配置,无需重启应用即可应用新的配置。
  • 类型安全:通过完善的类型注解支持,减少模板代码,确保配置访问的类型安全。

安装

pip install C41811.Config

一个简单的示例

from c41811.config import MappingConfigData
from c41811.config import JsonSL
from c41811.config import requireConfig
from c41811.config import saveAll

JsonSL().register_to()

cfg: MappingConfigData = requireConfig(
    "", "Hello World.json",
    {  # 简单且强大的配置数据验证器
        "Hello": "World",
        "foo": dict,  # 包含foo下的所有键
        "foo\\.bar": {  # foo.bar仅包含baz键
            "baz": "qux"
        }
    }
).check()
saveAll()

print(f"{cfg=}")
print()
print("与dict完全相同的数据访问方式")
print(f"{cfg["Hello"]=}")
print(f"{cfg["foo"]["bar"]=}")
print()
print("通过属性访问数据")
print(f"{cfg.foo=}")
print(f"{cfg.foo.bar.baz=}")
print()
print("通过特殊语法访问数据")
print(f"{cfg.retrieve("foo\\.bar\\.baz")=}")
print()
print("一些常用方法")
print(f"{cfg.unset("foo\\.bar\\.baz").exists("foo\\.bar\\.baz")=}")
print(f"{cfg.get("foo\\.bar\\.baz")=}")
print(f"{cfg.setdefault("foo\\.bar\\.baz","qux")=}")
print(f"{cfg.get("foo\\.bar\\.baz", default="default")=}")
print(f"{cfg.modify("foo\\.bar\\.baz", [1, 2, 3]).retrieve("foo\\.bar\\.baz\\[1\\]")=}")
print(f"{cfg.delete("foo\\.bar\\.baz").get("foo\\.bar\\.baz", default="default")=}")

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

c41811_config-0.3.0.tar.gz (64.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

c41811_config-0.3.0-py3-none-any.whl (87.6 kB view details)

Uploaded Python 3

File details

Details for the file c41811_config-0.3.0.tar.gz.

File metadata

  • Download URL: c41811_config-0.3.0.tar.gz
  • Upload date:
  • Size: 64.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for c41811_config-0.3.0.tar.gz
Algorithm Hash digest
SHA256 05ff59b20e524d7bf808174979bb4b8954d72dd425f437195899fa62659ab22a
MD5 aa3ef1017d0f5517f044b2ef37c2bc39
BLAKE2b-256 29c35ac0e0f9cdd383c204a799bf7ec4c084767fe304916cd585e573ff53fa58

See more details on using hashes here.

Provenance

The following attestation bundles were made for c41811_config-0.3.0.tar.gz:

Publisher: python-publish.yml on C418-11/C41811_Config

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file c41811_config-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: c41811_config-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 87.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for c41811_config-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9c2643c5a1975e990093f0c8a20015a4eabe26c2646ed86be0ae609b3755094
MD5 599fe2b6ed853e7559458c2ebb88322b
BLAKE2b-256 2691508c25fd935a38059b17e44630b15d3966f9d9a2e21ace162d655a43e6bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for c41811_config-0.3.0-py3-none-any.whl:

Publisher: python-publish.yml on C418-11/C41811_Config

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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