arkitekt-next 0.16.0__tar.gz → 0.17.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arkitekt-next might be problematic. Click here for more details.
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/PKG-INFO +1 -1
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/app/fakts.py +27 -1
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/call/local.py +1 -1
- arkitekt_next-0.17.0/arkitekt_next/cli/commands/call/main.py +28 -0
- arkitekt_next-0.17.0/arkitekt_next/cli/templates/filter.py +26 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/templates/simple.py +4 -1
- arkitekt_next-0.17.0/arkitekt_next/py.typed +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/pyproject.toml +2 -1
- arkitekt_next-0.16.0/arkitekt_next/__blok__.py +0 -58
- arkitekt_next-0.16.0/arkitekt_next/bloks/__init__.py +0 -1
- arkitekt_next-0.16.0/arkitekt_next/bloks/admin.py +0 -43
- arkitekt_next-0.16.0/arkitekt_next/bloks/alpaka.py +0 -139
- arkitekt_next-0.16.0/arkitekt_next/bloks/arkitekt.py +0 -55
- arkitekt_next-0.16.0/arkitekt_next/bloks/base.py +0 -217
- arkitekt_next-0.16.0/arkitekt_next/bloks/channel.py +0 -27
- arkitekt_next-0.16.0/arkitekt_next/bloks/config.py +0 -43
- arkitekt_next-0.16.0/arkitekt_next/bloks/elektro.py +0 -42
- arkitekt_next-0.16.0/arkitekt_next/bloks/fluss.py +0 -33
- arkitekt_next-0.16.0/arkitekt_next/bloks/gateway.py +0 -224
- arkitekt_next-0.16.0/arkitekt_next/bloks/internal_docker.py +0 -90
- arkitekt_next-0.16.0/arkitekt_next/bloks/kabinet.py +0 -46
- arkitekt_next-0.16.0/arkitekt_next/bloks/kraph.py +0 -45
- arkitekt_next-0.16.0/arkitekt_next/bloks/livekit.py +0 -85
- arkitekt_next-0.16.0/arkitekt_next/bloks/lok.py +0 -415
- arkitekt_next-0.16.0/arkitekt_next/bloks/lovekit.py +0 -202
- arkitekt_next-0.16.0/arkitekt_next/bloks/mikro.py +0 -42
- arkitekt_next-0.16.0/arkitekt_next/bloks/minio.py +0 -178
- arkitekt_next-0.16.0/arkitekt_next/bloks/mount.py +0 -34
- arkitekt_next-0.16.0/arkitekt_next/bloks/namegen.py +0 -34
- arkitekt_next-0.16.0/arkitekt_next/bloks/ollama.py +0 -90
- arkitekt_next-0.16.0/arkitekt_next/bloks/orkestrator.py +0 -122
- arkitekt_next-0.16.0/arkitekt_next/bloks/postgres.py +0 -134
- arkitekt_next-0.16.0/arkitekt_next/bloks/redis.py +0 -79
- arkitekt_next-0.16.0/arkitekt_next/bloks/rekuest.py +0 -30
- arkitekt_next-0.16.0/arkitekt_next/bloks/secret.py +0 -32
- arkitekt_next-0.16.0/arkitekt_next/bloks/self_signed.py +0 -91
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/__init__.py +0 -27
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/admin.py +0 -21
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/certer.py +0 -14
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/channel.py +0 -12
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/config.py +0 -13
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/db.py +0 -23
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/gateway.py +0 -39
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/livekit.py +0 -20
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/lok.py +0 -24
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/mount.py +0 -9
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/name.py +0 -11
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/ollama.py +0 -21
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/redis.py +0 -19
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/s3.py +0 -21
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/secret.py +0 -16
- arkitekt_next-0.16.0/arkitekt_next/bloks/services/socket.py +0 -13
- arkitekt_next-0.16.0/arkitekt_next/bloks/socket.py +0 -40
- arkitekt_next-0.16.0/arkitekt_next/bloks/tailscale.py +0 -90
- arkitekt_next-0.16.0/arkitekt_next/cli/commands/call/main.py +0 -21
- arkitekt_next-0.16.0/arkitekt_next/cli/templates/filter.py +0 -26
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/.gitignore +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/LICENSE +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/README.md +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/app/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/app/app.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/builders.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/call/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/call/remote.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/gen/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/gen/compile.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/gen/init.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/gen/main.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/gen/watch.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/init/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/init/main.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/inspect/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/inspect/implementations.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/inspect/main.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/inspect/requirements.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/inspect/variables.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/build.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/init.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/io.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/main.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/publish.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/stage.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/types.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/utils.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/kabinet/validate.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/manifest/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/manifest/inspect.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/manifest/main.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/manifest/scopes.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/manifest/version.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/run/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/run/dev.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/run/main.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/run/prod.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/commands/run/utils.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/constants.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/dockerfiles/vanilla.dockerfile +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/errors.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/inspect.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/io.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/main.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/options.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/fluss.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/gucker.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/kabinet.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/kluster.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/konviktion.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/kuay.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/mikro.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/mikro_next.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/napari.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/omero_ark.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/port.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/rekuest.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/rekuest_next.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/schemas/unlok.schema.graphql +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/texts.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/types.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/ui.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/utils.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/validators.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/vars.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/cli/versions/v1.yaml +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/constants.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/init_registry.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/inspect.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/protocols.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/__init__.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/dark/gear.png +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/dark/green pulse.gif +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/dark/orange pulse.gif +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/dark/pink pulse.gif +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/dark/red pulse.gif +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/light/gear.png +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/light/green pulse.gif +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/light/orange pulse.gif +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/light/pink pulse.gif +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/assets/light/red pulse.gif +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/builders.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/magic_bar.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/types.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/qt/utils.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/service_registry.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/tqdm.py +0 -0
- {arkitekt_next-0.16.0 → arkitekt_next-0.17.0}/arkitekt_next/utils.py +0 -0
|
@@ -20,6 +20,15 @@ def build_device_code_fakts(
|
|
|
20
20
|
no_cache: bool = False,
|
|
21
21
|
headless: bool = False,
|
|
22
22
|
) -> Fakts:
|
|
23
|
+
""" Builds a Fakts instance for device code authentication.
|
|
24
|
+
|
|
25
|
+
This is used when the user wants to authenticate an application
|
|
26
|
+
using a device code. The user will be prompted to open a browser
|
|
27
|
+
and enter a code to authenticate the application.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
"""
|
|
23
32
|
identifier = manifest.identifier
|
|
24
33
|
version = manifest.version
|
|
25
34
|
if url is None:
|
|
@@ -46,6 +55,15 @@ def build_device_code_fakts(
|
|
|
46
55
|
|
|
47
56
|
|
|
48
57
|
def build_redeem_fakts(manifest: Manifest, redeem_token: str, url: str) -> Fakts:
|
|
58
|
+
""" Builds a Fakts instance for redeeming a token.
|
|
59
|
+
|
|
60
|
+
A redeem token is used to register an application with the
|
|
61
|
+
fakts server, and to claim the configuration for the application.
|
|
62
|
+
|
|
63
|
+
Instead of using a device code, the user can redeem an application
|
|
64
|
+
without user interaction.
|
|
65
|
+
|
|
66
|
+
"""
|
|
49
67
|
identifier = manifest.identifier
|
|
50
68
|
version = manifest.version
|
|
51
69
|
|
|
@@ -67,7 +85,15 @@ def build_token_fakts(
|
|
|
67
85
|
manifest: Manifest,
|
|
68
86
|
token: str,
|
|
69
87
|
url: str,
|
|
70
|
-
):
|
|
88
|
+
) -> Fakts:
|
|
89
|
+
""" Builds a Fakts instance for token-based authentication.
|
|
90
|
+
|
|
91
|
+
This is used when an appllication was previously authenticated
|
|
92
|
+
and the user has a (claim) token to use for authentication.
|
|
93
|
+
|
|
94
|
+
E.g. when deploying an application through the kabinet deployer
|
|
95
|
+
|
|
96
|
+
"""
|
|
71
97
|
identifier = manifest.identifier
|
|
72
98
|
version = manifest.version
|
|
73
99
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
""" Calling functions in your arkitekt_next app"""
|
|
2
|
+
|
|
3
|
+
from click import Context
|
|
4
|
+
import rich_click as click
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
from .remote import remote
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@click.group()
|
|
11
|
+
@click.pass_context
|
|
12
|
+
def call(ctx: Context) -> None:
|
|
13
|
+
"""Call functions in your arkitekt_next app.
|
|
14
|
+
|
|
15
|
+
This command allows you to call functions in your app
|
|
16
|
+
either locally or remotely.
|
|
17
|
+
|
|
18
|
+
Locally, you can call functions that are defined in your app
|
|
19
|
+
without needing to use rekuest or fakts. (No Server for assignment needed)
|
|
20
|
+
|
|
21
|
+
Remotely, you can call functions that are defined in your app
|
|
22
|
+
using rekuest or fakts. This goes through a rekuest server to
|
|
23
|
+
remote call the function.
|
|
24
|
+
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
call.add_command(remote, "remote")
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from arkitekt_next import register
|
|
2
|
+
from mikro_next.api.schema import Image, from_array_like, PartialDerivedViewInput
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@register
|
|
6
|
+
def max_intensity_projection(image: Image) -> Image:
|
|
7
|
+
"""Z-Project the Maximum Intensity
|
|
8
|
+
|
|
9
|
+
This function projects the maximum intensity of the input image
|
|
10
|
+
along the z-axis
|
|
11
|
+
|
|
12
|
+
Parameters
|
|
13
|
+
----------
|
|
14
|
+
image : Image
|
|
15
|
+
The input image
|
|
16
|
+
|
|
17
|
+
Returns
|
|
18
|
+
-------
|
|
19
|
+
Image
|
|
20
|
+
The projected image
|
|
21
|
+
|
|
22
|
+
"""
|
|
23
|
+
image_data = image.data.max(dim="z")
|
|
24
|
+
return from_array_like(
|
|
25
|
+
image_data, name="Max Intensity Projection" + image.name, derived_views=[PartialDerivedViewInput(originImage=image)]
|
|
26
|
+
)
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
""" An example of a simple template for Arkitekt Next"""
|
|
2
|
+
|
|
1
3
|
from arkitekt_next import register
|
|
2
4
|
import time
|
|
5
|
+
from typing import Generator
|
|
3
6
|
|
|
4
7
|
|
|
5
8
|
@register
|
|
6
|
-
def generate_n_string(n: int = 10, timeout: int = 2) -> str:
|
|
9
|
+
def generate_n_string(n: int = 10, timeout: int = 2) -> Generator[str, None, None]:
|
|
7
10
|
"""Generate N Strings
|
|
8
11
|
|
|
9
12
|
This function generates {{n}} strings with a {{timeout}} ms timeout between each string
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "arkitekt-next"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.17.0"
|
|
4
4
|
description = "client for the arkitekt_next platform"
|
|
5
5
|
authors = [{ name = "jhnnsrs", email = "jhnnsrs@gmail.com" }]
|
|
6
6
|
requires-python = ">=3.11,<4"
|
|
@@ -65,6 +65,7 @@ dev-dependencies = [
|
|
|
65
65
|
"rich-click>=1.8",
|
|
66
66
|
"mikro-next>=0.3.1",
|
|
67
67
|
"python-semantic-release>=9.21.1",
|
|
68
|
+
"qtpy>=2.4.3",
|
|
68
69
|
]
|
|
69
70
|
|
|
70
71
|
[tool.hatch.build.targets.sdist]
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
from arkitekt_next.bloks.admin import AdminBlok
|
|
2
|
-
from arkitekt_next.bloks.arkitekt import ArkitektBlok
|
|
3
|
-
from arkitekt_next.bloks.mikro import MikroBlok
|
|
4
|
-
from arkitekt_next.bloks.fluss import FlussBlok
|
|
5
|
-
from arkitekt_next.bloks.orkestrator import OrkestratorBlok
|
|
6
|
-
from arkitekt_next.bloks.redis import RedisBlok
|
|
7
|
-
from arkitekt_next.bloks.gateway import CaddyBlok
|
|
8
|
-
from arkitekt_next.bloks.livekit import LocalLiveKitBlok
|
|
9
|
-
from arkitekt_next.bloks.postgres import PostgresBlok
|
|
10
|
-
from arkitekt_next.bloks.minio import MinioBlok
|
|
11
|
-
from arkitekt_next.bloks.kabinet import KabinetBlok
|
|
12
|
-
from arkitekt_next.bloks.lok import LokBlok
|
|
13
|
-
from arkitekt_next.bloks.alpaka import AlpakaBlok
|
|
14
|
-
from arkitekt_next.bloks.lovekit import LovekitBlok
|
|
15
|
-
from arkitekt_next.bloks.config import ConfigBlok
|
|
16
|
-
from arkitekt_next.bloks.mount import MountBlok
|
|
17
|
-
from arkitekt_next.bloks.internal_docker import InternalDockerBlok
|
|
18
|
-
from arkitekt_next.bloks.socket import DockerSocketBlok
|
|
19
|
-
from arkitekt_next.bloks.rekuest import RekuestBlok
|
|
20
|
-
from arkitekt_next.bloks.tailscale import TailscaleBlok
|
|
21
|
-
from arkitekt_next.bloks.secret import SecretBlok
|
|
22
|
-
from arkitekt_next.bloks.namegen import PreformedNamesBlok
|
|
23
|
-
from arkitekt_next.bloks.ollama import OllamaBlok
|
|
24
|
-
from arkitekt_next.bloks.self_signed import SelfSignedBlok
|
|
25
|
-
from arkitekt_next.bloks.kraph import KraphBlok
|
|
26
|
-
from arkitekt_next.bloks.elektro import ElektroBlok
|
|
27
|
-
from blok.blok import Blok
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def get_bloks() -> list[Blok]:
|
|
31
|
-
return [
|
|
32
|
-
AdminBlok(),
|
|
33
|
-
ArkitektBlok(),
|
|
34
|
-
MikroBlok(),
|
|
35
|
-
FlussBlok(),
|
|
36
|
-
RedisBlok(),
|
|
37
|
-
CaddyBlok(),
|
|
38
|
-
AlpakaBlok(),
|
|
39
|
-
LovekitBlok(),
|
|
40
|
-
LocalLiveKitBlok(),
|
|
41
|
-
PostgresBlok(),
|
|
42
|
-
MinioBlok(),
|
|
43
|
-
OllamaBlok(),
|
|
44
|
-
LokBlok(),
|
|
45
|
-
SelfSignedBlok(),
|
|
46
|
-
KabinetBlok(),
|
|
47
|
-
MountBlok(),
|
|
48
|
-
ConfigBlok(),
|
|
49
|
-
KraphBlok(),
|
|
50
|
-
InternalDockerBlok(),
|
|
51
|
-
DockerSocketBlok(),
|
|
52
|
-
RekuestBlok(),
|
|
53
|
-
TailscaleBlok(),
|
|
54
|
-
SecretBlok(),
|
|
55
|
-
PreformedNamesBlok(),
|
|
56
|
-
OrkestratorBlok(),
|
|
57
|
-
ElektroBlok(),
|
|
58
|
-
]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .admin import AdminBlok
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
from blok import blok, InitContext, Option
|
|
2
|
-
from arkitekt_next.bloks.services.admin import AdminService, AdminCredentials
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
@blok(AdminService, description="Admin credentials for the application")
|
|
6
|
-
class AdminBlok:
|
|
7
|
-
def __init__(self) -> None:
|
|
8
|
-
self.password = "admin"
|
|
9
|
-
self.username = "admin"
|
|
10
|
-
self.email = "admin@admin.com"
|
|
11
|
-
|
|
12
|
-
def preflight(self, init: InitContext):
|
|
13
|
-
for key, value in init.kwargs.items():
|
|
14
|
-
setattr(self, key, value)
|
|
15
|
-
|
|
16
|
-
def retrieve(self):
|
|
17
|
-
return AdminCredentials(
|
|
18
|
-
password=self.password,
|
|
19
|
-
username=self.username,
|
|
20
|
-
email=self.email,
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
def get_options(self):
|
|
24
|
-
with_username = Option(
|
|
25
|
-
subcommand="username",
|
|
26
|
-
help="Which admin username to use",
|
|
27
|
-
default=self.username,
|
|
28
|
-
show_default=True,
|
|
29
|
-
)
|
|
30
|
-
with_username = Option(
|
|
31
|
-
subcommand="password",
|
|
32
|
-
help="Which password to use",
|
|
33
|
-
default=self.password,
|
|
34
|
-
show_default=True,
|
|
35
|
-
)
|
|
36
|
-
with_email = Option(
|
|
37
|
-
subcommand="password",
|
|
38
|
-
help="Which password to use",
|
|
39
|
-
default=self.password,
|
|
40
|
-
show_default=True,
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
return [with_username, with_username, with_email]
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
from dataclasses import asdict
|
|
2
|
-
from typing import Dict, Any
|
|
3
|
-
import secrets
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
from arkitekt_next.bloks.services.admin import AdminService
|
|
7
|
-
from arkitekt_next.bloks.services.channel import ChannelService
|
|
8
|
-
from arkitekt_next.bloks.services.config import ConfigService
|
|
9
|
-
from arkitekt_next.bloks.services.db import DBService
|
|
10
|
-
from arkitekt_next.bloks.services.gateway import GatewayService
|
|
11
|
-
from arkitekt_next.bloks.services.lok import LokService
|
|
12
|
-
from arkitekt_next.bloks.services.mount import MountService
|
|
13
|
-
from arkitekt_next.bloks.services.ollama import OllamaService
|
|
14
|
-
from arkitekt_next.bloks.services.redis import RedisService
|
|
15
|
-
from arkitekt_next.bloks.services.s3 import S3Service
|
|
16
|
-
from arkitekt_next.bloks.services.secret import SecretService
|
|
17
|
-
from blok import blok, InitContext, ExecutionContext, Option
|
|
18
|
-
from blok.bloks.services.dns import DnsService
|
|
19
|
-
from blok.tree import Repo, YamlFile
|
|
20
|
-
from arkitekt_next.bloks.base import BaseArkitektService
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
@blok("live.arkitekt.alpaka", description="a container and app management service")
|
|
24
|
-
class AlpakaBlok(BaseArkitektService):
|
|
25
|
-
def get_builder(self):
|
|
26
|
-
return "arkitekt.generic"
|
|
27
|
-
|
|
28
|
-
def __init__(self) -> None:
|
|
29
|
-
self.dev = False
|
|
30
|
-
self.host = "alpaka"
|
|
31
|
-
self.command = "bash run-debug.sh"
|
|
32
|
-
self.repo = "https://github.com/arkitektio/alpaka-server"
|
|
33
|
-
self.scopes = {
|
|
34
|
-
"alpaka_pull": "Pull new Models",
|
|
35
|
-
"alpaka_chat": "Add repositories to the database",
|
|
36
|
-
}
|
|
37
|
-
self.mount_repo = False
|
|
38
|
-
self.build_repo = False
|
|
39
|
-
self.buckets = ["media"]
|
|
40
|
-
self.secret_key = secrets.token_hex(16)
|
|
41
|
-
self.image = "jhnnsrs/alpaka:nightly"
|
|
42
|
-
|
|
43
|
-
def preflight(
|
|
44
|
-
self,
|
|
45
|
-
lok: LokService,
|
|
46
|
-
db: DBService,
|
|
47
|
-
redis: RedisService,
|
|
48
|
-
s3: S3Service,
|
|
49
|
-
config: ConfigService,
|
|
50
|
-
ollama: OllamaService,
|
|
51
|
-
mount: MountService,
|
|
52
|
-
admin: AdminService,
|
|
53
|
-
secret: SecretService,
|
|
54
|
-
gateway: GatewayService,
|
|
55
|
-
mount_repo: bool = False,
|
|
56
|
-
host: str = "",
|
|
57
|
-
image: str = "",
|
|
58
|
-
secret_key: str = "",
|
|
59
|
-
build_repo: bool = False,
|
|
60
|
-
command: str = "",
|
|
61
|
-
repo: str = "",
|
|
62
|
-
disable: bool = False,
|
|
63
|
-
dev: bool = False,
|
|
64
|
-
):
|
|
65
|
-
lok.register_scopes(self.scopes)
|
|
66
|
-
|
|
67
|
-
path_name = self.host
|
|
68
|
-
|
|
69
|
-
gateway_path = gateway.expose_service(path_name, 80, self.host)
|
|
70
|
-
lok.register_service_on_subpath(
|
|
71
|
-
self.get_blok_meta().service_identifier, gateway_path, "ht"
|
|
72
|
-
)
|
|
73
|
-
|
|
74
|
-
postgress_access = db.register_db(self.host)
|
|
75
|
-
redis_access = redis.register()
|
|
76
|
-
lok_access = lok.retrieve_credentials()
|
|
77
|
-
admin_access = admin.retrieve()
|
|
78
|
-
minio_access = s3.create_buckets(self.buckets)
|
|
79
|
-
lok_labels = lok.retrieve_labels("live.arkitekt.alpaka", self.get_builder())
|
|
80
|
-
ollama_access = ollama.get_access()
|
|
81
|
-
|
|
82
|
-
django_secret = secret.retrieve_secret()
|
|
83
|
-
|
|
84
|
-
csrf_trusted_origins = []
|
|
85
|
-
|
|
86
|
-
configuration = YamlFile(
|
|
87
|
-
**{
|
|
88
|
-
"db": asdict(postgress_access),
|
|
89
|
-
"django": {
|
|
90
|
-
"admin": asdict(admin_access),
|
|
91
|
-
"debug": True,
|
|
92
|
-
"hosts": ["*"],
|
|
93
|
-
"secret_key": django_secret,
|
|
94
|
-
},
|
|
95
|
-
"redis": asdict(redis_access),
|
|
96
|
-
"lok": asdict(lok_access),
|
|
97
|
-
"s3": asdict(minio_access),
|
|
98
|
-
"scopes": self.scopes,
|
|
99
|
-
"force_script_name": path_name,
|
|
100
|
-
"csrf_trusted_origins": csrf_trusted_origins,
|
|
101
|
-
**self.get_additional_config(),
|
|
102
|
-
}
|
|
103
|
-
)
|
|
104
|
-
|
|
105
|
-
config_mount = config.register_config(f"{self.host}.yaml", configuration)
|
|
106
|
-
|
|
107
|
-
depends_on = []
|
|
108
|
-
|
|
109
|
-
if redis_access.dependency:
|
|
110
|
-
depends_on.append(redis_access.dependency)
|
|
111
|
-
|
|
112
|
-
if postgress_access.dependency:
|
|
113
|
-
depends_on.append(postgress_access.dependency)
|
|
114
|
-
|
|
115
|
-
if minio_access.dependency:
|
|
116
|
-
depends_on.append(minio_access.dependency)
|
|
117
|
-
|
|
118
|
-
if ollama_access.dependency:
|
|
119
|
-
depends_on.append(ollama_access.dependency)
|
|
120
|
-
|
|
121
|
-
service = {
|
|
122
|
-
"labels": lok_labels,
|
|
123
|
-
"volumes": [f"{config_mount}:/workspace/config.yaml"],
|
|
124
|
-
"depends_on": depends_on,
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if mount_repo or dev:
|
|
128
|
-
mount = mount.register_mount(self.host, Repo(repo))
|
|
129
|
-
service["volumes"].extend([f"{mount}:/workspace"])
|
|
130
|
-
|
|
131
|
-
if build_repo or dev:
|
|
132
|
-
mount = mount.register_mount(self.host, Repo(repo))
|
|
133
|
-
service["build"] = mount
|
|
134
|
-
else:
|
|
135
|
-
service["image"] = image
|
|
136
|
-
|
|
137
|
-
service["command"] = command
|
|
138
|
-
|
|
139
|
-
self.service = service
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
from typing import Any, Dict, Optional
|
|
2
|
-
|
|
3
|
-
from pydantic import BaseModel
|
|
4
|
-
|
|
5
|
-
from arkitekt_next.bloks.kraph import KraphBlok
|
|
6
|
-
from arkitekt_next.bloks.lok import LokBlok
|
|
7
|
-
from arkitekt_next.bloks.tailscale import TailscaleBlok
|
|
8
|
-
from blok import InitContext, Panel, Renderer, blok
|
|
9
|
-
|
|
10
|
-
from .fluss import FlussBlok
|
|
11
|
-
from .internal_docker import InternalDockerBlok
|
|
12
|
-
from .kabinet import KabinetBlok
|
|
13
|
-
from .mikro import MikroBlok
|
|
14
|
-
from .orkestrator import OrkestratorBlok
|
|
15
|
-
from .rekuest import RekuestBlok
|
|
16
|
-
from .ollama import OllamaBlok
|
|
17
|
-
from .elektro import ElektroBlok
|
|
18
|
-
from .alpaka import AlpakaBlok
|
|
19
|
-
from .lovekit import LovekitBlok
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class AdminCredentials(BaseModel):
|
|
23
|
-
password: str
|
|
24
|
-
username: str
|
|
25
|
-
email: str
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
@blok(
|
|
29
|
-
"live.arkitekt",
|
|
30
|
-
dependencies=[
|
|
31
|
-
LokBlok.as_dependency(True, True),
|
|
32
|
-
MikroBlok.as_dependency(True, True),
|
|
33
|
-
KabinetBlok.as_dependency(True, True),
|
|
34
|
-
RekuestBlok.as_dependency(True, True),
|
|
35
|
-
FlussBlok.as_dependency(True, True),
|
|
36
|
-
InternalDockerBlok.as_dependency(True, True),
|
|
37
|
-
KraphBlok.as_dependency(True, True),
|
|
38
|
-
AlpakaBlok.as_dependency(True, True),
|
|
39
|
-
ElektroBlok.as_dependency(True, True),
|
|
40
|
-
LovekitBlok.as_dependency(True, True),
|
|
41
|
-
],
|
|
42
|
-
)
|
|
43
|
-
class ArkitektBlok:
|
|
44
|
-
def entry(self, renderer: Renderer):
|
|
45
|
-
renderer.render(
|
|
46
|
-
Panel(
|
|
47
|
-
f"""This is the arkitekt build that allows you to setup a full stack arkitekt application. You can use this to setup a full stack application with the following services""",
|
|
48
|
-
expand=False,
|
|
49
|
-
title="Welcome to Arkitekt!",
|
|
50
|
-
style="bold magenta",
|
|
51
|
-
)
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
def build(self, cwd):
|
|
55
|
-
pass
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
from arkitekt_next.bloks.services.channel import ChannelService
|
|
2
|
-
from blok import blok, InitContext, Option
|
|
3
|
-
from blok.tree import YamlFile, Repo
|
|
4
|
-
from typing import Any, Optional, Protocol
|
|
5
|
-
from blok.utils import check_protocol_compliance
|
|
6
|
-
from dataclasses import asdict
|
|
7
|
-
from arkitekt_next.bloks.services import (
|
|
8
|
-
GatewayService,
|
|
9
|
-
DBService,
|
|
10
|
-
RedisService,
|
|
11
|
-
S3Service,
|
|
12
|
-
ConfigService,
|
|
13
|
-
MountService,
|
|
14
|
-
AdminService,
|
|
15
|
-
SecretService,
|
|
16
|
-
LokService,
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
from blok.bloks.services.dns import DnsService
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class DefaultService(Protocol):
|
|
23
|
-
dev: bool
|
|
24
|
-
repo: str
|
|
25
|
-
command: str
|
|
26
|
-
service_name: str
|
|
27
|
-
host: str
|
|
28
|
-
buckets: list[str]
|
|
29
|
-
scopes: dict[str, str]
|
|
30
|
-
secret_key: str
|
|
31
|
-
mount_repo: bool
|
|
32
|
-
build_repo: bool
|
|
33
|
-
|
|
34
|
-
def get_blok_meta(self) -> str: ...
|
|
35
|
-
|
|
36
|
-
def get_builder(self) -> str: ...
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def create_default_service_dependencies():
|
|
40
|
-
return [
|
|
41
|
-
DnsService,
|
|
42
|
-
GatewayService,
|
|
43
|
-
DBService,
|
|
44
|
-
RedisService,
|
|
45
|
-
S3Service,
|
|
46
|
-
ConfigService,
|
|
47
|
-
MountService,
|
|
48
|
-
AdminService,
|
|
49
|
-
SecretService,
|
|
50
|
-
LokService,
|
|
51
|
-
]
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
class BaseArkitektService:
|
|
55
|
-
def get_additional_config(self):
|
|
56
|
-
return {}
|
|
57
|
-
|
|
58
|
-
def preflight(
|
|
59
|
-
self,
|
|
60
|
-
init: InitContext,
|
|
61
|
-
lok: LokService,
|
|
62
|
-
db: DBService,
|
|
63
|
-
redis: RedisService,
|
|
64
|
-
s3: S3Service,
|
|
65
|
-
config: ConfigService,
|
|
66
|
-
mount: MountService,
|
|
67
|
-
admin: AdminService,
|
|
68
|
-
secret: SecretService,
|
|
69
|
-
gateway: GatewayService,
|
|
70
|
-
mount_repo: bool = False,
|
|
71
|
-
host: str = "",
|
|
72
|
-
image: str = "",
|
|
73
|
-
secret_key: str = "",
|
|
74
|
-
build_repo: bool = False,
|
|
75
|
-
command: str = "",
|
|
76
|
-
repo: str = "",
|
|
77
|
-
disable: bool = False,
|
|
78
|
-
dev: bool = False,
|
|
79
|
-
):
|
|
80
|
-
deps = init.dependencies
|
|
81
|
-
|
|
82
|
-
lok.register_scopes(self.scopes)
|
|
83
|
-
|
|
84
|
-
path_name = self.host
|
|
85
|
-
|
|
86
|
-
postgress_access = db.register_db(self.host)
|
|
87
|
-
redis_access = redis.register()
|
|
88
|
-
lok_access = lok.retrieve_credentials()
|
|
89
|
-
admin_access = admin.retrieve()
|
|
90
|
-
minio_access = s3.create_buckets(self.buckets)
|
|
91
|
-
|
|
92
|
-
self.service_identifier = self.get_blok_meta().service_identifier
|
|
93
|
-
|
|
94
|
-
gateway_path = gateway.expose_service(
|
|
95
|
-
path_name, 80, self.host, strip_prefix=False
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
lok_labels = lok.register_service_on_subpath(
|
|
99
|
-
self.service_identifier, gateway_path, "ht"
|
|
100
|
-
)
|
|
101
|
-
|
|
102
|
-
django_secret = secret.retrieve_secret()
|
|
103
|
-
|
|
104
|
-
csrf_trusted_origins = []
|
|
105
|
-
|
|
106
|
-
configuration = YamlFile(
|
|
107
|
-
**{
|
|
108
|
-
"db": asdict(postgress_access),
|
|
109
|
-
"django": {
|
|
110
|
-
"admin": asdict(admin_access),
|
|
111
|
-
"debug": True,
|
|
112
|
-
"hosts": ["*"],
|
|
113
|
-
"secret_key": django_secret,
|
|
114
|
-
},
|
|
115
|
-
"redis": asdict(redis_access),
|
|
116
|
-
"lok": asdict(lok_access),
|
|
117
|
-
"s3": asdict(minio_access),
|
|
118
|
-
"scopes": self.scopes,
|
|
119
|
-
"force_script_name": path_name,
|
|
120
|
-
"csrf_trusted_origins": csrf_trusted_origins,
|
|
121
|
-
**self.get_additional_config(),
|
|
122
|
-
}
|
|
123
|
-
)
|
|
124
|
-
|
|
125
|
-
config_mount = init.get_service(ConfigService).register_config(
|
|
126
|
-
f"{self.host}.yaml", configuration
|
|
127
|
-
)
|
|
128
|
-
|
|
129
|
-
depends_on = []
|
|
130
|
-
|
|
131
|
-
if redis_access.dependency:
|
|
132
|
-
depends_on.append(redis_access.dependency)
|
|
133
|
-
|
|
134
|
-
if postgress_access.dependency:
|
|
135
|
-
depends_on.append(postgress_access.dependency)
|
|
136
|
-
|
|
137
|
-
if minio_access.dependency:
|
|
138
|
-
depends_on.append(minio_access.dependency)
|
|
139
|
-
|
|
140
|
-
service = {
|
|
141
|
-
"volumes": [f"{config_mount}:/workspace/config.yaml"],
|
|
142
|
-
"depends_on": depends_on,
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
if mount_repo or dev:
|
|
146
|
-
mount = init.get_service(MountService).register_mount(self.host, Repo(repo))
|
|
147
|
-
service["volumes"].extend([f"{mount}:/workspace"])
|
|
148
|
-
|
|
149
|
-
if build_repo or dev:
|
|
150
|
-
mount = init.get_service(MountService).register_mount(self.host, Repo(repo))
|
|
151
|
-
service["build"] = mount
|
|
152
|
-
else:
|
|
153
|
-
service["image"] = image
|
|
154
|
-
|
|
155
|
-
service["command"] = command
|
|
156
|
-
|
|
157
|
-
self.service = service
|
|
158
|
-
|
|
159
|
-
def get_additional_options(self):
|
|
160
|
-
return []
|
|
161
|
-
|
|
162
|
-
def get_options(self):
|
|
163
|
-
return [
|
|
164
|
-
Option(
|
|
165
|
-
subcommand="dev",
|
|
166
|
-
help="Shoud we run the service in development mode (includes withrepo, mountrepo)?",
|
|
167
|
-
default=self.dev,
|
|
168
|
-
),
|
|
169
|
-
Option(
|
|
170
|
-
subcommand="host",
|
|
171
|
-
help="The name we should use for the host?",
|
|
172
|
-
default=self.host,
|
|
173
|
-
),
|
|
174
|
-
Option(
|
|
175
|
-
subcommand="disable",
|
|
176
|
-
help="Shoud we disable the service?",
|
|
177
|
-
default=False,
|
|
178
|
-
),
|
|
179
|
-
Option(
|
|
180
|
-
subcommand="repo",
|
|
181
|
-
help="Which repo should we use when building the service? Only active if build_repo or mount_repo is active",
|
|
182
|
-
default=self.repo,
|
|
183
|
-
),
|
|
184
|
-
Option(
|
|
185
|
-
subcommand="command",
|
|
186
|
-
help="Which command should we use when building the service?",
|
|
187
|
-
default=self.command,
|
|
188
|
-
),
|
|
189
|
-
Option(
|
|
190
|
-
subcommand="mount_repo",
|
|
191
|
-
help="Should we mount the repo into the container?",
|
|
192
|
-
type=bool,
|
|
193
|
-
default=self.mount_repo,
|
|
194
|
-
),
|
|
195
|
-
Option(
|
|
196
|
-
subcommand="build_repo",
|
|
197
|
-
help="Should we build the container from the repo?",
|
|
198
|
-
type=bool,
|
|
199
|
-
default=self.build_repo,
|
|
200
|
-
),
|
|
201
|
-
Option(
|
|
202
|
-
subcommand="host",
|
|
203
|
-
help="How should the service be named inside the docker-compose file?",
|
|
204
|
-
default=self.host,
|
|
205
|
-
),
|
|
206
|
-
Option(
|
|
207
|
-
subcommand="secret_key",
|
|
208
|
-
help="The secret key to use for the django service",
|
|
209
|
-
default=self.secret_key,
|
|
210
|
-
),
|
|
211
|
-
Option(
|
|
212
|
-
subcommand="image",
|
|
213
|
-
help="The image to use for the service",
|
|
214
|
-
default=self.image,
|
|
215
|
-
),
|
|
216
|
-
*self.get_additional_options(),
|
|
217
|
-
]
|