arkitekt-next 0.7.51__tar.gz → 0.7.53__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of arkitekt-next might be problematic. Click here for more details.

Files changed (143) hide show
  1. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/PKG-INFO +1 -1
  2. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/easy.py +12 -4
  3. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/next.py +0 -1
  4. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/qt.py +9 -3
  5. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/service/fakts.py +1 -0
  6. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/service/fakts_qt.py +1 -1
  7. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/types.py +0 -4
  8. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/__init__.py +0 -1
  9. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/config.py +1 -0
  10. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/mount.py +1 -1
  11. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/orkestrator.py +6 -1
  12. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/postgres.py +0 -2
  13. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/redis.py +1 -2
  14. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/secret.py +1 -2
  15. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/config.py +1 -6
  16. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/livekit.py +3 -5
  17. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/mount.py +1 -7
  18. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/name.py +1 -2
  19. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/secret.py +2 -1
  20. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/builders.py +45 -6
  21. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/inspect/requirements.py +1 -2
  22. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/build.py +12 -3
  23. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/init.py +6 -3
  24. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/stage.py +12 -4
  25. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/constants.py +0 -1
  26. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/texts.py +1 -3
  27. arkitekt_next-0.7.53/arkitekt_next/constants.py +4 -0
  28. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/__init__.py +2 -1
  29. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/builders.py +14 -6
  30. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/types.py +2 -6
  31. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/service_registry.py +33 -21
  32. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/tqdm.py +3 -1
  33. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/utils.py +11 -12
  34. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/pyproject.toml +1 -1
  35. arkitekt_next-0.7.51/arkitekt_next/constants.py +0 -6
  36. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/LICENSE +0 -0
  37. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/README.md +0 -0
  38. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/__blok__.py +0 -0
  39. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/__init__.py +0 -0
  40. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/__init__.py +0 -0
  41. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/service/__init__.py +0 -0
  42. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/service/fakts_next.py +0 -0
  43. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/service/grant_registry.py +0 -0
  44. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/service/herre.py +0 -0
  45. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/apps/service/herre_qt.py +0 -0
  46. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/admin.py +0 -0
  47. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/arkitekt.py +0 -0
  48. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/base.py +0 -0
  49. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/fluss.py +0 -0
  50. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/gateway.py +0 -0
  51. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/internal_docker.py +0 -0
  52. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/kabinet.py +0 -0
  53. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/livekit.py +0 -0
  54. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/lok.py +0 -0
  55. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/mikro.py +0 -0
  56. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/minio.py +0 -0
  57. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/namegen.py +1 -1
  58. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/rekuest.py +0 -0
  59. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/__init__.py +0 -0
  60. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/admin.py +1 -1
  61. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/db.py +0 -0
  62. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/gateway.py +0 -0
  63. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/lok.py +0 -0
  64. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/redis.py +0 -0
  65. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/s3.py +0 -0
  66. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/services/socket.py +0 -0
  67. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/socket.py +0 -0
  68. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/bloks/tailscale.py +0 -0
  69. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/__init__.py +0 -0
  70. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/call/__init__.py +0 -0
  71. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/call/local.py +0 -0
  72. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/call/main.py +0 -0
  73. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/call/remote.py +0 -0
  74. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/gen/__init__.py +0 -0
  75. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/gen/compile.py +0 -0
  76. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/gen/init.py +0 -0
  77. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/gen/main.py +0 -0
  78. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/gen/watch.py +0 -0
  79. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/init/__init__.py +0 -0
  80. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/init/main.py +0 -0
  81. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/inspect/__init__.py +0 -0
  82. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/inspect/main.py +0 -0
  83. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/inspect/templates.py +0 -0
  84. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/inspect/variables.py +0 -0
  85. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/__init__.py +0 -0
  86. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/main.py +0 -0
  87. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/publish.py +0 -0
  88. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/utils.py +0 -0
  89. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/validate.py +0 -0
  90. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/kabinet/wizard.py +0 -0
  91. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/manifest/__init__.py +0 -0
  92. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/manifest/inspect.py +0 -0
  93. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/manifest/main.py +0 -0
  94. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/manifest/scopes.py +0 -0
  95. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/manifest/version.py +0 -0
  96. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/manifest/wizard.py +0 -0
  97. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/run/__init__.py +0 -0
  98. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/run/dev.py +0 -0
  99. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/run/main.py +0 -0
  100. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/run/prod.py +0 -0
  101. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/commands/run/utils.py +0 -0
  102. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/configs/base.yaml +0 -0
  103. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/dockerfiles/vanilla.dockerfile +0 -0
  104. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/errors.py +0 -0
  105. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/inspect.py +0 -0
  106. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/io.py +0 -0
  107. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/main.py +0 -0
  108. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/options.py +0 -0
  109. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/fluss.schema.graphql +0 -0
  110. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/gucker.schema.graphql +0 -0
  111. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/kabinet.schema.graphql +0 -0
  112. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/kluster.schema.graphql +0 -0
  113. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/konviktion.schema.graphql +0 -0
  114. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/kuay.schema.graphql +0 -0
  115. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/mikro.schema.graphql +0 -0
  116. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/mikro_next.schema.graphql +0 -0
  117. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/napari.schema.graphql +0 -0
  118. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/omero_ark.schema.graphql +0 -0
  119. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/port.schema.graphql +0 -0
  120. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/rekuest.schema.graphql +0 -0
  121. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/rekuest_next.schema.graphql +0 -0
  122. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/schemas/unlok.schema.graphql +0 -0
  123. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/templates/filter.py +0 -0
  124. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/templates/simple.py +0 -0
  125. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/types.py +0 -0
  126. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/ui.py +0 -0
  127. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/utils.py +0 -0
  128. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/validators.py +0 -0
  129. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/vars.py +0 -0
  130. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/cli/versions/v1.yaml +0 -0
  131. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/model.py +1 -1
  132. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/dark/gear.png +0 -0
  133. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/dark/green pulse.gif +0 -0
  134. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/dark/orange pulse.gif +0 -0
  135. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/dark/pink pulse.gif +0 -0
  136. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/dark/red pulse.gif +0 -0
  137. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/light/gear.png +0 -0
  138. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/light/green pulse.gif +0 -0
  139. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/light/orange pulse.gif +0 -0
  140. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/light/pink pulse.gif +0 -0
  141. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/assets/light/red pulse.gif +0 -0
  142. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/magic_bar.py +0 -0
  143. {arkitekt_next-0.7.51 → arkitekt_next-0.7.53}/arkitekt_next/qt/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arkitekt-next
