定义脉冲映射的作业读写器。
impulsare-job的Python项目详细描述
安装/使用
要安装,请使用pip:
$ pip install --upgrade impulsare-job
配置
您需要创建一个包含以下内容的配置文件:
job:db:/tmp/test.db# required
架构
作者
脉冲/作业实现写入程序:
- 创建/更新作业(save())
- 删除作业(delete())
- 添加/删除挂钩(hooks\u writer.add\u hook()和hooks_writer.del_hook())
- 添加/删除字段(fields_writer.add_field()和fields_writer.del_field())
- 添加/删除与字段(fields_writer.add_rule()和fields_writer.del_rule())相关的规则
读卡器
还有一个读者:
- 找份工作
- 获取相关挂钩
- 获取相关字段及其规则
工作属性
{'name':str,# required'active':bool,# default : True'description':str,'priority':int,# default : 1'input':str,# required'input_parameters':dict,'output':str,# required'output_parameters':dict,'mode':str# c (create), u (update), cu (create/update), d (delete). Default: c}
示例
创建一个简单的作业(没有钩子/规则)
fromimpulsare_jobimportWriterwriter=Writer('/etc/impulsare/config.yml')writer.set_prop('name','My Job')writer.set_prop('input','csv')writer.set_prop('input_parameters',{'delimiter':'csv'})writer.set_prop('output','sql')writer.set_prop('output_parameters',{'db':'test'})job=writer.save()
更新作业
fromimpulsare_jobimportWriter# Lets assume the job id = 1writer=Writer('/etc/impulsare/config.yml','My Job')job=writer.get_job()print(job.name)# Output: 'My Job'# Set the job to Inactivewriter.set_prop('active',False)writer.save()
验证钩子是否存在,否则添加它< /H4># .... continuation of code aboveifnotwriter.hooks_writer.hook_exists('test'):writer.hooks_writer.add_hook(name='upload_file',method='upload_file',when='after_process')
允许的挂钩属性:
{'name':str,# required'method':str,# required'when':str,# required'description':str,'active':bool,# Default : True'priority':int# Default: 1}
其他方法:
- hooks\u writer.get\u hooks
- hooks_writer.del_hook
没有更新钩子的方法,若要更新钩子,请删除它,然后重新创建它。
验证字段是否存在,否则更新它并添加转换规则
警告:字段由其output值标识,该值必须是唯一的 (当我们可以使用相同的输入字段时,不能为同一字段发送两个值 用于各种输出)。
字段
# .... continuation of code aboveifwriter.fields_writer.field_exists('firstname'):writer.fields_writer.del_field('firstname')writer.fields_writer.add_field(input='first_name',output='firstname')
字段的允许属性:
{'input':str,# required'output':str,# required}
其他方法:
- 字段。获取字段
- 字段写入程序。获取字段
没有更新字段的方法,若要更新字段,请删除该字段,然后重新创建它。
添加规则
writer.fields_writer.add_rule(output_field='firstname',name='uppercase',method='uppercase')
规则的允许属性:
{'name':str,# required'method':str,# required'description':str,'active':bool,# Default : True'params':list,'blocking':bool,# Default : False'priority':int# Default: 1}
其他方法:
- fields\u writer.del\u规则
- 字段写入程序。获取规则 规则>作者>规则>
没有方法update,若要更新规则,请将其删除,然后重新创建。
检索作业及其挂钩和字段
fromimpulsare_jobimportReaderReader=Reader('/etc/impulsare/config.yml','My Job')job=Reader.get_job()hooks=Reader.get_hooks()fields=Reader.get_fields()# Get rules for first field : rules = fields[0].rules
开发和测试
$ pip install -r requirements.txt $ pip install -r requirements-dev.txt $ py.test
待办事项
< H4>不要检查每个模型上是否存在表,但在APP安装< /H4>上执行表。
获取数据库:
fromimpulsare_jobimportmodelsdb=models.get_db('/etc/impulsare/config.yml')db.create_tables([models.Job,models.Hook,models.Rule])
重构编写器
有一个钩子类,还有一个规则类。