arkitekt-next 0.8.18__py3-none-any.whl → 0.8.20__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/apps/service/fakts_next.py +40 -36
- arkitekt_next/apps/service/fakts_qt.py +11 -41
- arkitekt_next/apps/service/grant_registry.py +5 -5
- arkitekt_next/apps/service/herre.py +8 -8
- arkitekt_next/apps/service/herre_qt.py +10 -10
- arkitekt_next/apps/types.py +2 -2
- arkitekt_next/base_models.py +11 -3
- arkitekt_next/bloks/livekit.py +1 -1
- arkitekt_next/bloks/lok.py +1 -1
- arkitekt_next/bloks/minio.py +3 -3
- arkitekt_next/builders.py +17 -13
- arkitekt_next/cli/commands/call/local.py +1 -1
- arkitekt_next/cli/commands/call/remote.py +1 -1
- arkitekt_next/cli/commands/kabinet/stage.py +1 -1
- arkitekt_next/cli/commands/run/dev.py +2 -2
- arkitekt_next/cli/options.py +6 -6
- arkitekt_next/cli/types.py +2 -2
- arkitekt_next/qt/builders.py +20 -20
- arkitekt_next/qt/magic_bar.py +1 -18
- arkitekt_next/qt/types.py +0 -5
- arkitekt_next/service_registry.py +2 -2
- {arkitekt_next-0.8.18.dist-info → arkitekt_next-0.8.20.dist-info}/METADATA +10 -10
- {arkitekt_next-0.8.18.dist-info → arkitekt_next-0.8.20.dist-info}/RECORD +26 -26
- {arkitekt_next-0.8.18.dist-info → arkitekt_next-0.8.20.dist-info}/LICENSE +0 -0
- {arkitekt_next-0.8.18.dist-info → arkitekt_next-0.8.20.dist-info}/WHEEL +0 -0
- {arkitekt_next-0.8.18.dist-info → arkitekt_next-0.8.20.dist-info}/entry_points.txt +0 -0
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from
|
|
5
|
-
from
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from fakts.grants.remote.demanders.redeem import RedeemDemander
|
|
13
|
-
|
|
3
|
+
from fakts_next.fakts import Fakts
|
|
4
|
+
from fakts_next.grants.remote import RemoteGrant
|
|
5
|
+
from fakts_next.grants.remote.discovery.well_known import WellKnownDiscovery
|
|
6
|
+
from fakts_next.grants.remote import RemoteGrant
|
|
7
|
+
from fakts_next.grants.remote.demanders.static import StaticDemander
|
|
8
|
+
from fakts_next.grants.remote.demanders.device_code import DeviceCodeDemander
|
|
9
|
+
from fakts_next.grants.remote.claimers.post import ClaimEndpointClaimer
|
|
10
|
+
from fakts_next.grants.remote.demanders.redeem import RedeemDemander
|
|
11
|
+
from fakts_next.cache.file import FileCache
|
|
14
12
|
from arkitekt_next.base_models import Manifest
|
|
15
13
|
|
|
16
14
|
|
|
@@ -32,34 +30,25 @@ def build_arkitekt_next_fakts_next(
|
|
|
32
30
|
identifier = manifest.identifier
|
|
33
31
|
version = manifest.version
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
else:
|
|
44
|
-
demander = AutoSaveDemander(
|
|
45
|
-
demander=DeviceCodeDemander(
|
|
46
|
-
manifest=manifest,
|
|
47
|
-
redirect_uri="http://127.0.0.1:6767",
|
|
48
|
-
open_browser=not headless,
|
|
49
|
-
requested_client_kind=client_kind,
|
|
50
|
-
),
|
|
51
|
-
store=CacheTokenStore(
|
|
52
|
-
cache_file=f".arkitekt_next/cache/{identifier}-{version}_fakts_cache.json",
|
|
53
|
-
hash=manifest.hash(),
|
|
54
|
-
),
|
|
55
|
-
)
|
|
33
|
+
demander = DeviceCodeDemander(
|
|
34
|
+
manifest=manifest,
|
|
35
|
+
redirect_uri="http://127.0.0.1:6767",
|
|
36
|
+
open_browser=not headless,
|
|
37
|
+
requested_client_kind=client_kind,
|
|
38
|
+
)
|
|
39
|
+
|
|
56
40
|
|
|
57
41
|
return ArkitektNextFaktsNext(
|
|
58
42
|
grant=RemoteGrant(
|
|
59
43
|
demander=demander,
|
|
60
44
|
discovery=WellKnownDiscovery(url=url, auto_protocols=["https", "http"]),
|
|
61
45
|
claimer=ClaimEndpointClaimer(),
|
|
62
|
-
)
|
|
46
|
+
),
|
|
47
|
+
cache=FileCache(
|
|
48
|
+
cache_file=f".arkitekt_next/cache/{identifier}-{version}_fakts_cache.json",
|
|
49
|
+
hash=manifest.hash(),
|
|
50
|
+
skip_cache=no_cache,
|
|
51
|
+
),
|
|
63
52
|
)
|
|
64
53
|
|
|
65
54
|
|
|
@@ -70,24 +59,39 @@ def build_arkitekt_next_redeem_fakts_next(
|
|
|
70
59
|
no_cache: Optional[bool] = False,
|
|
71
60
|
headless=False,
|
|
72
61
|
):
|
|
62
|
+
identifier = manifest.identifier
|
|
63
|
+
version = manifest.version
|
|
64
|
+
|
|
65
|
+
|
|
73
66
|
return ArkitektNextFaktsNext(
|
|
74
67
|
grant=RemoteGrant(
|
|
75
68
|
demander=RedeemDemander(token=redeem_token, manifest=manifest),
|
|
76
69
|
discovery=WellKnownDiscovery(url=url, auto_protocols=["https", "http"]),
|
|
77
70
|
claimer=ClaimEndpointClaimer(),
|
|
78
|
-
)
|
|
71
|
+
),
|
|
72
|
+
cache=FileCache(
|
|
73
|
+
cache_file=f".arkitekt_next/cache/{identifier}-{version}_fakts_cache.json",
|
|
74
|
+
hash=manifest.hash(),
|
|
75
|
+
),
|
|
79
76
|
)
|
|
80
77
|
|
|
81
78
|
|
|
82
|
-
def
|
|
79
|
+
def build_arkitekt_next_token_fakts_next(
|
|
83
80
|
manifest: Manifest,
|
|
84
81
|
token: str,
|
|
85
82
|
url,
|
|
86
83
|
):
|
|
84
|
+
identifier = manifest.identifier
|
|
85
|
+
version = manifest.version
|
|
86
|
+
|
|
87
87
|
return ArkitektNextFaktsNext(
|
|
88
88
|
grant=RemoteGrant(
|
|
89
89
|
demander=StaticDemander(token=token),
|
|
90
90
|
discovery=WellKnownDiscovery(url=url, auto_protocols=["https", "http"]),
|
|
91
91
|
claimer=ClaimEndpointClaimer(),
|
|
92
|
-
)
|
|
92
|
+
),
|
|
93
|
+
cache=FileCache(
|
|
94
|
+
cache_file=f".arkitekt_next/cache/{identifier}-{version}_fakts_cache.json",
|
|
95
|
+
hash=manifest.hash(),
|
|
96
|
+
),
|
|
93
97
|
)
|
|
@@ -1,37 +1,21 @@
|
|
|
1
|
-
from
|
|
1
|
+
from fakts_next.fakts import Fakts
|
|
2
2
|
from typing import Optional
|
|
3
|
-
from
|
|
4
|
-
from
|
|
5
|
-
from fakts.grants.remote.demanders.device_code import DeviceCodeDemander
|
|
6
|
-
from fakts.grants.remote.discovery.auto_save import AutoSaveDiscovery
|
|
7
|
-
from fakts.grants.remote.discovery.qt.auto_save_endpoint_widget import (
|
|
8
|
-
AutoSaveEndpointWidget,
|
|
9
|
-
)
|
|
10
|
-
from fakts.grants.remote.discovery.qt.qt_settings_endpoint_store import (
|
|
11
|
-
QtSettingsEndpointStore,
|
|
12
|
-
)
|
|
13
|
-
from fakts.grants.remote.demanders.qt.qt_settings_token_store import QTSettingTokenStore
|
|
3
|
+
from fakts_next.grants.remote import RemoteGrant
|
|
4
|
+
from fakts_next.grants.remote.demanders.device_code import DeviceCodeDemander
|
|
14
5
|
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from fakts.grants.remote.discovery.qt.selectable_beacon import (
|
|
6
|
+
from fakts_next.grants.remote.claimers.post import ClaimEndpointClaimer
|
|
7
|
+
from fakts_next.grants.remote.discovery.qt.selectable_beacon import (
|
|
18
8
|
SelectBeaconWidget,
|
|
19
9
|
QtSelectableDiscovery,
|
|
20
10
|
)
|
|
21
11
|
from arkitekt_next.base_models import Manifest
|
|
22
12
|
from qtpy import QtCore, QtWidgets
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class ArkitektNextFaktsAutoSaveDiscovery(AutoSaveDiscovery):
|
|
26
|
-
"""An ArkitektNext Fakts discovery that uses Qt widgets for token and endpoint storage"""
|
|
27
|
-
|
|
28
|
-
discovery: QtSelectableDiscovery
|
|
29
|
-
|
|
13
|
+
from fakts_next.cache.qt.settings import QtSettingsCache
|
|
30
14
|
|
|
31
15
|
class ArkitektNextFaktsQtRemoteGrant(RemoteGrant):
|
|
32
16
|
"""An ArkitektNext Fakts grant that uses Qt widgets for token and endpoint storage"""
|
|
33
17
|
|
|
34
|
-
discovery:
|
|
18
|
+
discovery: QtSelectableDiscovery
|
|
35
19
|
|
|
36
20
|
|
|
37
21
|
class ArkitektNextFaktsQt(Fakts):
|
|
@@ -40,7 +24,7 @@ class ArkitektNextFaktsQt(Fakts):
|
|
|
40
24
|
grant: ArkitektNextFaktsQtRemoteGrant
|
|
41
25
|
|
|
42
26
|
|
|
43
|
-
def
|
|
27
|
+
def build_arkitekt_next_qt_fakts_next(
|
|
44
28
|
manifest: Manifest,
|
|
45
29
|
no_cache: Optional[bool] = False,
|
|
46
30
|
beacon_widget: Optional[QtWidgets.QWidget] = None,
|
|
@@ -53,34 +37,20 @@ def build_arkitekt_next_qt_fakts(
|
|
|
53
37
|
|
|
54
38
|
return ArkitektNextFaktsQt(
|
|
55
39
|
grant=ArkitektNextFaktsQtRemoteGrant(
|
|
56
|
-
demander=
|
|
57
|
-
store=QTSettingTokenStore(
|
|
58
|
-
settings=settings,
|
|
59
|
-
save_key="fakts_token",
|
|
60
|
-
),
|
|
61
|
-
demander=DeviceCodeDemander(
|
|
40
|
+
demander=DeviceCodeDemander(
|
|
62
41
|
manifest=manifest,
|
|
63
42
|
redirect_uri="http://127.0.0.1:6767",
|
|
64
43
|
open_browser=True,
|
|
65
44
|
requested_client_kind="desktop",
|
|
66
45
|
),
|
|
67
46
|
),
|
|
68
|
-
discovery=
|
|
69
|
-
store=QtSettingsEndpointStore(
|
|
70
|
-
settings=settings,
|
|
71
|
-
save_key="fakts_endpoint",
|
|
72
|
-
),
|
|
73
|
-
decider=AutoSaveEndpointWidget(
|
|
74
|
-
parent=parent,
|
|
75
|
-
),
|
|
76
|
-
discovery=QtSelectableDiscovery(
|
|
47
|
+
discovery=QtSelectableDiscovery(
|
|
77
48
|
widget=beacon_widget,
|
|
78
49
|
settings=settings,
|
|
79
50
|
allow_appending_slash=True,
|
|
80
51
|
auto_protocols=["http", "https"],
|
|
81
52
|
additional_beacons=["http://localhost"],
|
|
82
53
|
),
|
|
83
|
-
),
|
|
84
54
|
claimer=ClaimEndpointClaimer(),
|
|
85
|
-
)
|
|
55
|
+
cache=QtSettingsCache(settings=settings)
|
|
86
56
|
)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
from
|
|
2
|
-
from
|
|
3
|
-
from
|
|
4
|
-
from
|
|
5
|
-
from
|
|
1
|
+
from herre_next.fakts.grant import FaktsGrant
|
|
2
|
+
from herre_next.fakts.registry import GrantRegistry, GrantType
|
|
3
|
+
from herre_next.grants.oauth2.authorization_code import AuthorizationCodeGrant
|
|
4
|
+
from herre_next.grants.oauth2.redirecters.aiohttp_server import AioHttpServerRedirecter
|
|
5
|
+
from herre_next.grants.oauth2.client_credentials import ClientCredentialsGrant
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
ARKITEKT_GRANT_REGISTRY = GrantRegistry()
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
from
|
|
2
|
-
from
|
|
3
|
-
from
|
|
4
|
-
from
|
|
5
|
-
from
|
|
1
|
+
from herre_next.herre import Herre
|
|
2
|
+
from fakts_next import Fakts
|
|
3
|
+
from herre_next.grants.oauth2.refresh import RefreshGrant
|
|
4
|
+
from herre_next.fakts.fakts_endpoint_fetcher import FaktsUserFetcher
|
|
5
|
+
from herre_next.fakts.grant import FaktsGrant
|
|
6
6
|
from arkitekt_next.base_models import User
|
|
7
7
|
from arkitekt_next.apps.service.grant_registry import ARKITEKT_GRANT_REGISTRY
|
|
8
8
|
|
|
@@ -11,14 +11,14 @@ class ArkitektNextHerre(Herre):
|
|
|
11
11
|
pass
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
def
|
|
14
|
+
def build_arkitekt_next_herre_next(fakts_next: Fakts) -> ArkitektNextHerre:
|
|
15
15
|
return ArkitektNextHerre(
|
|
16
16
|
grant=RefreshGrant(
|
|
17
17
|
grant=FaktsGrant(
|
|
18
|
-
fakts=
|
|
18
|
+
fakts=fakts_next, fakts_group="lok", grant_registry=ARKITEKT_GRANT_REGISTRY
|
|
19
19
|
),
|
|
20
20
|
),
|
|
21
21
|
fetcher=FaktsUserFetcher(
|
|
22
|
-
fakts=
|
|
22
|
+
fakts=fakts_next, fakts_key="lok.userinfo_url", userModel=User
|
|
23
23
|
),
|
|
24
24
|
)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
from
|
|
2
|
-
from
|
|
3
|
-
from
|
|
4
|
-
from
|
|
5
|
-
from
|
|
6
|
-
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
1
|
+
from herre_next.herre import Herre
|
|
2
|
+
from fakts_next import Fakts
|
|
3
|
+
from herre_next.grants.oauth2.refresh import RefreshGrant
|
|
4
|
+
from herre_next.fakts.grant import FaktsGrant
|
|
5
|
+
from herre_next.fakts.fakts_qt_store import FaktsQtStore
|
|
6
|
+
|
|
7
|
+
from herre_next.grants.auto_login import AutoLoginGrant
|
|
8
|
+
from herre_next.grants.qt.auto_login import AutoLoginWidget
|
|
9
|
+
from herre_next.fakts.fakts_endpoint_fetcher import FaktsUserFetcher
|
|
10
10
|
from arkitekt_next.base_models import Manifest, User
|
|
11
11
|
from arkitekt_next.apps.service.grant_registry import ARKITEKT_GRANT_REGISTRY
|
|
12
12
|
|
|
@@ -25,7 +25,7 @@ class ArkitektNextHerreQt(Herre):
|
|
|
25
25
|
grant: ArkitektNextRefreshGrant
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
def
|
|
28
|
+
def build_arkitekt_next_qt_herre_next(
|
|
29
29
|
manifest: Manifest,
|
|
30
30
|
fakts: Fakts,
|
|
31
31
|
login_widget=None,
|
arkitekt_next/apps/types.py
CHANGED
|
@@ -14,8 +14,8 @@ import logging
|
|
|
14
14
|
from typing import TYPE_CHECKING, Any, Dict
|
|
15
15
|
from arkitekt_next.base_models import Manifest
|
|
16
16
|
from koil.composition import Composition
|
|
17
|
-
from
|
|
18
|
-
from
|
|
17
|
+
from fakts_next import Fakts
|
|
18
|
+
from herre_next import Herre
|
|
19
19
|
|
|
20
20
|
logger = logging.getLogger(__name__)
|
|
21
21
|
|
arkitekt_next/base_models.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Models for ArkitektNext. Thiese include extensiosn for the Fakts Manifest and the User model."""
|
|
2
2
|
|
|
3
3
|
from hashlib import sha256
|
|
4
|
-
from pydantic import BaseModel, Field
|
|
4
|
+
from pydantic import BaseModel, Field, field_validator
|
|
5
5
|
from typing import List, Optional
|
|
6
6
|
|
|
7
7
|
|
|
@@ -94,15 +94,23 @@ class Manifest(BaseModel):
|
|
|
94
94
|
def hash(self):
|
|
95
95
|
"""Hash the manifest"""
|
|
96
96
|
return sha256(self.model_dump_json().encode()).hexdigest()
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
@field_validator("identifier")
|
|
100
|
+
def check_identifier(cls, v):
|
|
101
|
+
assert "/" not in v, "The identifier should not contain a /"
|
|
102
|
+
assert len(v) > 0, "The identifier should not be empty"
|
|
103
|
+
assert len(v) < 256, "The identifier should not be longer than 256 characters"
|
|
104
|
+
return v
|
|
97
105
|
|
|
98
106
|
|
|
99
107
|
class User(BaseModel):
|
|
100
108
|
"""A user of ArkitektNext
|
|
101
109
|
|
|
102
|
-
This model represents a user on ArkitektNext. As
|
|
110
|
+
This model represents a user on ArkitektNext. As herre_next is acgnostic to the
|
|
103
111
|
user model, we need to provide a model that can be used to represent
|
|
104
112
|
the ArkitektNext user. This model is used by the
|
|
105
|
-
:class:`
|
|
113
|
+
:class:`herre_next.fakts.fakts_endpoint_fetcher.FaktsUserFetcher` to
|
|
106
114
|
fetch the user from the associated ArkitektNext Lok instance. This model
|
|
107
115
|
is closely mimicking the OIDC user model, and is therefore compatible
|
|
108
116
|
to represent OIDC users.
|
arkitekt_next/bloks/livekit.py
CHANGED
arkitekt_next/bloks/lok.py
CHANGED
|
@@ -202,7 +202,7 @@ class LokBlok:
|
|
|
202
202
|
depends_on.append(self.postgress_access.dependency)
|
|
203
203
|
|
|
204
204
|
db_service = {
|
|
205
|
-
"labels": ["
|
|
205
|
+
"labels": ["fakts_next.service=live.arkitekt.lok", "fakts_next.builder=arkitekt.lok"],
|
|
206
206
|
"depends_on": depends_on,
|
|
207
207
|
"volumes": [
|
|
208
208
|
"/var/run/docker.sock:/var/run/docker.sock",
|
arkitekt_next/bloks/minio.py
CHANGED
|
@@ -155,17 +155,17 @@ class MinioBlok:
|
|
|
155
155
|
def get_options(self):
|
|
156
156
|
with_host = Option(
|
|
157
157
|
subcommand="host",
|
|
158
|
-
help="The
|
|
158
|
+
help="The fakts_next url for connection",
|
|
159
159
|
default=self.host,
|
|
160
160
|
)
|
|
161
161
|
with_username = Option(
|
|
162
162
|
subcommand="username",
|
|
163
|
-
help="The
|
|
163
|
+
help="The fakts_next url for connection",
|
|
164
164
|
default=self.username,
|
|
165
165
|
)
|
|
166
166
|
with_password = Option(
|
|
167
167
|
subcommand="password",
|
|
168
|
-
help="The
|
|
168
|
+
help="The fakts_next url for connection",
|
|
169
169
|
default=self.password,
|
|
170
170
|
)
|
|
171
171
|
|
arkitekt_next/builders.py
CHANGED
|
@@ -5,9 +5,9 @@ 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
|
-
|
|
8
|
+
build_arkitekt_next_token_fakts_next,
|
|
9
9
|
)
|
|
10
|
-
from arkitekt_next.apps.service.herre import
|
|
10
|
+
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
|
|
@@ -16,7 +16,7 @@ from arkitekt_next.constants import DEFAULT_ARKITEKT_URL
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def easy(
|
|
19
|
-
identifier: str,
|
|
19
|
+
identifier: str = None,
|
|
20
20
|
version: str = "0.0.1",
|
|
21
21
|
logo: Optional[str] = None,
|
|
22
22
|
scopes: Optional[List[str]] = None,
|
|
@@ -48,7 +48,7 @@ def easy(
|
|
|
48
48
|
which means that they will be authenticated with the ArkitektNext server on
|
|
49
49
|
a per user basis. If you want to create a "desktop" app, which multiple users
|
|
50
50
|
can use, you should set the `app_kind` to "desktop" TODO: Currently not implemented (use next app for this)
|
|
51
|
-
- The Next builder can also be used in plugin apps, and when provided with a
|
|
51
|
+
- The Next builder can also be used in plugin apps, and when provided with a fakts_next token
|
|
52
52
|
will be able to connect to the ArkitektNext server without any user interaction.
|
|
53
53
|
|
|
54
54
|
|
|
@@ -63,7 +63,7 @@ def easy(
|
|
|
63
63
|
scopes : List[str], optional
|
|
64
64
|
The scopes, that this apps requires, will default to standard scopes, by default None
|
|
65
65
|
url : str, optional
|
|
66
|
-
The
|
|
66
|
+
The fakts_next server that will be used to configure this app, in a default ArkitektNext deployment this
|
|
67
67
|
is the address of the "Lok Service" (which provides the Fakts API), by default DEFAULT_ARKITEKT_URL
|
|
68
68
|
Will be overwritten by the FAKTS_URL environment variable
|
|
69
69
|
headless : bool, optional
|
|
@@ -72,7 +72,7 @@ def easy(
|
|
|
72
72
|
log_level : str, optional
|
|
73
73
|
The log-level to use, by default "ERROR"
|
|
74
74
|
token : str, optional
|
|
75
|
-
A
|
|
75
|
+
A fakts_next token to use, by default None
|
|
76
76
|
Will be overwritten by the FAKTS_TOKEN environment variable
|
|
77
77
|
no_cache : bool, optional
|
|
78
78
|
Should we skip caching token, acess-token, by default False
|
|
@@ -98,6 +98,10 @@ def easy(
|
|
|
98
98
|
"""
|
|
99
99
|
registry = registry or check_and_import_services()
|
|
100
100
|
|
|
101
|
+
|
|
102
|
+
if identifier is None:
|
|
103
|
+
identifier = __file__.split("/")[-1].replace(".py", "")
|
|
104
|
+
|
|
101
105
|
url = os.getenv("FAKTS_URL", url)
|
|
102
106
|
token = os.getenv("FAKTS_TOKEN", token)
|
|
103
107
|
|
|
@@ -109,14 +113,14 @@ def easy(
|
|
|
109
113
|
requirements=registry.get_requirements(),
|
|
110
114
|
)
|
|
111
115
|
if token:
|
|
112
|
-
|
|
116
|
+
fakts_next = build_arkitekt_next_token_fakts_next(
|
|
113
117
|
manifest=manifest,
|
|
114
118
|
token=token,
|
|
115
119
|
url=url,
|
|
116
120
|
)
|
|
117
121
|
|
|
118
122
|
elif redeem_token:
|
|
119
|
-
|
|
123
|
+
fakts_next = build_arkitekt_next_redeem_fakts_next(
|
|
120
124
|
manifest=manifest,
|
|
121
125
|
redeem_token=redeem_token,
|
|
122
126
|
url=url,
|
|
@@ -124,7 +128,7 @@ def easy(
|
|
|
124
128
|
headless=headless,
|
|
125
129
|
)
|
|
126
130
|
else:
|
|
127
|
-
|
|
131
|
+
fakts_next = build_arkitekt_next_fakts_next(
|
|
128
132
|
manifest=manifest,
|
|
129
133
|
url=url,
|
|
130
134
|
no_cache=no_cache,
|
|
@@ -132,7 +136,7 @@ def easy(
|
|
|
132
136
|
client_kind=app_kind,
|
|
133
137
|
)
|
|
134
138
|
|
|
135
|
-
|
|
139
|
+
herre_next = build_arkitekt_next_herre_next(fakts_next=fakts_next)
|
|
136
140
|
|
|
137
141
|
params = kwargs
|
|
138
142
|
|
|
@@ -146,11 +150,11 @@ def easy(
|
|
|
146
150
|
logging.basicConfig(level=log_level)
|
|
147
151
|
|
|
148
152
|
app = App(
|
|
149
|
-
fakts=
|
|
150
|
-
herre=
|
|
153
|
+
fakts=fakts_next,
|
|
154
|
+
herre=herre_next,
|
|
151
155
|
manifest=manifest,
|
|
152
156
|
services=registry.build_service_map(
|
|
153
|
-
fakts=
|
|
157
|
+
fakts=fakts_next, herre=herre_next, params=params, manifest=manifest
|
|
154
158
|
),
|
|
155
159
|
)
|
|
156
160
|
|
|
@@ -18,7 +18,7 @@ from arkitekt_next.apps.types import App
|
|
|
18
18
|
import rich_click as click
|
|
19
19
|
import os
|
|
20
20
|
from arkitekt_next.cli.options import (
|
|
21
|
-
|
|
21
|
+
with_fakts_next_url,
|
|
22
22
|
with_builder,
|
|
23
23
|
with_token,
|
|
24
24
|
with_instance_id,
|
|
@@ -327,7 +327,7 @@ async def run_dev(
|
|
|
327
327
|
|
|
328
328
|
|
|
329
329
|
@click.command()
|
|
330
|
-
@
|
|
330
|
+
@with_fakts_next_url
|
|
331
331
|
@with_builder
|
|
332
332
|
@with_token
|
|
333
333
|
@with_instance_id
|
arkitekt_next/cli/options.py
CHANGED
|
@@ -6,10 +6,10 @@ from .types import *
|
|
|
6
6
|
from .vars import *
|
|
7
7
|
from .ui import *
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
with_fakts_next_url = click.option(
|
|
10
10
|
"--url",
|
|
11
11
|
"-u",
|
|
12
|
-
help="The
|
|
12
|
+
help="The fakts_next url for connection",
|
|
13
13
|
default=DEFAULT_ARKITEKT_URL,
|
|
14
14
|
envvar="FAKTS_URL",
|
|
15
15
|
)
|
|
@@ -17,14 +17,14 @@ with_fakts_url = click.option(
|
|
|
17
17
|
with_token = click.option(
|
|
18
18
|
"--token",
|
|
19
19
|
"-t",
|
|
20
|
-
help="The token for the
|
|
20
|
+
help="The token for the fakts_next instance",
|
|
21
21
|
envvar="FAKTS_TOKEN",
|
|
22
22
|
required=False,
|
|
23
23
|
)
|
|
24
24
|
with_redeem_token = click.option(
|
|
25
25
|
"--redeem-token",
|
|
26
26
|
"-r",
|
|
27
|
-
help="The token for the
|
|
27
|
+
help="The token for the fakts_next instance",
|
|
28
28
|
envvar="FAKTS_REDEEM_TOKEN",
|
|
29
29
|
required=False,
|
|
30
30
|
)
|
|
@@ -57,7 +57,7 @@ with_instance_id = click.option(
|
|
|
57
57
|
"--instance-id",
|
|
58
58
|
"-i",
|
|
59
59
|
default="main",
|
|
60
|
-
help="The token for the
|
|
60
|
+
help="The token for the fakts_next instance",
|
|
61
61
|
envvar="REKUEST_INSTANCE",
|
|
62
62
|
)
|
|
63
63
|
|
|
@@ -65,7 +65,7 @@ with_log_level = click.option(
|
|
|
65
65
|
"--log-level",
|
|
66
66
|
"-l",
|
|
67
67
|
default="ERROR",
|
|
68
|
-
help="The token for the
|
|
68
|
+
help="The token for the fakts_next instance",
|
|
69
69
|
envvar="ARKITEKT_LOG_LEVEL",
|
|
70
70
|
)
|
|
71
71
|
|
arkitekt_next/cli/types.py
CHANGED
|
@@ -163,7 +163,7 @@ class Build(BaseModel):
|
|
|
163
163
|
|
|
164
164
|
return base_command
|
|
165
165
|
|
|
166
|
-
def build_arkitekt_next_command(self,
|
|
166
|
+
def build_arkitekt_next_command(self, fakts_next_url: str):
|
|
167
167
|
"""Builds the arkitekt_next command for this build"""
|
|
168
168
|
|
|
169
169
|
base_command = self.base_arkitekt_next_command
|
|
@@ -171,7 +171,7 @@ class Build(BaseModel):
|
|
|
171
171
|
for selector in self.selectors:
|
|
172
172
|
base_command = base_command + selector.build_arkitekt_next_params()
|
|
173
173
|
|
|
174
|
-
base_command = base_command + ["--url",
|
|
174
|
+
base_command = base_command + ["--url", fakts_next_url]
|
|
175
175
|
|
|
176
176
|
return base_command
|
|
177
177
|
|
arkitekt_next/qt/builders.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from arkitekt_next.apps.service.fakts_next import (
|
|
2
2
|
build_arkitekt_next_redeem_fakts_next,
|
|
3
3
|
)
|
|
4
|
-
from arkitekt_next.apps.service.fakts_qt import
|
|
5
|
-
from arkitekt_next.apps.service.herre_qt import
|
|
4
|
+
from arkitekt_next.apps.service.fakts_qt import build_arkitekt_next_qt_fakts_next
|
|
5
|
+
from arkitekt_next.apps.service.herre_qt import build_arkitekt_next_qt_herre_next
|
|
6
6
|
from arkitekt_next.utils import create_arkitekt_next_folder
|
|
7
7
|
from arkitekt_next.base_models import Manifest
|
|
8
8
|
from arkitekt_next.apps.types import App
|
|
@@ -22,9 +22,9 @@ from arkitekt_next.qt.types import QtApp
|
|
|
22
22
|
from arkitekt_next.apps.service.fakts_next import (
|
|
23
23
|
build_arkitekt_next_fakts_next,
|
|
24
24
|
build_arkitekt_next_redeem_fakts_next,
|
|
25
|
-
|
|
25
|
+
build_arkitekt_next_token_fakts_next,
|
|
26
26
|
)
|
|
27
|
-
from arkitekt_next.apps.service.herre import
|
|
27
|
+
from arkitekt_next.apps.service.herre import build_arkitekt_next_herre_next
|
|
28
28
|
from arkitekt_next.utils import create_arkitekt_next_folder
|
|
29
29
|
from arkitekt_next.base_models import Manifest
|
|
30
30
|
from arkitekt_next.apps.types import App
|
|
@@ -69,7 +69,7 @@ def devqt(
|
|
|
69
69
|
which means that they will be authenticated with the ArkitektNext server on
|
|
70
70
|
a per user basis. If you want to create a "desktop" app, which multiple users
|
|
71
71
|
can use, you should set the `app_kind` to "desktop" TODO: Currently not implemented (use next app for this)
|
|
72
|
-
- The Next builder can also be used in plugin apps, and when provided with a
|
|
72
|
+
- The Next builder can also be used in plugin apps, and when provided with a fakts_next token
|
|
73
73
|
will be able to connect to the ArkitektNext server without any user interaction.
|
|
74
74
|
|
|
75
75
|
|
|
@@ -84,7 +84,7 @@ def devqt(
|
|
|
84
84
|
scopes : List[str], optional
|
|
85
85
|
The scopes, that this apps requires, will default to standard scopes, by default None
|
|
86
86
|
url : str, optional
|
|
87
|
-
The
|
|
87
|
+
The fakts_next server that will be used to configure this app, in a default ArkitektNext deployment this
|
|
88
88
|
is the address of the "Lok Service" (which provides the Fakts API), by default DEFAULT_ARKITEKT_URL
|
|
89
89
|
Will be overwritten by the FAKTS_URL environment variable
|
|
90
90
|
headless : bool, optional
|
|
@@ -93,7 +93,7 @@ def devqt(
|
|
|
93
93
|
log_level : str, optional
|
|
94
94
|
The log-level to use, by default "ERROR"
|
|
95
95
|
token : str, optional
|
|
96
|
-
A
|
|
96
|
+
A fakts_next token to use, by default None
|
|
97
97
|
Will be overwritten by the FAKTS_TOKEN environment variable
|
|
98
98
|
no_cache : bool, optional
|
|
99
99
|
Should we skip caching token, acess-token, by default False
|
|
@@ -130,14 +130,14 @@ def devqt(
|
|
|
130
130
|
requirements=registry.get_requirements(),
|
|
131
131
|
)
|
|
132
132
|
if token:
|
|
133
|
-
|
|
133
|
+
fakts_next = build_arkitekt_next_token_fakts_next(
|
|
134
134
|
manifest=manifest,
|
|
135
135
|
token=token,
|
|
136
136
|
url=url,
|
|
137
137
|
)
|
|
138
138
|
|
|
139
139
|
elif redeem_token:
|
|
140
|
-
|
|
140
|
+
fakts_next = build_arkitekt_next_redeem_fakts_next(
|
|
141
141
|
manifest=manifest,
|
|
142
142
|
redeem_token=redeem_token,
|
|
143
143
|
url=url,
|
|
@@ -145,7 +145,7 @@ def devqt(
|
|
|
145
145
|
headless=headless,
|
|
146
146
|
)
|
|
147
147
|
else:
|
|
148
|
-
|
|
148
|
+
fakts_next = build_arkitekt_next_fakts_next(
|
|
149
149
|
manifest=manifest,
|
|
150
150
|
url=url,
|
|
151
151
|
no_cache=no_cache,
|
|
@@ -153,7 +153,7 @@ def devqt(
|
|
|
153
153
|
client_kind=app_kind,
|
|
154
154
|
)
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
herre_next = build_arkitekt_next_herre_next(fakts_next=fakts_next)
|
|
157
157
|
|
|
158
158
|
params = kwargs
|
|
159
159
|
|
|
@@ -167,11 +167,11 @@ def devqt(
|
|
|
167
167
|
logging.basicConfig(level=log_level)
|
|
168
168
|
|
|
169
169
|
app = QtApp(
|
|
170
|
-
fakts=
|
|
171
|
-
herre=
|
|
170
|
+
fakts=fakts_next,
|
|
171
|
+
herre=herre_next,
|
|
172
172
|
manifest=manifest,
|
|
173
173
|
services=registry.build_service_map(
|
|
174
|
-
fakts=
|
|
174
|
+
fakts=fakts_next, herre=herre_next, params=params, manifest=manifest
|
|
175
175
|
),
|
|
176
176
|
)
|
|
177
177
|
|
|
@@ -220,16 +220,16 @@ def publicqt(
|
|
|
220
220
|
requirements=registry.get_requirements(),
|
|
221
221
|
)
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
fakts_next = build_arkitekt_next_qt_fakts_next(
|
|
224
224
|
manifest=manifest,
|
|
225
225
|
beacon_widget=beacon_widget,
|
|
226
226
|
parent=parent,
|
|
227
227
|
settings=settings,
|
|
228
228
|
)
|
|
229
229
|
|
|
230
|
-
|
|
230
|
+
herre_next = build_arkitekt_next_qt_herre_next(
|
|
231
231
|
manifest,
|
|
232
|
-
fakts=
|
|
232
|
+
fakts=fakts_next,
|
|
233
233
|
login_widget=login_widget,
|
|
234
234
|
parent=parent,
|
|
235
235
|
settings=settings,
|
|
@@ -245,11 +245,11 @@ def publicqt(
|
|
|
245
245
|
logging.basicConfig(level=log_level)
|
|
246
246
|
|
|
247
247
|
app = QtApp(
|
|
248
|
-
fakts=
|
|
249
|
-
herre=
|
|
248
|
+
fakts=fakts_next,
|
|
249
|
+
herre=herre_next,
|
|
250
250
|
manifest=manifest,
|
|
251
251
|
services=registry.build_service_map(
|
|
252
|
-
fakts=
|
|
252
|
+
fakts=fakts_next, herre=herre_next, params=params, manifest=manifest
|
|
253
253
|
),
|
|
254
254
|
)
|
|
255
255
|
|
arkitekt_next/qt/magic_bar.py
CHANGED
|
@@ -213,28 +213,15 @@ class Profile(QtWidgets.QDialog):
|
|
|
213
213
|
self.infobar.addWidget(QtWidgets.QLabel(self.app.manifest.identifier))
|
|
214
214
|
self.infobar.addWidget(QtWidgets.QLabel(self.app.manifest.version))
|
|
215
215
|
|
|
216
|
-
self.logout_button = QtWidgets.QPushButton("Change User")
|
|
217
|
-
self.logout_button.clicked.connect(
|
|
218
|
-
lambda: self.bar.refresh_token_task.run(
|
|
219
|
-
allow_cache=False,
|
|
220
|
-
allow_refresh=False,
|
|
221
|
-
allow_auto_login=False,
|
|
222
|
-
delete_active=True,
|
|
223
|
-
)
|
|
224
|
-
)
|
|
225
216
|
|
|
226
|
-
self.unkonfigure_button = QtWidgets.QPushButton("
|
|
217
|
+
self.unkonfigure_button = QtWidgets.QPushButton("Reconnect")
|
|
227
218
|
self.unkonfigure_button.clicked.connect(
|
|
228
219
|
lambda: self.bar.refresh_task.run(
|
|
229
|
-
allow_auto_demand=False,
|
|
230
|
-
allow_auto_discover=False,
|
|
231
|
-
delete_active=True,
|
|
232
220
|
)
|
|
233
221
|
)
|
|
234
222
|
|
|
235
223
|
button_bar = QtWidgets.QHBoxLayout()
|
|
236
224
|
self.infobar.addLayout(button_bar)
|
|
237
|
-
button_bar.addWidget(self.logout_button)
|
|
238
225
|
button_bar.addWidget(self.unkonfigure_button)
|
|
239
226
|
|
|
240
227
|
self.logs = ArkitektNextLogs(self.settings, parent=self)
|
|
@@ -464,7 +451,6 @@ class MagicBar(QtWidgets.QWidget):
|
|
|
464
451
|
self.app_state_changed.emit()
|
|
465
452
|
self.set_button_movie("pink pulse.gif")
|
|
466
453
|
self.profile.unkonfigure_button.setDisabled(True)
|
|
467
|
-
self.profile.logout_button.setDisabled(True)
|
|
468
454
|
self.magicb.setDisabled(False)
|
|
469
455
|
self.magicb.setText("Konfigure App")
|
|
470
456
|
|
|
@@ -476,7 +462,6 @@ class MagicBar(QtWidgets.QWidget):
|
|
|
476
462
|
self.app_state_changed.emit()
|
|
477
463
|
self.set_button_movie("orange pulse.gif")
|
|
478
464
|
self.profile.unkonfigure_button.setDisabled(False)
|
|
479
|
-
self.profile.logout_button.setDisabled(True)
|
|
480
465
|
self.magicb.setDisabled(False)
|
|
481
466
|
self.magicb.setText("Login")
|
|
482
467
|
|
|
@@ -488,7 +473,6 @@ class MagicBar(QtWidgets.QWidget):
|
|
|
488
473
|
self.app_state_changed.emit()
|
|
489
474
|
self.set_button_movie("green pulse.gif")
|
|
490
475
|
self.profile.unkonfigure_button.setDisabled(False)
|
|
491
|
-
self.profile.logout_button.setDisabled(False)
|
|
492
476
|
self.magicb.setDisabled(False)
|
|
493
477
|
self.magicb.setText("Provide")
|
|
494
478
|
|
|
@@ -500,7 +484,6 @@ class MagicBar(QtWidgets.QWidget):
|
|
|
500
484
|
self.app_state_changed.emit()
|
|
501
485
|
self.set_button_movie("red pulse.gif")
|
|
502
486
|
self.profile.unkonfigure_button.setDisabled(False)
|
|
503
|
-
self.profile.logout_button.setDisabled(False)
|
|
504
487
|
self.magicb.setDisabled(False)
|
|
505
488
|
self.magicb.setText("Cancel Provide..")
|
|
506
489
|
|
arkitekt_next/qt/types.py
CHANGED
|
@@ -4,11 +4,6 @@ from typing import List, Callable, Dict, Any
|
|
|
4
4
|
|
|
5
5
|
class QtApp(App):
|
|
6
6
|
"""An app that is built with the easy builder"""
|
|
7
|
-
|
|
8
|
-
fakts: Fakts
|
|
9
|
-
herre: Herre
|
|
10
|
-
manifest: Manifest
|
|
11
|
-
services: Dict[str, Any]
|
|
12
7
|
hooks: Dict[str, List[Callable]] = {
|
|
13
8
|
"on_start": [],
|
|
14
9
|
"on_stop": [],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: arkitekt-next
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.20
|
|
4
4
|
Summary: client for the arkitekt_next platform
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: jhnnsrs
|
|
@@ -19,21 +19,21 @@ Provides-Extra: cli
|
|
|
19
19
|
Requires-Dist: blok (>=0.0.19) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "blok")
|
|
20
20
|
Requires-Dist: cryptography (>=40.0.8) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "blok")
|
|
21
21
|
Requires-Dist: dokker (>=1.0.0)
|
|
22
|
-
Requires-Dist: fakts (>=1.0.0)
|
|
23
|
-
Requires-Dist: fluss-next (>=0.1.
|
|
24
|
-
Requires-Dist: herre (>=1.0.0)
|
|
25
|
-
Requires-Dist: kabinet (>=0.1.
|
|
22
|
+
Requires-Dist: fakts-next (>=1.0.0)
|
|
23
|
+
Requires-Dist: fluss-next (>=0.1.88) ; extra == "all"
|
|
24
|
+
Requires-Dist: herre-next (>=1.0.0)
|
|
25
|
+
Requires-Dist: kabinet (>=0.1.31) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "all")
|
|
26
26
|
Requires-Dist: koil (>=1.0.0)
|
|
27
|
-
Requires-Dist: lovekit (>=0.1.
|
|
28
|
-
Requires-Dist: mikro-next (>=0.1.
|
|
27
|
+
Requires-Dist: lovekit (>=0.1.14) ; (python_version >= "3.10" and python_version < "4.0") and (extra == "all")
|
|
28
|
+
Requires-Dist: mikro-next (>=0.1.44) ; (python_version >= "3.10" and python_version < "4.0") and (extra == "all")
|
|
29
29
|
Requires-Dist: namegenerator (>=1.0.6) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "blok")
|
|
30
30
|
Requires-Dist: netifaces (>=0.11.0) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "blok")
|
|
31
|
-
Requires-Dist: reaktion-next (>=0.1.
|
|
32
|
-
Requires-Dist: rekuest-next (>=0.2.
|
|
31
|
+
Requires-Dist: reaktion-next (>=0.1.78) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "all")
|
|
32
|
+
Requires-Dist: rekuest-next (>=0.2.36) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "cli" or extra == "all")
|
|
33
33
|
Requires-Dist: rich-click (>=1.6.1) ; extra == "cli" or extra == "all"
|
|
34
34
|
Requires-Dist: semver (>=3.0.1) ; extra == "cli" or extra == "all"
|
|
35
35
|
Requires-Dist: turms (>=0.6.0) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "cli" or extra == "all")
|
|
36
|
-
Requires-Dist: unlok-next (>=0.1.
|
|
36
|
+
Requires-Dist: unlok-next (>=0.1.82) ; python_version >= "3.8" and python_version < "4.0"
|
|
37
37
|
Requires-Dist: watchfiles (>=0.18.1) ; extra == "cli" or extra == "all"
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
39
39
|
|
|
@@ -2,13 +2,13 @@ arkitekt_next/__blok__.py,sha256=gQqlPrUPSeB-b3XkvXRwDoRWMfG-vYN-3a2pWHNjz_E,156
|
|
|
2
2
|
arkitekt_next/__init__.py,sha256=ovVo9gHr15RHJW3NS82p8vs6NWJ4CGNTPCog16bhmU4,1694
|
|
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
|
-
arkitekt_next/apps/service/fakts_next.py,sha256=
|
|
6
|
-
arkitekt_next/apps/service/fakts_qt.py,sha256=
|
|
7
|
-
arkitekt_next/apps/service/grant_registry.py,sha256=
|
|
8
|
-
arkitekt_next/apps/service/herre.py,sha256=
|
|
9
|
-
arkitekt_next/apps/service/herre_qt.py,sha256=
|
|
10
|
-
arkitekt_next/apps/types.py,sha256=
|
|
11
|
-
arkitekt_next/base_models.py,sha256=
|
|
5
|
+
arkitekt_next/apps/service/fakts_next.py,sha256=FEmxRoc3z3gAO_bqwOlZgzc3rEAXZKv5hxXigXIqEXY,2924
|
|
6
|
+
arkitekt_next/apps/service/fakts_qt.py,sha256=6g6KNwhBHeM0jhDmb9djOjoEe8xUyyz-2e9QEfiptAI,1989
|
|
7
|
+
arkitekt_next/apps/service/grant_registry.py,sha256=h0jRKBd9EAXiVV6aHVtzNAlm1yiWPigg0qka68y6yKM,876
|
|
8
|
+
arkitekt_next/apps/service/herre.py,sha256=jtHugrkKr8Yo26GYVm9qNZkK2hAD3_v_rMimaV3GrC4,811
|
|
9
|
+
arkitekt_next/apps/service/herre_qt.py,sha256=42APOZl0SnX0FWl6K-TC9CcZUO-BSXMXyH6B31A0y3U,1679
|
|
10
|
+
arkitekt_next/apps/types.py,sha256=zr3x75txS3b8orpCYYnnYAaO2mFxGgS8EZfbwh_wDfg,1286
|
|
11
|
+
arkitekt_next/base_models.py,sha256=Kx8tOkdxrU2ojJw69EeCrrjk0dJUECopXB-4nM6SCRQ,4927
|
|
12
12
|
arkitekt_next/bloks/__init__.py,sha256=_4EeR63d6avQUWLG4mK2n_FvogTPQ_Jx6f2_RvNbWeA,29
|
|
13
13
|
arkitekt_next/bloks/admin.py,sha256=mRTfjIR1vsfY1ghgjWLjKYFAOh1pGCmQ_IEt2QOR3og,1353
|
|
14
14
|
arkitekt_next/bloks/arkitekt.py,sha256=ZyyHocaoPPCBZnbpBCkDzB2woXb1-ZbENr51UFERn2Q,1546
|
|
@@ -18,10 +18,10 @@ arkitekt_next/bloks/fluss.py,sha256=dwBantNQfS2zhcQ1_nJp6327_6JDW-0nJog0os1wGzk,
|
|
|
18
18
|
arkitekt_next/bloks/gateway.py,sha256=n3qhAcLj5LOxq6Tua2z0B7yvYh4hL9rG4sKNUD4F9iU,6757
|
|
19
19
|
arkitekt_next/bloks/internal_docker.py,sha256=MLPS6rvcOPjkHF447gFXQu1AJvanp-zfb2F6Ekhf4Hk,2960
|
|
20
20
|
arkitekt_next/bloks/kabinet.py,sha256=bPeVt-3grDm93pWU2bXoJN1SG1ULRtCNchuPjCYFwcs,1486
|
|
21
|
-
arkitekt_next/bloks/livekit.py,sha256=
|
|
22
|
-
arkitekt_next/bloks/lok.py,sha256=
|
|
21
|
+
arkitekt_next/bloks/livekit.py,sha256=S7Si7djl1s2hUckxxoawf6zUU93z_V3Mxl13PAy_4KI,2610
|
|
22
|
+
arkitekt_next/bloks/lok.py,sha256=GiRpFdgw6ucSdZL3tawrbFjKKtkQpy-JF0bPZ39WyEU,11520
|
|
23
23
|
arkitekt_next/bloks/mikro.py,sha256=lJZVg6LiH9bGbrnWWNZ3AWRm9OI0fo_XXztByGDzyMc,1283
|
|
24
|
-
arkitekt_next/bloks/minio.py,sha256=
|
|
24
|
+
arkitekt_next/bloks/minio.py,sha256=n7DP_O49fBsMw4IWmHIspyNmc52l52q8fujcbAOgN7Q,5593
|
|
25
25
|
arkitekt_next/bloks/mount.py,sha256=IEod6LDuV5NNKvvRJ3Xgo8l2caVZnNmJYDgGGBUB3Cg,1088
|
|
26
26
|
arkitekt_next/bloks/namegen.py,sha256=W9xco2d3eJLdL2NYpTFmqw2d4s3vCpBREIFNm38gMYY,1087
|
|
27
27
|
arkitekt_next/bloks/orkestrator.py,sha256=TJfMr6VCEU0EP_0TPpNdJsLVydGlmaDfYK1EQp2ArW8,2447
|
|
@@ -44,12 +44,12 @@ arkitekt_next/bloks/services/secret.py,sha256=cnZsH09gN9YRXBbmalZaFD2LcmWLlfm52m
|
|
|
44
44
|
arkitekt_next/bloks/services/socket.py,sha256=3MbENiJrwQbFKrpWxax56F24elnSD7S-olgycfuOX7s,423
|
|
45
45
|
arkitekt_next/bloks/socket.py,sha256=IW4954Hgms_oZsDIk9SgLoVGz07gW3sHi7-WuhN074Q,1067
|
|
46
46
|
arkitekt_next/bloks/tailscale.py,sha256=87cJv9m7N_I3y2ZRvv5WVepRhvIZk4ftUpwa0yUdwj4,2961
|
|
47
|
-
arkitekt_next/builders.py,sha256=
|
|
47
|
+
arkitekt_next/builders.py,sha256=6SEVMOUohV0elOXPfTeeusF2yZ64x0LYYr6AB2y1h8Y,7464
|
|
48
48
|
arkitekt_next/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
49
|
arkitekt_next/cli/commands/call/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
-
arkitekt_next/cli/commands/call/local.py,sha256=
|
|
50
|
+
arkitekt_next/cli/commands/call/local.py,sha256=OAeC2r9ujBFclaCfKEmUpt0Mt3NAKw3sVPTDvs2w_8E,2059
|
|
51
51
|
arkitekt_next/cli/commands/call/main.py,sha256=SdxlvSgA17-M_gwItiFU_srbh-CNdHpCTv_DkpOLojE,500
|
|
52
|
-
arkitekt_next/cli/commands/call/remote.py,sha256=
|
|
52
|
+
arkitekt_next/cli/commands/call/remote.py,sha256=Id6t1nUdXmERx9wbutEhvryUMAM80_G4HVHkhYZosTE,2097
|
|
53
53
|
arkitekt_next/cli/commands/gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
54
|
arkitekt_next/cli/commands/gen/compile.py,sha256=lygqut1fIiopa4MbBXkv1X-45g6UBxDxpGP7R6h-b7U,1445
|
|
55
55
|
arkitekt_next/cli/commands/gen/init.py,sha256=JV9x27Iy80QlmigXd7TSG2YIBHPGJBdEQ_HPenQaYZU,4092
|
|
@@ -67,7 +67,7 @@ arkitekt_next/cli/commands/kabinet/build.py,sha256=S6FF_tpS1Vu-1I2dvyMUa_pV1LWXn
|
|
|
67
67
|
arkitekt_next/cli/commands/kabinet/init.py,sha256=YcxXlMick7Xd2XUjmA9vyku0QDGACw1PEWpfJum42E8,3600
|
|
68
68
|
arkitekt_next/cli/commands/kabinet/main.py,sha256=U5EWekRTsMZZ34abWFfwilhzrd-zZtpZbl8RsLN_bC8,1008
|
|
69
69
|
arkitekt_next/cli/commands/kabinet/publish.py,sha256=pbQ3QNNwSnyq06EPWfcJc_LoP9VhKo2wGBuUtNPPlV0,3572
|
|
70
|
-
arkitekt_next/cli/commands/kabinet/stage.py,sha256=
|
|
70
|
+
arkitekt_next/cli/commands/kabinet/stage.py,sha256=waYUynP_WeD5j69BaComZIcwQn-AE_JN7jdpYBPlA98,2030
|
|
71
71
|
arkitekt_next/cli/commands/kabinet/utils.py,sha256=a1lGmGwhiVxsxFDt19GddNwXmAwUAfclgTMe3ErA43c,1666
|
|
72
72
|
arkitekt_next/cli/commands/kabinet/validate.py,sha256=MSSuwjdJKDtXB6rkjRmG-PPK6cVwTcOuCRpgPDQ0uVg,2490
|
|
73
73
|
arkitekt_next/cli/commands/kabinet/wizard.py,sha256=vbW-EAitypCl1HRjsgHRuwc18hQgOzAU8C__6SWuAzQ,9148
|
|
@@ -78,7 +78,7 @@ arkitekt_next/cli/commands/manifest/scopes.py,sha256=sw0HRy8GliEcmx3Sh6cPRpBkf1v
|
|
|
78
78
|
arkitekt_next/cli/commands/manifest/version.py,sha256=3JdcXqiFeCvIaEpsMfeSKWU_uQehDkEawEpdSxWaKSA,4822
|
|
79
79
|
arkitekt_next/cli/commands/manifest/wizard.py,sha256=a8rIHgtmKuw-L4E3eO3kXwXv0TM2pN4Lq75y2QKXmcA,2498
|
|
80
80
|
arkitekt_next/cli/commands/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
-
arkitekt_next/cli/commands/run/dev.py,sha256=
|
|
81
|
+
arkitekt_next/cli/commands/run/dev.py,sha256=_UY1VdYS7Kx2FifFHk4gqtz51vI8JWWpesmwUd1pMnY,10056
|
|
82
82
|
arkitekt_next/cli/commands/run/main.py,sha256=0bNO3DqwbZ4ddMsDWbCGmlPD6Cs3Jlg4yh2-zilsEbY,552
|
|
83
83
|
arkitekt_next/cli/commands/run/prod.py,sha256=EqDMa_eYNaffHZOBHGQEGNJVKdq8NHCgfoqK8yH63B4,1637
|
|
84
84
|
arkitekt_next/cli/commands/run/utils.py,sha256=zH-MNNEfKgyOYQvwP6Ph8KUHVqH48fw3ZI6tiQ9unwQ,325
|
|
@@ -89,7 +89,7 @@ arkitekt_next/cli/errors.py,sha256=zLTjaCbun6qM2nTldjyZd-DvykqKn5A3Gn80uYdx7Vc,9
|
|
|
89
89
|
arkitekt_next/cli/inspect.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
90
90
|
arkitekt_next/cli/io.py,sha256=QSnyIjPKZZ_pWp-b_hbM4XGwarCf4IYTgcXtNXBawH8,7143
|
|
91
91
|
arkitekt_next/cli/main.py,sha256=Ua7sq_OfC491F6r6zNs_oEiR4jVOsZwxLpX0ZXR0Jk0,2227
|
|
92
|
-
arkitekt_next/cli/options.py,sha256=
|
|
92
|
+
arkitekt_next/cli/options.py,sha256=ojOJ2oAUmPeSaITcwdtbBJcz8kGb1dp4vFw7KYQfZis,3821
|
|
93
93
|
arkitekt_next/cli/schemas/fluss.schema.graphql,sha256=MqrSpOxtWO9kWFCoUn9ySBPhIH3XozFiqrQl2zjEbiQ,35803
|
|
94
94
|
arkitekt_next/cli/schemas/gucker.schema.graphql,sha256=r_KL-MoFRCGUobbtcBLCnpmFcali2A12TguynqQgmN4,152947
|
|
95
95
|
arkitekt_next/cli/schemas/kabinet.schema.graphql,sha256=-N7igrfzFphjA2qV-abW59k8jtdJh1py4008W0MkqrM,9915
|
|
@@ -107,7 +107,7 @@ arkitekt_next/cli/schemas/unlok.schema.graphql,sha256=fXR846snIBIqkuQ-PlYnSkQjkF
|
|
|
107
107
|
arkitekt_next/cli/templates/filter.py,sha256=mD2jdNEXrZNagC_8WtuTisGJrGIbJDSylCvh19cF49I,650
|
|
108
108
|
arkitekt_next/cli/templates/simple.py,sha256=IbcThJ5LryXVFQUdzxfHQCtzSNxEQWTxbD__Ygxsp4M,1171
|
|
109
109
|
arkitekt_next/cli/texts.py,sha256=6qK9amHXXHRnXPOgto9QVyl3lwwmWOebL673xFfrUUk,680
|
|
110
|
-
arkitekt_next/cli/types.py,sha256=
|
|
110
|
+
arkitekt_next/cli/types.py,sha256=93TQxj7S25pV5nmxD_OI64qG9qccETJcLRWj_Cxo0I0,5164
|
|
111
111
|
arkitekt_next/cli/ui.py,sha256=BR_AOsBIIHwojI5otBzT_560-ep5Dw1xAHKsO2zOOJQ,3493
|
|
112
112
|
arkitekt_next/cli/utils.py,sha256=rl1hfQIVzepLHPN_ZWuvfVH-IIVqcSfiFGyfNtL1XCo,445
|
|
113
113
|
arkitekt_next/cli/validators.py,sha256=XkLrOrDzBJwcG1keTawa_NJPt3QIBhb5KjepeH4N1KA,719
|
|
@@ -125,15 +125,15 @@ arkitekt_next/qt/assets/light/green pulse.gif,sha256=cUd2F3Qlvjb7SnsU-LjGgeLTa8K
|
|
|
125
125
|
arkitekt_next/qt/assets/light/orange pulse.gif,sha256=0gDvrRed0mzZZPHB4tP6vptx7myUCAa_hEVGdjRhNy8,94769
|
|
126
126
|
arkitekt_next/qt/assets/light/pink pulse.gif,sha256=rxd6ZTHSIG9JZuuHhi3jiSB_JYFBZpy7OWUeZETlhQ4,107513
|
|
127
127
|
arkitekt_next/qt/assets/light/red pulse.gif,sha256=U7WLbZvSl5e-Ob5RmawtlC0Rh9VVHxkjDbGjj7NYVUo,108749
|
|
128
|
-
arkitekt_next/qt/builders.py,sha256=
|
|
129
|
-
arkitekt_next/qt/magic_bar.py,sha256=
|
|
130
|
-
arkitekt_next/qt/types.py,sha256=
|
|
128
|
+
arkitekt_next/qt/builders.py,sha256=zQLn-mJJnfLHSDjfAJ7gfzv66cnQz_yNX9yKTEdapi4,9129
|
|
129
|
+
arkitekt_next/qt/magic_bar.py,sha256=_H74_s5Nqj20FpvzLSCxRwZMuZxqobkmn_sdwhpqzCg,17632
|
|
130
|
+
arkitekt_next/qt/types.py,sha256=RzliCycvB_i7SZcXgahfXCJ9ft8QNsJKkrzpNbXF9qQ,4042
|
|
131
131
|
arkitekt_next/qt/utils.py,sha256=MgBPtPmCSBkIuATov3UgREESwxAHh77lWNNxyE7Qs48,773
|
|
132
|
-
arkitekt_next/service_registry.py,sha256=
|
|
132
|
+
arkitekt_next/service_registry.py,sha256=cxQ1J4zLIW06pHFMn7s2s2NGyptayHyXS9zKPohzgCE,3598
|
|
133
133
|
arkitekt_next/tqdm.py,sha256=lQcJI5Q6Py7Gy88hOCiJujjPEEGd8G2k1mOVJJ6oYe8,1531
|
|
134
134
|
arkitekt_next/utils.py,sha256=QETdzn_GIMSw6LdaXL89bqvqp9MGwEBK8Lj54MpnMwc,2396
|
|
135
|
-
arkitekt_next-0.8.
|
|
136
|
-
arkitekt_next-0.8.
|
|
137
|
-
arkitekt_next-0.8.
|
|
138
|
-
arkitekt_next-0.8.
|
|
139
|
-
arkitekt_next-0.8.
|
|
135
|
+
arkitekt_next-0.8.20.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
|
|
136
|
+
arkitekt_next-0.8.20.dist-info/METADATA,sha256=SR9FgRvDUMkVMnt3nvowX2lQ9kjFp8ALrpOEy0RK7PE,6072
|
|
137
|
+
arkitekt_next-0.8.20.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
138
|
+
arkitekt_next-0.8.20.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
|
|
139
|
+
arkitekt_next-0.8.20.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|