定义脉冲映射的作业读写器。

impulsare-job的Python项目详细描述


脉冲/工作

https://travis-ci.org/impulsare/job.svg?branch=masterhttps://scrutinizer-ci.com/g/impulsare/job/badges/quality-score.png?b=masterhttps://scrutinizer-ci.com/g/impulsare/job/badges/coverage.png?b=master

概述

作业管理器,特定于pulstare。它从sqlite数据库中读取、写入和删除作业。

有关配置示例,请参见tests/static/

安装/使用

要安装,请使用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])

重构编写器

有一个钩子类,还有一个规则类。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么这个循环打印1020之间的所有值?我想让它打印出可以被5整除的值   java如何在JTable中集中单元格   java无法通过一个键从hashmap获取对象,该键具有相同的hashcode,并且两个键等于()   不兼容的类型?JAVA   将字符串开头与空格匹配时java replaceAll的正则表达式混淆结果   java为非java应用程序创建jar文件。类文件   java无法从另一个普通Http Servlet访问筛选器Servlet的会话属性   java Ejb,第二个方法中的错误回滚第一个方法   swing java操作侦听器在菜单上,而不是在菜单项上   分析文件时出错:分析文件时出错:无法在Java的XSSF中分析excel文件   java将实体注入到ViewScope Bean中   java如何关闭终端而不终止正在运行的jar文件进程   爪哇力下传   java不能隐式地将[T]强制转换为AT,其中[T]扩展为AT   java Spring项目在jsp页面中显示mysql表数据   java在创建新实例SQLITE时出错