arkitekt-next 0.7.59__tar.gz → 0.8.0__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.59 → arkitekt_next-0.8.0}/PKG-INFO +17 -17
  2. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/README.md +3 -3
  3. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/__init__.py +12 -0
  4. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/arkitekt.py +1 -11
  5. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/postgres.py +14 -5
  6. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/builders.py +20 -20
  7. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/call/remote.py +1 -7
  8. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/utils.py +2 -1
  9. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/types.py +1 -1
  10. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/model.py +1 -1
  11. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/__init__.py +2 -2
  12. arkitekt_next-0.8.0/arkitekt_next/qt/builders.py +258 -0
  13. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/magic_bar.py +1 -1
  14. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/service_registry.py +2 -2
  15. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/pyproject.toml +14 -20
  16. arkitekt_next-0.7.59/arkitekt_next/qt/builders.py +0 -95
  17. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/LICENSE +0 -0
  18. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/__blok__.py +0 -0
  19. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/__init__.py +0 -0
  20. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/easy.py +0 -0
  21. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/next.py +0 -0
  22. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/qt.py +0 -0
  23. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/service/__init__.py +0 -0
  24. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/service/fakts.py +0 -0
  25. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/service/fakts_next.py +0 -0
  26. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/service/fakts_qt.py +0 -0
  27. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/service/grant_registry.py +0 -0
  28. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/service/herre.py +0 -0
  29. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/service/herre_qt.py +0 -0
  30. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/apps/types.py +0 -0
  31. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/__init__.py +0 -0
  32. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/admin.py +0 -0
  33. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/base.py +0 -0
  34. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/config.py +0 -0
  35. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/fluss.py +0 -0
  36. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/gateway.py +0 -0
  37. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/internal_docker.py +0 -0
  38. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/kabinet.py +0 -0
  39. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/livekit.py +0 -0
  40. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/lok.py +0 -0
  41. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/mikro.py +0 -0
  42. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/minio.py +0 -0
  43. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/mount.py +0 -0
  44. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/namegen.py +0 -0
  45. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/orkestrator.py +0 -0
  46. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/redis.py +0 -0
  47. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/rekuest.py +0 -0
  48. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/secret.py +0 -0
  49. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/__init__.py +0 -0
  50. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/admin.py +0 -0
  51. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/config.py +0 -0
  52. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/db.py +0 -0
  53. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/gateway.py +0 -0
  54. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/livekit.py +0 -0
  55. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/lok.py +0 -0
  56. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/mount.py +0 -0
  57. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/name.py +0 -0
  58. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/redis.py +0 -0
  59. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/s3.py +0 -0
  60. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/secret.py +0 -0
  61. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/services/socket.py +0 -0
  62. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/socket.py +0 -0
  63. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/bloks/tailscale.py +0 -0
  64. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/__init__.py +0 -0
  65. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/call/__init__.py +0 -0
  66. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/call/local.py +0 -0
  67. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/call/main.py +0 -0
  68. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/gen/__init__.py +0 -0
  69. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/gen/compile.py +0 -0
  70. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/gen/init.py +0 -0
  71. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/gen/main.py +0 -0
  72. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/gen/watch.py +0 -0
  73. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/init/__init__.py +0 -0
  74. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/init/main.py +0 -0
  75. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/inspect/__init__.py +0 -0
  76. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/inspect/main.py +0 -0
  77. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/inspect/requirements.py +0 -0
  78. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/inspect/templates.py +0 -0
  79. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/inspect/variables.py +0 -0
  80. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/__init__.py +0 -0
  81. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/build.py +0 -0
  82. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/init.py +0 -0
  83. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/main.py +0 -0
  84. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/publish.py +0 -0
  85. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/stage.py +0 -0
  86. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/validate.py +0 -0
  87. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/kabinet/wizard.py +0 -0
  88. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/manifest/__init__.py +0 -0
  89. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/manifest/inspect.py +0 -0
  90. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/manifest/main.py +0 -0
  91. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/manifest/scopes.py +0 -0
  92. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/manifest/version.py +0 -0
  93. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/manifest/wizard.py +0 -0
  94. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/run/__init__.py +0 -0
  95. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/run/dev.py +0 -0
  96. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/run/main.py +0 -0
  97. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/run/prod.py +0 -0
  98. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/commands/run/utils.py +0 -0
  99. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/configs/base.yaml +0 -0
  100. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/constants.py +0 -0
  101. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/dockerfiles/vanilla.dockerfile +0 -0
  102. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/errors.py +0 -0
  103. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/inspect.py +0 -0
  104. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/io.py +0 -0
  105. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/main.py +0 -0
  106. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/options.py +0 -0
  107. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/fluss.schema.graphql +0 -0
  108. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/gucker.schema.graphql +0 -0
  109. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/kabinet.schema.graphql +0 -0
  110. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/kluster.schema.graphql +0 -0
  111. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/konviktion.schema.graphql +0 -0
  112. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/kuay.schema.graphql +0 -0
  113. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/mikro.schema.graphql +0 -0
  114. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/mikro_next.schema.graphql +0 -0
  115. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/napari.schema.graphql +0 -0
  116. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/omero_ark.schema.graphql +0 -0
  117. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/port.schema.graphql +0 -0
  118. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/rekuest.schema.graphql +0 -0
  119. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/rekuest_next.schema.graphql +0 -0
  120. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/schemas/unlok.schema.graphql +0 -0
  121. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/templates/filter.py +0 -0
  122. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/templates/simple.py +0 -0
  123. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/texts.py +0 -0
  124. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/ui.py +0 -0
  125. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/utils.py +0 -0
  126. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/validators.py +0 -0
  127. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/vars.py +0 -0
  128. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/cli/versions/v1.yaml +0 -0
  129. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/constants.py +0 -0
  130. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/dark/gear.png +0 -0
  131. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/dark/green pulse.gif +0 -0
  132. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/dark/orange pulse.gif +0 -0
  133. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/dark/pink pulse.gif +0 -0
  134. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/dark/red pulse.gif +0 -0
  135. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/light/gear.png +0 -0
  136. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/light/green pulse.gif +0 -0
  137. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/light/orange pulse.gif +0 -0
  138. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/light/pink pulse.gif +0 -0
  139. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/assets/light/red pulse.gif +0 -0
  140. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/types.py +0 -0
  141. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/qt/utils.py +0 -0
  142. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/tqdm.py +0 -0
  143. {arkitekt_next-0.7.59 → arkitekt_next-0.8.0}/arkitekt_next/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arkitekt-next
