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.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

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.90.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

pipez-0.0.90-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pipez-0.0.90.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

Hashes for pipez-0.0.90.tar.gz
Algorithm Hash digest
SHA256 858b51f710ea28d7ccdf282ff0baf7c613e6e5559d44a0586e8d1d7d664d3f8a
MD5 9e902815053f3422f430858ffe512515
BLAKE2b-256 b5184771dfd14429fe73da8b3939664129e5945014cf84b86ee724664ed35388

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pipez-0.0.90-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

Hashes for pipez-0.0.90-py3-none-any.whl
Algorithm Hash digest
SHA256 76c6f2b286f7f0e0537a0e3676f7c25609cad51c29cd2240cb1231d8a3ae39c6
MD5 60015f767cf32e8c5b7c0a5768ffec92
BLAKE2b-256 5613eaf44480295055d9c79270eef99e30991cc61b3db0dcfe9252fb68560619

See more details on using hashes here.

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