arkitekt-next 0.8.52__py3-none-any.whl → 0.8.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 +12 -3
- arkitekt_next/builders.py +10 -5
- arkitekt_next/cli/commands/inspect/templates.py +6 -0
- arkitekt_next/init_registry.py +187 -0
- arkitekt_next/service_registry.py +76 -7
- {arkitekt_next-0.8.52.dist-info → arkitekt_next-0.8.54.dist-info}/METADATA +3 -3
- {arkitekt_next-0.8.52.dist-info → arkitekt_next-0.8.54.dist-info}/RECORD +10 -9
- {arkitekt_next-0.8.52.dist-info → arkitekt_next-0.8.54.dist-info}/LICENSE +0 -0
- {arkitekt_next-0.8.52.dist-info → arkitekt_next-0.8.54.dist-info}/WHEEL +0 -0
- {arkitekt_next-0.8.52.dist-info → arkitekt_next-0.8.54.dist-info}/entry_points.txt +0 -0
arkitekt_next/__init__.py
CHANGED
|
@@ -8,7 +8,7 @@ def missing_install(name: str, error: Exception):
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
try:
|
|
11
|
-
from rekuest_next.register import register
|
|
11
|
+
from rekuest_next.register import register, register_structure
|
|
12
12
|
from rekuest_next.agents.hooks import background
|
|
13
13
|
from rekuest_next.agents.hooks import startup
|
|
14
14
|
from rekuest_next.agents.context import context
|
|
@@ -19,7 +19,7 @@ try:
|
|
|
19
19
|
from rekuest_next.structures.model import model
|
|
20
20
|
from rekuest_next.define import define
|
|
21
21
|
except ImportError as e:
|
|
22
|
-
|
|
22
|
+
register_structure = missing_install("rekuest_next", e)
|
|
23
23
|
register = missing_install("rekuest_next", e)
|
|
24
24
|
background = missing_install("rekuest_next", e)
|
|
25
25
|
startup = missing_install("rekuest_next", e)
|
|
@@ -33,11 +33,13 @@ except ImportError as e:
|
|
|
33
33
|
from .builders import easy, interactive
|
|
34
34
|
from .apps.types import App
|
|
35
35
|
from fakts_next.helpers import afakt, fakt
|
|
36
|
+
from .init_registry import init, InitHookRegisty, get_current_init_hook_registry
|
|
37
|
+
from .service_registry import require, ServiceBuilderRegistry, get_current_service_registry
|
|
36
38
|
|
|
37
39
|
|
|
38
40
|
__all__ = [
|
|
39
41
|
"App",
|
|
40
|
-
"
|
|
42
|
+
"require",
|
|
41
43
|
"easy",
|
|
42
44
|
"interactive",
|
|
43
45
|
"publicqt",
|
|
@@ -50,6 +52,10 @@ __all__ = [
|
|
|
50
52
|
"aprogress",
|
|
51
53
|
"scheduler",
|
|
52
54
|
"register_structure",
|
|
55
|
+
"requirement",
|
|
56
|
+
"ServiceBuilderRegistry",
|
|
57
|
+
"get_current_service_registry",
|
|
58
|
+
"register",
|
|
53
59
|
"group",
|
|
54
60
|
"useGuardian",
|
|
55
61
|
"useInstanceID",
|
|
@@ -60,4 +66,7 @@ __all__ = [
|
|
|
60
66
|
"background",
|
|
61
67
|
"startup",
|
|
62
68
|
"register_next",
|
|
69
|
+
"init",
|
|
70
|
+
"InitHookRegisty",
|
|
71
|
+
"get_current_init_hook_registry",
|
|
63
72
|
]
|
arkitekt_next/builders.py
CHANGED
|
@@ -11,7 +11,8 @@ from arkitekt_next.apps.service.herre import build_arkitekt_next_herre_next
|
|
|
11
11
|
from .utils import create_arkitekt_next_folder
|
|
12
12
|
from .base_models import Manifest
|
|
13
13
|
from .apps.types import App
|
|
14
|
-
from .service_registry import ServiceBuilderRegistry,
|
|
14
|
+
from .service_registry import ServiceBuilderRegistry, get_current_service_registry
|
|
15
|
+
from .init_registry import InitHookRegisty, get_current_init_hook_registry
|
|
15
16
|
from arkitekt_next.constants import DEFAULT_ARKITEKT_URL
|
|
16
17
|
|
|
17
18
|
|
|
@@ -27,7 +28,8 @@ def easy(
|
|
|
27
28
|
no_cache: bool = False,
|
|
28
29
|
redeem_token: Optional[str] = None,
|
|
29
30
|
app_kind: str = "development",
|
|
30
|
-
|
|
31
|
+
service_registry: Optional[ServiceBuilderRegistry] = None,
|
|
32
|
+
init_hook_registry: Optional[InitHookRegisty] = None,
|
|
31
33
|
**kwargs,
|
|
32
34
|
) -> App:
|
|
33
35
|
"""Creates a next app
|
|
@@ -96,7 +98,8 @@ def easy(
|
|
|
96
98
|
NextApp
|
|
97
99
|
A built app, that can be used to interact with the ArkitektNext server
|
|
98
100
|
"""
|
|
99
|
-
|
|
101
|
+
service_registry = service_registry or get_current_service_registry()
|
|
102
|
+
init_hook_registry = init_hook_registry or get_current_init_hook_registry()
|
|
100
103
|
|
|
101
104
|
if identifier is None:
|
|
102
105
|
identifier = __file__.split("/")[-1].replace(".py", "")
|
|
@@ -109,7 +112,7 @@ def easy(
|
|
|
109
112
|
identifier=identifier,
|
|
110
113
|
scopes=scopes if scopes else ["openid"],
|
|
111
114
|
logo=logo,
|
|
112
|
-
requirements=
|
|
115
|
+
requirements=service_registry.get_requirements(),
|
|
113
116
|
)
|
|
114
117
|
|
|
115
118
|
if token:
|
|
@@ -153,11 +156,13 @@ def easy(
|
|
|
153
156
|
fakts=fakts_next,
|
|
154
157
|
herre=herre_next,
|
|
155
158
|
manifest=manifest,
|
|
156
|
-
services=
|
|
159
|
+
services=service_registry.build_service_map(
|
|
157
160
|
fakts=fakts_next, herre=herre_next, params=params, manifest=manifest
|
|
158
161
|
),
|
|
159
162
|
)
|
|
160
163
|
|
|
164
|
+
init_hook_registry.run_all(app)
|
|
165
|
+
|
|
161
166
|
return app
|
|
162
167
|
|
|
163
168
|
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import contextvars
|
|
2
|
+
from functools import wraps
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
from herre_next import Herre
|
|
5
|
+
from fakts_next import Fakts
|
|
6
|
+
from .base_models import Manifest, Requirement
|
|
7
|
+
from typing import Callable, Dict, Optional, Protocol, TypeVar, overload
|
|
8
|
+
import importlib
|
|
9
|
+
import sys
|
|
10
|
+
import os
|
|
11
|
+
import traceback
|
|
12
|
+
import logging
|
|
13
|
+
import pkgutil
|
|
14
|
+
from typing import runtime_checkable, TYPE_CHECKING, Any
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from arkitekt_next.apps import App
|
|
18
|
+
else:
|
|
19
|
+
App = Any
|
|
20
|
+
|
|
21
|
+
Params = Dict[str, str]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
current_init_hook_registry = contextvars.ContextVar(
|
|
25
|
+
"current_init_hook_registry", default=None
|
|
26
|
+
)
|
|
27
|
+
GLOBAL_INIT_HOOK_REGISTRY = None
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def get_default_init_hook_registry():
|
|
31
|
+
global GLOBAL_INIT_HOOK_REGISTRY
|
|
32
|
+
if GLOBAL_INIT_HOOK_REGISTRY is None:
|
|
33
|
+
GLOBAL_INIT_HOOK_REGISTRY = InitHookRegisty()
|
|
34
|
+
return GLOBAL_INIT_HOOK_REGISTRY
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def get_current_init_hook_registry(allow_global=True):
|
|
38
|
+
return current_init_hook_registry.get(get_default_init_hook_registry())
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class Registration(BaseModel):
|
|
42
|
+
name: str
|
|
43
|
+
requirement: Requirement
|
|
44
|
+
builder: Callable[[Herre, Fakts, Params], object]
|
|
45
|
+
schema_loader: Callable[[str], object]
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@runtime_checkable
|
|
49
|
+
class ArkitektService(Protocol):
|
|
50
|
+
|
|
51
|
+
def get_service_name(self):
|
|
52
|
+
pass
|
|
53
|
+
|
|
54
|
+
def build_service(
|
|
55
|
+
self, fakts: Fakts, herre: Herre, params: Params, manifest: Manifest
|
|
56
|
+
):
|
|
57
|
+
pass
|
|
58
|
+
|
|
59
|
+
def get_requirements(self):
|
|
60
|
+
pass
|
|
61
|
+
|
|
62
|
+
def get_graphql_schema(self):
|
|
63
|
+
pass
|
|
64
|
+
|
|
65
|
+
def get_turms_project(self):
|
|
66
|
+
pass
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class BaseArkitektService:
|
|
70
|
+
|
|
71
|
+
def get_service_name(self):
|
|
72
|
+
raise NotImplementedError("get_service_name not implemented")
|
|
73
|
+
|
|
74
|
+
def build_service(
|
|
75
|
+
self, fakts: Fakts, herre: Herre, params: Params, manifest: Manifest
|
|
76
|
+
):
|
|
77
|
+
raise NotImplementedError("build_service not implemented")
|
|
78
|
+
|
|
79
|
+
def get_requirements(self):
|
|
80
|
+
raise NotImplementedError("get_requirements not implemented")
|
|
81
|
+
|
|
82
|
+
def get_graphql_schema(self):
|
|
83
|
+
return None
|
|
84
|
+
|
|
85
|
+
def get_turms_project(self):
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
basic_requirements = [
|
|
90
|
+
Requirement(
|
|
91
|
+
key="lok",
|
|
92
|
+
service="live.arkitekt.lok",
|
|
93
|
+
description="An instance of ArkitektNext Lok to authenticate the user",
|
|
94
|
+
)
|
|
95
|
+
]
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
InitHook = Callable[[App], None]
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class InitHookRegisty:
|
|
102
|
+
|
|
103
|
+
def __init__(self):
|
|
104
|
+
self.init_hooks: Dict[str, InitHook] = {}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def register(
|
|
108
|
+
self,
|
|
109
|
+
function: InitHook,
|
|
110
|
+
name: Optional[str] = None,
|
|
111
|
+
only_cli: bool = False,
|
|
112
|
+
|
|
113
|
+
):
|
|
114
|
+
|
|
115
|
+
if name is None:
|
|
116
|
+
name = function.__name__
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
if name not in self.init_hooks:
|
|
120
|
+
self.init_hooks[name] = function
|
|
121
|
+
else:
|
|
122
|
+
raise ValueError(f"Service {name} already registered")
|
|
123
|
+
|
|
124
|
+
def run_all(self, app: App):
|
|
125
|
+
for hook in self.init_hooks.values():
|
|
126
|
+
hook(app)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
T = TypeVar("T")
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
@overload
|
|
136
|
+
def init(
|
|
137
|
+
function_or_actor: T,
|
|
138
|
+
) -> T: ...
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
@overload
|
|
142
|
+
def init(
|
|
143
|
+
function_or_actor: None = None,
|
|
144
|
+
) -> Callable[[T], T]: ...
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def init(
|
|
148
|
+
*func,
|
|
149
|
+
only_cli: bool = False,
|
|
150
|
+
init_hook_registry: InitHookRegisty = None,
|
|
151
|
+
):
|
|
152
|
+
"""Register a function as an init hook. This function will be called when the app is initialized.
|
|
153
|
+
|
|
154
|
+
"""
|
|
155
|
+
init_hook_registry = init_hook_registry or get_current_init_hook_registry()
|
|
156
|
+
|
|
157
|
+
if len(func) > 1:
|
|
158
|
+
raise ValueError("You can only register one function or actor at a time.")
|
|
159
|
+
if len(func) == 1:
|
|
160
|
+
function_or_actor = func[0]
|
|
161
|
+
|
|
162
|
+
@wraps(function_or_actor)
|
|
163
|
+
def wrapped_function(*args, **kwargs):
|
|
164
|
+
return function_or_actor(*args, **kwargs)
|
|
165
|
+
|
|
166
|
+
init_hook_registry.register(wrapped_function)
|
|
167
|
+
|
|
168
|
+
wrapped_function.__is_init_hook__ = True
|
|
169
|
+
|
|
170
|
+
return wrapped_function
|
|
171
|
+
|
|
172
|
+
else:
|
|
173
|
+
|
|
174
|
+
def real_decorator(function_or_actor):
|
|
175
|
+
# Simple bypass for now
|
|
176
|
+
@wraps(function_or_actor)
|
|
177
|
+
def wrapped_function(*args, **kwargs):
|
|
178
|
+
return function_or_actor(*args, **kwargs)
|
|
179
|
+
|
|
180
|
+
init_hook_registry.register(wrapped_function, only_cli=only_cli)
|
|
181
|
+
|
|
182
|
+
wrapped_function.__is_init_hook__ = True
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
return wrapped_function
|
|
186
|
+
|
|
187
|
+
return real_decorator
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import contextvars
|
|
2
|
+
from functools import wraps
|
|
1
3
|
from pydantic import BaseModel, Field
|
|
2
4
|
from herre_next import Herre
|
|
3
5
|
from fakts_next import Fakts
|
|
4
6
|
from .base_models import Manifest, Requirement
|
|
5
|
-
from typing import Callable, Dict, Protocol
|
|
7
|
+
from typing import Callable, Dict, Optional, Protocol, TypeVar, overload
|
|
6
8
|
import importlib
|
|
7
9
|
import sys
|
|
8
10
|
import os
|
|
@@ -14,6 +16,23 @@ from typing import runtime_checkable
|
|
|
14
16
|
Params = Dict[str, str]
|
|
15
17
|
|
|
16
18
|
|
|
19
|
+
current_service_registry = contextvars.ContextVar(
|
|
20
|
+
"current_service_registry", default=None
|
|
21
|
+
)
|
|
22
|
+
GLOBAL_SERVICE_REGISTRY = None
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def get_default_service_registry():
|
|
26
|
+
global GLOBAL_SERVICE_REGISTRY
|
|
27
|
+
if GLOBAL_SERVICE_REGISTRY is None:
|
|
28
|
+
GLOBAL_SERVICE_REGISTRY = ServiceBuilderRegistry()
|
|
29
|
+
return GLOBAL_SERVICE_REGISTRY
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def get_current_service_registry(allow_global=True):
|
|
33
|
+
return current_service_registry.get(get_default_service_registry())
|
|
34
|
+
|
|
35
|
+
|
|
17
36
|
class Registration(BaseModel):
|
|
18
37
|
name: str
|
|
19
38
|
requirement: Requirement
|
|
@@ -72,8 +91,12 @@ basic_requirements = [
|
|
|
72
91
|
|
|
73
92
|
|
|
74
93
|
class ServiceBuilderRegistry:
|
|
75
|
-
def __init__(self):
|
|
94
|
+
def __init__(self, import_services=True):
|
|
76
95
|
self.service_builders: Dict[str, ArkitektService] = {}
|
|
96
|
+
self.additional_requirements: Dict[str, Requirement]= {}
|
|
97
|
+
if import_services:
|
|
98
|
+
check_and_import_services(self)
|
|
99
|
+
|
|
77
100
|
|
|
78
101
|
def register(
|
|
79
102
|
self,
|
|
@@ -86,6 +109,13 @@ class ServiceBuilderRegistry:
|
|
|
86
109
|
self.service_builders[name] = service
|
|
87
110
|
else:
|
|
88
111
|
raise ValueError(f"Service {name} already registered")
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def register_requirement(self, requirement: Requirement):
|
|
115
|
+
if requirement.key in self.additional_requirements:
|
|
116
|
+
raise ValueError(f"Requirement {requirement.key} already registered)")
|
|
117
|
+
self.additional_requirements[requirement.key] = requirement
|
|
118
|
+
|
|
89
119
|
|
|
90
120
|
def get(self, name):
|
|
91
121
|
return self.services.get(name)
|
|
@@ -121,6 +151,12 @@ class ServiceBuilderRegistry:
|
|
|
121
151
|
taken_requirements.add(requirement.key)
|
|
122
152
|
requirements.append(requirement)
|
|
123
153
|
|
|
154
|
+
|
|
155
|
+
for requirement in self.additional_requirements.values():
|
|
156
|
+
if requirement.key not in taken_requirements:
|
|
157
|
+
taken_requirements.add(requirement.key)
|
|
158
|
+
requirements.append(requirement)
|
|
159
|
+
|
|
124
160
|
sorted_requirements = sorted(requirements, key=lambda x: x.key)
|
|
125
161
|
|
|
126
162
|
return sorted_requirements
|
|
@@ -137,8 +173,7 @@ import traceback
|
|
|
137
173
|
import logging
|
|
138
174
|
|
|
139
175
|
|
|
140
|
-
def check_and_import_services() -> ServiceBuilderRegistry:
|
|
141
|
-
service_builder_registry = ServiceBuilderRegistry()
|
|
176
|
+
def check_and_import_services(service_registry: ServiceBuilderRegistry) -> ServiceBuilderRegistry:
|
|
142
177
|
processed_modules = set() # Track modules that have already been processed
|
|
143
178
|
|
|
144
179
|
# Function to load and call init_extensions from __rekuest__.py
|
|
@@ -154,10 +189,10 @@ def check_and_import_services() -> ServiceBuilderRegistry:
|
|
|
154
189
|
if hasattr(rekuest_module, "build_services"):
|
|
155
190
|
for service in rekuest_module.build_services():
|
|
156
191
|
try:
|
|
157
|
-
|
|
192
|
+
service_registry.register(service)
|
|
158
193
|
except ValueError as e:
|
|
159
194
|
print(
|
|
160
|
-
f"Failed to register service {service}: Another service with the same name is already registered {
|
|
195
|
+
f"Failed to register service {service}: Another service with the same name is already registered {service_registry.service_builders}"
|
|
161
196
|
)
|
|
162
197
|
logging.info(f"Called build_services function from {module_name}")
|
|
163
198
|
else:
|
|
@@ -196,4 +231,38 @@ def check_and_import_services() -> ServiceBuilderRegistry:
|
|
|
196
231
|
)
|
|
197
232
|
traceback.print_exc()
|
|
198
233
|
|
|
199
|
-
return
|
|
234
|
+
return service_registry
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
T = TypeVar("T")
|
|
238
|
+
|
|
239
|
+
@overload
|
|
240
|
+
def require(
|
|
241
|
+
key: str ,
|
|
242
|
+
service: str = None,
|
|
243
|
+
description: str = None,
|
|
244
|
+
) -> Callable[[T], T]: ...
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def require(
|
|
248
|
+
key: str,
|
|
249
|
+
service: str = None,
|
|
250
|
+
description: str = None,
|
|
251
|
+
service_registry: Optional[ServiceBuilderRegistry] = None,
|
|
252
|
+
|
|
253
|
+
):
|
|
254
|
+
"""Register a requirement with the service registry
|
|
255
|
+
|
|
256
|
+
"""
|
|
257
|
+
service_hook_registry = service_registry or get_current_service_registry()
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
requirement = Requirement(
|
|
262
|
+
key=key,
|
|
263
|
+
service=service,
|
|
264
|
+
description=description
|
|
265
|
+
)
|
|
266
|
+
service_hook_registry.register_requirement(requirement)
|
|
267
|
+
|
|
268
|
+
return requirement
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: arkitekt-next
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.54
|
|
4
4
|
Summary: client for the arkitekt_next platform
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: jhnnsrs
|
|
@@ -32,8 +32,8 @@ Requires-Dist: mikro-next (>=0.1.50) ; (python_version >= "3.10" and python_vers
|
|
|
32
32
|
Requires-Dist: namegenerator (>=1.0.6) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "blok")
|
|
33
33
|
Requires-Dist: netifaces (>=0.11.0) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "blok")
|
|
34
34
|
Requires-Dist: reaktion-next (>=0.1.86) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "all")
|
|
35
|
-
Requires-Dist: rekuest-next (>=0.2.
|
|
36
|
-
Requires-Dist: rich-click (>=1.6.1) ; extra == "cli" or extra == "all"
|
|
35
|
+
Requires-Dist: rekuest-next (>=0.2.56) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "cli" or extra == "all")
|
|
36
|
+
Requires-Dist: rich-click (>=1.6.1) ; extra == "cli" or extra == "all" or extra == "blok"
|
|
37
37
|
Requires-Dist: semver (>=3.0.1) ; extra == "cli" or extra == "all"
|
|
38
38
|
Requires-Dist: turms (>=0.8.2) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "cli" or extra == "all")
|
|
39
39
|
Requires-Dist: unlok-next (>=0.1.87) ; python_version >= "3.8" and python_version < "4.0"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
arkitekt_next/__blok__.py,sha256=Xo2cTi1yYMKzXtl3i58rgRoRb4DJ9EB_iBCVvKmYX14,1785
|
|
2
|
-
arkitekt_next/__init__.py,sha256=
|
|
2
|
+
arkitekt_next/__init__.py,sha256=CBk_M-lSOJeaX7F4Lf5HPFWv6vx20Fvgs-kIGJGUpSk,2177
|
|
3
3
|
arkitekt_next/apps/__init__.py,sha256=cx_5Y-RkJFkSQJH-hUEC_L3eW1jU2E426c4e6_csIyM,42
|
|
4
4
|
arkitekt_next/apps/service/__init__.py,sha256=p4iRwiFBKRq2lfbjDBzUR_GMhPWjkjWTa01ohuKz_L4,157
|
|
5
5
|
arkitekt_next/apps/service/fakts_next.py,sha256=Wy37fjsEP2yjKZPtMlLilNlkO0olFX_7P5IIr6g3jkE,2900
|
|
@@ -49,7 +49,7 @@ arkitekt_next/bloks/services/secret.py,sha256=cnZsH09gN9YRXBbmalZaFD2LcmWLlfm52m
|
|
|
49
49
|
arkitekt_next/bloks/services/socket.py,sha256=3MbENiJrwQbFKrpWxax56F24elnSD7S-olgycfuOX7s,423
|
|
50
50
|
arkitekt_next/bloks/socket.py,sha256=IW4954Hgms_oZsDIk9SgLoVGz07gW3sHi7-WuhN074Q,1067
|
|
51
51
|
arkitekt_next/bloks/tailscale.py,sha256=87cJv9m7N_I3y2ZRvv5WVepRhvIZk4ftUpwa0yUdwj4,2961
|
|
52
|
-
arkitekt_next/builders.py,sha256=
|
|
52
|
+
arkitekt_next/builders.py,sha256=OkjamGoowr33cUenu1_nBHhxwFVhqMKSFhFVwkgfIMI,7760
|
|
53
53
|
arkitekt_next/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
54
|
arkitekt_next/cli/commands/call/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
55
|
arkitekt_next/cli/commands/call/local.py,sha256=OAeC2r9ujBFclaCfKEmUpt0Mt3NAKw3sVPTDvs2w_8E,2059
|
|
@@ -68,7 +68,7 @@ arkitekt_next/cli/commands/init/main.py,sha256=1ZbZDBECZRxlcnulycdS15s-uQ5ngx4xP
|
|
|
68
68
|
arkitekt_next/cli/commands/inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
69
|
arkitekt_next/cli/commands/inspect/main.py,sha256=Bu1vAZudkFCtjDnZAB8yQLDt-UKY9pJGhLBlEfDqtkw,626
|
|
70
70
|
arkitekt_next/cli/commands/inspect/requirements.py,sha256=bLYaWddScW2_qQFCwRtCFUZNM3N-ZnS26ee9xXQAi14,1862
|
|
71
|
-
arkitekt_next/cli/commands/inspect/templates.py,sha256=
|
|
71
|
+
arkitekt_next/cli/commands/inspect/templates.py,sha256=ypqRo1vyJFNmmOGFq2lQMlsQWlZoKsCH1ULZyv7022o,2296
|
|
72
72
|
arkitekt_next/cli/commands/inspect/variables.py,sha256=LonDlbS2qH1v-jD6RfEhTv-mxmgeBMKqD3oO2iDJRjE,2698
|
|
73
73
|
arkitekt_next/cli/commands/kabinet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
74
|
arkitekt_next/cli/commands/kabinet/build.py,sha256=uQh0nPBGsQNJ8iy-cQwMjpNx1c2ZRrBybbyZYg5doVc,8957
|
|
@@ -122,6 +122,7 @@ arkitekt_next/cli/validators.py,sha256=XkLrOrDzBJwcG1keTawa_NJPt3QIBhb5KjepeH4N1
|
|
|
122
122
|
arkitekt_next/cli/vars.py,sha256=ev7cKDSPoik8hU9A_ohNpjRZX4FT1GYJaBoGLnxCKjU,982
|
|
123
123
|
arkitekt_next/cli/versions/v1.yaml,sha256=rv2-F6FQbTZi_H6pSE_csdICdtKBObDdoo_asOFi43Y,12
|
|
124
124
|
arkitekt_next/constants.py,sha256=sJkLlkH21REjbpiSHnXCiW0lWOwWT-2VqGvWlxjQePY,89
|
|
125
|
+
arkitekt_next/init_registry.py,sha256=31E7FCYKMaf54otwFoIcEmyWvwL80XEvl7OSoRbg61k,4192
|
|
125
126
|
arkitekt_next/qt/__init__.py,sha256=5tCCd-FA3sMN9Lo5JRUYUM6xgs2zxyHj5YDpdWYbR0w,471
|
|
126
127
|
arkitekt_next/qt/assets/dark/gear.png,sha256=nYl1JZhcpwd7s5FgG2g-1RpkK7TH_QQRqJMmK6r0BpU,6296
|
|
127
128
|
arkitekt_next/qt/assets/dark/green pulse.gif,sha256=cUd2F3Qlvjb7SnsU-LjGgeLTa8KoPgu3C-LNrixIQds,105386
|
|
@@ -137,11 +138,11 @@ arkitekt_next/qt/builders.py,sha256=zQLn-mJJnfLHSDjfAJ7gfzv66cnQz_yNX9yKTEdapi4,
|
|
|
137
138
|
arkitekt_next/qt/magic_bar.py,sha256=b3WS8vN9cwaDHzBMtiKpw2UQcZwO1dF0mCLbLffO-eo,17596
|
|
138
139
|
arkitekt_next/qt/types.py,sha256=_oo3XCSvP_iMp1bdPRxOGRrmeyHnBKTQsf86q09irL4,4043
|
|
139
140
|
arkitekt_next/qt/utils.py,sha256=MgBPtPmCSBkIuATov3UgREESwxAHh77lWNNxyE7Qs48,773
|
|
140
|
-
arkitekt_next/service_registry.py,sha256=
|
|
141
|
+
arkitekt_next/service_registry.py,sha256=Enu88Ja7k0VBNMhNjibBqGxCiz6Qixfbvs4pUA-Mqp8,8094
|
|
141
142
|
arkitekt_next/tqdm.py,sha256=lQcJI5Q6Py7Gy88hOCiJujjPEEGd8G2k1mOVJJ6oYe8,1531
|
|
142
143
|
arkitekt_next/utils.py,sha256=4e4zEQSA7FZou8M01xV8oPBG1JvJJ0ySDP_nm3E3pMA,2390
|
|
143
|
-
arkitekt_next-0.8.
|
|
144
|
-
arkitekt_next-0.8.
|
|
145
|
-
arkitekt_next-0.8.
|
|
146
|
-
arkitekt_next-0.8.
|
|
147
|
-
arkitekt_next-0.8.
|
|
144
|
+
arkitekt_next-0.8.54.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
|
|
145
|
+
arkitekt_next-0.8.54.dist-info/METADATA,sha256=EKSpgyDNjQLfjBPiMCSJ9uZU9Tzz-f39BuDPTZbpmPM,6256
|
|
146
|
+
arkitekt_next-0.8.54.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
147
|
+
arkitekt_next-0.8.54.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
|
|
148
|
+
arkitekt_next-0.8.54.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|