3
- Version: 0.7.59
3
+ Version: 0.8.0
4
4
  Summary: client for the arkitekt_next platform
5
5
  License: MIT
6
6
  Author: jhnnsrs
@@ -16,24 +16,24 @@ Classifier: Programming Language :: Python :: 3.12
16
16
  Provides-Extra: all
17
17
  Provides-Extra: blok
18
18
  Provides-Extra: cli
19
- Requires-Dist: blok (>=0.0.19) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "blok")
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
- Requires-Dist: dokker (>=0.1.21)
22
- Requires-Dist: fakts (>=0.5.0)
23
- Requires-Dist: fluss-next (>=0.1.78) ; extra == "all"
24
- Requires-Dist: herre (>=0.4.3)
25
- Requires-Dist: kabinet (>=0.1.16) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "all")
26
- Requires-Dist: koil (>=0.3.6)
27
- Requires-Dist: lovekit (>=0.1.4) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "all")
28
- Requires-Dist: mikro-next (>=0.1.33) ; (python_version >= "3.10" and python_version < "4.0") and (extra == "all")
21
+ Requires-Dist: dokker (>=1.0.0)
22
+ Requires-Dist: fakts (>=1.0.0)
23
+ Requires-Dist: fluss-next (>=0.1.83) ; extra == "all"
24
+ Requires-Dist: herre (>=1.0.0)
25
+ Requires-Dist: kabinet (>=0.1.22) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "all")
26
+ Requires-Dist: koil (>=1.0.0)
27
+ Requires-Dist: lovekit (>=0.1.10) ; (python_version >= "3.10" and python_version < "4.0") and (extra == "all")
28
+ Requires-Dist: mikro-next (>=0.1.38) ; (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.68) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "all")
32
- Requires-Dist: rekuest-next (>=0.2.24) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "cli" or extra == "all")
31
+ Requires-Dist: reaktion-next (>=0.1.73) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "all")
32
+ Requires-Dist: rekuest-next (>=0.2.29) ; (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
- Requires-Dist: turms (>=0.5.0) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "cli" or extra == "all")
36
- Requires-Dist: unlok-next (>=0.1.72) ; python_version >= "3.8" and python_version < "4.0"
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.77) ; 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
 
