semvec/pypi-packages huggingface dataset:
shihua-drip 0.1
Drip is a lightweight production level algorithm platform, covering the whole life cycle from algorithm experiment, algorithm pre run management, algorithm runtime management to algorithm post run management.
License: MIT
Requires Python: >=3.9.12

# Drip-算法全生命周期管理工具

![shields_version](/static/shields_version.svg)  ![shields_license](/static/shields_license.svg)  ![shields_author](/static/shields_author.svg)  ![shiedls_python](/static/shields_python.svg) 
![dripsymbol](/static/dripsymbol.JPG)

## 介绍
+ Drip介绍
  + Drip设计说明
  + Drip是一个轻量的生产级算法平台，覆盖从算法实验、算法运行前管理、算法运行时管理到算法运行后管理的全生命周期。**Drip的核心概念包括信息管理、存储管理、日志管理、调度管理、特征管理、数据通道和插件管理。**
  + Drip每个核心功能都由独立模块支持，完全可单独使用。
  + Drip设计架构图
  	+ **逻辑视图**
  	+ ![Drip架构图](/static/Drip总体架构图.png)
  	+ **物理视图**
  	+ ![Drip物理视图](/static/Drip物理视图.png)
  	+ **处理视图**
  	+ ![Drip处理视图](/static/Drip处理视图.png)
  	+ **开发视图**
  	+ ![Drip开发视图](/static/Drip开发视图.png)

## 安装
```bash
$ pip install drip-0.1-xxxxxxxxxxxx.whl
```

## 快速指南
+ 首先使用dripctl命令行工具进行管理员注册操作，然后启动webui后台服务。另外，后端详细配置在drip_config.yaml中。以下是dripctl命令行示例：
```bash 
$ dripctl create-admin

$ dripctl start-webui
```
+ Drip算法研发流程
+ ![Drip算法研发流程](/static/Drip流程图.png)
+ 以下为DripWebUI使用界面
+ ![drip首页](/static/driphomepage.JPG)
+ ![drip数据](/static/dripdatainfo.JPG)
+ ![drip插件](/static/dripttyd.JPG)

