跳转到主要内容

伪造整个数据模式。

项目描述

Factory Boss

伪造整个数据模式。简单易用。

原始仓库: https://github.com/mariushelf/factory_boss

使用案例

Factory Boss可以帮助您在需要模拟数据模式时,例如当您因隐私、GDPR相关问题和安全考虑而无法使用原始数据时。

特性

Factory Boss可以模拟整个数据模式,包括特征和对象之间的关联和依赖关系。

模式规范从简单的yaml格式读取。生成的输出是每个模拟实体的字典列表,可以轻松写入数据库、转换为pandas DataFrames等。

安装

此软件包可在PyPI上获取,并且可以使用pip install factory_boss进行安装。

用法

模拟数据模式包括两个步骤

  1. 指定模式。
  2. 生成数据。

指定模式

模式在yaml中指定,包括实体之间的关联和模拟规则。

请参阅simple_schema.yaml的示例。

生成模拟数据

from pprint import pprint
import yaml
from factory_boss.generator import Generator
from factory_boss.spec_parser.parser import SpecParser

with open("examples/simple_schema.yaml", "r") as f:
    schema = yaml.safe_load(f)

parser = SpecParser()
parsed_spec = parser.parse(schema)

generator = Generator(parsed_spec)
instances = generator.generate()
print("INSTANCES")
print("=========")
pprint(instances)

请参阅factory_boss/scripts/generate.py的完整脚本。

路线图

许多事情,最重要的是文档。

以下是最大的“里程碑”

  1. 文档
  2. 完成模式规范
  3. 支持动态字段(通过Python函数生成字段,其他字段作为输入)

问题部分中还有一些其他票据。

贡献

我非常愿意接受以错误报告、功能请求或拉取请求形式提供的帮助,尽管目前还没有正式的“贡献指南”。

如果你想帮忙,请随时联系我 :)

致谢

这项工作离不开惊人的faker包。

Factory Boss 也受到了 factory_boy 的极大启发,但重点不同。虽然 factory_boy 在生成单个对象和测试用例方面表现卓越,但 Factory Boss 的目标是伪造整个数据模式。在这方面,它提供了 factory_boy 特性的子集和超集。

许可证

MIT -- 查看 LICENSE

作者:Marius Helf (helfsmarius@gmail.com)

由以下组织支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面