arkitekt-next 0.8.3__py3-none-any.whl → 0.8.4__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/builders.py +2 -2
- arkitekt_next/cli/commands/kabinet/publish.py +0 -1
- arkitekt_next/service_registry.py +69 -0
- {arkitekt_next-0.8.3.dist-info → arkitekt_next-0.8.4.dist-info}/METADATA +1 -1
- {arkitekt_next-0.8.3.dist-info → arkitekt_next-0.8.4.dist-info}/RECORD +8 -12
- arkitekt_next/apps/easy.py +0 -107
- arkitekt_next/apps/next.py +0 -39
- arkitekt_next/apps/qt.py +0 -103
- arkitekt_next/apps/service/fakts.py +0 -89
- {arkitekt_next-0.8.3.dist-info → arkitekt_next-0.8.4.dist-info}/LICENSE +0 -0
- {arkitekt_next-0.8.3.dist-info → arkitekt_next-0.8.4.dist-info}/WHEEL +0 -0
- {arkitekt_next-0.8.3.dist-info → arkitekt_next-0.8.4.dist-info}/entry_points.txt +0 -0
arkitekt_next/builders.py
CHANGED
|
@@ -11,7 +11,7 @@ from arkitekt_next.apps.service.herre import build_arkitekt_next_herre
|
|
|
11
11
|
from .utils import create_arkitekt_next_folder
|
|
12
12
|
from .model import Manifest
|
|
13
13
|
from .apps.types import App
|
|
14
|
-
from .service_registry import ServiceBuilderRegistry, check_and_import_services
|
|
14
|
+
from .service_registry import ServiceBuilderRegistry, check_and_import_services, check_and_return_already_imported_services
|
|
15
15
|
from arkitekt_next.constants import DEFAULT_ARKITEKT_URL
|
|
16
16
|
|
|
17
17
|
|
|
@@ -96,7 +96,7 @@ def easy(
|
|
|
96
96
|
NextApp
|
|
97
97
|
A built app, that can be used to interact with the ArkitektNext server
|
|
98
98
|
"""
|
|
99
|
-
registry = registry or
|
|
99
|
+
registry = registry or check_and_return_already_imported_services()
|
|
100
100
|
|
|
101
101
|
url = os.getenv("FAKTS_URL", url)
|
|
102
102
|
token = os.getenv("FAKTS_TOKEN", token)
|
|
@@ -109,3 +109,72 @@ def check_and_import_services() -> ServiceBuilderRegistry:
|
|
|
109
109
|
traceback.print_exc()
|
|
110
110
|
|
|
111
111
|
return service_builder_registry
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def check_and_return_already_imported_services() -> ServiceBuilderRegistry:
|
|
115
|
+
service_builder_registry = ServiceBuilderRegistry()
|
|
116
|
+
|
|
117
|
+
# Function to load and call init_services from __arkitekt__.py
|
|
118
|
+
def load_and_call_init_services(module_name, arkitekt_path):
|
|
119
|
+
try:
|
|
120
|
+
# Compute the full module name of the __arkitekt__ module
|
|
121
|
+
arkitekt_module_name = f"{module_name}.__arkitekt__"
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
# Create a module spec
|
|
125
|
+
spec = importlib.util.spec_from_file_location(
|
|
126
|
+
arkitekt_module_name, arkitekt_path
|
|
127
|
+
)
|
|
128
|
+
arkitekt_module = importlib.util.module_from_spec(spec)
|
|
129
|
+
|
|
130
|
+
# Execute the module
|
|
131
|
+
spec.loader.exec_module(arkitekt_module)
|
|
132
|
+
|
|
133
|
+
# Now call init_services
|
|
134
|
+
if hasattr(arkitekt_module, "init_services"):
|
|
135
|
+
arkitekt_module.init_services(service_builder_registry)
|
|
136
|
+
logging.info(f"Called init_services function from {arkitekt_module_name}")
|
|
137
|
+
else:
|
|
138
|
+
logging.debug(f"No init_services function in {arkitekt_module_name}. Skipping.")
|
|
139
|
+
except Exception as e:
|
|
140
|
+
logging.critical(f"Failed to call init_services for {module_name}: {e}")
|
|
141
|
+
traceback.print_exc()
|
|
142
|
+
|
|
143
|
+
# Create a static list of sys.modules items to avoid RuntimeError
|
|
144
|
+
imported_modules = list(sys.modules.items())
|
|
145
|
+
|
|
146
|
+
# Keep track of processed top-level modules to avoid duplicates
|
|
147
|
+
processed_modules = set()
|
|
148
|
+
|
|
149
|
+
# Iterate over currently imported modules
|
|
150
|
+
for module_name, module in imported_modules:
|
|
151
|
+
if module is None:
|
|
152
|
+
continue
|
|
153
|
+
|
|
154
|
+
# Get the top-level parent module name
|
|
155
|
+
top_level_module_name = module_name.split('.')[0]
|
|
156
|
+
|
|
157
|
+
# Avoid processing the same top-level module multiple times
|
|
158
|
+
if top_level_module_name in processed_modules:
|
|
159
|
+
continue # Already processed
|
|
160
|
+
|
|
161
|
+
# Get the module from sys.modules
|
|
162
|
+
top_level_module = sys.modules.get(top_level_module_name)
|
|
163
|
+
if top_level_module is None:
|
|
164
|
+
continue
|
|
165
|
+
|
|
166
|
+
# Get the module's file location
|
|
167
|
+
module_file = getattr(top_level_module, '__file__', None)
|
|
168
|
+
if not module_file:
|
|
169
|
+
continue # Skip modules without a file attribute
|
|
170
|
+
|
|
171
|
+
# Get the module's directory
|
|
172
|
+
module_dir = os.path.dirname(module_file)
|
|
173
|
+
arkitekt_path = os.path.join(module_dir, '__arkitekt__.py')
|
|
174
|
+
|
|
175
|
+
# Check if __arkitekt__.py exists in the top-level module directory
|
|
176
|
+
if os.path.isfile(arkitekt_path):
|
|
177
|
+
load_and_call_init_services(top_level_module_name, arkitekt_path)
|
|
178
|
+
processed_modules.add(top_level_module_name)
|
|
179
|
+
|
|
180
|
+
return service_builder_registry
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
arkitekt_next/__blok__.py,sha256=gQqlPrUPSeB-b3XkvXRwDoRWMfG-vYN-3a2pWHNjz_E,1563
|
|
2
2
|
arkitekt_next/__init__.py,sha256=JOSPhxNLlQeHbwDI6HWYvuFqPJoh9Iz8okvbVl8jmU8,1545
|
|
3
3
|
arkitekt_next/apps/__init__.py,sha256=cx_5Y-RkJFkSQJH-hUEC_L3eW1jU2E426c4e6_csIyM,42
|
|
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
4
|
arkitekt_next/apps/service/__init__.py,sha256=p4iRwiFBKRq2lfbjDBzUR_GMhPWjkjWTa01ohuKz_L4,157
|
|
8
|
-
arkitekt_next/apps/service/fakts.py,sha256=72EYMeO-M1O9auZ509FA7m08pSIZ-Df_6JyNHL1iMt0,2633
|
|
9
5
|
arkitekt_next/apps/service/fakts_next.py,sha256=3Mh8CLt91Zf5Kt04mPr74ROj15jS2j3PoaUcT6kwJPY,2791
|
|
10
6
|
arkitekt_next/apps/service/fakts_qt.py,sha256=ba7Er9EZeeR9loScbzLn_Fe7AqL3ksJBcAGd9QzjHcs,3053
|
|
11
7
|
arkitekt_next/apps/service/grant_registry.py,sha256=3om8YoVf_HFWEJbpjQCin1Zvm8Sz3yw-mGvLKDDgbrc,851
|
|
@@ -47,7 +43,7 @@ arkitekt_next/bloks/services/secret.py,sha256=cnZsH09gN9YRXBbmalZaFD2LcmWLlfm52m
|
|
|
47
43
|
arkitekt_next/bloks/services/socket.py,sha256=3MbENiJrwQbFKrpWxax56F24elnSD7S-olgycfuOX7s,423
|
|
48
44
|
arkitekt_next/bloks/socket.py,sha256=IW4954Hgms_oZsDIk9SgLoVGz07gW3sHi7-WuhN074Q,1067
|
|
49
45
|
arkitekt_next/bloks/tailscale.py,sha256=87cJv9m7N_I3y2ZRvv5WVepRhvIZk4ftUpwa0yUdwj4,2961
|
|
50
|
-
arkitekt_next/builders.py,sha256=
|
|
46
|
+
arkitekt_next/builders.py,sha256=QtDYYcv6_73iCrZIctyyrvhnAD9_SnUa3w7eU_0e2s0,7334
|
|
51
47
|
arkitekt_next/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
48
|
arkitekt_next/cli/commands/call/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
49
|
arkitekt_next/cli/commands/call/local.py,sha256=XkNa2WGLf7YczRobjnQSWhRCtt6fs--2qeIa6tTMUvY,2114
|
|
@@ -69,7 +65,7 @@ arkitekt_next/cli/commands/kabinet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
|
69
65
|
arkitekt_next/cli/commands/kabinet/build.py,sha256=JyMgvp5X0j2DE4w3aLPyM6ffSulfFZ1mNkS4--3wlZM,8671
|
|
70
66
|
arkitekt_next/cli/commands/kabinet/init.py,sha256=T6D7Vz05PUyyJ6noNqrMhVjz8hyZUfKv4Vgi1JVxz_k,3599
|
|
71
67
|
arkitekt_next/cli/commands/kabinet/main.py,sha256=U5EWekRTsMZZ34abWFfwilhzrd-zZtpZbl8RsLN_bC8,1008
|
|
72
|
-
arkitekt_next/cli/commands/kabinet/publish.py,sha256=
|
|
68
|
+
arkitekt_next/cli/commands/kabinet/publish.py,sha256=uPgDAlo-NBTL6wLyNWX55JJ7T5ZcRNKMLd9RRbhOod4,3568
|
|
73
69
|
arkitekt_next/cli/commands/kabinet/stage.py,sha256=bXpC8fDmG6qFQVuLhqTCieOJnvFafj3Flg1BdIeciEw,2025
|
|
74
70
|
arkitekt_next/cli/commands/kabinet/utils.py,sha256=a1lGmGwhiVxsxFDt19GddNwXmAwUAfclgTMe3ErA43c,1666
|
|
75
71
|
arkitekt_next/cli/commands/kabinet/validate.py,sha256=MSSuwjdJKDtXB6rkjRmG-PPK6cVwTcOuCRpgPDQ0uVg,2490
|
|
@@ -133,11 +129,11 @@ arkitekt_next/qt/builders.py,sha256=S5XzxzH-Tq-OAvrbP9V8BtY34Et4Zgj_7RFmnWjRN_8,
|
|
|
133
129
|
arkitekt_next/qt/magic_bar.py,sha256=o3Z9F2QutVd6JLEY4tEQ5-vfjIBXpgfYz8HXcWgaqfc,18308
|
|
134
130
|
arkitekt_next/qt/types.py,sha256=jI9UHt1Rn-fxGZfeImTO9-yHh0zJPzk7CwvpnUXdirg,1085
|
|
135
131
|
arkitekt_next/qt/utils.py,sha256=MgBPtPmCSBkIuATov3UgREESwxAHh77lWNNxyE7Qs48,773
|
|
136
|
-
arkitekt_next/service_registry.py,sha256=
|
|
132
|
+
arkitekt_next/service_registry.py,sha256=YH59EuGy_gKziWHjnU7tQrjKNchhNTurHbYzlGNCiCc,6314
|
|
137
133
|
arkitekt_next/tqdm.py,sha256=lQcJI5Q6Py7Gy88hOCiJujjPEEGd8G2k1mOVJJ6oYe8,1531
|
|
138
134
|
arkitekt_next/utils.py,sha256=csBRBnxnErMRTilNBYAtIe0lPBb6E3uplqwsVGs5Wkk,2390
|
|
139
|
-
arkitekt_next-0.8.
|
|
140
|
-
arkitekt_next-0.8.
|
|
141
|
-
arkitekt_next-0.8.
|
|
142
|
-
arkitekt_next-0.8.
|
|
143
|
-
arkitekt_next-0.8.
|
|
135
|
+
arkitekt_next-0.8.4.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
|
|
136
|
+
arkitekt_next-0.8.4.dist-info/METADATA,sha256=aoeCJIWABr4uAuurpz5II9VnHRHhIr3LQmKS029Q9-Q,6084
|
|
137
|
+
arkitekt_next-0.8.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
138
|
+
arkitekt_next-0.8.4.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
|
|
139
|
+
arkitekt_next-0.8.4.dist-info/RECORD,,
|
arkitekt_next/apps/easy.py
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
from .types import EasyApp
|
|
2
|
-
from typing import Optional, List
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
def build_arkitekt_app(
|
|
6
|
-
manifest: Manifest,
|
|
7
|
-
url=None,
|
|
8
|
-
no_cache=False,
|
|
9
|
-
headless=False,
|
|
10
|
-
instance_id=None,
|
|
11
|
-
token=None,
|
|
12
|
-
app_kind="development",
|
|
13
|
-
redeem_token=None,
|
|
14
|
-
):
|
|
15
|
-
if redeem_token:
|
|
16
|
-
fakts = build_arkitekt_next_redeem_fakts_next(
|
|
17
|
-
manifest=manifest,
|
|
18
|
-
redeem_token=redeem_token,
|
|
19
|
-
url=url,
|
|
20
|
-
no_cache=no_cache,
|
|
21
|
-
headless=headless,
|
|
22
|
-
)
|
|
23
|
-
else:
|
|
24
|
-
fakts = build_arkitekt_next_fakts_next(
|
|
25
|
-
manifest=manifest,
|
|
26
|
-
url=url,
|
|
27
|
-
no_cache=no_cache,
|
|
28
|
-
headless=headless,
|
|
29
|
-
client_kind=app_kind,
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
herre = build_arkitekt_next_herre(fakts=fakts)
|
|
33
|
-
|
|
34
|
-
try:
|
|
35
|
-
from arkitekt_next_next.apps.service.rekuest_next import (
|
|
36
|
-
build_arkitekt_next_rekuest_next,
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
rekuest = build_arkitekt_next_rekuest_next(
|
|
40
|
-
fakts=fakts, herre=herre, instance_id=instance_id
|
|
41
|
-
)
|
|
42
|
-
except ImportError as e:
|
|
43
|
-
rekuest = ImportException(import_exception=e, install_library="rekuest_next")
|
|
44
|
-
|
|
45
|
-
try:
|
|
46
|
-
from arkitekt_next_next.apps.service.mikro_next import (
|
|
47
|
-
build_arkitekt_next_mikro_next,
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
mikro = build_arkitekt_next_mikro_next(fakts=fakts, herre=herre)
|
|
51
|
-
except ImportError as e:
|
|
52
|
-
raise e
|
|
53
|
-
mikro = ImportException(import_exception=e, install_library="mikro_next")
|
|
54
|
-
|
|
55
|
-
try:
|
|
56
|
-
from arkitekt_next_next.apps.service.fluss_next import build_arkitekt_next_fluss
|
|
57
|
-
|
|
58
|
-
fluss = build_arkitekt_next_fluss(herre=herre, fakts=fakts)
|
|
59
|
-
except ImportError as e:
|
|
60
|
-
raise e
|
|
61
|
-
fluss = ImportException(import_exception=e, install_library="fluss_next")
|
|
62
|
-
|
|
63
|
-
try:
|
|
64
|
-
from arkitekt_next_next.apps.service.unlok_next import (
|
|
65
|
-
build_arkitekt_next_unlok_next,
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
unlok = build_arkitekt_next_unlok_next(herre=herre, fakts=fakts)
|
|
69
|
-
except ImportError as e:
|
|
70
|
-
raise e
|
|
71
|
-
fluss = ImportException(import_exception=e, install_library="fluss_next")
|
|
72
|
-
|
|
73
|
-
try:
|
|
74
|
-
from arkitekt_next_next.apps.service.omero_ark import (
|
|
75
|
-
build_arkitekt_next_omero_ark,
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
omero_ark = build_arkitekt_next_omero_ark(herre=herre, fakts=fakts)
|
|
79
|
-
except ImportError as e:
|
|
80
|
-
omero_ark = ImportException(import_exception=e, install_library="omero_ark")
|
|
81
|
-
|
|
82
|
-
try:
|
|
83
|
-
from arkitekt_next_next.apps.service.kluster import build_arkitekt_next_kluster
|
|
84
|
-
|
|
85
|
-
kluster = build_arkitekt_next_kluster(herre=herre, fakts=fakts)
|
|
86
|
-
except ImportError as e:
|
|
87
|
-
kluster = ImportException(import_exception=e, install_library="kluster")
|
|
88
|
-
|
|
89
|
-
try:
|
|
90
|
-
from arkitekt_next_next.apps.service.kabinet import build_arkitekt_next_kabinet
|
|
91
|
-
|
|
92
|
-
kabinet = build_arkitekt_next_kabinet(herre=herre, fakts=fakts)
|
|
93
|
-
except ImportError as e:
|
|
94
|
-
kabinet = ImportException(import_exception=e, install_library="kluster")
|
|
95
|
-
|
|
96
|
-
return NextApp(
|
|
97
|
-
manifest=manifest,
|
|
98
|
-
fakts=fakts,
|
|
99
|
-
herre=herre,
|
|
100
|
-
rekuest=rekuest,
|
|
101
|
-
mikro=mikro,
|
|
102
|
-
kabinet=kabinet,
|
|
103
|
-
unlok=unlok,
|
|
104
|
-
fluss=fluss,
|
|
105
|
-
kluster=kluster,
|
|
106
|
-
omero_ark=omero_ark,
|
|
107
|
-
)
|
arkitekt_next/apps/next.py
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
from arkitekt_next_next.apps.fallbacks import ImportException
|
|
2
|
-
from arkitekt_next_next.apps.service.fakts_next import (
|
|
3
|
-
build_arkitekt_next_fakts_next,
|
|
4
|
-
build_arkitekt_next_redeem_fakts_next,
|
|
5
|
-
)
|
|
6
|
-
from arkitekt_next_next.apps.service.herre import build_arkitekt_next_herre
|
|
7
|
-
from arkitekt_next_next.model import Manifest
|
|
8
|
-
|
|
9
|
-
from .types import NextApp
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def build_next_app(
|
|
13
|
-
manifest: Manifest,
|
|
14
|
-
url=None,
|
|
15
|
-
no_cache=False,
|
|
16
|
-
headless=False,
|
|
17
|
-
instance_id=None,
|
|
18
|
-
token=None,
|
|
19
|
-
app_kind="development",
|
|
20
|
-
redeem_token=None,
|
|
21
|
-
):
|
|
22
|
-
if redeem_token:
|
|
23
|
-
fakts = build_arkitekt_next_redeem_fakts_next(
|
|
24
|
-
manifest=manifest,
|
|
25
|
-
redeem_token=redeem_token,
|
|
26
|
-
url=url,
|
|
27
|
-
no_cache=no_cache,
|
|
28
|
-
headless=headless,
|
|
29
|
-
)
|
|
30
|
-
else:
|
|
31
|
-
fakts = build_arkitekt_next_fakts_next(
|
|
32
|
-
manifest=manifest,
|
|
33
|
-
url=url,
|
|
34
|
-
no_cache=no_cache,
|
|
35
|
-
headless=headless,
|
|
36
|
-
client_kind=app_kind,
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
herre = build_arkitekt_next_herre(fakts=fakts)
|
arkitekt_next/apps/qt.py
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
from arkitekt_next_next.model import Manifest
|
|
2
|
-
from arkitekt_next_next.apps.types import QtApp
|
|
3
|
-
from arkitekt_next_next.apps.fallbacks import ImportException, InstallModuleException
|
|
4
|
-
from typing import Any, Optional
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def build_arkitekt_next_qt_app(
|
|
8
|
-
manifest: Manifest,
|
|
9
|
-
no_cache: bool = False,
|
|
10
|
-
instance_id: Optional[str] = None,
|
|
11
|
-
beacon_widget: Any = None,
|
|
12
|
-
login_widget: Any = None,
|
|
13
|
-
parent: Any = None,
|
|
14
|
-
settings: Any = None,
|
|
15
|
-
):
|
|
16
|
-
try:
|
|
17
|
-
from koil.composition.qt import QtPedanticKoil
|
|
18
|
-
from qtpy import QtCore
|
|
19
|
-
|
|
20
|
-
settings = settings or QtCore.QSettings()
|
|
21
|
-
except ImportError as e:
|
|
22
|
-
raise InstallModuleException(
|
|
23
|
-
"Please install qtpy to use arkitekt_next_qt"
|
|
24
|
-
) from e
|
|
25
|
-
|
|
26
|
-
try:
|
|
27
|
-
from arkitekt_next_next.apps.service.fakts_qt import (
|
|
28
|
-
build_arkitekt_next_qt_fakts,
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
fakts = build_arkitekt_next_qt_fakts(
|
|
32
|
-
manifest=manifest,
|
|
33
|
-
no_cache=no_cache,
|
|
34
|
-
beacon_widget=beacon_widget,
|
|
35
|
-
parent=parent,
|
|
36
|
-
settings=settings,
|
|
37
|
-
)
|
|
38
|
-
except ImportError as e:
|
|
39
|
-
fakts = ImportException(import_exception=e, install_library="qtpy")
|
|
40
|
-
|
|
41
|
-
try:
|
|
42
|
-
from arkitekt_next_next.apps.service.herre_qt import (
|
|
43
|
-
build_arkitekt_next_qt_herre,
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
herre = build_arkitekt_next_qt_herre(
|
|
47
|
-
manifest=manifest,
|
|
48
|
-
fakts=fakts,
|
|
49
|
-
login_widget=login_widget,
|
|
50
|
-
parent=parent,
|
|
51
|
-
settings=settings,
|
|
52
|
-
)
|
|
53
|
-
except ImportError as e:
|
|
54
|
-
herre = ImportException(import_exception=e, install_library="qtpy")
|
|
55
|
-
|
|
56
|
-
try:
|
|
57
|
-
from arkitekt_next_next.apps.service.rekuest import build_arkitekt_next_rekuest
|
|
58
|
-
|
|
59
|
-
rekuest = build_arkitekt_next_rekuest(
|
|
60
|
-
fakts=fakts, herre=herre, instance_id=instance_id or "main"
|
|
61
|
-
)
|
|
62
|
-
except ImportError as e:
|
|
63
|
-
rekuest = ImportException(import_exception=e, install_library="rekuest")
|
|
64
|
-
|
|
65
|
-
try:
|
|
66
|
-
from arkitekt_next_next.apps.service.mikro import build_arkitekt_next_mikro
|
|
67
|
-
|
|
68
|
-
mikro = build_arkitekt_next_mikro(fakts=fakts, herre=herre)
|
|
69
|
-
except ImportError as e:
|
|
70
|
-
mikro = ImportException(import_exception=e, install_library="mikro")
|
|
71
|
-
|
|
72
|
-
try:
|
|
73
|
-
from arkitekt_next_next.apps.service.unlok import build_arkitekt_next_unlok
|
|
74
|
-
|
|
75
|
-
unlok = build_arkitekt_next_unlok(herre=herre, fakts=fakts)
|
|
76
|
-
except ImportError as e:
|
|
77
|
-
unlok = ImportException(import_exception=e, install_library="unlok")
|
|
78
|
-
|
|
79
|
-
try:
|
|
80
|
-
from arkitekt_next_next.apps.service.fluss import build_arkitekt_next_fluss
|
|
81
|
-
|
|
82
|
-
fluss = build_arkitekt_next_fluss(herre=herre, fakts=fakts)
|
|
83
|
-
except ImportError as e:
|
|
84
|
-
fluss = ImportException(import_exception=e, install_library="fluss")
|
|
85
|
-
|
|
86
|
-
try:
|
|
87
|
-
from arkitekt_next_next.apps.service.kluster import build_arkitekt_next_kluster
|
|
88
|
-
|
|
89
|
-
kluster = build_arkitekt_next_kluster(herre=herre, fakts=fakts)
|
|
90
|
-
except ImportError as e:
|
|
91
|
-
kluster = ImportException(import_exception=e, install_library="kluster")
|
|
92
|
-
|
|
93
|
-
return QtApp(
|
|
94
|
-
koil=QtPedanticKoil(parent=parent),
|
|
95
|
-
manifest=manifest,
|
|
96
|
-
fakts=fakts,
|
|
97
|
-
herre=herre,
|
|
98
|
-
rekuest=rekuest,
|
|
99
|
-
mikro=mikro,
|
|
100
|
-
unlok=unlok,
|
|
101
|
-
fluss=fluss,
|
|
102
|
-
kluster=kluster,
|
|
103
|
-
)
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
from fakts.fakts import Fakts
|
|
2
|
-
from fakts.fakts import Fakts
|
|
3
|
-
from typing import Optional
|
|
4
|
-
from fakts.grants.remote.discovery.well_known import WellKnownDiscovery
|
|
5
|
-
from fakts.grants.remote import RemoteGrant
|
|
6
|
-
from fakts.grants.remote.demanders.auto_save import AutoSaveDemander
|
|
7
|
-
from fakts.grants.remote.demanders.cache import CacheTokenStore
|
|
8
|
-
from fakts.grants.remote.demanders.static import StaticDemander
|
|
9
|
-
from fakts.grants.remote.demanders.device_code import DeviceCodeDemander
|
|
10
|
-
from fakts.grants.remote.claimers.post import ClaimEndpointClaimer
|
|
11
|
-
from fakts.grants.remote.demanders.redeem import RedeemDemander
|
|
12
|
-
from arkitekt_next_next.model import Manifest
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class ArkitektNextFaktsQt(Fakts):
|
|
16
|
-
grant: RemoteGrant
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class ArkitektNextFakts(Fakts):
|
|
20
|
-
pass
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def build_arkitekt_next_fakts(
|
|
24
|
-
manifest: Manifest,
|
|
25
|
-
url: Optional[str] = None,
|
|
26
|
-
no_cache: bool = False,
|
|
27
|
-
headless: bool = False,
|
|
28
|
-
) -> ArkitektNextFakts:
|
|
29
|
-
identifier = manifest.identifier
|
|
30
|
-
version = manifest.version
|
|
31
|
-
|
|
32
|
-
if no_cache:
|
|
33
|
-
demander = DeviceCodeDemander(
|
|
34
|
-
manifest=manifest,
|
|
35
|
-
redirect_uri="http://127.0.0.1:6767",
|
|
36
|
-
open_browser=not headless,
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
else:
|
|
40
|
-
demander = AutoSaveDemander(
|
|
41
|
-
demander=DeviceCodeDemander(
|
|
42
|
-
manifest=manifest,
|
|
43
|
-
redirect_uri="http://127.0.0.1:6767",
|
|
44
|
-
open_browser=not headless,
|
|
45
|
-
),
|
|
46
|
-
store=CacheTokenStore(
|
|
47
|
-
cache_file=f".arkitekt_next/cache/{identifier}-{version}_fakts_cache.json"
|
|
48
|
-
),
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
return ArkitektNextFakts(
|
|
52
|
-
grant=RemoteGrant(
|
|
53
|
-
demander=demander,
|
|
54
|
-
discovery=WellKnownDiscovery(url=url, auto_protocols=["https", "http"]),
|
|
55
|
-
claimer=ClaimEndpointClaimer(),
|
|
56
|
-
)
|
|
57
|
-
)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
def build_arkitekt_next_token_fakts(
|
|
61
|
-
manifest: Manifest,
|
|
62
|
-
token: str,
|
|
63
|
-
url,
|
|
64
|
-
no_cache: Optional[bool] = False,
|
|
65
|
-
headless=False,
|
|
66
|
-
):
|
|
67
|
-
return ArkitektNextFakts(
|
|
68
|
-
grant=RemoteGrant(
|
|
69
|
-
demander=StaticDemander(token=token),
|
|
70
|
-
discovery=WellKnownDiscovery(url=url, auto_protocols=["https", "http"]),
|
|
71
|
-
claimer=ClaimEndpointClaimer(),
|
|
72
|
-
)
|
|
73
|
-
)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def build_arkitekt_next_redeem_fakts(
|
|
77
|
-
manifest: Manifest,
|
|
78
|
-
redeem_token: str,
|
|
79
|
-
url,
|
|
80
|
-
no_cache: Optional[bool] = False,
|
|
81
|
-
headless=False,
|
|
82
|
-
):
|
|
83
|
-
return ArkitektNextFakts(
|
|
84
|
-
grant=RemoteGrant(
|
|
85
|
-
demander=RedeemDemander(token=redeem_token, manifest=manifest),
|
|
86
|
-
discovery=WellKnownDiscovery(url=url, auto_protocols=["https", "http"]),
|
|
87
|
-
claimer=ClaimEndpointClaimer(),
|
|
88
|
-
)
|
|
89
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|