## 设计
+ Drip核心模块介绍
  + 信息管理：[Fiche](https://github.com/redblue0216/Fiche)
  	+ 设计说明
  	+ Fiche是一个元数据信息管理工具，主要功能提供元数据信息的管理，包括算法信息、模型信息、参数信息、应用信息和数据信息五大类信息；主要设计采用将信息卡片化，存储为一个个json字符串文档，采用主从推送模型实现观察者模式，便于信息中心化；主要技术采用MongoDB作为后端信息数据的中心存储，基于FastAPI实现的http服务使得该工具提供python-sdk的同时也与语言无关。
  	+ 设计架构图
  	+ ![FicheUML](/static/FicheUML.png)
  + 存储管理：[Cask](https://github.com/redblue0216/Cask)
  	+ 设计说明
  	+ cask是一个存储管理工具，主要功能包括项目本地打包，远端存储管理两大功能，主要设计仿制wheel文件格式，远端存储采用MinIO技术。
  	+ 设计架构图
  	+ ![CaskUML](/static/CaskUML.png)
  + 调度管理：[Liquid](https://github.com/redblue0216/Liquid)
  	+ 设计说明
  	+ liquid是一个pipeline工具，主要功能提供算法应用快捷组织功能，主要技术使用基于pluggy的hook技术。
  	+ 设计架构图
  	+ ![LiquidUML](/static/LiquidUML.png)
  + 日志管理：[Trajectory](https://github.com/redblue0216/Trajectory)
  	+ 设计说明
  	+ trajectory是一个日志管理工具，主要功能提供日志统一集中管理功能，主要技术基于logging提供一个mongodb的日志转发器，包括日志过滤、日志格式化功能。
  	+ 设计架构图
  	+ ![TrajectoryUML](/static/TrajectoryUML.png)
  + 数据通道：[DaShare](https://github.com/redblue0216/DaShare)
  	+ 设计说明
  	+ DaShare是一个数据服务接口包，主要功能是为底层数据向外提供了一个接口服务,可实现用户权限验证和流量限制。DaShare采用Client-Server架构设计，服务端使用HTTP协议构建数据服务的OpenAPI,暂时采用GET-method,客户端封装为python-sdk,提供python数据接口功能；用户权限采用token机制。
  	+ 设计架构图
  	+ ![DaShareUML](/static/DaShareUML.png)
  + 特征管理：[Atom](https://github.com/redblue0216/Atom)
  	+ 设计说明
  	+ Atom是一种特征管理工具，以数据和算子作为基本概念，数据为基础数据用于训练特征和构建特征；算子为基于固定一个或多个数据集进行新特征生产的流程，可以是一个简单直接计算函数，也可以是一个复杂的算法模型，还可以是算法模型和直接计算相结合的组合体。atom的特色是对由数据衍生的算子进行了数据关联、统一管理，并直接提供了服务功能，使得每个算子可以直接实现在线实时计算特征，为主体算法模型服务，提高模型精度。
  	+ 设计架构图
  	+ ![AtomUML](/static/AtomUML.png)
shihua-cask 0.1
Cash is a storage management tool, including project packaging and remote storage.
License: MIT
Requires Python: >=3.9.12

# Cask-存储管理工具

![shields_version](/static/shields_version.svg)    ![shields_license](/static/shields_license.svg)    ![shields_author](/static/shields_author.svg)    ![shiedls_python](/static/shields_python.svg)

![casksymbol](/static/casksymbol.JPG)

## 介绍
+ cask是一个存储管理工具，主要功能包括项目本地打包，远端存储管理两大功能，主要设计仿制wheel文件格式，远端存储采用MinIO技术。


## 安装
cask采用Python开发，得益于Python良好的社区环境，安装支持Pythonic风格的各种管理器。
```
	$ pip install cask-0.1-xxxxxxxxxxxx.whl
```


## 快速指南

### python-sdk使用
+ cask提供python-sdk的存储管理，以下是cask主程脚本示例：：

```python
	from cask import create_cask_workspace,generate_cask_package,install_caskpkg,seriallize,deseriallize
	from cask.package import Caskpkg
	from cask.store import CaskStore


	### 创建cask工作空间，生成.cask隐藏文件夹
	# create_cask_workspace()


	### 生成cask包
	# generate_cask_package(caskpkg_name='testcask')


	### 安装cask包，生成.cask隐藏文件夹
	# install_caskpkg(caskpkg_file='testcask.caskpkg')


	### 添加object_file到.cask下
	# tmp_caskpkg = Caskpkg(objects=['logtest'],scripts=['install_script.sh'],configs=['test.yaml'])
	# tmp_caskpkg.commit()


	### 初始化cask存储对象               
	caskstore = CaskStore(endpoint='192.168.1.82:9000')


	### 临时函数
	def testfunc(a):
	    return a + 1

	### 序列化对象到文件
	seriallize(target_object=testfunc,filepath='testfunc.dill')


	### 序列化对象
	testfunc_bytes_obj = seriallize(target_object=testfunc)


	### 上传二进制对象
	result = caskstore.push_object(bucket_name='cask',object_name='testfunc',bytes_obj=testfunc_bytes_obj)
	print(result)


	### 获取二进制对象
	tmp_bytes_obj = caskstore.pull_object(bucket_name='cask',object_name='testfunc')


	### 反序列化对象
	testfunc_bytes_obj_a = deseriallize(target_object=tmp_bytes_obj)
	print(testfunc_bytes_obj_a(1))


	### 上传文件
	result = caskstore.push_file(bucket_name='cask',object_name='testfunc.dill',file_path='testfunc.dill')
	print(result)


	### 获取文件
	caskstore.pull_file(bucket_name='cask',object_name='testfunc.dill',file_path='testfunc.dill')


	### 反序列化对象
	testfunc_bytes_obj_aaa = deseriallize(filepath='testfunc.dill')
	print(testfunc_bytes_obj_aaa(2))
```

### 命令行使用
+ cask提供命令行的存储管理，以下是cask命令行示例：
```bash
	$ caskctl create-workspace

	$ caskctl generate-package --caskpkg_name testcask

	$ caskctl install-package --caskpkg_file testcask.caskpkg

	$ caskctl upload-file --endpoint 192.168.1.82:9000 --bucket_name cask --object_name test.yaml --file_path test.yaml  

	$ caskctl doenload-file --endpoint 192.168.1.82:9000 --bucket_name cask --object_name test.yaml --file_path test.yaml
```

## 设计
+ 仿制wheel格式设计caskpkg打包格式
+ 使用MinIO作为远端存储
+ 支持本地打包和远端存储两大功能

### 技术列表
+ __init__收集基础操作函数
+ __all__暴露指定功能
+ .cask隐藏文件夹
+ yaml配置文件
+ MinIO远端存储
+ Tar压缩包技术


### 设计UML图
以下是设计的UML图：
![caskuml](/static/caskUML.png)
shihua-dashare 0.1
DaShare is a dataapi python sdk with client and service
License: MIT
Requires Python: >=3.9.12

# DaShare-数据服务接口包

![shields_version](/static/shields_version.svg)    ![shields_license](/static/shields_license.svg)    ![shields_author](/static/shields_author.svg)    ![shiedls_python](/static/shields_python.svg)

![dasharesymbol](/static/dasharesymbol.JPG)

## 介绍
+ DaShare是一个数据服务接口包，主要功能是为底层数据向外提供了一个接口服务,可实现用户权限验证和流量限制。DaShare采用Client-Server架构设计，服务端使用HTTP协议构建数据服务的OpenAPI,暂时采用GET-method,客户端封装为python-sdk,提供python数据接口功能；用户权限采用token机制。


## 安装
dashare采用Python开发，得益于Python良好的社区环境，安装支持Pythonic风格的各种管理器。
```
	$ pip install dashare-0.1-xxxxxxxxxxxx.whl
```


## 快速指南

### 服务端使用
+ 对于服务端数据服务启动，首先使用dashare命令行进行元数据库初始化,然后再启动服务端服务。以下是dasharectl命令行示例：

```bash
	$ dasharectl set-metadb

	$ dasharectl start-service  
````

### 客户端使用
+ 对于客户端，dashare支持http协议的接口和python-sdk两种方式。

+ http接口使用
1.注册用户示例
```bash
	$ curl http://127.0.0.1:11911/user/register?user=test&password=123456
```
2.登录用户示例
```bash
	$ curl http://127.0.0.1:11911/user/login?user=test&password=123456
```
3.用户生成token示例
```bash
	$ curl http://127.0.0.1:11911/user/gen_token?user=test&token_key=7890
```
4.用户获取token示例
```bash
	$ http://127.0.0.1:11911/user/get_token?user=test&password=123456
```
5.用户调用数据接口示例（用户调用数据接口需要经过前提流程，注册用户-登录用户-生成token-使用token获取数据）
```bash
	$ http://127.0.0.1:11911/meteorological/get_wind_nwp_data_updated?token_key=7890&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NjU1Mzg0MzkuMTU3MTQzLCJ1c2VyIjoidGVzdCJ9.ZXdp688IIJgnFgSqgRx7rXBxYNK0LLDZTuQL_P09saE&entity=XJJX&start_time=2022-05-30,00:00:00&end_time=2022-06-01,00:00:00
```
+ python-sdk使用,以下是dashare主程脚本代码示例：
```python
	from dashare.client.api import DataAPI

	### 设置除了token_key和token外，额外的参数
	tmp_dict = {}
	tmp_dict['entity'] = 'XJJX'
	tmp_dict['start_time'] = '2022-05-30,00:00:00'
	tmp_dict['end_time'] = '2022-06-01,00:00:00'
	dashare = DataAPI(token_key = 7890,
	                    token='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NjU0NjkxMTQuMTI4MDg4LCJ1c2VyIjoidGVzdCJ9.HgmyjDabinqOxU9v7DaKsPraFZd948SMfA9HGhTg-7U',
	                    timeout=6000)
	# df = dashare.query(dataapi='get_meteorological_data_local',params=tmp_dict)
	# df = dashare.get_wind_nwp_data_updated_local(params=tmp_dict)
	# df = dashare.get_wind_nwp_data_history_local(params=tmp_dict)
	# df = dashare.get_wind_measure_data_local(params=tmp_dict)
	df = dashare.get_wind_turbine_data_local(params=tmp_dict)
	print(df)
```

## 设计
+ 采用Client-Server架构设计
+ 服务端使用HTTP协议构建数据服务的OpenAPI
+ 用户权限采用token机制
+ 用户流量限制

### 技术列表
+ 元编程技术-partial技术
+ 元编程技术-__getattr__技术
+ 微服务-FastAPI
+ 加密验证-Token-JWT技术
+ 数据库-SQLite3


### 设计UML图
以下是设计的UML图：
![dashareuml](/static/DaShareUML.png)
shihua-liquid 0.1
Liquid is a pipeline tool based on pluggy hook technology, which is mainly used for rapid construction of data science applications.
License: MIT
Requires Python: >=3.9.12

# Liquid-算法应用流程管理工具

![shields_version](/static/shields_version.svg)    ![shields_license](/static/shields_license.svg)    ![shields_author](/static/shields_author.svg)    ![shiedls_python](/static/shields_python.svg)

![liquidsymbol](/static/liquidsymbol.JPG)

## 介绍
+ liquid是一个pipeline工具，主要功能提供算法应用快捷组织功能，主要技术使用基于pluggy的hook技术。


## 安装
liquid采用Python开发，得益于Python良好的社区环境，安装支持Pythonic风格的各种管理器。
```
	$ pip install liquid-0.1-xxxxxxxxxxxx.whl
```


## 快速指南

### python-sdk使用
+ liquid提供python-sdk的使用方式，以下是liquid主程脚本示例：

```python
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](/static/LiquidUML.png)
shihua-trajectory 0.1
Trajectory is a python toolkit for log management, which supports mongo log forwarding.
License: MIT
Requires Python: >=3.9.12

# Trajectory-日志管理工具

![shields_version](/static/shields_version.svg)    ![shields_license](/static/shields_license.svg)    ![shields_author](/static/shields_author.svg)    ![shiedls_python](/static/shields_python.svg)

![fichesymbol](/static/trajectorysymbol.JPG)

## 介绍
+ trajectory是一个日志管理工具，主要功能提供日志统一集中管理功能，主要技术基于logging提供一个mongodb的日志转发器，包括日志过滤、日志格式化功能。


## 安装
trajectory采用Python开发，得益于Python良好的社区环境，安装支持Pythonic风格的各种管理器。
```
	$ pip install trajectory-0.1-xxxxxxxxxxxx.whl
```


## 快速指南

### 服务端使用
+ trajectory提供python-sdk的日志转发器，以下是trajectory主程脚本示例：

```python
from trajectory.handlers import *



### 创建日志操作对象
logger = logging.getLogger()
### 设置日志操作对象的日志等级
logger.setLevel(logging.INFO)
### 创建一个mongodb处理器，指定log_collection
mongohandler = MongoHandler(log_database='trajectory',log_collection='testlog')
### 设置mongodb处理器的日志等级
mongohandler.setLevel(logging.INFO)
### 向日志操作对象添加mongodb处理器
logger.addHandler(mongohandler)
logger.info('this is a info log')
logger.warning('this is a warning log')
```

## 设计
+ 基于python基础包logging开发日志转发处理器
+ 使用mongodb作为日志存储后端
+ 支持日志过滤和日志信息选择

### 技术列表
+ 继承重写
+ 静态方法
+ 对象化
+ JSON
+ 微服务-FastAPI
+ 配置文件-yaml技术
+ 数据库-MongoDB


### 设计UML图
以下是设计的UML图：
![trajectoryuml](/static/TrajectoryUML.png)