Skip to main content

Liquid is a pipeline tool based on pluggy hook technology, which is mainly used for rapid construction of data science applications.

Project description

Liquid-算法应用流程管理工具

shields_version shields_license shields_author shiedls_python

liquidsymbol

介绍

  • liquid是一个pipeline工具,主要功能提供算法应用快捷组织功能,主要技术使用基于pluggy的hook技术。

安装

liquid采用Python开发,得益于Python良好的社区环境,安装支持Pythonic风格的各种管理器。

	$ pip install liquid-0.1-xxxxxxxxxxxx.whl

快速指南

python-sdk使用

  • liquid提供python-sdk的使用方式,以下是liquid主程脚本示例:
from liquid.node import Node
from liquid.pipeline import Pipeline
from liquid.io import DataCatalog
from liquid.hook import HookManager
from liquid.runner import SequentialRunner



### 开始liquid测试
### 设置函数节点对象
def first_func(a,b):
    c = a + b
    return c
def second_func(c,d):
    e = c * d
    return e
def third_func(e):
    f = e + 1
    return f
first_node = Node(func=first_func,inputs=['a','b'],outputs='c',name='firstfunc')
second_node = Node(func=second_func,inputs=['c','d'],outputs='e',name='secondfunc')
third_node = Node(func=third_func,inputs=['e'],outputs=['f'],name='thirdfunc')
### 创建一个pipeline
test_pipeline = Pipeline(nodes=[first_node,second_node,third_node])
### catalog加载初始参数
test_cache_data = DataCatalog()
test_cache_data.save(data_name='a',data_obj=5)
test_cache_data.save(data_name='b',data_obj=6)
test_cache_data.save(data_name='d',data_obj=7)
### hook_manager加载已挂载的前后处理功能函数
hook_manager = HookManager()
sequential_runner = SequentialRunner(pipeline=test_pipeline,catalog=test_cache_data,hook_manager=hook_manager)
# print(sequential_runner.pipeline,sequential_runner.catalog,sequential_runner.hook_manager)
print('--------------------------------------------------------------------------------------------------------------')
sequential_runner.execute(is_release=False)
print(test_cache_data.load(data_name='f'))
print(test_cache_data.cache_data)
### 测试过程(5+6)*7+1=78

设计

  • 基于pluggy的hook技术实现灵活扩展性
  • 设计关键概念,Node,Pipeline,Runner
  • 函数节点化-Node
  • 开放挂载点-Pipeline
  • 扩展运行方式(顺序运行和并行运行)-Runner

技术列表

  • property动态属性
  • 基于pluggy的hook
  • call
  • add
  • cache_dict

设计UML图

以下是设计的UML图: liquiduml

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shihua-liquid-0.1.tar.gz (10.1 kB view hashes)

Uploaded Source

Built Distribution

shihua_liquid-0.1-py3-none-any.whl (12.8 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