@@ -64,7 +64,7 @@ To understand the idea behind arkitekt_next, you need to understand the idea beh
64
64
  ## Install
65
65
 
66
66
  ```bash
67
- pip install arkitekt_next[all]
67
+ pip install arkitekt-next[all]
68
68
  ```
69
69
 
70
70
  This installs all dependencies for the arkitekt_next platform, inlcuding the arkitekt_next CLI, which can be used to develop and create apps, containerize them and deploy t
@@ -81,7 +81,7 @@ type annotations, orchestration of real-time (in memoery) workflows, data hostin
81
81
  To get started create a directory and run
82
82
 
83
83
  ```bash
84
- arkitekt_next init
84
+ arkitekt-next init
85
85
  ```
86
86
 
87
87
  Which will lead you throught an app creation process.
@@ -105,7 +105,7 @@ And then connected to a local or remote server by running
105
105
  Run example:
106
106
 
107
107
  ```bash
108
- arkitekt_next run dev
108
+ arkitekt-next run dev
109
109
  ```
110
110
 
111
111
 
@@ -25,7 +25,7 @@ To understand the idea behind arkitekt_next, you need to understand the idea beh
25
25
  ## Install
26
26
 
27
27
  ```bash
28
- pip install arkitekt_next[all]
28
+ pip install arkitekt-next[all]
29
29
  ```
30
30
 
31
31
  This installs all dependencies for the arkitekt_next platform, inlcuding the arkitekt_next CLI, which can be used to develop and create apps, containerize them and deploy t
@@ -42,7 +42,7 @@ type annotations, orchestration of real-time (in memoery) workflows, data hostin
42
42
  To get started create a directory and run
43
43
 
44
44
  ```bash
45
- arkitekt_next init
45
+ arkitekt-next init
46
46
  ```
47
47
 
48
48
  Which will lead you throught an app creation process.
@@ -66,7 +66,7 @@ And then connected to a local or remote server by running
66
66
  Run example:
67
67
 
68
68
  ```bash
69
- arkitekt_next run dev
69
+ arkitekt-next run dev
70
70
  ```
71
71
 
72
72
 
@@ -11,11 +11,21 @@ try:
11
11
  from rekuest_next.register import register
12
12
  from rekuest_next.agents.hooks import background
13
13
  from rekuest_next.agents.hooks import startup
14
+ from rekuest_next.agents.context import context
15
+ from rekuest_next.state.state import state
16
+ from rekuest_next.actors.reactive.api import progress, aprogress
17
+ from rekuest_next.actors.reactive.api import log, alog
14
18
  except ImportError as e:
15
19
  raise e
16
20
  register = missing_install("rekuest_next", e)
17
21
  background = missing_install("rekuest_next", e)
18
22
  startup = missing_install("rekuest_next", e)
23
+ context = missing_install("rekuest_next", e)
24
+ state = missing_install("rekuest_next", e)
25
+ progress = missing_install("rekuest_next", e)
26
+ aprogress = missing_install("rekuest_next", e)
27
+ log = missing_install("rekuest_next", e)
28
+ alog = missing_install("rekuest_next", e)
19
29
 
20
30
  from .builders import easy, interactive
21
31
  from .apps.types import App
@@ -38,6 +48,8 @@ __all__ = [
38
48
  "useInstanceID",
39
49
  "useUser",
40
50
  "next",
51
+ "state",
52
+ "context",
41
53
  "background",
42
54
  "startup",
43
55
  "register_next",
@@ -43,17 +43,7 @@ class ArkitektBlok:
43
43
  scale: Optional[TailscaleBlok] = None,
44
44
  orkestrator: Optional[OrkestratorBlok] = None,
45
45
  ):
46
- print(
47
- gateway,
48
- mikro,
49
- kabinet,
50
- rekuest,
51
- fluss,
52
- gateway,
53
- internal_engine,
54
- scale,
55
- orkestrator,
56
- )
46
+ pass
57
47
 
58
48
  def build(self, cwd):
59
49
  pass
@@ -64,20 +64,20 @@ class PostgresBlok(BaseModel):
64
64
  "labels": ["fakts.service=live.arkitekt.postgres"],
