Skip to main content

client for the arkitekt platform

Project description

arkitekt

codecov PyPI version Maintenance Maintainer PyPI pyversions PyPI status

streaming analysis for mikroscopy

Idea

arkitekt is the python client for the arkitekt platform. It allows you to utilize the full extent of the platform from your python code. To understand the idea behind arkitekt, you need to understand the idea behind the arkitekt 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[all]

This installs all dependencies for the arkitekt platform, inlcuding the arkitekt CLI, which can be used to develop and create apps, containerize them and deploy t

arkitekt 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 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 init

Which will lead you throught an app creation process. Apps can simply registered functions, through the register decorator

from arkitekt 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 run dev

For more details on how to create an app follow the tutorials on https://arkitekt.live.

Usage with complex Datastructures

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

Arkitekt 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 will automaticall shrink (serialize) and expand (deserialize) the structure on calling.

def complex_call(x: ComplexStrucuture) -> int:
    return x.max()

Check out the arkitekt 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

arkitekt-0.7.8.tar.gz (576.5 kB view details)

Uploaded Source

Built Distribution

arkitekt-0.7.8-py3-none-any.whl (617.5 kB view details)

Uploaded Python 3

File details

Details for the file arkitekt-0.7.8.tar.gz.

File metadata

  • Download URL: arkitekt-0.7.8.tar.gz
  • Upload date:
  • Size: 576.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.12 Linux/6.5.0-15-generic

File hashes

Hashes for arkitekt-0.7.8.tar.gz
Algorithm Hash digest
SHA256 3070796dc58ed4a74fae087c29cfedd04815b8beff8c7329e8df7a41b99f22ae
MD5 02ded420ceaad2e6631f13ec36a17654
BLAKE2b-256 4fecda6cae5a72bdaf3bdc42e381a49ee6d0854f39e7361cc745cd1fcdde80e7

See more details on using hashes here.

File details

Details for the file arkitekt-0.7.8-py3-none-any.whl.

File metadata

  • Download URL: arkitekt-0.7.8-py3-none-any.whl
  • Upload date:
  • Size: 617.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.12 Linux/6.5.0-15-generic

File hashes

Hashes for arkitekt-0.7.8-py3-none-any.whl
Algorithm Hash digest
SHA256 a15d662c4733a627105614e9c27d4ce409cd630a5131d7da8af49783b9f052fe
MD5 c791c745603f510beb44e6a898a92f97
BLAKE2b-256 5d340ebed938541aaec23846f1e53f202defc113938c8a5922aa5e7bb1474283

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