3
- Version: 0.7.51
3
+ Version: 0.7.53
4
4
  Summary: client for the arkitekt_next platform
5
5
  License: MIT
6
6
  Author: jhnnsrs
@@ -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 build_arkitekt_next_rekuest_next
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 build_arkitekt_next_mikro_next
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 build_arkitekt_next_unlok_next
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 build_arkitekt_next_omero_ark
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:
@@ -37,4 +37,3 @@ def build_next_app(
37
37
  )
38
38
 
39
39
  herre = build_arkitekt_next_herre(fakts=fakts)
40
-
@@ -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("Please install qtpy to use arkitekt_next_qt") from e
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 build_arkitekt_next_qt_fakts
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 build_arkitekt_next_qt_herre
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,
@@ -72,6 +72,7 @@ def build_arkitekt_next_token_fakts(
72
72
  )
73
73
  )
74
74
 
75
+
75
76
  def build_arkitekt_next_redeem_fakts(
76
77
  manifest: Manifest,
77
78
  redeem_token: str,
@@ -78,7 +78,7 @@ def build_arkitekt_next_qt_fakts(
78
78
  settings=settings,
79
79
  allow_appending_slash=True,
80
80
  auto_protocols=["http", "https"],
81
- additional_beacons=["http://localhost"]
81
+ additional_beacons=["http://localhost"],
82
82
  ),
83
83
  ),
84
84
  claimer=ClaimEndpointClaimer(),
@@ -42,7 +42,3 @@ class App(Composition):
42
42
  async def __aexit__(self, exc_type, exc_value, traceback):