65
65
  }
66
66
 
67
-
68
67
  if self.build_repo or self.dev:
69
- mount = init.get_service(MountService).register_mount(self.host, Repo(self.repo))
68
+ mount = init.get_service(MountService).register_mount(
69
+ self.host, Repo(self.repo)
70
+ )
70
71
  self.build_image["build"] = mount
71
72
  else:
72
73
  self.build_image["image"] = self.image
73
74
 
74
-
75
75
  def build(self, context: ExecutionContext):
76
76
 
77
77
  self.build_image["environment"]["POSTGRES_MULTIPLE_DATABASES"] = ",".join(
78
78
  self.registered_dbs.keys()
79
79
  )
80
-
80
+
81
81
  context.docker_compose.set_nested(f"services", self.host, self.build_image)
82
82
 
83
83
  def get_options(self):
@@ -124,4 +124,13 @@ class PostgresBlok(BaseModel):
124
124
  default=self.dev,
125
125
  )
126
126
 
127
- return [with_postgres_password, skip_build, with_user_password, with_image, with_repo, build_repo, mount_repo, dev]
127
+ return [
128
+ with_postgres_password,
129
+ skip_build,
130
+ with_user_password,
131
+ with_image,
132
+ with_repo,
133
+ build_repo,
134
+ mount_repo,
135
+ dev,
136
+ ]
@@ -109,7 +109,6 @@ def easy(
109
109
  requirements=registry.get_requirements(),
110
110
  )
111
111
  if token:
