Skip to main content

配置文件管理库

项目描述

<nav class="contents" id="table-of-contents" role="doc-toc">

目录

</nav>

概述

kon是一个非常简单的配置文件管理系统,它解析路径中的一个或多个配置文件,并提供可以直接访问的对象树。它还尝试将数据解析为具体类型,这样您就不必显式获取特定类型,仅针对INI文件。这确实引入了一些与 python 中默认实现的约束和偏差,但便利通常是值得的。此外,可以覆盖此行为。kon 目前只处理INIJSON文件。

安装

使用pip安装扩展:

$ pip install kon

easy_install

$ easy_install kon

用法

基本用法

您可以通过调用其构造函数来实例化KConfig对象:

from kon import Konfig

cfg = Konfig('/path/to/folder/or/ini-file')
# this can also accept options for loading by handlers
cfg.load()

load 方法将尝试根据文件扩展名获取适当的文件处理程序。如果不存在,它将跳过该文件。文件处理程序使用您可能希望提供配置的任何默认值进行实例化。对于每个文件处理程序,它然后调用实例的加载方法。此方法可以接受处理程序特定的加载选项。当前支持的处理程序及其行为记录在下面。

如果要指定默认参数,可以将它们作为关键字参数传递给构造函数,然后将它们传递给用于加载文件的文件处理程序。

from kon import Konfig

cfg = Konfig('/path/to/folder/or/ini-file', a=1, b=2.2, c=False)
cfg.load()

加载行为

load方法做了几件事。

  • 它将从您在构造函数调用中提供的根目录开始遍历目录树,并在每个目录中创建对象。

  • 一旦遇到文件,它将尝试获取该类型文件的文件处理程序。

  • 如果它无法获取文件处理程序,则将跳过该文件。

  • 如果它可以获取文件处理程序,它将实例化它,将它传递给它获得的默认值,然后调用它的 加载方法并传递它获得的任何参数。

例如,如果您有如下目录树:

kon
├── a.ini
├── b
│   ├── c.ini
│   ├── d.json
│   ├── e
│   │   └── e.ini
│   ├── g.json
│   └── h.ini
├── i.ini
├── j.ini
└── k.ini

load 在调用处理程序load之前创建的相应对象树将与上面的树完全一样,没有文件扩展名。

如果您有相同前缀的文件夹和文件,例如:

kon
├── a.ini
└── a.ini
    └── c.ini

它将导致一个对象 kon.a 与合并的子孩子。

JSON文件处理程序

此处理程序解析它在指定路径中找到的JSON文件,或者解析在指定路径中找到的单个文件。在内部,它委托给默认的 python json库。

选项

保存案例

如果设置为false,则将键名标准化为小写。默认情况下,json 加载函数保留大小写。这与INIFileHandler发生的情况相反。

编码

json.loads的直通选项

INIFileHandler

此处理程序解析它在指定路径中找到的INI文件,或者解析在指定路径中找到的单个文件。在内部,它使用SafeConfigParser来加载和解析文件。再次处理各个部分、选项和值。

选项

保存案例

如果设置为true,则保留选项名称的大小写。部分仍然不区分大小写。默认情况下, SafeConfigParser将所有选项名称标准化为小写。这将防止这种情况。

dict_type

SafeConfigParser的直通选项,见下文

allow_no_value

SafeConfigParser的直通选项,见下文

自定义 SafeConfigParser

如果您想自定义内部SafeConfigParser的工作方式,您可以使用RawConfigParser构造函数文档中指定的参数,并将它们传递给Konfig实例上的load方法调用。

例如:

cfg = Konfig('/path/to/folder/or/ini-file')
cfg.load(dict_type=OrderedDict, allow_no_value=True)

实施细节

Konfig使用SafeConfigParser加载 INI 文件。因此,您可以获得解析器的内置解析和插值功能。

因为SafeConfigParser不会自动将值强制转换为适当的类型,所以kon会尽力为您做一些事情。以下演员尝试按优先顺序进行:

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

kon-0.0.1.tar.gz (14.7 kB 查看哈希)

已上传 source