Skip to main content

client for the arkitekt_next platform

Project description

arkitekt-next

codecov PyPI version Maintenance Maintainer PyPI pyversions PyPI status

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

For a complete reference of the arkitekt-next command line interface (init, run, manifest, kabinet, gen, inspect and call) see docs/cli.md.

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

arkitekt_next-0.42.2.tar.gz (571.1 kB view details)

Uploaded Source

Built Distribution

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

arkitekt_next-0.42.2-py3-none-any.whl (611.2 kB view details)

Uploaded Python 3

File details

Details for the file arkitekt_next-0.42.2.tar.gz.

File metadata

  • Download URL: arkitekt_next-0.42.2.tar.gz
  • Upload date:
  • Size: 571.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for arkitekt_next-0.42.2.tar.gz
Algorithm Hash digest
SHA256 8de7161380962d062fcc8438d2cccaa5b5df06e02f3b37ff08dbfb4bcac5975e
MD5 0cf4dae4600927b0305e5c3fb34d5420
BLAKE2b-256 bf5c522fbc5b852c8d221101cc79c08c26ec98dabb6f5c7584e8f4f49ce6f825

See more details on using hashes here.

File details

Details for the file arkitekt_next-0.42.2-py3-none-any.whl.

File metadata

  • Download URL: arkitekt_next-0.42.2-py3-none-any.whl
  • Upload date:
  • Size: 611.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for arkitekt_next-0.42.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb50cbc138bc35a3c8af8178e91aa2940a2ecccb6332ade41ac62bbd7347c7c9
MD5 c5d842e39601765b31e3a1c2cafff611
BLAKE2b-256 0fb11880d9bd474e1f4d7bcf056d57a5e2077014d9628c74b79f5ef1046af5c3

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