arkitekt-next 0.7.8__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.

Files changed (119) hide show
  1. arkitekt_next/__init__.py +43 -0
  2. arkitekt_next/apps/__init__.py +3 -0
  3. arkitekt_next/apps/easy.py +99 -0
  4. arkitekt_next/apps/next.py +40 -0
  5. arkitekt_next/apps/qt.py +97 -0
  6. arkitekt_next/apps/service/__init__.py +3 -0
  7. arkitekt_next/apps/service/fakts.py +88 -0
  8. arkitekt_next/apps/service/fakts_next.py +79 -0
  9. arkitekt_next/apps/service/fakts_qt.py +82 -0
  10. arkitekt_next/apps/service/fluss_next.py +31 -0
  11. arkitekt_next/apps/service/grant_registry.py +27 -0
  12. arkitekt_next/apps/service/herre.py +24 -0
  13. arkitekt_next/apps/service/herre_qt.py +57 -0
  14. arkitekt_next/apps/service/kabinet.py +31 -0
  15. arkitekt_next/apps/service/mikro_next.py +81 -0
  16. arkitekt_next/apps/service/rekuest_next.py +53 -0
  17. arkitekt_next/apps/service/unlok_next.py +32 -0
  18. arkitekt_next/apps/types.py +53 -0
  19. arkitekt_next/builders.py +264 -0
  20. arkitekt_next/cli/__init__.py +0 -0
  21. arkitekt_next/cli/commands/call/__init__.py +0 -0
  22. arkitekt_next/cli/commands/call/local.py +132 -0
  23. arkitekt_next/cli/commands/call/main.py +22 -0
  24. arkitekt_next/cli/commands/call/remote.py +90 -0
  25. arkitekt_next/cli/commands/gen/__init__.py +0 -0
  26. arkitekt_next/cli/commands/gen/compile.py +45 -0
  27. arkitekt_next/cli/commands/gen/init.py +122 -0
  28. arkitekt_next/cli/commands/gen/main.py +29 -0
  29. arkitekt_next/cli/commands/gen/watch.py +32 -0
  30. arkitekt_next/cli/commands/init/__init__.py +0 -0
  31. arkitekt_next/cli/commands/init/main.py +194 -0
  32. arkitekt_next/cli/commands/inspect/__init__.py +0 -0
  33. arkitekt_next/cli/commands/inspect/definitions.py +53 -0
  34. arkitekt_next/cli/commands/inspect/main.py +22 -0
  35. arkitekt_next/cli/commands/inspect/variables.py +92 -0
  36. arkitekt_next/cli/commands/manifest/__init__.py +0 -0
  37. arkitekt_next/cli/commands/manifest/inspect.py +42 -0
  38. arkitekt_next/cli/commands/manifest/main.py +25 -0
  39. arkitekt_next/cli/commands/manifest/scopes.py +155 -0
  40. arkitekt_next/cli/commands/manifest/version.py +147 -0
  41. arkitekt_next/cli/commands/manifest/wizard.py +94 -0
  42. arkitekt_next/cli/commands/port/__init__.py +0 -0
  43. arkitekt_next/cli/commands/port/build.py +231 -0
  44. arkitekt_next/cli/commands/port/init.py +82 -0
  45. arkitekt_next/cli/commands/port/main.py +31 -0
  46. arkitekt_next/cli/commands/port/publish.py +102 -0
  47. arkitekt_next/cli/commands/port/stage.py +59 -0
  48. arkitekt_next/cli/commands/port/utils.py +47 -0
  49. arkitekt_next/cli/commands/port/validate.py +78 -0
  50. arkitekt_next/cli/commands/port/wizard.py +329 -0
  51. arkitekt_next/cli/commands/run/__init__.py +0 -0
  52. arkitekt_next/cli/commands/run/dev.py +349 -0
  53. arkitekt_next/cli/commands/run/main.py +22 -0
  54. arkitekt_next/cli/commands/run/prod.py +57 -0
  55. arkitekt_next/cli/commands/run/utils.py +10 -0
  56. arkitekt_next/cli/commands/server/__init__.py +0 -0
  57. arkitekt_next/cli/commands/server/down.py +56 -0
  58. arkitekt_next/cli/commands/server/init.py +74 -0
  59. arkitekt_next/cli/commands/server/inspect.py +59 -0
  60. arkitekt_next/cli/commands/server/main.py +33 -0
  61. arkitekt_next/cli/commands/server/open.py +66 -0
  62. arkitekt_next/cli/commands/server/remove.py +60 -0
  63. arkitekt_next/cli/commands/server/stop.py +56 -0
  64. arkitekt_next/cli/commands/server/up.py +70 -0
  65. arkitekt_next/cli/commands/server/utils.py +33 -0
  66. arkitekt_next/cli/configs/base.yaml +867 -0
  67. arkitekt_next/cli/constants.py +63 -0
  68. arkitekt_next/cli/dockerfiles/vanilla.dockerfile +8 -0
  69. arkitekt_next/cli/errors.py +4 -0
  70. arkitekt_next/cli/inspect.py +1 -0
  71. arkitekt_next/cli/io.py +255 -0
  72. arkitekt_next/cli/main.py +83 -0
  73. arkitekt_next/cli/options.py +166 -0
  74. arkitekt_next/cli/schemas/fluss.schema.graphql +2446 -0
  75. arkitekt_next/cli/schemas/gucker.schema.graphql +8908 -0
  76. arkitekt_next/cli/schemas/kabinet.schema.graphql +515 -0
  77. arkitekt_next/cli/schemas/kluster.schema.graphql +109 -0
  78. arkitekt_next/cli/schemas/konviktion.schema.graphql +70 -0
  79. arkitekt_next/cli/schemas/kuay.schema.graphql +356 -0
  80. arkitekt_next/cli/schemas/mikro.schema.graphql +8908 -0
  81. arkitekt_next/cli/schemas/mikro_next.schema.graphql +1639 -0
  82. arkitekt_next/cli/schemas/napari.schema.graphql +8908 -0
  83. arkitekt_next/cli/schemas/omero_ark.schema.graphql +100 -0
  84. arkitekt_next/cli/schemas/port.schema.graphql +356 -0
  85. arkitekt_next/cli/schemas/rekuest.schema.graphql +4630 -0
  86. arkitekt_next/cli/schemas/rekuest_next.schema.graphql +1159 -0
  87. arkitekt_next/cli/schemas/unlok.schema.graphql +1013 -0
  88. arkitekt_next/cli/templates/filter.py +26 -0
  89. arkitekt_next/cli/templates/simple.py +67 -0
  90. arkitekt_next/cli/texts.py +20 -0
  91. arkitekt_next/cli/types.py +365 -0
  92. arkitekt_next/cli/ui.py +111 -0
  93. arkitekt_next/cli/utils.py +15 -0
  94. arkitekt_next/cli/validators.py +17 -0
  95. arkitekt_next/cli/vars.py +39 -0
  96. arkitekt_next/cli/versions/v1.yaml +1 -0
  97. arkitekt_next/constants.py +6 -0
  98. arkitekt_next/model.py +110 -0
  99. arkitekt_next/qt/__init__.py +9 -0
  100. arkitekt_next/qt/assets/dark/gear.png +0 -0
  101. arkitekt_next/qt/assets/dark/green pulse.gif +0 -0
  102. arkitekt_next/qt/assets/dark/orange pulse.gif +0 -0
  103. arkitekt_next/qt/assets/dark/pink pulse.gif +0 -0
  104. arkitekt_next/qt/assets/dark/red pulse.gif +0 -0
  105. arkitekt_next/qt/assets/light/gear.png +0 -0
  106. arkitekt_next/qt/assets/light/green pulse.gif +0 -0
  107. arkitekt_next/qt/assets/light/orange pulse.gif +0 -0
  108. arkitekt_next/qt/assets/light/pink pulse.gif +0 -0
  109. arkitekt_next/qt/assets/light/red pulse.gif +0 -0
  110. arkitekt_next/qt/magic_bar.py +545 -0
  111. arkitekt_next/qt/utils.py +30 -0
  112. arkitekt_next/service_registry.py +51 -0
  113. arkitekt_next/tqdm.py +43 -0
  114. arkitekt_next/utils.py +38 -0
  115. arkitekt_next-0.7.8.dist-info/LICENSE +21 -0
  116. arkitekt_next-0.7.8.dist-info/METADATA +155 -0
  117. arkitekt_next-0.7.8.dist-info/RECORD +119 -0
  118. arkitekt_next-0.7.8.dist-info/WHEEL +4 -0
  119. arkitekt_next-0.7.8.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,30 @@
