跳转到主要内容

Winnow是一个基于JSON-schema的库,用于发布和操作产品系列。

项目描述

# winnow

Winnow是一个用于发布可配置产品系列的json交换格式。它有几个不同的部分

+ 一组描述产品和相关信息的文档的json模式。
+ 定义产品中配置选项集的模式。
+ 定义操作文档选项的基本逻辑运算集。
+ 一个实现这些操作的Python库

要编写和发布winnow文档,您可以使用前两部分,因为它们定义了winnow文档的结构。要应用逻辑运算并操作winnow文档,您需要了解winnow的操作及其实现这些操作的库。


## 资源和文档

一些winnow文档描述了命名资源,而另一些则没有。

资源文档具有某些功能:它们可以在文档本身定义的永久URL上被发现;它们使用语义版本号进行版本控制;这些版本本身也是可发现的,并且资源可以继承同一类型的另一个资源。

在winnow中当前定义了八种资源类型。点击链接查看它们的完整描述。

+ [*range*](docs/range.md) - 具有共同作者的相关设计的集合
+ [*design*](docs/design.md) - 一个设计
+ [*product*](docs/product.md) - 由一组公共选项定义的设计的版本系列
+ [*fileset*](docs/fileset.md) - 用于制作所有或产品系列子集的一组文件
+ *finish* - 由一组材料和工艺定义的产品表面处理
+ *材料* - 一种材料
+ *工艺* - 应用在材料上的工艺
+ *上下文* - 一组用于过滤或扩展产品选项的选项

Winnow还定义了两种文档类型,这些类型不是资源,而是在处理过程中创建的中间文件

+ *选择*
+ *量化配置*

## 验证

在winnow.schemata中,有可以用于验证Winnow文档的JSON模式。这可以使用来自[json-schema.org](https://json-schema.fullstack.org.cn/implementations.html)的工具来完成,或者使用Winnow的Python库,如下所示

```python
with open(filepath, "r") as f
doc = json.loads(f.read())
winnow.validate(doc)
```

## 选项

一些Winnow文档具有顶层`options`属性。此对象通过定义产品的可能配置集来描述相关的产品系列,例如可用的颜色或尺寸。

```json
{
"options":{
"colour": ["red", "blue", "green"],
"size": ["big", "small"],
"wheels": [4, 6]
}
...
}
```

这描述了一个玩具产品系列,该玩具有三个颜色、两种尺寸,并且可以有四个或六个轮子。Winnow提供用于定义这些选项的JSON语言以及一组用于操作它们的操作。

您可以在这里了解更多关于Winnow的选项[options](docs/options.md)

## 操作

Winnow定义了一组简单但强大的操作,以帮助操作Winnow文档。

+ *add_doc*
+ *allows*
+ *merge*
+ *scope*
+ *default_choices*
+ *quantify*
+ *filter_allows*
+ *filter_allowed_by*
+ *is_allowed_by*
+ *expand*
+ *asset_props*
+ *validate*

## 库





项目详情


下载文件

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

源代码分发

winnow-0.1.4.tar.gz (40.2 kB 查看哈希)

上传时间 源代码

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页