由于我现在常用的数据生成器在 API 设计上令人迷惑,我决定自己编写一个生成器。
目前计划支持的特性:
- 生成随机图
- 随机图
- 空图(null graph)
- 完全图(complete graph)
- 竞赛图(tournament graph)
- 随机树(随机父亲)
- 随机树(随机连边)
- 二叉树(binary tree)
- 链图(chain graph)
- 菊花图(star graph)
- 圈图(cycle graph)
- 轮图(wheel graph)
- 从度数序列随机生成图(蒙特卡洛方法)
- 生成
$k$ -正则图($k$ -regular Graph) - 生成网格图
- 将多个图组合在一起
- 生成特定类型的数字
- 支持从范围中随机选择质数。
- 生成特定类型的数字序列
- 生成给定递推函数的序列(递归实现)
- 调用 std 生成 ans 文件
- 杂项
- 从命令行参数获取随机种子
- 批量将 CRLF 格式转换为 LF 格式
项目上传了 PyPI,因此你可以使用:
pip install rdgc来下载最新版。
项目也将同时上传到 Test PyPI,因此也可以:
pip install -i https://test.pypi.org/simple/ rdgc当然,后者不是推荐行为。
原则上,我是支持 语义化版本 的,但是由于现在项目随时可能出现 Bug 和 idea,并可能由于使 API 更可读而重构,因此将项目版本号维持在 0.x.x 以说明处于快速开发阶段。
计划在完成大部分 idea 后进行一次重构并将版本号改为 1.x.x。
目前尽量遵循以下规范:
- 若引入了重要的数据生成 API(被记录在 README 文件),则将次版本号递增;
- 若加入了小的 API 或 Bug 修复,将修订号递增。
当然,暂时更可能看我心情。
项目没有额外声明的部分使用 SATA 许可证,如果你认为我的项目有用,请考虑在 Github 为我点赞。
项目的 API 设计参考了 CYaRon,如果有人认为我需要为此修改许可证,请联系我;后者的推荐方式是在 issue 中说明。
项目使用 Pylint 检查 Python 语法。
全局禁用的检查包括:
- unnecessary-lambda-assignment (C3001)
- duplicate-code (R0801)
- too-many-public-methods (R0904)
- too-many-return-statements (R0911)
- too-many-branches (R0912)
- too-many-arguments (R0913)
- too-many-locals (R0914)
- keyword-arg-before-vararg (W1113)
在测试脚本中禁用了所有出现的警告,包括但不限于注释缺失。
在项目主文件中禁用的警告使用具体名称而非代码。