client for the arkitekt_next platform
Project description
arkitekt_next
streaming analysis for mikroscopy
Idea
arkitekt_next is the python client for the arkitekt_next platform. It allows you to utilize the full extent of the platform from your python code. To understand the idea behind arkitekt_next, you need to understand the idea behind the arkitekt_next platform. (More on this in the documentation)
Features
- Host your python functions and make them to your team
- Use functions from your team in your code
- Interact with and store data in a secure and scalable way on the platform
- Use the platform as a central storage for your data
Install
pip install arkitekt_next[all]
This installs all dependencies for the arkitekt_next platform, inlcuding the arkitekt_next CLI, which can be used to develop and create apps, containerize them and deploy t
arkitekt_next is relying heavily on asyncio patters and therfore supports python 3.8 and above. It also relies on the pydantic stack for serialization.
App
You can use the cli to create python based apps for the arkitekt_next platform, profiting from a battery of features like easy GUI creation based on type annotations, orchestration of real-time (in memoery) workflows, data hosting, easy packaging and distribution in docker containers, etc...
To get started create a directory and run
arkitekt_next init
Which will lead you throught an app creation process. Apps can simply registered functions, through the register decorator
from arkitekt_next import register
@register()
def rpc_function(x: int, name: str) -> str
"""
A rpc function that we can
simple call from anywhere
""
And then connected to a local or remote server by running
Run example:
arkitekt_next run dev
For more details on how to create an app follow the tutorials on https://arkitekt_next.live.
Usage with complex Datastructures
ArkitektNext takes care of serialization and documentation of standard python datastructures
- str
- bool
- int
- float
- Enum
- Dict
- List
To increase performance and reduce latency it is not possible to serialize complex python objects like numpy arrays into the messages. These are best transformed into immutable objects on a centrally accessible storage and then only the reference is passed.
ArkitektNext does not impose any rules on how you handle this storage (see mikro for ideas), it provides however a simple api.
class ComplexStructure:
id: str # A reference for this structure on central storage
async def shrink(self):
return self.id
@classmethod
async def expand(cls, value):
return cls.load_from_server(value)
by providing two functions:
- shrink
- expand
You can now use this Structure with simple typehints and arkitekt_next will automaticall shrink (serialize) and expand (deserialize) the structure on calling.
def complex_call(x: ComplexStrucuture) -> int:
return x.max()
Check out the arkitekt_next documentation for usage of this libary
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
File details
Details for the file arkitekt_next-0.7.45.tar.gz
.
File metadata
- Download URL: arkitekt_next-0.7.45.tar.gz
- Upload date:
- Size: 587.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.8.0-38-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97e41b312d53ddfd020355617fe6323596295c19d766b0a2ae7792a3f5bbfba2 |
|
MD5 | 3a4b042152434f57d4be6c673846d8c8 |
|
BLAKE2b-256 | b3140b528118135e054e36a799a821d2da6c1d9aa34c7a9f5a9ec5b83e583368 |
File details
Details for the file arkitekt_next-0.7.45-py3-none-any.whl
.
File metadata
- Download URL: arkitekt_next-0.7.45-py3-none-any.whl
- Upload date:
- Size: 636.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.8.0-38-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb322adf75dc0ff0364e3536fde8b4a4565a95a2ef4fd5bc261f1020eda41df6 |
|
MD5 | b8cde770756a4ba0de97a40b861d7dfb |
|
BLAKE2b-256 | da43b3b4376c45f1daae33bdfcdcc90f00da3ed46fbc1095a68f729edf7d925e |