Skip to main content

daline unit generator and runner

Project description

本项目用于根据设计文档生成unit单元

框架的思路

  • 将复杂的流程转为一个个PU,框架托管PU的非逻辑部分,PU只关注逻辑部分代码即可。
  • 设计人员写完设计文档后,自动生成PU单元的脚本,提供测试数据,提供单元测试模块,可直接运行,后台开发人员可直接启动,提供假数据,同时进行业务逻辑开发。前端人员可快速调通接口,进行开发。

使用步骤

  1. 按格式编写设计文档
  2. 运行DalGenScript.py,直接运行须修改main函数中路径,cmd运行须传入路径参数
  3. 按设计文档自动生成对应unit单元,测试单元包括脚本、测试用例、测试数据、启动脚本
  4. 根据设计文档中的unit的连接关系,生成unit结构图,以新文件的形式重写md设计文档
    unit_frame

测试运行

  1. 运行生成文件中的run_test.py
  2. 运行jar
  3. 获取token,发送http请求:
    localhost:8080/pu?fidx=calSymbolProfit&type=QueryMeta&url=http://www.qq.com

生成目录

代码根据设计文档中unit中unit_info的folder路径,生成unit名称目录,然后生成.py和.info文件:
generate_folder

关于unit.py文件

根据设计文档生成unit类,设计文档中的function_list中的每个function都会生成4个函数

  • func_Info() 表示func的基本信息
  • func_Meta() 表示func的数据描述,首先请求此函数
  • func_Data() 表示func的实际数据,需要使用func_Meta()的返回结果来请求
  • func_NewData() 用户订阅数据后,数据更新则进入此函数

关于上层unit

  1. 根据设计文档中的上层unit列表,可自动生成上层unit中各function的数据接口,可直接调用获取数据,接口名格式如下:_get_[unit_name]_[function_name]_data()
  2. 上层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


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.7.tar.gz (26.9 MB view hashes)

Uploaded Source

Built Distribution

DalineUnit-0.0.7-py3-none-any.whl (33.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page