43
43
  for service in self.services.values():
44
44
  await service.__aexit__(exc_type, exc_value, traceback)
45
-
46
-
47
-
48
-
@@ -1,2 +1 @@
1
1
  from .admin import AdminBlok
2
-
@@ -4,6 +4,7 @@ from blok import blok, InitContext, Option, ExecutionContext
4
4
  from blok.tree import YamlFile
5
5
  from arkitekt_next.bloks.services.config import ConfigService
6
6
 
7
+
7
8
  class AdminCredentials(BaseModel):
8
9
  password: str
9
10
  username: str
@@ -14,7 +14,7 @@ class MountBlok:
14
14
  self.registered_configs = {}
15
15
 
16
16
  def preflight(self, mount_path: str):
17
- self.mount_path = mount_path
17
+ self.mount_path = mount_path
18
18
 
19
19
  def build(self, ex: ExecutionContext):
20
20
  for name, file in self.registered_configs.items():
@@ -15,7 +15,12 @@ class OrkestratorBlok:
15
15
  self.build_command = ["yarn"]
16
16
  self.up_command = ["yarn", "start"]
17
17
 
18
- def preflight(self, init: InitContext, mount: MountService, vscode: VsCodeService | None = None) :
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
 
@@ -10,8 +10,6 @@ import secrets
10
10
  from blok import blok, InitContext
11
11
 
12
12
 
13
-
14
-
15
13
  @blok(DBService)
16
14
  class PostgresBlok(BaseModel):
17
15
  host: str = "db"
@@ -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
- type=bool,
67
+ type=bool,
69
68
  default=self.skip,
70
69
  )
71
70
  with_image = Option(
@@ -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,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: ...
@@ -4,9 +4,8 @@ from blok import service
4
4
  from dataclasses import dataclass
5
5
 
6
6
 
7
-
8
7
  @service("live.arkitekt.names")
9
8
  class NameService(Protocol):
10
9
 
11
10
  def retrieve_name(self) -> str:
12
- pass
11
+ pass
@@ -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
@@ -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(fakts=fakts, herre=herre, params=params, manifest=manifest),
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
- ["docker", "run", build_id, "arkitekt-next", "inspect", "requirements", "-mr"],
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 , requirements=requirements)
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, description: str, overwrite: bool, flavour: str, template: str, devcontainer: bool
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", "-u", help="The fakts server to use", type=str, default=DEFAULT_ARKITEKT_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", help="The builder to use", type=str, default="arkitekt_next.builders.easy"
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 = build_model.build_docker_command() + build_model.build_arkitekt_next_command(
51
- url
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}")
@@ -9,7 +9,6 @@ def compile_scopes() -> List[str]:
9
9
  return ["read", "write"]
10
10
 
11
11
 
12
-
13
12
  def compile_builders():
14
13
  return ["arkitekt_next.builders.easy", "arkitekt_next.builders.port"]
15
14
 
@@ -15,6 +15,4 @@ LOGO = """
15
15
 
16
16
  """
17
17
 
18
- ERROR_EPILOGUE = (
19
- "To find out more, visit [link=https://arkitekt_next.live]https://arkitekt_next.live[/link]"
20
- )
18
+ ERROR_EPILOGUE = "To find out more, visit [link=https://arkitekt_next.live]https://arkitekt_next.live[/link]"
@@ -0,0 +1,4 @@
1
+ REPO_URL = "https://arkitekt_next.live/repo.json"
2
+
3
+
4
+ DEFAULT_ARKITEKT_URL = "http://127.0.0.1"
@@ -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"]
@@ -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 ServiceBuilderRegistry, check_and_import_services
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(manifest, fakts=fakts, login_widget=login_widget, parent=parent, settings=settings)
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(fakts=fakts, herre=herre, params=params, manifest=manifest),
88
+ services=registry.build_service_map(
89
+ fakts=fakts, herre=herre, params=params, manifest=manifest
90
+ ),
83
91
  )
84
92
 
85
93
  app.enter()
@@ -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)