arkitekt-next 0.7.52__py3-none-any.whl → 0.7.54__py3-none-any.whl
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/__init__.py +2 -1
- arkitekt_next/apps/easy.py +12 -4
- arkitekt_next/apps/next.py +0 -1
- arkitekt_next/apps/qt.py +9 -3
- arkitekt_next/apps/service/fakts.py +1 -0
- arkitekt_next/apps/service/fakts_qt.py +1 -1
- arkitekt_next/apps/types.py +0 -4
- arkitekt_next/bloks/__init__.py +0 -1
- arkitekt_next/bloks/config.py +1 -0
- arkitekt_next/bloks/mount.py +1 -1
- arkitekt_next/bloks/namegen.py +1 -1
- arkitekt_next/bloks/orkestrator.py +6 -1
- arkitekt_next/bloks/postgres.py +0 -2
- arkitekt_next/bloks/redis.py +1 -2
- arkitekt_next/bloks/secret.py +1 -2
- arkitekt_next/bloks/services/admin.py +1 -1
- arkitekt_next/bloks/services/config.py +1 -6
- arkitekt_next/bloks/services/livekit.py +3 -5
- arkitekt_next/bloks/services/mount.py +1 -7
- arkitekt_next/bloks/services/name.py +1 -2
- arkitekt_next/bloks/services/secret.py +2 -1
- arkitekt_next/builders.py +45 -6
- arkitekt_next/cli/commands/inspect/requirements.py +1 -2
- arkitekt_next/cli/commands/kabinet/build.py +12 -3
- arkitekt_next/cli/commands/kabinet/init.py +6 -3
- arkitekt_next/cli/commands/kabinet/stage.py +12 -4
- arkitekt_next/cli/constants.py +0 -1
- arkitekt_next/cli/texts.py +1 -3
- arkitekt_next/constants.py +2 -4
- arkitekt_next/model.py +1 -1
- arkitekt_next/qt/__init__.py +2 -1
- arkitekt_next/qt/builders.py +14 -6
- arkitekt_next/qt/types.py +2 -6
- arkitekt_next/service_registry.py +33 -21
- arkitekt_next/tqdm.py +3 -1
- arkitekt_next/utils.py +11 -12
- {arkitekt_next-0.7.52.dist-info → arkitekt_next-0.7.54.dist-info}/METADATA +1 -1
- {arkitekt_next-0.7.52.dist-info → arkitekt_next-0.7.54.dist-info}/RECORD +41 -41
- {arkitekt_next-0.7.52.dist-info → arkitekt_next-0.7.54.dist-info}/LICENSE +0 -0
- {arkitekt_next-0.7.52.dist-info → arkitekt_next-0.7.54.dist-info}/WHEEL +0 -0
- {arkitekt_next-0.7.52.dist-info → arkitekt_next-0.7.54.dist-info}/entry_points.txt +0 -0
arkitekt_next/__init__.py
CHANGED
|
@@ -17,13 +17,14 @@ except ImportError as e:
|
|
|
17
17
|
background = missing_install("rekuest_next", e)
|
|
18
18
|
startup = missing_install("rekuest_next", e)
|
|
19
19
|
|
|
20
|
-
from .builders import easy
|
|
20
|
+
from .builders import easy, interactive
|
|
21
21
|
from .apps.types import App
|
|
22
22
|
|
|
23
23
|
__all__ = [
|
|
24
24
|
"App",
|
|
25
25
|
"register",
|
|
26
26
|
"easy",
|
|
27
|
+
"interactive",
|
|
27
28
|
"publicqt",
|
|
28
29
|
"jupy",
|
|
29
30
|
"log",
|
arkitekt_next/apps/easy.py
CHANGED
|
@@ -32,7 +32,9 @@ def build_arkitekt_app(
|
|
|
32
32
|
herre = build_arkitekt_next_herre(fakts=fakts)
|
|
33
33
|
|
|
34
34
|
try:
|
|
35
|
-
from arkitekt_next_next.apps.service.rekuest_next import
|
|
35
|
+
from arkitekt_next_next.apps.service.rekuest_next import (
|
|
36
|
+
build_arkitekt_next_rekuest_next,
|
|
37
|
+
)
|
|
36
38
|
|
|
37
39
|
rekuest = build_arkitekt_next_rekuest_next(
|
|
38
40
|
fakts=fakts, herre=herre, instance_id=instance_id
|
|
@@ -41,7 +43,9 @@ def build_arkitekt_app(
|
|
|
41
43
|
rekuest = ImportException(import_exception=e, install_library="rekuest_next")
|
|
42
44
|
|
|
43
45
|
try:
|
|
44
|
-
from arkitekt_next_next.apps.service.mikro_next import
|
|
46
|
+
from arkitekt_next_next.apps.service.mikro_next import (
|
|
47
|
+
build_arkitekt_next_mikro_next,
|
|
48
|
+
)
|
|
45
49
|
|
|
46
50
|
mikro = build_arkitekt_next_mikro_next(fakts=fakts, herre=herre)
|
|
47
51
|
except ImportError as e:
|
|
@@ -57,7 +61,9 @@ def build_arkitekt_app(
|
|
|
57
61
|
fluss = ImportException(import_exception=e, install_library="fluss_next")
|
|
58
62
|
|
|
59
63
|
try:
|
|
60
|
-
from arkitekt_next_next.apps.service.unlok_next import
|
|
64
|
+
from arkitekt_next_next.apps.service.unlok_next import (
|
|
65
|
+
build_arkitekt_next_unlok_next,
|
|
66
|
+
)
|
|
61
67
|
|
|
62
68
|
unlok = build_arkitekt_next_unlok_next(herre=herre, fakts=fakts)
|
|
63
69
|
except ImportError as e:
|
|
@@ -65,7 +71,9 @@ def build_arkitekt_app(
|
|
|
65
71
|
fluss = ImportException(import_exception=e, install_library="fluss_next")
|
|
66
72
|
|
|
67
73
|
try:
|
|
68
|
-
from arkitekt_next_next.apps.service.omero_ark import
|
|
74
|
+
from arkitekt_next_next.apps.service.omero_ark import (
|
|
75
|
+
build_arkitekt_next_omero_ark,
|
|
76
|
+
)
|
|
69
77
|
|
|
70
78
|
omero_ark = build_arkitekt_next_omero_ark(herre=herre, fakts=fakts)
|
|
71
79
|
except ImportError as e:
|
arkitekt_next/apps/next.py
CHANGED
arkitekt_next/apps/qt.py
CHANGED
|
@@ -19,10 +19,14 @@ def build_arkitekt_next_qt_app(
|
|
|
19
19
|
|
|
20
20
|
settings = settings or QtCore.QSettings()
|
|
21
21
|
except ImportError as e:
|
|
22
|
-
raise InstallModuleException(
|
|
22
|
+
raise InstallModuleException(
|
|
23
|
+
"Please install qtpy to use arkitekt_next_qt"
|
|
24
|
+
) from e
|
|
23
25
|
|
|
24
26
|
try:
|
|
25
|
-
from arkitekt_next_next.apps.service.fakts_qt import
|
|
27
|
+
from arkitekt_next_next.apps.service.fakts_qt import (
|
|
28
|
+
build_arkitekt_next_qt_fakts,
|
|
29
|
+
)
|
|
26
30
|
|
|
27
31
|
fakts = build_arkitekt_next_qt_fakts(
|
|
28
32
|
manifest=manifest,
|
|
@@ -35,7 +39,9 @@ def build_arkitekt_next_qt_app(
|
|
|
35
39
|
fakts = ImportException(import_exception=e, install_library="qtpy")
|
|
36
40
|
|
|
37
41
|
try:
|
|
38
|
-
from arkitekt_next_next.apps.service.herre_qt import
|
|
42
|
+
from arkitekt_next_next.apps.service.herre_qt import (
|
|
43
|
+
build_arkitekt_next_qt_herre,
|
|
44
|
+
)
|
|
39
45
|
|
|
40
46
|
herre = build_arkitekt_next_qt_herre(
|
|
41
47
|
manifest=manifest,
|
arkitekt_next/apps/types.py
CHANGED
arkitekt_next/bloks/__init__.py
CHANGED
arkitekt_next/bloks/config.py
CHANGED
arkitekt_next/bloks/mount.py
CHANGED
arkitekt_next/bloks/namegen.py
CHANGED
|
@@ -7,6 +7,7 @@ from arkitekt_next.bloks.services.secret import SecretService
|
|
|
7
7
|
import secrets
|
|
8
8
|
import namegenerator
|
|
9
9
|
|
|
10
|
+
|
|
10
11
|
@blok(NameService)
|
|
11
12
|
class PreformedNamesBlok:
|
|
12
13
|
def __init__(self) -> None:
|
|
@@ -22,7 +23,6 @@ class PreformedNamesBlok:
|
|
|
22
23
|
self.used_names.append(name)
|
|
23
24
|
return name
|
|
24
25
|
|
|
25
|
-
|
|
26
26
|
def get_options(self):
|
|
27
27
|
config_path = Option(
|
|
28
28
|
subcommand="preformed_names",
|
|
@@ -15,7 +15,12 @@ class OrkestratorBlok:
|
|
|
15
15
|
self.build_command = ["yarn"]
|
|
16
16
|
self.up_command = ["yarn", "start"]
|
|
17
17
|
|
|
18
|
-
def preflight(
|
|
18
|
+
def preflight(
|
|
19
|
+
self,
|
|
20
|
+
init: InitContext,
|
|
21
|
+
mount: MountService,
|
|
22
|
+
vscode: VsCodeService | None = None,
|
|
23
|
+
):
|
|
19
24
|
for key, value in init.kwargs.items():
|
|
20
25
|
setattr(self, key, value)
|
|
21
26
|
|
arkitekt_next/bloks/postgres.py
CHANGED
arkitekt_next/bloks/redis.py
CHANGED
|
@@ -9,7 +9,6 @@ from typing import Dict, Any, Optional
|
|
|
9
9
|
from blok import blok, InitContext
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
@blok(RedisService)
|
|
14
13
|
class RedisBlok:
|
|
15
14
|
def __init__(self) -> None:
|
|
@@ -65,7 +64,7 @@ class RedisBlok:
|
|
|
65
64
|
with_skip = Option(
|
|
66
65
|
subcommand="skip",
|
|
67
66
|
help="Skip docker creation (if using external redis?)",
|
|
68
|
-
|
|
67
|
+
type=bool,
|
|
69
68
|
default=self.skip,
|
|
70
69
|
)
|
|
71
70
|
with_image = Option(
|
arkitekt_next/bloks/secret.py
CHANGED
|
@@ -5,6 +5,7 @@ from blok.tree import YamlFile
|
|
|
5
5
|
from arkitekt_next.bloks.services.secret import SecretService
|
|
6
6
|
import secrets
|
|
7
7
|
|
|
8
|
+
|
|
8
9
|
@blok(SecretService)
|
|
9
10
|
class SecretBlok:
|
|
10
11
|
def __init__(self) -> None:
|
|
@@ -19,8 +20,6 @@ class SecretBlok:
|
|
|
19
20
|
self.registered_secrets.append(new_secret)
|
|
20
21
|
return new_secret
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
23
|
def get_options(self):
|
|
25
24
|
config_path = Option(
|
|
26
25
|
subcommand="preformed_secrets",
|
|
@@ -3,6 +3,7 @@ from blok import blok, InitContext, Option
|
|
|
3
3
|
from blok import service
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
@dataclass
|
|
7
8
|
class AdminCredentials:
|
|
8
9
|
password: str
|
|
@@ -19,4 +20,3 @@ class AdminService(Protocol):
|
|
|
19
20
|
username=self.username,
|
|
20
21
|
email=self.email,
|
|
21
22
|
)
|
|
22
|
-
|
|
@@ -3,16 +3,11 @@ from blok import blok, InitContext, Option, ExecutionContext, service
|
|
|
3
3
|
from blok.tree import YamlFile
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
6
|
@service("live.arkitekt.config")
|
|
9
7
|
class ConfigService(Protocol):
|
|
10
8
|
|
|
11
|
-
def register_config(self, name: str, file: YamlFile) -> str:
|
|
12
|
-
...
|
|
9
|
+
def register_config(self, name: str, file: YamlFile) -> str: ...
|
|
13
10
|
|
|
14
11
|
def get_path(self, name: str) -> str:
|
|
15
12
|
...
|
|
16
13
|
return f"./{self.config_path}/" + name
|
|
17
|
-
|
|
18
|
-
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
1
|
from typing import Dict, Any, Protocol
|
|
4
2
|
from blok import blok, InitContext, Option
|
|
5
3
|
from blok import service
|
|
6
4
|
from dataclasses import dataclass
|
|
7
5
|
|
|
6
|
+
|
|
8
7
|
@dataclass
|
|
9
8
|
class LivekitCredentials:
|
|
10
9
|
api_key: str
|
|
11
10
|
api_secret: str
|
|
12
11
|
api_url: str
|
|
13
12
|
|
|
13
|
+
|
|
14
14
|
@service("io.livekit.livekit")
|
|
15
15
|
class LivekitService(Protocol):
|
|
16
16
|
|
|
17
|
-
def retrieve_access(self) -> LivekitCredentials:
|
|
18
|
-
...
|
|
19
|
-
|
|
17
|
+
def retrieve_access(self) -> LivekitCredentials: ...
|
|
@@ -3,13 +3,7 @@ from blok import blok, InitContext, Option, ExecutionContext, service
|
|
|
3
3
|
from blok.tree import YamlFile
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
6
|
@service("live.arkitekt.mount")
|
|
9
7
|
class MountService(Protocol):
|
|
10
8
|
|
|
11
|
-
def register_mount(self, name: str, file: YamlFile) -> str:
|
|
12
|
-
...
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
def register_mount(self, name: str, file: YamlFile) -> str: ...
|
|
@@ -3,6 +3,7 @@ from blok import blok, InitContext, Option
|
|
|
3
3
|
from blok import service
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
@dataclass
|
|
7
8
|
class AdminCredentials:
|
|
8
9
|
password: str
|
|
@@ -14,4 +15,4 @@ class AdminCredentials:
|
|
|
14
15
|
class SecretService(Protocol):
|
|
15
16
|
|
|
16
17
|
def retrieve_secret() -> str:
|
|
17
|
-
pass
|
|
18
|
+
pass
|
arkitekt_next/builders.py
CHANGED
|
@@ -5,7 +5,7 @@ import os
|
|
|
5
5
|
from arkitekt_next.apps.service.fakts_next import (
|
|
6
6
|
build_arkitekt_next_fakts_next,
|
|
7
7
|
build_arkitekt_next_redeem_fakts_next,
|
|
8
|
-
build_arkitekt_next_token_fakts
|
|
8
|
+
build_arkitekt_next_token_fakts,
|
|
9
9
|
)
|
|
10
10
|
from arkitekt_next.apps.service.herre import build_arkitekt_next_herre
|
|
11
11
|
from .utils import create_arkitekt_next_folder
|
|
@@ -15,7 +15,6 @@ from .service_registry import ServiceBuilderRegistry, check_and_import_services
|
|
|
15
15
|
from arkitekt_next.constants import DEFAULT_ARKITEKT_URL
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
|
|
19
18
|
def easy(
|
|
20
19
|
identifier: str,
|
|
21
20
|
version: str = "0.0.1",
|
|
@@ -99,11 +98,9 @@ def easy(
|
|
|
99
98
|
"""
|
|
100
99
|
registry = registry or check_and_import_services()
|
|
101
100
|
|
|
102
|
-
|
|
103
101
|
url = os.getenv("FAKTS_URL", url)
|
|
104
102
|
token = os.getenv("FAKTS_TOKEN", token)
|
|
105
103
|
|
|
106
|
-
|
|
107
104
|
manifest = Manifest(
|
|
108
105
|
version=version,
|
|
109
106
|
identifier=identifier,
|
|
@@ -155,10 +152,52 @@ def easy(
|
|
|
155
152
|
fakts=fakts,
|
|
156
153
|
herre=herre,
|
|
157
154
|
manifest=manifest,
|
|
158
|
-
services=registry.build_service_map(
|
|
155
|
+
services=registry.build_service_map(
|
|
156
|
+
fakts=fakts, herre=herre, params=params, manifest=manifest
|
|
157
|
+
),
|
|
159
158
|
)
|
|
160
159
|
|
|
161
|
-
|
|
162
160
|
return app
|
|
163
161
|
|
|
164
162
|
|
|
163
|
+
|
|
164
|
+
def interactive(identifier: str,
|
|
165
|
+
version: str = "0.0.1",
|
|
166
|
+
logo: Optional[str] = None,
|
|
167
|
+
scopes: Optional[List[str]] = None,
|
|
168
|
+
url: str = DEFAULT_ARKITEKT_URL,
|
|
169
|
+
headless: bool = False,
|
|
170
|
+
log_level: str = "ERROR",
|
|
171
|
+
token: Optional[str] = None,
|
|
172
|
+
no_cache: bool = False,
|
|
173
|
+
redeem_token: Optional[str] = None,
|
|
174
|
+
app_kind: str = "development",
|
|
175
|
+
registry: Optional[ServiceBuilderRegistry] = None,
|
|
176
|
+
sync_mode: bool = True,
|
|
177
|
+
**kwargs):
|
|
178
|
+
"""Creates an interactive jupyter app"""
|
|
179
|
+
|
|
180
|
+
app = easy(identifier=identifier,
|
|
181
|
+
version=version,
|
|
182
|
+
logo=logo,
|
|
183
|
+
scopes=scopes,
|
|
184
|
+
url=url,
|
|
185
|
+
headless=headless,
|
|
186
|
+
log_level=log_level,
|
|
187
|
+
token=token,
|
|
188
|
+
no_cache=no_cache,
|
|
189
|
+
redeem_token=redeem_token,
|
|
190
|
+
app_kind=app_kind,
|
|
191
|
+
registry=registry,
|
|
192
|
+
**kwargs)
|
|
193
|
+
|
|
194
|
+
if sync_mode:
|
|
195
|
+
# When running in an interactive async enironvment, just like
|
|
196
|
+
# in a jupyter notebook, we can opt to run the app in sync mode
|
|
197
|
+
# to avoid having to use await for every call. This is the default
|
|
198
|
+
# behaviour for the app, but can be overwritten by setting
|
|
199
|
+
# app.koil.sync_in_async = False
|
|
200
|
+
app.koil.sync_in_async = True
|
|
201
|
+
app.enter()
|
|
202
|
+
|
|
203
|
+
return app
|
|
@@ -70,8 +70,7 @@ def requirements(
|
|
|
70
70
|
)
|
|
71
71
|
|
|
72
72
|
x = {
|
|
73
|
-
key: item.dict(by_alias=True)
|
|
74
|
-
for key, item in app.manifest.requirements.items()
|
|
73
|
+
key: item.dict(by_alias=True) for key, item in app.manifest.requirements.items()
|
|
75
74
|
}
|
|
76
75
|
if machine_readable:
|
|
77
76
|
print("--START_REQUIREMENTS--" + json.dumps(x) + "--END_REQUIREMENTS--")
|
|
@@ -126,12 +126,21 @@ def inspect_templates(build_id: str) -> list[TemplateInput]:
|
|
|
126
126
|
)
|
|
127
127
|
|
|
128
128
|
raise InspectionError(f"An error occurred: {e.stdout + e.stderr}") from e
|
|
129
|
-
|
|
129
|
+
|
|
130
|
+
|
|
130
131
|
def inspect_requirements(build_id: str) -> Dict[str, Requirement]:
|
|
131
132
|
try:
|
|
132
133
|
# Run 'docker inspect' with the container ID or name
|
|
133
134
|
result = subprocess.run(
|
|
134
|
-
[
|
|
135
|
+
[
|
|
136
|
+
"docker",
|
|
137
|
+
"run",
|
|
138
|
+
build_id,
|
|
139
|
+
"arkitekt-next",
|
|
140
|
+
"inspect",
|
|
141
|
+
"requirements",
|
|
142
|
+
"-mr",
|
|
143
|
+
],
|
|
135
144
|
stdout=subprocess.PIPE,
|
|
136
145
|
stderr=subprocess.PIPE,
|
|
137
146
|
check=True,
|
|
@@ -169,7 +178,7 @@ def inspect_build(build_id: str) -> Inspection:
|
|
|
169
178
|
templates = inspect_templates(build_id)
|
|
170
179
|
requirements = inspect_requirements(build_id)
|
|
171
180
|
|
|
172
|
-
return Inspection(size=size, templates=templates
|
|
181
|
+
return Inspection(size=size, templates=templates, requirements=requirements)
|
|
173
182
|
|
|
174
183
|
|
|
175
184
|
def get_flavours(ctx: Context, select: Optional[str] = None) -> Dict[str, Flavour]:
|
|
@@ -48,7 +48,12 @@ import os
|
|
|
48
48
|
)
|
|
49
49
|
@click.pass_context
|
|
50
50
|
def init(
|
|
51
|
-
ctx: Context,
|
|
51
|
+
ctx: Context,
|
|
52
|
+
description: str,
|
|
53
|
+
overwrite: bool,
|
|
54
|
+
flavour: str,
|
|
55
|
+
template: str,
|
|
56
|
+
devcontainer: bool,
|
|
52
57
|
) -> None:
|
|
53
58
|
"""Runs the port wizard to generate a dockerfile to be used with port"""
|
|
54
59
|
|
|
@@ -82,11 +87,9 @@ def init(
|
|
|
82
87
|
with open(dockerfile, "w") as f:
|
|
83
88
|
f.write(dockerfile_content)
|
|
84
89
|
|
|
85
|
-
|
|
86
90
|
if devcontainer or click.confirm("Do you want to create a devcontainer.json file?"):
|
|
87
91
|
create_devcontainer_file(manifest, flavour, dockerfile)
|
|
88
92
|
|
|
89
|
-
|
|
90
93
|
panel = Panel(
|
|
91
94
|
title=f"Created new flavour [bold]{flavour}[/bold]\n",
|
|
92
95
|
renderable="You can now edit the Dockerfile and add selectors to the config.yaml file\n"
|
|
@@ -10,10 +10,17 @@ from arkitekt_next.constants import DEFAULT_ARKITEKT_URL
|
|
|
10
10
|
@click.option("--build", help="The build to use", type=str, default=None)
|
|
11
11
|
@click.option("--flavour", "-f", help="The flavour to use", default="vanilla")
|
|
12
12
|
@click.option(
|
|
13
|
-
"--url",
|
|
13
|
+
"--url",
|
|
14
|
+
"-u",
|
|
15
|
+
help="The fakts server to use",
|
|
16
|
+
type=str,
|
|
17
|
+
default=DEFAULT_ARKITEKT_URL,
|
|
14
18
|
)
|
|
15
19
|
@click.option(
|
|
16
|
-
"--builder",
|
|
20
|
+
"--builder",
|
|
21
|
+
help="The builder to use",
|
|
22
|
+
type=str,
|
|
23
|
+
default="arkitekt_next.builders.easy",
|
|
17
24
|
)
|
|
18
25
|
@click.pass_context
|
|
19
26
|
def stage(ctx: Context, build: str, url: str, flavour: str, builder: str) -> None:
|
|
@@ -47,8 +54,9 @@ def stage(ctx: Context, build: str, url: str, flavour: str, builder: str) -> Non
|
|
|
47
54
|
else:
|
|
48
55
|
build_model = list(builds.values())[0]
|
|
49
56
|
|
|
50
|
-
command =
|
|
51
|
-
|
|
57
|
+
command = (
|
|
58
|
+
build_model.build_docker_command()
|
|
59
|
+
+ build_model.build_arkitekt_next_command(url)
|
|
52
60
|
)
|
|
53
61
|
|
|
54
62
|
click.echo(f"Staging build {build} with flavour {flavour} against {url}")
|
arkitekt_next/cli/constants.py
CHANGED
arkitekt_next/cli/texts.py
CHANGED
arkitekt_next/constants.py
CHANGED
arkitekt_next/model.py
CHANGED
arkitekt_next/qt/__init__.py
CHANGED
|
@@ -7,8 +7,9 @@ The main component is the MagicBar, which is a widget that can be added
|
|
|
7
7
|
to any Qt application. It will then allow the user to configure and connect
|
|
8
8
|
to ArkitektNext, and configure settings.
|
|
9
9
|
"""
|
|
10
|
+
|
|
10
11
|
from .magic_bar import MagicBar
|
|
11
12
|
from .builders import publicqt
|
|
12
13
|
from .types import *
|
|
13
14
|
|
|
14
|
-
__all__ = ["MagicBar", "publicqt", "QtApp"]
|
|
15
|
+
__all__ = ["MagicBar", "publicqt", "QtApp"]
|
arkitekt_next/qt/builders.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
from arkitekt_next.apps.service.fakts_next import (
|
|
3
2
|
build_arkitekt_next_redeem_fakts_next,
|
|
4
3
|
)
|
|
@@ -7,7 +6,10 @@ from arkitekt_next.apps.service.herre_qt import build_arkitekt_next_qt_herre
|
|
|
7
6
|
from arkitekt_next.utils import create_arkitekt_next_folder
|
|
8
7
|
from arkitekt_next.model import Manifest
|
|
9
8
|
from arkitekt_next.apps.types import App
|
|
10
|
-
from arkitekt_next.service_registry import
|
|
9
|
+
from arkitekt_next.service_registry import (
|
|
10
|
+
ServiceBuilderRegistry,
|
|
11
|
+
check_and_import_services,
|
|
12
|
+
)
|
|
11
13
|
from arkitekt_next.constants import DEFAULT_ARKITEKT_URL
|
|
12
14
|
from qtpy import QtWidgets, QtCore
|
|
13
15
|
from typing import List, Optional
|
|
@@ -47,7 +49,6 @@ def publicqt(
|
|
|
47
49
|
|
|
48
50
|
settings = settings or QtCore.QSettings("arkitekt_next", f"{identifier}:{version}")
|
|
49
51
|
|
|
50
|
-
|
|
51
52
|
manifest = Manifest(
|
|
52
53
|
version=version,
|
|
53
54
|
identifier=identifier,
|
|
@@ -63,11 +64,16 @@ def publicqt(
|
|
|
63
64
|
settings=settings,
|
|
64
65
|
)
|
|
65
66
|
|
|
66
|
-
herre = build_arkitekt_next_qt_herre(
|
|
67
|
+
herre = build_arkitekt_next_qt_herre(
|
|
68
|
+
manifest,
|
|
69
|
+
fakts=fakts,
|
|
70
|
+
login_widget=login_widget,
|
|
71
|
+
parent=parent,
|
|
72
|
+
settings=settings,
|
|
73
|
+
)
|
|
67
74
|
|
|
68
75
|
params = kwargs
|
|
69
76
|
|
|
70
|
-
|
|
71
77
|
try:
|
|
72
78
|
from rich.logging import RichHandler
|
|
73
79
|
|
|
@@ -79,7 +85,9 @@ def publicqt(
|
|
|
79
85
|
fakts=fakts,
|
|
80
86
|
herre=herre,
|
|
81
87
|
manifest=manifest,
|
|
82
|
-
services=registry.build_service_map(
|
|
88
|
+
services=registry.build_service_map(
|
|
89
|
+
fakts=fakts, herre=herre, params=params, manifest=manifest
|
|
90
|
+
),
|
|
83
91
|
)
|
|
84
92
|
|
|
85
93
|
app.enter()
|
arkitekt_next/qt/types.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from arkitekt_next.apps.types import App, Fakts, Herre, Manifest
|
|
2
2
|
from typing import List, Callable, Dict, Any
|
|
3
3
|
|
|
4
|
+
|
|
4
5
|
class QtApp(App):
|
|
5
6
|
"""An app that is built with the easy builder"""
|
|
6
7
|
|
|
@@ -19,19 +20,14 @@ class QtApp(App):
|
|
|
19
20
|
"on_enter": [],
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
|
|
23
23
|
def register_hook(self, hook_name: str, hook: Callable):
|
|
24
24
|
"""Register a hook"""
|
|
25
25
|
self.hooks[hook_name].append(hook)
|
|
26
|
-
|
|
27
|
-
|
|
28
26
|
|
|
29
27
|
def run(self):
|
|
30
28
|
"""Run the app"""
|
|
31
29
|
self.services["rekuest"].run()
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
|
|
35
31
|
async def __aenter__(self):
|
|
36
32
|
await super().__aenter__()
|
|
37
33
|
for service in self.services.values():
|
|
@@ -41,4 +37,4 @@ class QtApp(App):
|
|
|
41
37
|
|
|
42
38
|
async def __aexit__(self, exc_type, exc_value, traceback):
|
|
43
39
|
for service in self.services.values():
|
|
44
|
-
await service.__aexit__(exc_type, exc_value, traceback)
|
|
40
|
+
await service.__aexit__(exc_type, exc_value, traceback)
|
|
@@ -21,9 +21,9 @@ class Registration(BaseModel):
|
|
|
21
21
|
|
|
22
22
|
basic_requirements = {
|
|
23
23
|
"lok": Requirement(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
service="live.arkitekt.lok",
|
|
25
|
+
description="An instance of ArkitektNext Lok to authenticate the user",
|
|
26
|
+
),
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
|
|
@@ -32,41 +32,47 @@ class ServiceBuilderRegistry:
|
|
|
32
32
|
self.service_builders = {}
|
|
33
33
|
self.requirements = basic_requirements
|
|
34
34
|
|
|
35
|
-
def register(
|
|
35
|
+
def register(
|
|
36
|
+
self,
|
|
37
|
+
name: str,
|
|
38
|
+
service_builder: Callable[[Herre, Fakts], object],
|
|
39
|
+
requirement: Requirement,
|
|
40
|
+
):
|
|
36
41
|
self.service_builders[name] = service_builder
|
|
37
42
|
self.requirements[name] = requirement
|
|
38
43
|
|
|
39
44
|
def get(self, name):
|
|
40
45
|
return self.services.get(name)
|
|
41
|
-
|
|
42
46
|
|
|
43
|
-
def build_service_map(
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
def build_service_map(
|
|
48
|
+
self, fakts: Fakts, herre: Herre, params: Params, manifest: Manifest
|
|
49
|
+
):
|
|
50
|
+
return {
|
|
51
|
+
name: builder(fakts, herre, params, manifest)
|
|
52
|
+
for name, builder in self.service_builders.items()
|
|
53
|
+
}
|
|
54
|
+
|
|
46
55
|
def get_requirements(self):
|
|
47
56
|
return self.requirements
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
57
|
|
|
53
58
|
|
|
54
59
|
class SetupInfo:
|
|
55
60
|
services: Dict[str, object]
|
|
56
61
|
|
|
57
62
|
|
|
58
|
-
|
|
59
63
|
def check_and_import_services() -> ServiceBuilderRegistry:
|
|
60
64
|
|
|
61
|
-
service_builder_registry =
|
|
62
|
-
|
|
65
|
+
service_builder_registry = ServiceBuilderRegistry()
|
|
66
|
+
|
|
63
67
|
# Function to load and call init_extensions from __rekuest__.py
|
|
64
68
|
def load_and_call_init_extensions(module_name, rekuest_path):
|
|
65
69
|
try:
|
|
66
|
-
spec = importlib.util.spec_from_file_location(
|
|
70
|
+
spec = importlib.util.spec_from_file_location(
|
|
71
|
+
f"{module_name}.__arkitekt__", rekuest_path
|
|
72
|
+
)
|
|
67
73
|
rekuest_module = importlib.util.module_from_spec(spec)
|
|
68
74
|
spec.loader.exec_module(rekuest_module)
|
|
69
|
-
if hasattr(rekuest_module,
|
|
75
|
+
if hasattr(rekuest_module, "init_services"):
|
|
70
76
|
rekuest_module.init_services(service_builder_registry)
|
|
71
77
|
logging.info(f"Called init_service function from {module_name}")
|
|
72
78
|
else:
|
|
@@ -79,8 +85,10 @@ def check_and_import_services() -> ServiceBuilderRegistry:
|
|
|
79
85
|
current_directory = os.getcwd()
|
|
80
86
|
for item in os.listdir(current_directory):
|
|
81
87
|
item_path = os.path.join(current_directory, item)
|
|
82
|
-
if os.path.isdir(item_path) and os.path.isfile(
|
|
83
|
-
|
|
88
|
+
if os.path.isdir(item_path) and os.path.isfile(
|
|
89
|
+
os.path.join(item_path, "__init__.py")
|
|
90
|
+
):
|
|
91
|
+
rekuest_path = os.path.join(item_path, "__arkitekt__.py")
|
|
84
92
|
if os.path.isfile(rekuest_path):
|
|
85
93
|
load_and_call_init_extensions(item, rekuest_path)
|
|
86
94
|
|
|
@@ -89,11 +97,15 @@ def check_and_import_services() -> ServiceBuilderRegistry:
|
|
|
89
97
|
try:
|
|
90
98
|
module_spec = importlib.util.find_spec(module_name)
|
|
91
99
|
if module_spec and module_spec.origin:
|
|
92
|
-
rekuest_path = os.path.join(
|
|
100
|
+
rekuest_path = os.path.join(
|
|
101
|
+
os.path.dirname(module_spec.origin), "__arkitekt__.py"
|
|
102
|
+
)
|
|
93
103
|
if os.path.isfile(rekuest_path):
|
|
94
104
|
load_and_call_init_extensions(module_name, rekuest_path)
|
|
95
105
|
except Exception as e:
|
|
96
|
-
print(
|
|
106
|
+
print(
|
|
107
|
+
f"Failed to call init_extensions for installed package {module_name}: {e}"
|
|
108
|
+
)
|
|
97
109
|
traceback.print_exc()
|
|
98
110
|
|
|
99
111
|
return service_builder_registry
|
arkitekt_next/tqdm.py
CHANGED
|
@@ -38,6 +38,8 @@ class tqdm(_tqdm):
|
|
|
38
38
|
if self._assignationhelper:
|
|
39
39
|
if self.last_arkitekt_next_perc + 0.05 < self.last_print_n / self.total:
|
|
40
40
|
self.last_arkitekt_next_perc = self.last_print_n / self.total
|
|
41
|
-
self._assignationhelper.progress(
|
|
41
|
+
self._assignationhelper.progress(
|
|
42
|
+
int(self.last_arkitekt_next_perc * 100)
|
|
43
|
+
)
|
|
42
44
|
|
|
43
45
|
return z
|
arkitekt_next/utils.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from arkitekt_next.model import Manifest
|
|
3
|
-
import json
|
|
3
|
+
import json
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
def create_arkitekt_next_folder(with_cache: bool = True) -> str:
|
|
@@ -40,8 +40,12 @@ def create_arkitekt_next_folder(with_cache: bool = True) -> str:
|
|
|
40
40
|
return os.path.abspath(".arkitekt_next")
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
def create_devcontainer_file(
|
|
44
|
+
manifest: Manifest,
|
|
45
|
+
flavour: str,
|
|
46
|
+
docker_file_path,
|
|
47
|
+
devcontainer_path=".devcontainer",
|
|
48
|
+
) -> None:
|
|
45
49
|
"""Creates a devcontainer.json file in the flavour folder.
|
|
46
50
|
|
|
47
51
|
Parameters
|
|
@@ -55,20 +59,15 @@ def create_devcontainer_file(manifest: Manifest, flavour: str, docker_file_path,
|
|
|
55
59
|
flavour_container = os.path.join(devcontainer_path, flavour)
|
|
56
60
|
os.makedirs(os.path.join(devcontainer_path, flavour), exist_ok=True)
|
|
57
61
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
62
|
devcontainer_file = os.path.join(flavour_container, "devcontainer.json")
|
|
65
63
|
|
|
66
|
-
|
|
67
64
|
devcontainer_content = {}
|
|
68
65
|
devcontainer_content["name"] = f"{manifest.identifier} {flavour} Devcontainer"
|
|
69
66
|
devcontainer_content["build"] = {}
|
|
70
67
|
devcontainer_content["build"]["dockerfile"] = os.path.join("..", docker_file_path)
|
|
71
|
-
devcontainer_content["build"][
|
|
68
|
+
devcontainer_content["build"][
|
|
69
|
+
"context"
|
|
70
|
+
] = "../.." # This is the root of the project
|
|
72
71
|
devcontainer_content["runArgs"] = ["--network=host"]
|
|
73
|
-
|
|
72
|
+
|
|
74
73
|
json.dump(devcontainer_content, open(devcontainer_file, "w"), indent=4)
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
arkitekt_next/__blok__.py,sha256=gQqlPrUPSeB-b3XkvXRwDoRWMfG-vYN-3a2pWHNjz_E,1563
|
|
2
|
-
arkitekt_next/__init__.py,sha256=
|
|
2
|
+
arkitekt_next/__init__.py,sha256=Y0fK7bMPpfln3wk9C4ItU3s0pdYt21sWjsv71-kRYlQ,1002
|
|
3
3
|
arkitekt_next/apps/__init__.py,sha256=cx_5Y-RkJFkSQJH-hUEC_L3eW1jU2E426c4e6_csIyM,42
|
|
4
|
-
arkitekt_next/apps/easy.py,sha256=
|
|
5
|
-
arkitekt_next/apps/next.py,sha256=
|
|
6
|
-
arkitekt_next/apps/qt.py,sha256=
|
|
4
|
+
arkitekt_next/apps/easy.py,sha256=Nz7LzGua01bmLBiniEvnaSx_WPaNxq_sla4wYyTLaKQ,3235
|
|
5
|
+
arkitekt_next/apps/next.py,sha256=GF4RPwJZ1Lyhcwf_EEZvrWvu5gD6NgD0UHnM1Vxmnmk,1049
|
|
6
|
+
arkitekt_next/apps/qt.py,sha256=0y3TV0T2OtIgMJBbsdhNR5jZmyEHBFd1-ZmONz67omo,3306
|
|
7
7
|
arkitekt_next/apps/service/__init__.py,sha256=p4iRwiFBKRq2lfbjDBzUR_GMhPWjkjWTa01ohuKz_L4,157
|
|
8
|
-
arkitekt_next/apps/service/fakts.py,sha256=
|
|
8
|
+
arkitekt_next/apps/service/fakts.py,sha256=72EYMeO-M1O9auZ509FA7m08pSIZ-Df_6JyNHL1iMt0,2633
|
|
9
9
|
arkitekt_next/apps/service/fakts_next.py,sha256=3Mh8CLt91Zf5Kt04mPr74ROj15jS2j3PoaUcT6kwJPY,2791
|
|
10
|
-
arkitekt_next/apps/service/fakts_qt.py,sha256=
|
|
10
|
+
arkitekt_next/apps/service/fakts_qt.py,sha256=ba7Er9EZeeR9loScbzLn_Fe7AqL3ksJBcAGd9QzjHcs,3053
|
|
11
11
|
arkitekt_next/apps/service/grant_registry.py,sha256=3om8YoVf_HFWEJbpjQCin1Zvm8Sz3yw-mGvLKDDgbrc,851
|
|
12
12
|
arkitekt_next/apps/service/herre.py,sha256=DuIhyEujgXrYzhG2tKTMUgHkTScfg6UCX5eCV1vUPYI,760
|
|
13
13
|
arkitekt_next/apps/service/herre_qt.py,sha256=GntkKHmwcQqEFab02SWwdd3xONo0fLVGEPQMKH6tlCE,1628
|
|
14
|
-
arkitekt_next/apps/types.py,sha256=
|
|
15
|
-
arkitekt_next/bloks/__init__.py,sha256=
|
|
14
|
+
arkitekt_next/apps/types.py,sha256=uozRXDDGJBL9hYCYGZF_XmtZ4ZvoLZeEEfJeL10Ve3U,1136
|
|
15
|
+
arkitekt_next/bloks/__init__.py,sha256=_4EeR63d6avQUWLG4mK2n_FvogTPQ_Jx6f2_RvNbWeA,29
|
|
16
16
|
arkitekt_next/bloks/admin.py,sha256=MlUQUYCHxCWtSD75mVHgs3DcDa0s8_D6_AIBslnYjZw,1300
|
|
17
17
|
arkitekt_next/bloks/arkitekt.py,sha256=N0WcdEr_x2TzDdpIW_WP8lVodYxRbOU4I5IP-aKGLLQ,1417
|
|
18
18
|
arkitekt_next/bloks/base.py,sha256=6gsDc9sVYDqY4El2hhH32QiYHcYUd6eZQRgvhAuY2a0,6341
|
|
19
|
-
arkitekt_next/bloks/config.py,sha256=
|
|
19
|
+
arkitekt_next/bloks/config.py,sha256=YMQChT4SCdc_vvvbkAj_qGyA--6JVEHds7MalqUp3lw,1269
|
|
20
20
|
arkitekt_next/bloks/fluss.py,sha256=b9hBV0nMy_0ctQIEQntGGaee3oDZy1lQKO1Eacc0zVs,997
|
|
21
21
|
arkitekt_next/bloks/gateway.py,sha256=Qfw_SkJbyMe5GrZ8YJaaLVyZ2ZlKpacJjUFLBk97vbg,6692
|
|
22
22
|
arkitekt_next/bloks/internal_docker.py,sha256=4jhKwfVKPCZzhkuEVq1iw4gIpc6_R0Cco-_s0L8PiZI,2891
|
|
@@ -25,29 +25,29 @@ arkitekt_next/bloks/livekit.py,sha256=yhre3PkIQwKGdGPFC-DhTID3rIbRQMts_UsAX9tw6-
|
|
|
25
25
|
arkitekt_next/bloks/lok.py,sha256=-OoCFzf2ci8sBrYBnnmni-cJoAxuynUSj0kzWYpJznw,11444
|
|
26
26
|
arkitekt_next/bloks/mikro.py,sha256=r7wc56pvFkPkxigx70xEu31dgpO6q3TviDQUM9oyQwM,1223
|
|
27
27
|
arkitekt_next/bloks/minio.py,sha256=k7t1J46lO3eaBO9KdP7iYF--Go-m25dEmOwisbbOoVQ,5496
|
|
28
|
-
arkitekt_next/bloks/mount.py,sha256=
|
|
29
|
-
arkitekt_next/bloks/namegen.py,sha256=
|
|
30
|
-
arkitekt_next/bloks/orkestrator.py,sha256=
|
|
31
|
-
arkitekt_next/bloks/postgres.py,sha256=
|
|
32
|
-
arkitekt_next/bloks/redis.py,sha256=
|
|
28
|
+
arkitekt_next/bloks/mount.py,sha256=Kfg4fthxMyQFkayWDsycadehlJPlN76ExzUiRU476Uc,1032
|
|
29
|
+
arkitekt_next/bloks/namegen.py,sha256=GMcSW6qOVGd2GGS7SQ4liPWbMhWyHLSOtnMVdnMOr0o,1035
|
|
30
|
+
arkitekt_next/bloks/orkestrator.py,sha256=bKuwpJlZWQT1cbxFewzaVMTs7Iano7tgXPBj21gesek,2116
|
|
31
|
+
arkitekt_next/bloks/postgres.py,sha256=jQ17O_EyIR7lpSmeTQIReEb2nFEM_IzKgqoYiZDu20I,2771
|
|
32
|
+
arkitekt_next/bloks/redis.py,sha256=Irfs9V6wGEr0VdDPmr2KfVFgQ8sDd733ieDVEKTkUZ0,2130
|
|
33
33
|
arkitekt_next/bloks/rekuest.py,sha256=6mxRK1M5ua14rEeF2Wr0QjqV0eUgOLvdDJAuDpRDRUk,993
|
|
34
|
-
arkitekt_next/bloks/secret.py,sha256=
|
|
34
|
+
arkitekt_next/bloks/secret.py,sha256=UmcLp1KWzBsjjwzT-YpVzFlhAaf7WE6-gaf-M9CH6VY,1013
|
|
35
35
|
arkitekt_next/bloks/services/__init__.py,sha256=i9vGNd1lFBem3O2PblTouRzFVQkdwOYoUmqqU43dIWQ,592
|
|
36
|
-
arkitekt_next/bloks/services/admin.py,sha256=
|
|
37
|
-
arkitekt_next/bloks/services/config.py,sha256=
|
|
36
|
+
arkitekt_next/bloks/services/admin.py,sha256=qeNa9KkFJk0DSNV-Ses-vkLjC3xHtvHnVHJ3w0DPKOA,463
|
|
37
|
+
arkitekt_next/bloks/services/config.py,sha256=E0X-AweMxbbVQihqPuUEUzt9Y5J2DKY5sFX2efORtS0,378
|
|
38
38
|
arkitekt_next/bloks/services/db.py,sha256=Lc8uL8xibz99-16YPxtB_ls6CP3dN_jCaOzJ9uZ8b_0,588
|
|
39
39
|
arkitekt_next/bloks/services/gateway.py,sha256=X7ghhLXZ9hDQIMXMTkfBMcS9o9oc16y0C-b_3r3uwCo,847
|
|
40
|
-
arkitekt_next/bloks/services/livekit.py,sha256=
|
|
40
|
+
arkitekt_next/bloks/services/livekit.py,sha256=5Qv1dcL2sQTveYvxZOuZPboNqn2wH0kyP6q7OkA6Kzs,357
|
|
41
41
|
arkitekt_next/bloks/services/lok.py,sha256=fzOGum0VmcVaONUhTv4jHYky4WrFq2ygDAYJjBv2vAI,500
|
|
42
|
-
arkitekt_next/bloks/services/mount.py,sha256=
|
|
43
|
-
arkitekt_next/bloks/services/name.py,sha256=
|
|
42
|
+
arkitekt_next/bloks/services/mount.py,sha256=UAp7IzUNGYtqrh8ACAVgRtc5jYVGvzsKjKdegBdK_i0,273
|
|
43
|
+
arkitekt_next/bloks/services/name.py,sha256=ysr7b8Hn9yIeuBlqv9Zz-ngWKdQtwl3V1I1TeDvhLlA,254
|
|
44
44
|
arkitekt_next/bloks/services/redis.py,sha256=W9CraIZJztFE1vQVCfxCxY4T_gBPRTM84VwFR8Hwtp8,472
|
|
45
45
|
arkitekt_next/bloks/services/s3.py,sha256=_mk_9NdaeHRVZ__1M9CL1Ec1gSQKkzlOiQXse7MSx94,485
|
|
46
|
-
arkitekt_next/bloks/services/secret.py,sha256=
|
|
46
|
+
arkitekt_next/bloks/services/secret.py,sha256=cnZsH09gN9YRXBbmalZaFD2LcmWLlfm52mDTAnfuYT4,344
|
|
47
47
|
arkitekt_next/bloks/services/socket.py,sha256=3MbENiJrwQbFKrpWxax56F24elnSD7S-olgycfuOX7s,423
|
|
48
48
|
arkitekt_next/bloks/socket.py,sha256=YIrSKfQezrsKwRKDPdT1aXhlQzjgnx_UaNaQ9LiEfGY,1008
|
|
49
49
|
arkitekt_next/bloks/tailscale.py,sha256=IkMBA1CwslMTOF1m2UUmE6qH_gbaEet2eXsPDgBxcew,2915
|
|
50
|
-
arkitekt_next/builders.py,sha256=
|
|
50
|
+
arkitekt_next/builders.py,sha256=wFIMPb4dSYuE-y-TiqZ8c_lxt1qMbgwQ4NnuMuj1rR8,7454
|
|
51
51
|
arkitekt_next/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
52
|
arkitekt_next/cli/commands/call/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
53
|
arkitekt_next/cli/commands/call/local.py,sha256=YDummInGSb6lGKGiTlMSuXbE-Sz6dbfng6CsZaChCew,3338
|
|
@@ -62,15 +62,15 @@ arkitekt_next/cli/commands/init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
62
62
|
arkitekt_next/cli/commands/init/main.py,sha256=1ZbZDBECZRxlcnulycdS15s-uQ5ngx4xP3T1v-gkJ3U,5435
|
|
63
63
|
arkitekt_next/cli/commands/inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
64
|
arkitekt_next/cli/commands/inspect/main.py,sha256=Bu1vAZudkFCtjDnZAB8yQLDt-UKY9pJGhLBlEfDqtkw,626
|
|
65
|
-
arkitekt_next/cli/commands/inspect/requirements.py,sha256=
|
|
65
|
+
arkitekt_next/cli/commands/inspect/requirements.py,sha256=gQBx5OTsbLHTRwya4tMLOi8j_o28Gi4hRgvTWqGh5-4,2125
|
|
66
66
|
arkitekt_next/cli/commands/inspect/templates.py,sha256=U99SLBYWiD-ZiIYV7pVWhQK3XWn1PLUIyTKzgSFF6MQ,2325
|
|
67
67
|
arkitekt_next/cli/commands/inspect/variables.py,sha256=LonDlbS2qH1v-jD6RfEhTv-mxmgeBMKqD3oO2iDJRjE,2698
|
|
68
68
|
arkitekt_next/cli/commands/kabinet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
|
-
arkitekt_next/cli/commands/kabinet/build.py,sha256=
|
|
70
|
-
arkitekt_next/cli/commands/kabinet/init.py,sha256=
|
|
69
|
+
arkitekt_next/cli/commands/kabinet/build.py,sha256=JyMgvp5X0j2DE4w3aLPyM6ffSulfFZ1mNkS4--3wlZM,8671
|
|
70
|
+
arkitekt_next/cli/commands/kabinet/init.py,sha256=FMozj1kzrgdoZ13VR9BrPU8aqSlSynRRyoTPSkerBzU,2970
|
|
71
71
|
arkitekt_next/cli/commands/kabinet/main.py,sha256=U5EWekRTsMZZ34abWFfwilhzrd-zZtpZbl8RsLN_bC8,1008
|
|
72
72
|
arkitekt_next/cli/commands/kabinet/publish.py,sha256=zbjnoMliowje1nEuKFolFX5pZA2D_DzLjXlSxBbD88k,3596
|
|
73
|
-
arkitekt_next/cli/commands/kabinet/stage.py,sha256=
|
|
73
|
+
arkitekt_next/cli/commands/kabinet/stage.py,sha256=bXpC8fDmG6qFQVuLhqTCieOJnvFafj3Flg1BdIeciEw,2025
|
|
74
74
|
arkitekt_next/cli/commands/kabinet/utils.py,sha256=x27qR7ksCuvASHkEAEaDuUAeuzjrZpzIp1W4lOF5f_0,1644
|
|
75
75
|
arkitekt_next/cli/commands/kabinet/validate.py,sha256=MSSuwjdJKDtXB6rkjRmG-PPK6cVwTcOuCRpgPDQ0uVg,2490
|
|
76
76
|
arkitekt_next/cli/commands/kabinet/wizard.py,sha256=vbW-EAitypCl1HRjsgHRuwc18hQgOzAU8C__6SWuAzQ,9148
|
|
@@ -86,7 +86,7 @@ arkitekt_next/cli/commands/run/main.py,sha256=0bNO3DqwbZ4ddMsDWbCGmlPD6Cs3Jlg4yh
|
|
|
86
86
|
arkitekt_next/cli/commands/run/prod.py,sha256=EqDMa_eYNaffHZOBHGQEGNJVKdq8NHCgfoqK8yH63B4,1637
|
|
87
87
|
arkitekt_next/cli/commands/run/utils.py,sha256=zH-MNNEfKgyOYQvwP6Ph8KUHVqH48fw3ZI6tiQ9unwQ,325
|
|
88
88
|
arkitekt_next/cli/configs/base.yaml,sha256=9IJ7B4Fq3swHsLUbKn1MlhhzJKqDI1wnR5PAG_VKs8A,30097
|
|
89
|
-
arkitekt_next/cli/constants.py,sha256=
|
|
89
|
+
arkitekt_next/cli/constants.py,sha256=ONXKA8LRxXQkOQ56ZElVMZSTiaIH1LE_ikmUUKem98g,1410
|
|
90
90
|
arkitekt_next/cli/dockerfiles/vanilla.dockerfile,sha256=jRbY9qqrlFGafXdNbc1AfSP_oyRiZFhdWWCveWYXSHA,168
|
|
91
91
|
arkitekt_next/cli/errors.py,sha256=zLTjaCbun6qM2nTldjyZd-DvykqKn5A3Gn80uYdx7Vc,93
|
|
92
92
|
arkitekt_next/cli/inspect.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
@@ -109,16 +109,16 @@ arkitekt_next/cli/schemas/rekuest_next.schema.graphql,sha256=LcYtS9AjTRlSBPllSIm
|
|
|
109
109
|
arkitekt_next/cli/schemas/unlok.schema.graphql,sha256=fXR846snIBIqkuQ-PlYnSkQjkFVmM6NVZLlcMKgbr8E,18216
|
|
110
110
|
arkitekt_next/cli/templates/filter.py,sha256=mD2jdNEXrZNagC_8WtuTisGJrGIbJDSylCvh19cF49I,650
|
|
111
111
|
arkitekt_next/cli/templates/simple.py,sha256=IbcThJ5LryXVFQUdzxfHQCtzSNxEQWTxbD__Ygxsp4M,1171
|
|
112
|
-
arkitekt_next/cli/texts.py,sha256=
|
|
112
|
+
arkitekt_next/cli/texts.py,sha256=080QLAe8dhklkfoA8Yk6fLrQeRoUrTQLgWCZiWl7bNk,689
|
|
113
113
|
arkitekt_next/cli/types.py,sha256=dMa_8Wht6cTe_bYS4Z6cpvW4dEc41FKip7RfCmN8o2E,10420
|
|
114
114
|
arkitekt_next/cli/ui.py,sha256=BR_AOsBIIHwojI5otBzT_560-ep5Dw1xAHKsO2zOOJQ,3493
|
|
115
115
|
arkitekt_next/cli/utils.py,sha256=rl1hfQIVzepLHPN_ZWuvfVH-IIVqcSfiFGyfNtL1XCo,445
|
|
116
116
|
arkitekt_next/cli/validators.py,sha256=XkLrOrDzBJwcG1keTawa_NJPt3QIBhb5KjepeH4N1KA,719
|
|
117
117
|
arkitekt_next/cli/vars.py,sha256=ev7cKDSPoik8hU9A_ohNpjRZX4FT1GYJaBoGLnxCKjU,982
|
|
118
118
|
arkitekt_next/cli/versions/v1.yaml,sha256=rv2-F6FQbTZi_H6pSE_csdICdtKBObDdoo_asOFi43Y,12
|
|
119
|
-
arkitekt_next/constants.py,sha256=
|
|
120
|
-
arkitekt_next/model.py,sha256=
|
|
121
|
-
arkitekt_next/qt/__init__.py,sha256=
|
|
119
|
+
arkitekt_next/constants.py,sha256=OMNXceT6p9hxo3DLLH-632HtZqOe29E_1vrdeNiP4ZE,94
|
|
120
|
+
arkitekt_next/model.py,sha256=4ZZljn-UAK8EXltYTuzi_L7ygCVllqR0tDHOvMv1oW4,4476
|
|
121
|
+
arkitekt_next/qt/__init__.py,sha256=bvBdD3TKL10kc3mHupdRIY9qdkeZX_Bj-JN82Xv2MaI,455
|
|
122
122
|
arkitekt_next/qt/assets/dark/gear.png,sha256=nYl1JZhcpwd7s5FgG2g-1RpkK7TH_QQRqJMmK6r0BpU,6296
|
|
123
123
|
arkitekt_next/qt/assets/dark/green pulse.gif,sha256=cUd2F3Qlvjb7SnsU-LjGgeLTa8KoPgu3C-LNrixIQds,105386
|
|
124
124
|
arkitekt_next/qt/assets/dark/orange pulse.gif,sha256=0gDvrRed0mzZZPHB4tP6vptx7myUCAa_hEVGdjRhNy8,94769
|
|
@@ -129,15 +129,15 @@ arkitekt_next/qt/assets/light/green pulse.gif,sha256=cUd2F3Qlvjb7SnsU-LjGgeLTa8K
|
|
|
129
129
|
arkitekt_next/qt/assets/light/orange pulse.gif,sha256=0gDvrRed0mzZZPHB4tP6vptx7myUCAa_hEVGdjRhNy8,94769
|
|
130
130
|
arkitekt_next/qt/assets/light/pink pulse.gif,sha256=rxd6ZTHSIG9JZuuHhi3jiSB_JYFBZpy7OWUeZETlhQ4,107513
|
|
131
131
|
arkitekt_next/qt/assets/light/red pulse.gif,sha256=U7WLbZvSl5e-Ob5RmawtlC0Rh9VVHxkjDbGjj7NYVUo,108749
|
|
132
|
-
arkitekt_next/qt/builders.py,sha256=
|
|
132
|
+
arkitekt_next/qt/builders.py,sha256=AI_4WSDlT3sk9IVtxnepZPjGO4gIYfHa0I40MFUgj6o,2808
|
|
133
133
|
arkitekt_next/qt/magic_bar.py,sha256=Ni_c53A1yR5A6CGXMqBU-IPKzb3tVXL9r-K6e0rdRY8,18301
|
|
134
|
-
arkitekt_next/qt/types.py,sha256=
|
|
134
|
+
arkitekt_next/qt/types.py,sha256=jI9UHt1Rn-fxGZfeImTO9-yHh0zJPzk7CwvpnUXdirg,1085
|
|
135
135
|
arkitekt_next/qt/utils.py,sha256=MgBPtPmCSBkIuATov3UgREESwxAHh77lWNNxyE7Qs48,773
|
|
136
|
-
arkitekt_next/service_registry.py,sha256=
|
|
137
|
-
arkitekt_next/tqdm.py,sha256=
|
|
138
|
-
arkitekt_next/utils.py,sha256=
|
|
139
|
-
arkitekt_next-0.7.
|
|
140
|
-
arkitekt_next-0.7.
|
|
141
|
-
arkitekt_next-0.7.
|
|
142
|
-
arkitekt_next-0.7.
|
|
143
|
-
arkitekt_next-0.7.
|
|
136
|
+
arkitekt_next/service_registry.py,sha256=0Qt3PNPRBlhIGWMeB04ZVmOmNI-cFCt_o2F6UrplKA8,3577
|
|
137
|
+
arkitekt_next/tqdm.py,sha256=FgrwpAwFTXBTEPY4rS7K4Gs8Wdjp74mUk4_OEU8hWZM,1526
|
|
138
|
+
arkitekt_next/utils.py,sha256=csBRBnxnErMRTilNBYAtIe0lPBb6E3uplqwsVGs5Wkk,2390
|
|
139
|
+
arkitekt_next-0.7.54.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
|
|
140
|
+
arkitekt_next-0.7.54.dist-info/METADATA,sha256=BlQXbnDl-p8ZXc-nq0jRWU-B_q65Pc2KCjxihFHbnGU,5975
|
|
141
|
+
arkitekt_next-0.7.54.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
142
|
+
arkitekt_next-0.7.54.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
|
|
143
|
+
arkitekt_next-0.7.54.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|