1
+ """ Utility functions for the Qt UI. """
2
+
3
+ import os
4
+
5
+ THIS_DIR = os.path.dirname(os.path.abspath(__file__))
6
+ ASSETS_DIR = os.path.join(THIS_DIR, "assets")
7
+
8
+
9
+ def get_image_path(
10
+ image_name: str, dark_mode: bool = False, assets_dir: str = ASSETS_DIR
11
+ ) -> str:
12
+ """Get the path to an image.
13
+
14
+ Parameters
15
+ ----------
16
+ image_name : str
17
+ Name of the image.
18
+ dark_mode : bool, optional
19
+ Whether to use the dark mode image, by default False.
20
+ assets_dir : str, optional
21
+ Directory where the assets are stored, by default ASSETS_DIR.
22
+
23
+ Returns
24
+ -------
25
+ str
26
+ Path to the image.
27
+ """
28
+ if dark_mode:
29
+ return os.path.join(assets_dir, f"dark/{image_name}")
30
+ return os.path.join(assets_dir, f"light/{image_name}")
@@ -0,0 +1,51 @@
1
+ from pydantic import BaseModel, Field
2
+ from herre import Herre
3
+ from fakts import Fakts
4
+ from .model import Requirement
5
+ from typing import Callable, Dict
6
+
7
+
8
+ Params = Dict[str, str]
9
+
10
+
11
+ class Registration(BaseModel):
12
+ name: str
13
+ requirement: Requirement
14
+ builder: Callable[[Herre, Fakts, Params], object]
15
+
16
+
17
+ basic_requirements = {
18
+ "lok": Requirement(
19
+ service="live.arkitekt.lok",
20
+ description="An instance of ArkitektNext Lok to authenticate the user",
21
+ ),
22
+ }
23
+
24
+
25
+ class ServiceBuilderRegistry:
26
+ def __init__(self):
27
+ self.service_builders = {}
28
+ self.requirements = basic_requirements
29
+
30
+ def register(self, name: str, service_builder: Callable[[Herre, Fakts], object], requirement: Requirement):
31
+ self.service_builders[name] = service_builder
32
+ self.requirements[name] = requirement
33
+
34
+ def get(self, name):
35
+ return self.services.get(name)
36
+
37
+
38
+ def build_service_map(self, fakts: Fakts, herre: Herre, params: Params):
39
+ return {name: builder(fakts, herre, params) for name, builder in self.service_builders.items()}
40
+
41
+ def get_requirements(self):
42
+ return self.requirements
43
+
44
+
45
+
46
+ service_builder_registry = ServiceBuilderRegistry()
47
+
48
+
49
+ def get_default_service_builder_registry():
50
+ return service_builder_registry
51
+
arkitekt_next/tqdm.py ADDED
@@ -0,0 +1,43 @@
1
+ """ Small extension to tqdm that reports progress to arkitekt_next through the
2
+ assignation context"""
3
+
4
+ from tqdm import tqdm as _tqdm
5
+ from rekuest.actors.vars import current_assignation_helper
6
+
7
+
8
+ class tqdm(_tqdm):
9
+ """A tqdm that reports progress to arkitekt_next through the
10
+ assignation context
11
+
12
+ This tqdm assigns the current progress to the current assignation helper
13
+ if it exists. This allows the progress to be reported to the user
14
+ through the ArkitektNext UI.
15
+
16
+ TODO: Check if this works with the current and next versions of tqdm. Maybe
17
+ we should factor this out into the rekuest package
18
+
19
+ """
20
+
21
+ def __init__(self, *args, **kwargs) -> None:
22
+ """The tqdm constructor"""
23
+ super().__init__(*args, **kwargs)
24
+
25
+ self._assignationhelper = current_assignation_helper.get(None)
26
+
27
+ self.last_arkitekt_next_perc = 0
28
+
29
+ def update(self, *args, **kwargs):
30
+ """An update method that reports progress to arkitekt_next through the
31
+ assignation context and the current assignation helper
32
+
33
+ Returns
34
+ -------
35
+ The return value of tqdm.update
36
+ """
37
+ z = super().update(*args, **kwargs)
38
+ if self._assignationhelper:
39
+ if self.last_arkitekt_next_perc + 0.05 < self.last_print_n / self.total:
40
+ self.last_arkitekt_next_perc = self.last_print_n / self.total
41
+ self._assignationhelper.progress(int(self.last_arkitekt_next_perc * 100))
42
+
43
+ return z
arkitekt_next/utils.py ADDED
@@ -0,0 +1,38 @@
1
+ import os
2
+
3
+
4
+ def create_arkitekt_next_folder(with_cache: bool = True) -> str:
5
+ """Creates the .arkitekt_next folder in the current directory.
6
+
7
+ If the folder already exists, it does nothing.
8
+ It automatically creates a .gitignore file, and a .dockerignore file,
9
+ so that the ArkitektNext credential files are not added to git.
10
+
11
+ Parameters
12
+ ----------
13
+ with_cache : bool, optional
14
+ Should we create a cache dir?, by default True
15
+
16
+ Returns
17
+ -------
18
+ str
19
+ The path to the .arkitekt_next folder.
20
+ """
21
+ os.makedirs(".arkitekt_next", exist_ok=True)
22
+ if with_cache:
23
+ os.makedirs(".arkitekt_next/cache", exist_ok=True)
24
+
25
+ gitignore = os.path.join(".arkitekt_next", ".gitignore")
26
+ dockerignore = os.path.join(".arkitekt_next", ".dockerignore")
27
+ if not os.path.exists(gitignore):
28
+ with open(gitignore, "w") as f:
29
+ f.write(
30
+ "# Hiding ArkitektNext Credential files from git\n*.json\n*.temp\ncache/\nservers/"
31
+ )
32
+ if not os.path.exists(dockerignore):
33
+ with open(dockerignore, "w") as f:
34
+ f.write(
35
+ "# Hiding ArkitektNext Credential files from git\n*.json\n*.temp\ncache/\nservers/"
36
+ )
37
+
38
+ return os.path.abspath(".arkitekt_next")
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Johannes Roos <jhnnsrs@gmail.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,155 @@
1
+ Metadata-Version: 2.1
2
+ Name: arkitekt-next
3
+ Version: 0.7.8
4
+ Summary: client for the arkitekt_next platform
5
+ License: MIT
6
+ Author: jhnnsrs
7
+ Author-email: jhnnsrs@gmail.com
8
+ Requires-Python: >=3.8,<4.0
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.8
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Provides-Extra: all
17
+ Provides-Extra: cli
18
+ Requires-Dist: dokker (>=0.1.21)
19
+ Requires-Dist: fakts (>=0.5.0)
20
+ Requires-Dist: fluss-next (>=0.1.61) ; extra == "all"
21
+ Requires-Dist: herre (>=0.4.3)
22
+ Requires-Dist: kabinet (>=0.1.19) ; extra == "all"
23
+ Requires-Dist: koil (>=0.3.6)
24
+ Requires-Dist: mikro-next (>=0.1.6) ; (python_version >= "3.10" and python_version < "4.0") and (extra == "all")
25
+ Requires-Dist: reaktion-next (>=0.1.50) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "all")
26
+ Requires-Dist: rich-click (>=1.6.1) ; extra == "cli" or extra == "all"
27
+ Requires-Dist: semver (>=3.0.1) ; extra == "cli" or extra == "all"
28
+ Requires-Dist: turms (>=0.5.0) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "cli" or extra == "all")
29
+ Requires-Dist: watchfiles (>=0.18.1) ; extra == "cli" or extra == "all"
30
+ Description-Content-Type: text/markdown
31
+
32
+ # arkitekt_next
33
+
34
+ [![codecov](https://codecov.io/gh/jhnnsrs/arkitekt_next/branch/master/graph/badge.svg?token=UGXEA2THBV)](https://codecov.io/gh/jhnnsrs/arkitekt_next)
35
+ [![PyPI version](https://badge.fury.io/py/arkitekt_next.svg)](https://pypi.org/project/arkitekt_next/)
36
+ [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://pypi.org/project/arkitekt_next/)
37
+ ![Maintainer](https://img.shields.io/badge/maintainer-jhnnsrs-blue)
38
+ [![PyPI pyversions](https://img.shields.io/pypi/pyversions/arkitekt_next.svg)](https://pypi.python.org/pypi/arkitekt_next/)
39
+ [![PyPI status](https://img.shields.io/pypi/status/arkitekt_next.svg)](https://pypi.python.org/pypi/arkitekt_next/)
40
+
41
+ streaming analysis for mikroscopy
42
+
43
+ ## Idea
44
+
45
+ arkitekt_next is the python client for the arkitekt_next platform. It allows you to utilize the full extent of the platform from your python code.
46
+ To understand the idea behind arkitekt_next, you need to understand the idea behind the arkitekt_next platform.
47
+ (More on this in the [documentation](https://arkitekt_next.live))
48
+
49
+ ## Features
50
+
51
+ - Host your python functions and make them to your team
52
+ - Use functions from your team in your code
53
+ - Interact with and store data in a secure and scalable way on the platform
54
+ - Use the platform as a central storage for your data
55
+
56
+ ## Install
57
+
58
+ ```bash
59
+ pip install arkitekt_next[all]
60
+ ```
61
+
62
+ 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
63
+
64
+
65
+ arkitekt_next is relying heavily on asyncio patters and therfore supports python 3.8 and above. It also relies on the pydantic stack for serialization.
66
+
67
+
68
+ ## App
69
+
70
+ You can use the cli to create python based apps for the arkitekt_next platform, profiting from a battery of features like easy GUI creation based on
71
+ type annotations, orchestration of real-time (in memoery) workflows, data hosting, easy packaging and distribution in docker containers, etc...
72
+
73
+ To get started create a directory and run
74
+
75
+ ```bash
76
+ arkitekt_next init
77
+ ```
78
+
79
+ Which will lead you throught an app creation process.
80
+ Apps can simply registered functions, through the register decorator
81
+
82
+ ```python
83
+ from arkitekt_next import register
84
+
85
+ @register()
86
+ def rpc_function(x: int, name: str) -> str
87
+ """
88
+ A rpc function that we can
89
+ simple call from anywhere
90
+
91
+ ""
92
+
93
+ ```
94
+
95
+ And then connected to a local or remote server by running
96
+
97
+ Run example:
98
+
99
+ ```bash
100
+ arkitekt_next run dev
101
+ ```
102
+
103
+
104
+ For more details on how to create an app follow the tutorials on https://arkitekt_next.live.
105
+
106
+ ## Usage with complex Datastructures
107
+
108
+ ArkitektNext takes care of serialization and documentation of standard python datastructures
109
+
110
+ - str
111
+ - bool
112
+ - int
113
+ - float
114
+ - Enum
115
+ - Dict
116
+ - List
117
+
118
+ To increase performance and reduce latency it is not possible to serialize complex python objects like numpy arrays into the messages. These are best transformed into immutable objects on a centrally accessible storage and then only the reference is passed.
119
+
120
+ ArkitektNext does not impose any rules on how you handle this storage (see mikro for ideas), it provides however a simple api.
121
+
122
+ ```python
123
+
124
+ class ComplexStructure:
125
+ id: str # A reference for this structure on central storage
126
+
127
+ async def shrink(self):
128
+ return self.id
129
+
130
+ @classmethod
131
+ async def expand(cls, value):
132
+ return cls.load_from_server(value)
133
+
134
+
135
+ ```
136
+
137
+ by providing two functions:
138
+
139
+ - shrink
140
+ - expand
141
+
142
+ You can now use this Structure with simple typehints and arkitekt_next will automaticall shrink (serialize) and expand (deserialize) the structure on calling.
143
+
144
+ ```python
145
+
146
+ def complex_call(x: ComplexStrucuture) -> int:
147
+ return x.max()
148
+
149
+ ```
150
+
151
+
152
+
153
+ Check out the arkitekt_next [documentation](https://arkitekt_next.live) for usage of this libary
154
+
155
+
@@ -0,0 +1,119 @@
1
+ arkitekt_next/__init__.py,sha256=KFM_HlnIQWX7hXSZnYba3rdmZrsBE69K58rwh8ewxoM,970
2
+ arkitekt_next/apps/__init__.py,sha256=cx_5Y-RkJFkSQJH-hUEC_L3eW1jU2E426c4e6_csIyM,42
3
+ arkitekt_next/apps/easy.py,sha256=8eu-0DCWit2Ok4SPw_QCyriBZHPnLc1oK9qxPUxnElg,3135
4
+ arkitekt_next/apps/next.py,sha256=9Huduux5_11qvn3vTATsiGcZt_iJf_PstKIKK4QPyoE,1050
5
+ arkitekt_next/apps/qt.py,sha256=4g2CXX4bnJQENJjz1yDQrAYcRTRghHZ11RwSG3WHyi4,3234
6
+ arkitekt_next/apps/service/__init__.py,sha256=p4iRwiFBKRq2lfbjDBzUR_GMhPWjkjWTa01ohuKz_L4,157
7
+ arkitekt_next/apps/service/fakts.py,sha256=VH7cds-eK3RsxS2eFHOfRUEbxjc1Z82rKxwQOdso05c,2632
8
+ arkitekt_next/apps/service/fakts_next.py,sha256=vRXzdcGdx2tqZKmXKIjiVeHn372V6KdmZ7Gj3Q-48oo,2444
9
+ arkitekt_next/apps/service/fakts_qt.py,sha256=AY1HkfVFN7DjAr4Zh596iGdH8V0reDMoyH-JCxl8XZE,2825
10
+ arkitekt_next/apps/service/fluss_next.py,sha256=Wr5nmaK0CU4vyadZuZoh6l5cnwG04aNkO9XY1Q9QPrw,1124
11
+ arkitekt_next/apps/service/grant_registry.py,sha256=3om8YoVf_HFWEJbpjQCin1Zvm8Sz3yw-mGvLKDDgbrc,851
12
+ arkitekt_next/apps/service/herre.py,sha256=DuIhyEujgXrYzhG2tKTMUgHkTScfg6UCX5eCV1vUPYI,760
13
+ arkitekt_next/apps/service/herre_qt.py,sha256=GntkKHmwcQqEFab02SWwdd3xONo0fLVGEPQMKH6tlCE,1628
14
+ arkitekt_next/apps/service/kabinet.py,sha256=OocZHxcw8kGrziz1LlF1cmWTs2JNXyHR_qYRx57suaE,1146
15
+ arkitekt_next/apps/service/mikro_next.py,sha256=j612M2wo4EdaKp13qx_8eqQsB6wc5nE_Lhn28BpvnzA,2441
16
+ arkitekt_next/apps/service/rekuest_next.py,sha256=RiNN5rzDbq15AgyVpv-3tjkSO6TeO2xsuEvGTYmB2UQ,1816
17
+ arkitekt_next/apps/service/unlok_next.py,sha256=u3cjFr1i6kHjH881oj_NBmY1CgnM0uqdDbicq-SilPM,1124
18
+ arkitekt_next/apps/types.py,sha256=F65TJDPac1eILpgX1WE35i84F_RwD6qeIihu9JbE3EI,1178
19
+ arkitekt_next/builders.py,sha256=FXYSpP12P7yLhDj9YRVMEtxRASr78U2Wyjy8vMzWhyQ,8830
20
+ arkitekt_next/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ arkitekt_next/cli/commands/call/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ arkitekt_next/cli/commands/call/local.py,sha256=YDummInGSb6lGKGiTlMSuXbE-Sz6dbfng6CsZaChCew,3338
23
+ arkitekt_next/cli/commands/call/main.py,sha256=SdxlvSgA17-M_gwItiFU_srbh-CNdHpCTv_DkpOLojE,500
24
+ arkitekt_next/cli/commands/call/remote.py,sha256=N2L74SMa9ZntSS0ILY9QtiPj0gGyuNPsjamf-UfmAtM,2248
25
+ arkitekt_next/cli/commands/gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ arkitekt_next/cli/commands/gen/compile.py,sha256=lygqut1fIiopa4MbBXkv1X-45g6UBxDxpGP7R6h-b7U,1445
27
+ arkitekt_next/cli/commands/gen/init.py,sha256=JV9x27Iy80QlmigXd7TSG2YIBHPGJBdEQ_HPenQaYZU,4092
28
+ arkitekt_next/cli/commands/gen/main.py,sha256=_BdkcsXoWY5_3gmboq2e0pGYM6lAnwqQgBAyxmvdf6U,947
29
+ arkitekt_next/cli/commands/gen/watch.py,sha256=nf4QckdTJOWxvKoeNRwvC4rXQ4xhIx8LCDDJzpPhcY8,1189
30
+ arkitekt_next/cli/commands/init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ arkitekt_next/cli/commands/init/main.py,sha256=1ACgJn3RH5UIbsaX3KxKmwwvw9bkmJJgSWG4JDHPfow,5936
32
+ arkitekt_next/cli/commands/inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ arkitekt_next/cli/commands/inspect/definitions.py,sha256=IZO4g-lsTBTeOk3E5ybPtmBueagDpeCa7oOITrRv-M8,1335
34
+ arkitekt_next/cli/commands/inspect/main.py,sha256=hYAhhotYacT1SpQropE0w4u10u4eUcjA3dxk6aZ6QB0,545
35
+ arkitekt_next/cli/commands/inspect/variables.py,sha256=LonDlbS2qH1v-jD6RfEhTv-mxmgeBMKqD3oO2iDJRjE,2698
36
+ arkitekt_next/cli/commands/manifest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ arkitekt_next/cli/commands/manifest/inspect.py,sha256=eqYYt3M8XiYCJONarikVVa8uK7Hh7DfB2b3fOOQ3dlk,1370
38
+ arkitekt_next/cli/commands/manifest/main.py,sha256=mOjsZSQeYorm38u4mg3IHsK_h8fTVprYYtvKpbG93V8,662
39
+ arkitekt_next/cli/commands/manifest/scopes.py,sha256=sw0HRy8GliEcmx3Sh6cPRpBkf1vxAGJwLgIO63ZB_t4,4879
40
+ arkitekt_next/cli/commands/manifest/version.py,sha256=tA-a35QlcobUwoPsgGLQL9_D0E-HZvawsfO4l7DoX-Y,4832
41
+ arkitekt_next/cli/commands/manifest/wizard.py,sha256=a8rIHgtmKuw-L4E3eO3kXwXv0TM2pN4Lq75y2QKXmcA,2498
42
+ arkitekt_next/cli/commands/port/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
+ arkitekt_next/cli/commands/port/build.py,sha256=K8-3Hu8OVsooMlNWPdSGRFEtNFsszmIKutH92TfdEDk,7078
44
+ arkitekt_next/cli/commands/port/init.py,sha256=NNEb5SITLNM1TBED0moyBhE-JGkkr0cvNh33A4OGnfc,2525
45
+ arkitekt_next/cli/commands/port/main.py,sha256=mPjnW9UT90SNb5opv7Ladpt3NFvN-AJ8csS0AVuLfPM,987
46
+ arkitekt_next/cli/commands/port/publish.py,sha256=zbjnoMliowje1nEuKFolFX5pZA2D_DzLjXlSxBbD88k,3596
47
+ arkitekt_next/cli/commands/port/stage.py,sha256=eK_FgqTbGvaphmOH6jnllYWCkv0pI3qJaEnfWHoBvYs,1985
48
+ arkitekt_next/cli/commands/port/utils.py,sha256=x27qR7ksCuvASHkEAEaDuUAeuzjrZpzIp1W4lOF5f_0,1644
49
+ arkitekt_next/cli/commands/port/validate.py,sha256=MSSuwjdJKDtXB6rkjRmG-PPK6cVwTcOuCRpgPDQ0uVg,2490
50
+ arkitekt_next/cli/commands/port/wizard.py,sha256=vbW-EAitypCl1HRjsgHRuwc18hQgOzAU8C__6SWuAzQ,9148
51
+ arkitekt_next/cli/commands/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ arkitekt_next/cli/commands/run/dev.py,sha256=HI1djLeaRPn0hXviT0RaQIE0enZQ0zqsbkdV0Sg1do0,9888
53
+ arkitekt_next/cli/commands/run/main.py,sha256=0bNO3DqwbZ4ddMsDWbCGmlPD6Cs3Jlg4yh2-zilsEbY,552
54
+ arkitekt_next/cli/commands/run/prod.py,sha256=MQDh2A5QOXHrAvOjS2Zb9j6-rKAzVjfDNn9SfKVXRzc,1473
55
+ arkitekt_next/cli/commands/run/utils.py,sha256=zH-MNNEfKgyOYQvwP6Ph8KUHVqH48fw3ZI6tiQ9unwQ,325
56
+ arkitekt_next/cli/commands/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ arkitekt_next/cli/commands/server/down.py,sha256=POFe9OtzhSdlwWY7JBakGqVDZvQ9LrsiFDRSik2Hn2U,1490
58
+ arkitekt_next/cli/commands/server/init.py,sha256=HHiYz9ZNQ1NzI9gw-eLOXapilps1xZvSOX7wX8dCwtY,1660
59
+ arkitekt_next/cli/commands/server/inspect.py,sha256=3K9OVMJmzD_HJH6e2OJZSIbyVG5QWttQxefvx265n7M,1493
60
+ arkitekt_next/cli/commands/server/main.py,sha256=z9Z2C4BSNZcrXbRsr6x4LqWSXnj6_u9Hgp7WXosfWZ8,945
61
+ arkitekt_next/cli/commands/server/open.py,sha256=gvId-pnmsCrKDCCS8KZZoEkXoghtLHbyjPbLtCJCZeg,1711
62
+ arkitekt_next/cli/commands/server/remove.py,sha256=ObL7FZPlZJCFpcd577vF91BSmjono3tZdVaip6I3itk,1522
63
+ arkitekt_next/cli/commands/server/stop.py,sha256=fPiF5zBa4zOEdchMIQqi88gsNAEhq6Wlunmxz-Y7b0w,1436
64
+ arkitekt_next/cli/commands/server/up.py,sha256=QfXEN_IDYrL4kFJ-DZ4BGK3eMfkW4YpoSkr9bGpzFjM,1757
65
+ arkitekt_next/cli/commands/server/utils.py,sha256=GhUiJx2eXSBMdIfukEaZAetAtkfy_dZG4yb2L6vxTio,846
66
+ arkitekt_next/cli/configs/base.yaml,sha256=9IJ7B4Fq3swHsLUbKn1MlhhzJKqDI1wnR5PAG_VKs8A,30097
67
+ arkitekt_next/cli/constants.py,sha256=-PdzHYOgxoE9ss1uFCzQ9S4pGkEbyp8EFn1xzQ5-dfw,1520
68
+ arkitekt_next/cli/dockerfiles/vanilla.dockerfile,sha256=YtZqjFUUjp3-NSeB3OowElPJv8ltP7hL3iP5P1YHMPc,167
69
+ arkitekt_next/cli/errors.py,sha256=zLTjaCbun6qM2nTldjyZd-DvykqKn5A3Gn80uYdx7Vc,93
70
+ arkitekt_next/cli/inspect.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
71
+ arkitekt_next/cli/io.py,sha256=Jp8F8vYPIcAow7IAh_tgWFrsM9KRaElipAH7wj26lIo,6899
72
+ arkitekt_next/cli/main.py,sha256=AR75ck7wTAbuNMdpfoBwJeFjqKE1BDfaxbdHeQG3SaI,2317
73
+ arkitekt_next/cli/options.py,sha256=TeHFBuoTdhI908DY2D7gw5pDFkuyCXUFgEr01TZn42I,3625
74
+ arkitekt_next/cli/schemas/fluss.schema.graphql,sha256=MqrSpOxtWO9kWFCoUn9ySBPhIH3XozFiqrQl2zjEbiQ,35803
75
+ arkitekt_next/cli/schemas/gucker.schema.graphql,sha256=r_KL-MoFRCGUobbtcBLCnpmFcali2A12TguynqQgmN4,152947
76
+ arkitekt_next/cli/schemas/kabinet.schema.graphql,sha256=-N7igrfzFphjA2qV-abW59k8jtdJh1py4008W0MkqrM,9915
77
+ arkitekt_next/cli/schemas/kluster.schema.graphql,sha256=QaKGITjzqdeJIqTXLs4SZTZPE5_bX3cLW10LU7ukzSA,2306
78
+ arkitekt_next/cli/schemas/konviktion.schema.graphql,sha256=uw9uyImpFHp57hMfKvD8a_Pgicfk60wpeWwz21qJa1Y,1242
79
+ arkitekt_next/cli/schemas/kuay.schema.graphql,sha256=GqXwoiEhe-F-38OSs0RlEbtHQxAaayY-SgC7kmFjoE0,6377
80
+ arkitekt_next/cli/schemas/mikro.schema.graphql,sha256=r_KL-MoFRCGUobbtcBLCnpmFcali2A12TguynqQgmN4,152947
81
+ arkitekt_next/cli/schemas/mikro_next.schema.graphql,sha256=oxeslvK0Rg2cwZN7-XHs99r-qYzCk583hqnTnqMWrYo,33071
82
+ arkitekt_next/cli/schemas/napari.schema.graphql,sha256=r_KL-MoFRCGUobbtcBLCnpmFcali2A12TguynqQgmN4,152947
83
+ arkitekt_next/cli/schemas/omero_ark.schema.graphql,sha256=g2odBPF2IMRDr7KxgJVwa4vGtB2rGLy0K49pJ6LBSKs,1841
84
+ arkitekt_next/cli/schemas/port.schema.graphql,sha256=GqXwoiEhe-F-38OSs0RlEbtHQxAaayY-SgC7kmFjoE0,6377
85
+ arkitekt_next/cli/schemas/rekuest.schema.graphql,sha256=9STewo6BBz0feHm0WYFWjn7jexYDD1CK3ZAJUoTFjyo,64225
86
+ arkitekt_next/cli/schemas/rekuest_next.schema.graphql,sha256=LcYtS9AjTRlSBPllSImPN9hN-Pcr3Z2F3IJRn00eT5c,20177
87
+ arkitekt_next/cli/schemas/unlok.schema.graphql,sha256=fXR846snIBIqkuQ-PlYnSkQjkFVmM6NVZLlcMKgbr8E,18216
88
+ arkitekt_next/cli/templates/filter.py,sha256=KI0tEuHiHVCMD5PppZo2ABUPhwYXtctLJ_Mx0FSDFb4,655
89
+ arkitekt_next/cli/templates/simple.py,sha256=RQwk8STfIY74-nb9YzkOWX2-SYY3jcGqHYgJonOZIVU,1176
90
+ arkitekt_next/cli/texts.py,sha256=csMefyCnwnvDnriTy0VJ4L24VFIbcXoC9ayopP4RxIc,697
91
+ arkitekt_next/cli/types.py,sha256=0VUfoqnEZaf-LzWmBDYwa6IAG4FTx6Edj1cBOiHzF50,10409
92
+ arkitekt_next/cli/ui.py,sha256=OF8Dy3MORxjZ8HMB4CF7RsVuTeIKiCeGItjnO3fRVk4,3256
93
+ arkitekt_next/cli/utils.py,sha256=rl1hfQIVzepLHPN_ZWuvfVH-IIVqcSfiFGyfNtL1XCo,445
94
+ arkitekt_next/cli/validators.py,sha256=XkLrOrDzBJwcG1keTawa_NJPt3QIBhb5KjepeH4N1KA,719
95
+ arkitekt_next/cli/vars.py,sha256=ev7cKDSPoik8hU9A_ohNpjRZX4FT1GYJaBoGLnxCKjU,982
96
+ arkitekt_next/cli/versions/v1.yaml,sha256=rv2-F6FQbTZi_H6pSE_csdICdtKBObDdoo_asOFi43Y,12
97
+ arkitekt_next/constants.py,sha256=ziQ_WxvGPZtVQtRwKutlBNBfUVtpQu51abOaGaQ2OtU,107
98
+ arkitekt_next/model.py,sha256=6KYwSqWhI9CFhZIgip5ZddWleNBENGCAW2-ajtcOZSg,4476
99
+ arkitekt_next/qt/__init__.py,sha256=RakCaAzTcKiZDOG0N_ubjnR-W6zUySXazs57tifs0mw,325
100
+ arkitekt_next/qt/assets/dark/gear.png,sha256=nYl1JZhcpwd7s5FgG2g-1RpkK7TH_QQRqJMmK6r0BpU,6296
101
+ arkitekt_next/qt/assets/dark/green pulse.gif,sha256=cUd2F3Qlvjb7SnsU-LjGgeLTa8KoPgu3C-LNrixIQds,105386
102
+ arkitekt_next/qt/assets/dark/orange pulse.gif,sha256=0gDvrRed0mzZZPHB4tP6vptx7myUCAa_hEVGdjRhNy8,94769
103
+ arkitekt_next/qt/assets/dark/pink pulse.gif,sha256=rxd6ZTHSIG9JZuuHhi3jiSB_JYFBZpy7OWUeZETlhQ4,107513
104
+ arkitekt_next/qt/assets/dark/red pulse.gif,sha256=U7WLbZvSl5e-Ob5RmawtlC0Rh9VVHxkjDbGjj7NYVUo,108749
105
+ arkitekt_next/qt/assets/light/gear.png,sha256=LYBp7J9CnlSTauxm6hs_SELyBNOrFF81HdErhkuGsyQ,10710
106
+ arkitekt_next/qt/assets/light/green pulse.gif,sha256=cUd2F3Qlvjb7SnsU-LjGgeLTa8KoPgu3C-LNrixIQds,105386
107
+ arkitekt_next/qt/assets/light/orange pulse.gif,sha256=0gDvrRed0mzZZPHB4tP6vptx7myUCAa_hEVGdjRhNy8,94769
108
+ arkitekt_next/qt/assets/light/pink pulse.gif,sha256=rxd6ZTHSIG9JZuuHhi3jiSB_JYFBZpy7OWUeZETlhQ4,107513
109
+ arkitekt_next/qt/assets/light/red pulse.gif,sha256=U7WLbZvSl5e-Ob5RmawtlC0Rh9VVHxkjDbGjj7NYVUo,108749
110
+ arkitekt_next/qt/magic_bar.py,sha256=xo4_ReVYtpCwnRFTMBYvBEcVvY3JnNFbqYYY_-ez6vM,18242
111
+ arkitekt_next/qt/utils.py,sha256=MgBPtPmCSBkIuATov3UgREESwxAHh77lWNNxyE7Qs48,773
112
+ arkitekt_next/service_registry.py,sha256=i-PWzEYla2LUyWKBSiJ23Dw9W0Ytue49WpuMeJ46ad8,1314
113
+ arkitekt_next/tqdm.py,sha256=DlrxPluHao7TvW-Cqgt0UokRS-fM2_ZNiWiddqvCqCc,1488
114
+ arkitekt_next/utils.py,sha256=WA3AtqQFcz2h-yOadAsQkkr0qKJmKcGMi2aclxaVI_o,1278
115
+ arkitekt_next-0.7.8.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
116
+ arkitekt_next-0.7.8.dist-info/METADATA,sha256=Kw3xu_LzCTnuIbGRROOwS7mWPnkOUnyyvAmfUPu1-Xk,5217
117
+ arkitekt_next-0.7.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
118
+ arkitekt_next-0.7.8.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
119
+ arkitekt_next-0.7.8.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 1.9.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ arkitekt-next=arkitekt_next.cli.main:cli
3
+