Skip to main content

kabinet

codecov PyPI version Maintenance Maintainer PyPI pyversions PyPI download month Ruff

The python client for kabinet, the Arkitekt service that manages the installable apps of a deployment: the repositories they come from, their releases and flavours, and the deployments and pods that run them. It is the successor to the port spec.

Installation

pip install kabinet

With arkitekt, pip install "arkitekt[rekuest,kabinet]" brings it in.

Usage

Every kabinet operation is a method of the Kabinet client, in a blocking and an a-prefixed async flavour (kabinet.get_pod(id), await kabinet.aget_pod(id)). Nothing is looked up ambiently.

In an arkitekt app

Add the service to your app and ask for kabinet: Kabinet; the client is injected by annotation. Pods, deployments, releases, approvals, definitions and flavours travel between actions by id (@kabinet/pod, @kabinet/deployment, @kabinet/release, @kabinet/approval, @kabinet/definition, @kabinet/flavour), so an action can take and return them directly:

from arkitekt import App, run
from kabinet import Kabinet, kabinet_service
from kabinet.api.schema import Pod

app = App("pod-status", "0.1.0", services=[kabinet_service])


@app.action
def pod_status(pod: Pod, kabinet: Kabinet) -> str:
    """Pod Status

    Fetches the current status of a pod.
    """
    return kabinet.get_pod(pod.id).status.value


if __name__ == "__main__":
    run(app)

From a script

from arkitekt import easy
from kabinet import kabinet_service

with easy("my-script", kabinet_service) as kabinet:
    repo = kabinet.create_github_repo(
        name="A new repo",
        identifier="jhnnsrs/kabinet:main",
    )
    print(repo)  # the repo with all the app images found in it

Testing

uv run pytest -m "not integration"   # fast unit layer: no docker, <1s
uv run pytest                        # full suite: spins the dokker compose stack

The unit layer proves the wire contract through a rath AsyncMockLink (camelCase aliases, @oneOf ordering variants, the six-kind selector union, the PodEvent subscription shape) and the arkitekt service wiring via a hot-plugged fakts.testing.TestingFakts. The integration-marked tests run the same operations against the composed server image; until a new-generation jhnnsrs/kabinet:next is pushed, point them at a locally built image with KABINET_SERVICE_IMAGE=next-kabinet:latest uv run pytest.

See RELEASING.md for how versions are cut.

Metadata

Release files for kabinet 4.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kabinet 4.1.0
File Size Uploaded
kabinet-4.1.0.tar.gz 70.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kabinet 4.1.0
File Interpreter ABI Platform
kabinet-4.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 142.2 kB

Release files / kabinet-4.1.0.tar.gz

Download URL kabinet-4.1.0.tar.gz
Size 70.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f8a06b726c804348bdc7cd804bc07e894714a93e58c09696af8d12f1d0b32d03
BLAKE2b-256 checksum
How to use checksums
1c670078a6be5e69ea8d4fed3f2ccc74e6f4817049cd3b709ea347460527ce21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","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}

Release files / kabinet-4.1.0-py3-none-any.whl

Download URL kabinet-4.1.0-py3-none-any.whl
Size 71.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df4d283975dfeef2fbe1c9ddc1f925a65d485dfd3f847c188fc488b4d799bdb2
BLAKE2b-256 checksum
How to use checksums
de64c3b49b6cd293203041005a30a275fb7c76fb4a923aec106fb3487832c680
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","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}

Release history Release notifications | RSS feed

5.2.0

2 release files

5.1.0

2 release files

5.0.1

2 release files

5.0.0

2 release files

This release

4.1.0 This release

2 release files

4.0.0

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.11.4

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.46

2 release files

0.1.45

2 release files

0.1.44

2 release files

0.1.43

2 release files

0.1.42

2 release files

0.1.41

2 release files

0.1.40

2 release files

0.1.38

2 release files

0.1.37

2 release files

0.1.36

2 release files

0.1.35

2 release files

0.1.34

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page