daline unit generator and runner
Project description
本项目用于根据设计文档生成unit单元
框架的思路
- 将复杂的流程转为一个个PU,框架托管PU的非逻辑部分,PU只关注逻辑部分代码即可。
- 设计人员写完设计文档后,自动生成PU单元的脚本,提供测试数据,提供单元测试模块,可直接运行,后台开发人员可直接启动,提供假数据,同时进行业务逻辑开发。前端人员可快速调通接口,进行开发。
使用步骤
- 按格式编写设计文档
- 运行DalGenScript.py,直接运行须修改main函数中路径,cmd运行须传入路径参数
- 按设计文档自动生成对应unit单元,测试单元包括脚本、测试用例、测试数据、启动脚本
- 根据设计文档中的unit的连接关系,生成unit结构图,以新文件的形式重写md设计文档
测试运行
- 运行生成文件中的run_test.py
- 运行jar
- 获取token,发送http请求:
localhost:8080/pu?fidx=calSymbolProfit&type=QueryMeta&url=http://www.qq.com
生成目录
代码根据设计文档中unit中unit_info的folder路径,生成unit名称目录,然后生成.py和.info文件:
关于unit.py文件
根据设计文档生成unit类,设计文档中的function_list中的每个function都会生成4个函数
- func_Info() 表示func的基本信息
- func_Meta() 表示func的数据描述,首先请求此函数
- func_Data() 表示func的实际数据,需要使用func_Meta()的返回结果来请求
- func_NewData() 用户订阅数据后,数据更新则进入此函数
关于上层unit
- 根据设计文档中的上层unit列表,可自动生成上层unit中各function的数据接口,可直接调用获取数据,接口名格式如下:_get_[unit_name]_[function_name]_data()
- 上层unit和DB冲突,只能存在一个
关于设计文档
- 设计文档采用markdowm格式编辑
- 模板中以“#”开头的关键词请全部保留,即使内容为空
- 设计文档模板见UnitDesign/design.md
- 设计文档请严格按照模板目录结构编写,包括带“+ ”的数据列表,“+”数据列表赋值用“=”,注意markdown格式中的空格
- 非开头的“#”作为数据注释
- 保留“> ”开头的为注释
- 功能的output请用json格式定义,注意不要漏写“双引号”
设计文档示例
# HoldingProfit_PU
## unit_info
+ discription = 计算品种持仓盈亏
+ lang = python
> 语言包括:python C++
+ folder = F:\SZZN\HuaWen\code\calPU\
+ type = pu
## upper_unit
+ tick_data_PU
+ sina_data_PU
+ trade_data_PU
## data_base
> 只生成读的函数,参数为: 表明、字段名列表 、where条件
+ hosts = localhost
+ port = 3306
+ user = root
+ pd = admin
+ db = MarketDataRaw
## function_list
### calSymbolProfit()
#### input
+ accountid = 42313454332
+ sttime = 20200401
+ symbol = cu2010
#### output
> 注意,md语法每行最后双空格再换行才是换行,转pdf时注意
{
"trade_dic" :
{
"tradeId" : "str", # 交易代码
"tradeTime" : "datetime", # 交易时间
"buyPrice" : "st", # 买入价
"symbolinfo" : # 标的信息
{
"symbol":"str", # 标的名
"exchange":"str", # 交易所
"priceInfo": # 价格信息
{
"pricetick":"float", # 最小变动价格
"margin":"float"
}
}
}
}
#### meta_data
+ ownerID = 500
+ ownerGroupID = 200
+ acCode = 0x111
+ did = 9527
+ zipDataSize = 692k
+ rawDataSize = 1428k
+ md5 = lkjliudfadf12jolx
+ dataTime = 20200109
+ version = 1.0
+ description = 这里写了一堆的数据描述
### calTotalProfit()
#### input
+ accountid = 42313454332
+ sttime = 20200101
#### output
> 注意,md语法每行最后双空格再换行才是换行,转pdf时注意
{
"trade_dic" :
{
"tradeId" : "str", # 交易代码
"tradeTime" : "datetime", # 交易时间
"buyPrice" : "st", # 买入价
"symbolinfo" : # 标的信息
{
"symbol":"str", # 标的名
"exchange":"str", # 交易所
"priceInfo": # 价格信息
{
"pricetick":"float", # 最小变动价格
"margin":"float"
}
}
}
}
#### meta_data
+ ownerID = 500
+ ownerGroupID = 200
+ acCode = 0x111
+ did = 9527
+ zipDataSize = 692k
+ rawDataSize = 1428k
+ md5 = lkjliudfadf12jolx
+ dataTime = 20200109
+ version = 1.0
+ description = 这里写了一堆的数据描述
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
DalineUnit-0.0.8.tar.gz
(53.9 MB
view hashes)
Built Distribution
DalineUnit-0.0.8-py3-none-any.whl
(33.3 kB
view hashes)
Close
Hashes for DalineUnit-0.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac8ef61006d8c36737b5dda5e71d76c9253878cc991c828fbb402175464a6d2e |
|
MD5 | 9a46029920c99100b30339cded6c8eeb |
|
BLAKE2b-256 | a8591ffa178be49a0d182e038a07a60b46f785a7f74f60bad1b6c84f074efeb3 |