No project description provided
Project description
Pipez - lightweight library for fast deploy stream handling
Install
For installing default version of library use
pip install pipez
If you want install specific version pipez - use
pip install pipez[<your choice>]
Now available cv, fastapi and onnxruntime versions.
If you want install pypez with all depencies, you can use
pip install pipez[all]
If you want to install a few version - see nex example:
pip install pipez[cv, onnxruntime]
Quick start
Developing custom node
If you want use your node - you can use Registry.add as class decorator
from pipez.registry. You should also import base Node
class from pipez.node. For example:
from pipez.core.legacy_node import Node
from pipez.core.legacy_registry import Registry
Registry.add
class MyNode(Node):
...
Once required method which you should override: work_func(...) which
handle Batch from pipez.batch. However, methods
post_init(...) and close(...) also available. See next example:
from typing import Optional
from pipez.core.legacy_batch import Batch, BatchStatus
from pipez.core.legacy_node import Node
from pipez.core.legacy_registry import Registry
Registry.add
class MyNode(Node):
def __init__(
self,
a: int = 1,
**kwargs
):
super().__init__(**kwargs)
self._a = a
def post_init(self):
self._a *= 10
def close(self):
self._a = 0
def work_func(
self,
data: Optional[Batch] = None
) -> Batch:
self._a *= 2
if self._a > 1000:
return Batch(status=BatchStatus.END)
return Batch(data=[dict(a=self._a)])
Build pipelines
When you defined all nodes what you need, we build pipeline from them. You can use json describe or class for node. See next examples:
For using json describing you must add Registry.add as class decorator
for you node, else you will get error.
{
"cls": "MyNode",
"a": 5,
"type": "Process",
"output": "some_trash"
}
For using class you must import your node class.
from pipez.core.legacy_node import NodeType
from ... import MyNode
MyNode(
a=5,
type=NodeType.PROCESS,
output='some_trash'
)
As we can see, we used NodeType, which define type of node.
For building pipeline, we must use build_pipeline from pipez.build.
For example:
from pipez.core.legacy_build import build_pipeline
from pipez.nodes import DummyNode
from pipez.core.legacy_node import NodeType
from ... import MyNode
watchdog = build_pipeline(
pipeline=[
MyNode(
a=10,
type=NodeType.THREAD,
output='q1'
),
DummyNode(
type=NodeType.PROCESS,
input='q1',
output='q2'
),
DummyNode(
type=NodeType.THREAD,
input=['q1, q2'],
output='q3'
),
{
"cls": "DummyNode",
"type": "thread",
"input": "q3"
}
]
)
As we can see, build_pipeline return watchdog.
You can read about it in next section.
WatchDog
TODO
РЎontributors
- Alexander, https://github.com/tam2511
- Vitaly, https://github.com/purple63
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipez-0.0.95.tar.gz.
File metadata
- Download URL: pipez-0.0.95.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8d9a7fbce1c5c910c98225fbfd095ca65cfff22137fbac84f5c37af3f549f6a
|
|
| MD5 |
9d31d777792fa2b12785c71994df3618
|
|
| BLAKE2b-256 |
347c7360f606d9cdea2190fdf15e2697302b659f6d7ab7364a0d333bd038e553
|
File details
Details for the file pipez-0.0.95-py3-none-any.whl.
File metadata
- Download URL: pipez-0.0.95-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6ec01090ea9d592d7ce8f3393a14afb7c94b2126e71c6e9599f27c46daa4c2f
|
|
| MD5 |
5b6a4c54093305a0c9bb131966509f0c
|
|
| BLAKE2b-256 |
3fa429c9b48e2ba758b75a86cc9b5be37fc37959207395935d3a53f362dcf943
|