Skip to main content

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.node import  Node
from pipez.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.batch import Batch, BatchStatus
from pipez.node import  Node
from pipez.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.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.build import build_pipeline
from pipez.nodes import DummyNode
from pipez.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

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

pipez-0.0.60.tar.gz (811.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pipez-0.0.60-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file pipez-0.0.60.tar.gz.

File metadata

  • Download URL: pipez-0.0.60.tar.gz
  • Upload date:
  • Size: 811.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for pipez-0.0.60.tar.gz
Algorithm Hash digest
SHA256 1d9a235978a8486d56d1812eb07b32de9d021b6c410e24a3a3f9bf2493a8ba66
MD5 c44ed62653d8dfd11e474b8b140f424d
BLAKE2b-256 0b7cc5f0e28e63a8fe578cdbe5a304a9cb1176342b7d5c3c4846813b1ef422fa

See more details on using hashes here.

File details

Details for the file pipez-0.0.60-py3-none-any.whl.

File metadata

  • Download URL: pipez-0.0.60-py3-none-any.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for pipez-0.0.60-py3-none-any.whl
Algorithm Hash digest
SHA256 e07390bfd6f3fc6cb416374fafbf115807054e091ca8fb6dc552e9de0179f12e
MD5 953e9975c929212a337927316d03906a
BLAKE2b-256 90e4d0698b75f4982c4a8c2e18f83778cff42a13ff3a5a11cc0a3e5acdbcbca5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page