112
- print("Using token")
113
112
  fakts = build_arkitekt_next_token_fakts(
114
113
  manifest=manifest,
115
114
  token=token,
@@ -117,7 +116,6 @@ def easy(
117
116
  )
118
117
 
119
118
  elif redeem_token:
120
- print("Using redeem token")
121
119
  fakts = build_arkitekt_next_redeem_fakts_next(
122
120
  manifest=manifest,
123
121
  redeem_token=redeem_token,
@@ -126,7 +124,6 @@ def easy(
126
124
  headless=headless,
127
125
  )
128
126
  else:
129
- print("Using normal fakts")
130
127
  fakts = build_arkitekt_next_fakts_next(
131
128
  manifest=manifest,
132
129
  url=url,
@@ -160,8 +157,8 @@ def easy(
160
157
  return app
161
158
 
162
159
 
163
-
164
- def interactive(identifier: str,
160
+ def interactive(
161
+ identifier: str,
165
162
  version: str = "0.0.1",
166
163
  logo: Optional[str] = None,
167
164
  scopes: Optional[List[str]] = None,
@@ -174,23 +171,26 @@ def interactive(identifier: str,
174
171
  app_kind: str = "development",
175
172
  registry: Optional[ServiceBuilderRegistry] = None,
176
173
  sync_mode: bool = True,
177
- **kwargs):
174
+ **kwargs,
175
+ ):
178
176
  """Creates an interactive jupyter app"""
179
177
 
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
-
178
+ app = easy(
179
+ identifier=identifier,
180
+ version=version,
181
+ logo=logo,
182
+ scopes=scopes,
183
+ url=url,
184
+ headless=headless,
185
+ log_level=log_level,
186
+ token=token,
187
+ no_cache=no_cache,
188
+ redeem_token=redeem_token,
189
+ app_kind=app_kind,
190
+ registry=registry,
191
+ **kwargs,
192
+ )
193
+
194
194
  if sync_mode:
195
195
  # When running in an interactive async enironvment, just like
196
196
  # in a jupyter notebook, we can opt to run the app in sync mode
@@ -3,7 +3,6 @@ from arkitekt_next.cli.options import *
3
3
  import asyncio
4
4
  from arkitekt_next.cli.ui import construct_run_panel
5
5
  from importlib import import_module
6
- from rekuest.postmans.utils import arkiuse
7
6
  import rich_click as click
8
7
  from arkitekt_next.cli.options import *
9
8
  import asyncio
@@ -19,12 +18,7 @@ async def call_app(
19
18
  arg,
20
19
  ):
21
20
  async with app:
22
- async with arkiuse(
23
- hash=hash,
24
- postman=app.rekuest.postman,
25
- ) as a:
26
- print(arg)
27
- print(await a.aassign(kwargs=arg))
21
+ raise NotImplementedError("This is not implemented yet")
28
22
 
29
23
 
30
24
  @click.command("prod")
@@ -1,3 +1,4 @@
1
+ import logging
1
2
  from typing import Optional
2
3
  import os
3
4
  import yaml
@@ -42,6 +43,6 @@ def validate_flavours(flavours_folder: str, only: Optional[str]):
42
43
  )
43
44
 
44
45
  else:
45
- print(
46
+ logging.info(
46
47
  f"Found file {dir_name} in flavours folder. Not a valid flavour. Ignoring"
47
48
  )
@@ -35,7 +35,7 @@ class Manifest(BaseModel):
35
35
  identifier: str
36
36
  version: str
37
37
  author: str
38
- logo: Optional[str]
38
+ logo: Optional[str] = None
39
39
  entrypoint: str
40
40
  scopes: List[str]
41
41
  created_at: datetime.datetime = Field(default_factory=datetime.datetime.now)
@@ -85,7 +85,7 @@ class Manifest(BaseModel):
85
85
 
86
86
  def hash(self):
87
87
  """Hash the manifest"""
88
- return sha256(self.json(sort_keys=True).encode()).hexdigest()
88
+ return sha256(self.model_dump_json().encode()).hexdigest()
89
89
 
90
90
 
91
91
  class User(BaseModel):
@@ -9,7 +9,7 @@ to ArkitektNext, and configure settings.
9
9
  """
10
10
 
11
11
  from .magic_bar import MagicBar
12
- from .builders import publicqt
12
+ from .builders import publicqt, devqt
13
13
  from .types import *
14
14
 
15
- __all__ = ["MagicBar", "publicqt", "QtApp"]
15
+ __all__ = ["MagicBar", "publicqt", "devqt", "QtApp"]
@@ -0,0 +1,258 @@
1
+ from arkitekt_next.apps.service.fakts_next import (
2
+ build_arkitekt_next_redeem_fakts_next,
3
+ )
4
+ from arkitekt_next.apps.service.fakts_qt import build_arkitekt_next_qt_fakts
5
+ from arkitekt_next.apps.service.herre_qt import build_arkitekt_next_qt_herre
6
+ from arkitekt_next.utils import create_arkitekt_next_folder
7
+ from arkitekt_next.model import Manifest
8
+ from arkitekt_next.apps.types import App
9
+ from arkitekt_next.service_registry import (
10
+ ServiceBuilderRegistry,
11
+ check_and_import_services,
12
+ )
13
+ from arkitekt_next.constants import DEFAULT_ARKITEKT_URL
14
+ from qtpy import QtWidgets, QtCore
15
+ from typing import List, Optional
16
+ import os
17
+ import logging
18
+ from typing import List, Optional
19
+ import logging
20
+ import os
21
+
22
+ from arkitekt_next.apps.service.fakts_next import (
23
+ build_arkitekt_next_fakts_next,
24
+ build_arkitekt_next_redeem_fakts_next,
25
+ build_arkitekt_next_token_fakts,
26
+ )
27
+ from arkitekt_next.apps.service.herre import build_arkitekt_next_herre
28
+ from arkitekt_next.utils import create_arkitekt_next_folder
29
+ from arkitekt_next.model import Manifest
30
+ from arkitekt_next.apps.types import App
31
+ from arkitekt_next.service_registry import (
32
+ ServiceBuilderRegistry,
33
+ check_and_import_services,
34
+ )
35
+ from arkitekt_next.constants import DEFAULT_ARKITEKT_URL
36
+
37
+
38
+ def devqt(
39
+ identifier: str,
40
+ version: str = "0.0.1",
41
+ logo: Optional[str] = None,
42
+ scopes: Optional[List[str]] = None,
43
+ url: str = DEFAULT_ARKITEKT_URL,
44
+ headless: bool = False,
45
+ log_level: str = "ERROR",
46
+ parent: Optional[QtWidgets.QWidget] = None,
47
+ token: Optional[str] = None,
48
+ no_cache: bool = False,
49
+ redeem_token: Optional[str] = None,
50
+ app_kind: str = "development",
51
+ registry: Optional[ServiceBuilderRegistry] = None,
52
+ **kwargs,
53
+ ) -> App:
54
+ """Creates a next app
55
+
56
+ A simple way to create an ArkitektNext Next app, ArkitektNext next apps are
57
+ development apps by default, as they will try to register themselves
58
+ with services that are not yet available in production (such as the
59
+ rekuest_next and mikro_next services). They represent the next generation
60
+ of ArkitektNext apps, and will be the default way to create ArkitektNext apps
61
+ in the future. From here be dragons.
62
+
63
+ A few things to note:
64
+ - The Next builder closely mimics the easy builder, but will use the
65
+ next generation of services (such as rekuest_next and mikro_next)
66
+ and will therefore not be compatible with the current generation.
67
+
68
+ - Next apps will try to establish themselves a "development" apps, by default
69
+ which means that they will be authenticated with the ArkitektNext server on
70
+ a per user basis. If you want to create a "desktop" app, which multiple users
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 fakts token
73
+ will be able to connect to the ArkitektNext server without any user interaction.
74
+
75
+
76
+ Parameters
77
+ ----------
78
+ identifier : str
79
+ The apps identifier (should be globally unique, see Manifest for more info)
80
+ version : str, optional
81
+ The version of the app, by default "0.0.1"
82
+ logo : str, optional
83
+ The logo of the app as a public http url, by default None
84
+ scopes : List[str], optional
85
+ The scopes, that this apps requires, will default to standard scopes, by default None
86
+ url : str, optional
87
+ The fakts server that will be used to configure this app, in a default ArkitektNext deployment this
88
+ is the address of the "Lok Service" (which provides the Fakts API), by default DEFAULT_ARKITEKT_URL
89
+ Will be overwritten by the FAKTS_URL environment variable
90
+ headless : bool, optional
91
+ Should we run in headless, mode, e.g printing necessary interaction into the console (will forexample
92
+ stop opening browser windows), by default False
93
+ log_level : str, optional
94
+ The log-level to use, by default "ERROR"
95
+ token : str, optional
96
+ A fakts token to use, by default None
97
+ Will be overwritten by the FAKTS_TOKEN environment variable
98
+ no_cache : bool, optional
99
+ Should we skip caching token, acess-token, by default False
100
+ Attention: If this is set to True, the app will always have to be configured
101
+ and authenticated.
102
+ instance_id : str, optional
103
+ The instance_id to use, by default "main"
104
+ Can be set to a different value, if you want to run multiple intstances
105
+ of the same app by the same user.
106
+ Will be overwritten by the REKUEST_INSTANCE_ID environment variable
107
+ register_reaktion : bool, optional
108
+ Should we register the reaktion extension, by default True
109
+ If set to False, the app will not be able to use the reaktion extension
110
+ (which is necessary for scheduling in app` workflows from fluss)
111
+ app_kind : str, optional
112
+ The kind of app to create, by default "development"
113
+ Can be set to "desktop" to create a desktop app, that can be used by multiple users.
114
+
115
+ Returns
116
+ -------
117
+ NextApp
118
+ A built app, that can be used to interact with the ArkitektNext server
119
+ """
120
+ registry = registry or check_and_import_services()
121
+
122
+ url = os.getenv("FAKTS_URL", url)
123
+ token = os.getenv("FAKTS_TOKEN", token)
124
+
125
+ manifest = Manifest(
126
+ version=version,
127
+ identifier=identifier,
128
+ scopes=scopes if scopes else ["openid"],
129
+ logo=logo,
130
+ requirements=registry.get_requirements(),
131
+ )
132
+ if token:
133
+ fakts = build_arkitekt_next_token_fakts(
134
+ manifest=manifest,
135
+ token=token,
136
+ url=url,
137
+ )
138
+
139
+ elif redeem_token:
140
+ fakts = build_arkitekt_next_redeem_fakts_next(
141
+ manifest=manifest,
142
+ redeem_token=redeem_token,
143
+ url=url,
144
+ no_cache=no_cache,
145
+ headless=headless,
146
+ )
147
+ else:
148
+ fakts = build_arkitekt_next_fakts_next(
149
+ manifest=manifest,
150
+ url=url,
151
+ no_cache=no_cache,
152
+ headless=headless,
153
+ client_kind=app_kind,
154
+ )
155
+
156
+ herre = build_arkitekt_next_herre(fakts=fakts)
157
+
158
+ params = kwargs
159
+
160
+ create_arkitekt_next_folder(with_cache=True)
161
+
162
+ try:
163
+ from rich.logging import RichHandler
164
+
165
+ logging.basicConfig(level=log_level, handlers=[RichHandler()])
166
+ except ImportError:
167
+ logging.basicConfig(level=log_level)
168
+
169
+ app = App(
170
+ fakts=fakts,
171
+ herre=herre,
172
+ manifest=manifest,
173
+ services=registry.build_service_map(
174
+ fakts=fakts, herre=herre, params=params, manifest=manifest
175
+ ),
176
+ )
177
+
178
+ app.enter()
179
+
180
+ return app
181
+
182
+
183
+ def publicqt(
184
+ identifier: str,
185
+ version: str = "latest",
186
+ logo: Optional[str] = None,
187
+ scopes: Optional[List[str]] = None,
188
+ log_level: str = "ERROR",
189
+ registry: Optional[ServiceBuilderRegistry] = None,
190
+ parent: Optional[QtWidgets.QWidget] = None,
191
+ beacon_widget: Optional[QtWidgets.QWidget] = None,
192
+ login_widget: Optional[QtWidgets.QWidget] = None,
193
+ settings: Optional[QtCore.QSettings] = None,
194
+ **kwargs,
195
+ ) -> App:
196
+ """Public QtApp creation
197
+
198
+ A simple way to create an Arkitekt app with a public grant (allowing users to sign
199
+ in with the application ) utlizing a retrieve grant (necessating a previous configuration
200
+ of the application on the server side)
201
+
202
+ Args:
203
+ identifier (str): The apps identifier
204
+ version (str, optional): The apps verion. Defaults to "latest".
205
+ parent (QtWidget, optional): The QtParent (for the login and server select widget). Defaults to None.
206
+
207
+ Returns:
208
+ Arkitekt: The Arkitekt app
209
+ """
210
+
211
+ registry = registry or check_and_import_services()
212
+
213
+ settings = settings or QtCore.QSettings("arkitekt_next", f"{identifier}:{version}")
214
+
215
+ manifest = Manifest(
216
+ version=version,
217
+ identifier=identifier,
218
+ scopes=scopes if scopes else ["openid"],
219
+ logo=logo,
220
+ requirements=registry.get_requirements(),
221
+ )
222
+
223
+ fakts = build_arkitekt_next_qt_fakts(
224
+ manifest=manifest,
225
+ beacon_widget=beacon_widget,
226
+ parent=parent,
227
+ settings=settings,
228
+ )
229
+
230
+ herre = build_arkitekt_next_qt_herre(
231
+ manifest,
232
+ fakts=fakts,
233
+ login_widget=login_widget,
234
+ parent=parent,
235
+ settings=settings,
236
+ )
237
+
238
+ params = kwargs
239
+
240
+ try:
241
+ from rich.logging import RichHandler
242
+
243
+ logging.basicConfig(level=log_level, handlers=[RichHandler()])
244
+ except ImportError:
245
+ logging.basicConfig(level=log_level)
246
+
247
+ app = App(
248
+ fakts=fakts,
249
+ herre=herre,
250
+ manifest=manifest,
251
+ services=registry.build_service_map(
252
+ fakts=fakts, herre=herre, params=params, manifest=manifest
253
+ ),
254
+ )
255
+
256
+ app.enter()
257
+
258
+ return app
@@ -63,7 +63,7 @@ class Logo(QtWidgets.QWidget):
63
63
  data = await resp.read()
64
64
  return data
65
65
  else:
66
- print(f"Failed to download the image. Status code: {resp.status}")
66
+ logger.error(f"Failed to download the image. Status code: {resp.status}")
67
67
  return None
68
68
 
69
69
 
@@ -76,9 +76,9 @@ def check_and_import_services() -> ServiceBuilderRegistry:
76
76
  rekuest_module.init_services(service_builder_registry)
77
77
  logging.info(f"Called init_service function from {module_name}")
78
78
  else:
79
- print(f"No init_services function in {module_name}.__arkitekt__")
79
+ logging.debug(f"No init_services function in {module_name}.__arkitekt__. Skipping.")
80
80
  except Exception as e:
81
- print(f"Failed to call init_services for {module_name}: {e}")
81
+ logging.critical(f"Failed to call init_services for {module_name}: {e}")
82
82
  traceback.print_exc()
83
83
 
84
84
  # Check local modules in the current working directory