一种简单的pythonic文件格式。与
perk的Python项目详细描述
活泼
友好、简单的pythonic文本文件格式
拉里·黑斯廷斯版权所有2018-2019
概述
perky是python程序的一种新的、简单的“rcfile”文本文件格式。
以下是一些有趣的功能:
活泼的语法
漂亮的配置文件看起来像json,没有 引用。
example name = value
example dict = {
name = 3
another name = 5.0
}
example list = [
a
b
c
]
# lines starting with hash are ignored
# blank lines are ignored
" quoted name " = " quoted value "
triple quoted string = """
indenting
is preserved
the string is automatically outdented
to the leftmost character of the ending
triple-quote
<-- aka here
"""
显式转换优于隐式转换
一个可能令人惊讶的设计选择:唯一的 Perky解析器本机支持的值是dict, 列表和字符串。其他常用类型(int、float和 etc)使用不同的机制进行处理:转换。
活泼的转换以dict作为输入,并转换
基于schema的dict内容。活泼的计划
是一个与所产生的dict形状相同的dict
但它包含了指令,列表,
以及转换函数。
如果希望{'myvalue':'3'}
中的myvalue为实整数,
用模式{'myvalue': int}
转换它。
api
perky.loads(s) -> d
分析包含特殊文件格式设置的字符串。 返回一个dict。
perky.load(filename, encoding="utf-8") -> d
分析包含特殊文件格式设置的文件。 返回一个dict。
perky.dumps(d) -> s
将字典转换为漂亮的文件格式字符串。 字典中的键都必须是字符串。价值观 不是dict、list或string的将被转换 到使用str的字符串。 返回字符串。
perky.dump(filename, d, encoding="utf-8")
将字典转换为灵活的文件格式字符串
使用perky.dump
,然后将其写入filename。
perky.map(d, fn) -> o
在字典上迭代。返回一个新字典, 对于每个value:
- 如果是dict,请替换为新的dict。
- 如果是列表,则替换为新列表。
- 如果既不是dict也不是list,则替换为
fn(value)
。
传入的函数称为转换函数。
perky.transform(d, schema, default=None) -> o
递归地将一个活泼的指令转换成另一个 对象(通常是dict)使用提供的模式。 返回新的dict。
一个schema是一个数据结构,它与一般预期的
d的形状,其中的值是dict、list和
可召回。转换类似于perky.map()
除了个别值将有个别转换
功能。此外,还可以指定模式转换函数
对于d中的任何值,甚至是dict或list。
default是默认的转换函数。如果有 值d中的v在schema中没有等效项, 并且v既不是列表也不是dict,如果default是 可调用的v将替换为 输出。
perky.Required
实验性的。
perky.nullable(fn) -> fn
实验性的。
perky.const(fn) -> o
实验性的。
待办事项
- 反斜杠引用目前做的是“无论您的python版本做什么”。也许这应该是明确的,并由perky自己解析?