LitePipeline
A lightweight, scalable, distributed pipeline system, based on Python3, tornado, venv-pack, pyinstaller.
All code based on Python3, do not use Python2!
It still under development, so, maybe have some bugs or not stable enough!
You can use LitePipeline with LiteDFS, a distributed file system, based on Python3, tornado, inspired by HDFS.
See LiteDFS at https://github.com/fiefdx/LiteDFS
See more details at https://github.com/fiefdx/LitePipeline
Install
# install from pip
$ pip3 install -U litepipeline
# or install from source code
$ cd ./litepipeline
$ python3 ./setup.py install
# this will install 5 commands: liteconfig, litemanager, litenode, litepipeline, liteviewer
# liteconfig: to generate manager's or node's configuration file
# litemanager: to start LitePipeline manager
# litenode: to start LitePipeline node
# litepipeline: command line tool to communicate with LitePipeline cluster
# liteviewer: the web UI service, for communicate with LitePipeline cluster with web browser.
run
Run Manager
# create manager's data directory
$ mkdir ./manager_data
# generate manager's configuration file
$ cd ./manager_data
# this will generate a configuration.yml file under ./manager_data
$ litemanager -g ./
# run manager
$ litemanager -c ./configuration.yml
# test
$ curl localhost:8000
# return this message
{"message": "LitePipeline manager service"}
Run Node
# create node's data directory
$ mkdir ./node_data
# generate node's configuration file
$ cd ./node_data
# this will generate a configuration.yml file under ./node_data
$ litenode -g ./
# run node
# after start node, node will register to manager, and get a unique node id
$ litenode -c ./configuration.yml
# test
$ curl localhost:8001
# return this message
{"message": "LitePipeline node service"}
Run Viewer
# create viewer's data directory
$ mkdir ./viewer_data
# generate viewer's configuration file
$ cd ./viewer_data
# this will generate a configuration.yml file and other scripts under ./viewer_data
$ liteviewer -g ./
# run viewer
$ liteviewer -c ./configuration.yml
# test
# use web browser open: http://localhost:8088
Use Web Browser Communicate With LitePipeline Cluster
Use web browser open the liteviewer's host & port in it's configuration file
Use Command Line Communicate With LitePipeline Cluster
$ litepipeline localhost:8000 cluster info
# | node_id | http_host | http_port | action_slots | app_path | data_path
1 | 32313239-e7ee-4f90-8c05-4e08fb48be70 | 127.0.0.1 | 8001 | 2 | /usr/local/lib/python3.7/dist-packages/litepipeline/node | /home/pi/Develop/litenode/data
# use -h/--help parameter to see help message
$ litepipeline --help
usage: litepipeline [-h] [-W COLUMN_WIDTH] [-v]
address
{app,app_history,task,cluster,workspace,workflow,work,schedule,service}
...
positional arguments:
address manager address, host:port
{app,app_history,task,cluster,workspace,workflow,work,schedule,service}
sub-command help
app operate with app API
app_history operate with app_history API
task operate with task API
cluster operate with cluster API
workspace operate with workspace API
workflow operate with workflow API
work operate with work API
schedule operate with schedule API
service operate with service API
optional arguments:
-h, --help show this help message and exit
-W COLUMN_WIDTH, --column_width COLUMN_WIDTH
column max width
-v, --version show program's version number and exit
$ litepipeline localhost:8000 app --help
usage: litepipeline address app [-h]
{create,delete,update,list,info,download} ...
positional arguments:
{create,delete,update,list,info,download}
sub-command app help
create create application
delete delete application
update update application
list list applications
info application's info
download download application
optional arguments:
-h, --help show this help message and exit
$ litepipeline localhost:8000 task --help
usage: litepipeline address task [-h]
{create,delete,list,info,rerun,recover,stop}
...
positional arguments:
{create,delete,list,info,rerun,recover,stop}
sub-command task help
create create task
delete delete task
list list tasks
info task's info
rerun rerun task
recover recover task
stop stop task
optional arguments:
-h, --help show this help message and exit
$ litepipeline localhost:8000 cluster --help
usage: litepipeline address cluster [-h] {info} ...
positional arguments:
{info} sub-command cluster help
info cluster's info
optional arguments:
-h, --help show this help message and exit
Metadata
Release files for litepipeline 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| litepipeline-0.1.5.tar.gz | 1.9 MB | Without provenance | Details for litepipeline-0.1.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| litepipeline-0.1.5-py3-none-any.whl | Python 3 | none | any | Details for litepipeline-0.1.5-py3-none-any.whl |
Total release size: 4.7 MB
Release files / litepipeline-0.1.5.tar.gz
| Download URL | litepipeline-0.1.5.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a092881024f0b1a7779a9c338b51432ccbe822b14af10790129247d331a6bf50
|
|
BLAKE2b-256 checksum How to use checksums |
771075e16d90a83a92239584ab3e80c29241ece36f6304c53b50f4c6fd0868ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.11
|
Release files / litepipeline-0.1.5-py3-none-any.whl
| Download URL | litepipeline-0.1.5-py3-none-any.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
007374bd8f74f526ca8de110589e37a03840e4bfdcbe427c5131a2c90b80eb89
|
|
BLAKE2b-256 checksum How to use checksums |
90b651f5909f72db881456126d133acf13f860a518dbf32939a1ae473d7cc012
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.11
|
Security for litepipeline 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.