具有方案和类型的INI文件解析器
项目描述
具有方案和类型的INI文件解析器
Zini的哲学
应用程序的设置必须简单!它应该只有代码或复杂结构。必须只使用简单类型。
为什么不...
JSON?
JSON不舒服且不可扩展。
YAML?
YAML就像一个扫帚园。它是一个非常复杂的格式。我不需要它的所有功能。
Configparser?
Configparser很丑;
Configparser过度设计;
Configparser没有类型转换;
Configparser没有类型检查;
Configparser是… configparser.
支持的类型
- boolean:
简单的true或false,例如 key = true
- int:
简单的数值类型,例如 key = 13
- float:
浮点类型,例如 key = 3.14
- string:
字符串始终使用引号,例如 key = "some string"
- datetime:
遵循ISO 8601格式的datetime
YYYY-MM-DD
YYYY-MM-DD hh:mm
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm:ss.sss
当时间时,您可以将时区设置为Z或±hh:mm。
例如:
key = 2005-01-13
key = 2005-01-13 18:05:00
key = 2005-01-13 15:05:00 +03:00
key = 2005-01-13 15:00Z
- timedelta:
持续时间
key = 20m — 20分钟
key = 10h2m — 10小时和2分钟
key = 1w2s — 一周(7天)和2秒
key = 1s20ms — 2秒和20毫秒
key = 1w1d1h1m1s1ms — 694861001毫秒
- list:
值列表
key = "string value" 2005-01-13 18:
00:0513
示例
$ cat tests/test.ini
# first comment
[first]
boolean = false
integer = 13
[second]
; second comment
boolean = true
string = "some string"
[complex]
list =
"string"
"string too"
"else string"
简单读取
>>> from zini import Zini
>>> ini = Zini()
>>> result = ini.read('tests/test.ini')
>>> isinstance(result, dict)
True
>>> result['first']['boolean'] is False # automatic type casting
True
>>> result['first']['integer'] == 13
True
>>> result['second']['string'] == "some string"
True
>>> result['complex']['list'] == ["string", "string too", "else string"]
True
类型和默认值
>>> from zini import Zini
>>> ini = Zini()
>>> ini['first']['integer'] = str # set type
>>> result = ini.read('tests/test.ini')
zini.ParseError: error in line 3: 'integer = 13'
>>> from zini import Zini
>>> ini = Zini()
>>> ini['second']['boolean'] = "string" # set type and default value
>>> result = ini.read('tests/test.ini')
zini.ParseError: error in line 7: 'boolean = true'
值列表
>>> import zini
>>> ini = zini.Zini()
>>> ini['third']['generic'] = [str]
>>> result = ini.read('tests/test.ini')
ParseError: error in line 20: ' 10'
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
zini-1.1.0.tar.gz (5.2 kB 查看散列)
构建分发
zini-1.1.0-py3-none-any.whl (5.1 kB 查看散列)
关闭
zini-1.1.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | ac1e91180b8d483eff1697332c774860983cf927c24810aae47011f00279c554 |
|
MD5 | 33eb739f551aa88e8986636ee57095fc |
|
BLAKE2b-256 | eee800051aae34d941df588e45b82f86d0602df90da6ed129ed77c43a74e502b |
关闭
zini-1.1.0-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3525836ec7e59d964fa691a964a424ce3c2e5b2ff33ee33832bbb4af434cb4c9 |
|
MD5 | af9e507a72dac4dbab97946416a2ad27 |
|
BLAKE2b-256 | 2228f74d3931788d26e45d7f28d1469ee5a6811b2bd7ea4ebd998a1cacbdbfde |