arkitekt-next 0.8.60__py3-none-any.whl → 0.8.62__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 (40) hide show
  1. arkitekt_next/__blok__.py +3 -0
  2. arkitekt_next/__init__.py +5 -1
  3. arkitekt_next/base_models.py +2 -4
  4. arkitekt_next/bloks/arkitekt.py +15 -13
  5. arkitekt_next/bloks/base.py +6 -4
  6. arkitekt_next/bloks/gateway.py +10 -6
  7. arkitekt_next/bloks/kraph.py +4 -1
  8. arkitekt_next/bloks/local_sign.py +261 -0
  9. arkitekt_next/bloks/lok.py +5 -3
  10. arkitekt_next/bloks/ollama.py +1 -4
  11. arkitekt_next/bloks/orkestrator.py +4 -6
  12. arkitekt_next/bloks/self_signed.py +1 -8
  13. arkitekt_next/bloks/services/certer.py +2 -2
  14. arkitekt_next/cli/commands/gen/init.py +2 -2
  15. arkitekt_next/cli/commands/inspect/templates.py +0 -2
  16. arkitekt_next/cli/commands/kabinet/build.py +28 -9
  17. arkitekt_next/cli/commands/kabinet/init.py +1 -1
  18. arkitekt_next/cli/commands/kabinet/io.py +206 -0
  19. arkitekt_next/cli/commands/kabinet/main.py +27 -15
  20. arkitekt_next/cli/commands/kabinet/publish.py +2 -2
  21. arkitekt_next/cli/commands/kabinet/stage.py +1 -1
  22. arkitekt_next/cli/commands/kabinet/types.py +139 -0
  23. arkitekt_next/cli/commands/kabinet/utils.py +1 -1
  24. arkitekt_next/cli/commands/kabinet/validate.py +1 -1
  25. arkitekt_next/cli/commands/manifest/inspect.py +2 -7
  26. arkitekt_next/cli/commands/manifest/main.py +0 -2
  27. arkitekt_next/cli/io.py +0 -192
  28. arkitekt_next/cli/types.py +2 -147
  29. arkitekt_next/cli/ui.py +1 -1
  30. arkitekt_next/init_registry.py +2 -11
  31. arkitekt_next/qt/builders.py +2 -3
  32. arkitekt_next/service_registry.py +5 -87
  33. arkitekt_next/utils.py +3 -2
  34. {arkitekt_next-0.8.60.dist-info → arkitekt_next-0.8.62.dist-info}/METADATA +19 -9
  35. {arkitekt_next-0.8.60.dist-info → arkitekt_next-0.8.62.dist-info}/RECORD +38 -37
  36. arkitekt_next/cli/commands/kabinet/wizard.py +0 -329
  37. arkitekt_next/cli/commands/manifest/wizard.py +0 -94
  38. {arkitekt_next-0.8.60.dist-info → arkitekt_next-0.8.62.dist-info}/LICENSE +0 -0
  39. {arkitekt_next-0.8.60.dist-info → arkitekt_next-0.8.62.dist-info}/WHEEL +0 -0
  40. {arkitekt_next-0.8.60.dist-info → arkitekt_next-0.8.62.dist-info}/entry_points.txt +0 -0
@@ -1,5 +1,5 @@
1
- arkitekt_next/__blok__.py,sha256=Xo2cTi1yYMKzXtl3i58rgRoRb4DJ9EB_iBCVvKmYX14,1785
2
- arkitekt_next/__init__.py,sha256=CBk_M-lSOJeaX7F4Lf5HPFWv6vx20Fvgs-kIGJGUpSk,2177
1
+ arkitekt_next/__blok__.py,sha256=sYZ4tjur8C9oKEAMxofidL14k9w27UXp-EycM7CEwZI,1868
2
+ arkitekt_next/__init__.py,sha256=rb6kMy7FhWNeyaKOfDSyP1kg6uuvEzBdq6B2vYPCBdg,2194
3
3
  arkitekt_next/apps/__init__.py,sha256=cx_5Y-RkJFkSQJH-hUEC_L3eW1jU2E426c4e6_csIyM,42
4
4
  arkitekt_next/apps/service/__init__.py,sha256=p4iRwiFBKRq2lfbjDBzUR_GMhPWjkjWTa01ohuKz_L4,157
5
5
  arkitekt_next/apps/service/fakts_next.py,sha256=Wy37fjsEP2yjKZPtMlLilNlkO0olFX_7P5IIr6g3jkE,2900
@@ -8,33 +8,34 @@ arkitekt_next/apps/service/grant_registry.py,sha256=h0jRKBd9EAXiVV6aHVtzNAlm1yiW
8
8
  arkitekt_next/apps/service/herre.py,sha256=y3Urlja0A8ZbrnVNnU6UuVMUtlOzIeatj51d0hLZriM,844
9
9
  arkitekt_next/apps/service/herre_qt.py,sha256=42APOZl0SnX0FWl6K-TC9CcZUO-BSXMXyH6B31A0y3U,1679
10
10
  arkitekt_next/apps/types.py,sha256=Ri6-Cby8bh9JOvMsOLpDrbeVB9zp3L28D951vM2juT0,1459
11
- arkitekt_next/base_models.py,sha256=0jPEuvDPGwEgiuQcj5VN-8Ua_Tz3LhHAJq7t85-1inI,4116
11
+ arkitekt_next/base_models.py,sha256=n5btMFibkfprKss4TPx94qIS4GDKJ49lUjZkUAMjThQ,4130
12
12
  arkitekt_next/bloks/__init__.py,sha256=_4EeR63d6avQUWLG4mK2n_FvogTPQ_Jx6f2_RvNbWeA,29
13
13
  arkitekt_next/bloks/admin.py,sha256=mRTfjIR1vsfY1ghgjWLjKYFAOh1pGCmQ_IEt2QOR3og,1353
14
- arkitekt_next/bloks/arkitekt.py,sha256=Yq70-0oHmM0bJPeD6YNj6sIqmDHxbnV2p5uuBJSJPNk,1562
15
- arkitekt_next/bloks/base.py,sha256=Z4JS9Cyk7ba-ZH8UlibptkOTck5WZT7WhBkFW8GmAns,6364
14
+ arkitekt_next/bloks/arkitekt.py,sha256=RNDSSD-WKaCHO-ct4dKxwtX5J5eQD4167FOWhDH9DuM,1616
15
+ arkitekt_next/bloks/base.py,sha256=jEeaCFKwJS4EUmHHKDbLSk0YV4v19530UhXP7lRAFhg,6470
16
16
  arkitekt_next/bloks/config.py,sha256=YMQChT4SCdc_vvvbkAj_qGyA--6JVEHds7MalqUp3lw,1269
17
17
  arkitekt_next/bloks/fluss.py,sha256=8nf5Z2k-tA3CNRQeIqh7-aaFe5my_NN2lAhbyYbwKEs,1074
18
- arkitekt_next/bloks/gateway.py,sha256=NCOTW41rk2-eJcvRu_D1MYshtnTA3UwpB_vcsCPuoJQ,6681
18
+ arkitekt_next/bloks/gateway.py,sha256=WBnqw-tfqYWNRJtyvTKxKbicR-Foe_jreMYNPQOARjk,6706
19
19
  arkitekt_next/bloks/internal_docker.py,sha256=4onnegXts8zOaXEgg4kw8zaqlACRNwvdknJeFHipGtQ,2829
20
20
  arkitekt_next/bloks/kabinet.py,sha256=NKP6tpr8XcVvvFifX-lxgBPkP0P810kJ4URv25jf2z8,1489
21
- arkitekt_next/bloks/kraph.py,sha256=ySLOPbny_N2-M_ZaErCAStP0WtpEwM_4hszOsmFz4vw,1281
21
+ arkitekt_next/bloks/kraph.py,sha256=vbDkLNC5X644pwM_rpUpTNl4uwGpswFm0iNsyMPWY6c,1292
22
22
  arkitekt_next/bloks/livekit.py,sha256=Wf4JM236ZwuWC5qHnZkGDPq_FZftKLi1nDWbkwRoVso,2611
23
- arkitekt_next/bloks/lok.py,sha256=0oP4anMrzys39_LbyJlpcSPwX0xwyx_THYaMSQSLRf8,11737
23
+ arkitekt_next/bloks/local_sign.py,sha256=UwqfPV3Z38CI2T8N1uJAX-CRlrRxzkdGfKDukPVHMJ4,8030
24
+ arkitekt_next/bloks/lok.py,sha256=hA3xiHpw-P-CeW0QU0w_3AyWYctOFtXULK02UzOL1U4,11815
24
25
  arkitekt_next/bloks/mikro.py,sha256=bnI9lWd6FXyOViog0Xko3_yhKOt7AAdB_PA4N0XkXAU,1291
25
26
  arkitekt_next/bloks/minio.py,sha256=n7DP_O49fBsMw4IWmHIspyNmc52l52q8fujcbAOgN7Q,5593
26
27
  arkitekt_next/bloks/mount.py,sha256=IEod6LDuV5NNKvvRJ3Xgo8l2caVZnNmJYDgGGBUB3Cg,1088
27
28
  arkitekt_next/bloks/namegen.py,sha256=W9xco2d3eJLdL2NYpTFmqw2d4s3vCpBREIFNm38gMYY,1087
28
- arkitekt_next/bloks/ollama.py,sha256=F2j_gSyYonZ5QOuiA1UG0Kzi5vKLqiYx-UOj3NMafLQ,2528
29
- arkitekt_next/bloks/orkestrator.py,sha256=PIO06zzTHcMu2aXh9F68uTiwbbBzAJKpIq3TiXychPQ,3568
29
+ arkitekt_next/bloks/ollama.py,sha256=c19otqBm41c-unqlj9C6VDBPPid1w9AdPyTw1u2nhyw,2526
30
+ arkitekt_next/bloks/orkestrator.py,sha256=pjLvcvQ11XF94BORi8uaGMGMBvLu4BiE-WnCi59MH6k,3537
30
31
  arkitekt_next/bloks/postgres.py,sha256=UbQnbedEUf_VKAfavz1sCGvAa-ZweDwrUeEj76lo_L8,4276
31
32
  arkitekt_next/bloks/redis.py,sha256=A9scMZohACsk-k1LQZo-rTFTB_eq12dqL4zVZkKdKLQ,2274
32
33
  arkitekt_next/bloks/rekuest.py,sha256=mfBjFKNGDMd9t1Wqkxeu2ZxAvYyMpAvHRS30PdchYCQ,1056
33
34
  arkitekt_next/bloks/secret.py,sha256=06J9f6-o1NCE0ReakVOyA0KbmQ-xr2fCYQWKOc_z1QQ,1067
34
- arkitekt_next/bloks/self_signed.py,sha256=ALkjO4C_S5n5gTEkVTMrshlLCK9LGkaW2-aS41J7oiU,2473
35
+ arkitekt_next/bloks/self_signed.py,sha256=UIJEXRVHluC-QnrOXJGrjfwXQ7ozQwQkGQMZ6Gq-nBg,2459
35
36
  arkitekt_next/bloks/services/__init__.py,sha256=i9vGNd1lFBem3O2PblTouRzFVQkdwOYoUmqqU43dIWQ,592
36
37
  arkitekt_next/bloks/services/admin.py,sha256=qeNa9KkFJk0DSNV-Ses-vkLjC3xHtvHnVHJ3w0DPKOA,463
37
- arkitekt_next/bloks/services/certer.py,sha256=BOeEXNhD1zb3rGB8VW8m9-LxZdFgHGk2PqTnbDVgP7M,446
38
+ arkitekt_next/bloks/services/certer.py,sha256=5KuWf6h7-8t2M3yvNJUfatR3J40Rnb7sIhLQC_ty9rw,439
38
39
  arkitekt_next/bloks/services/config.py,sha256=E0X-AweMxbbVQihqPuUEUzt9Y5J2DKY5sFX2efORtS0,378
39
40
  arkitekt_next/bloks/services/db.py,sha256=Lc8uL8xibz99-16YPxtB_ls6CP3dN_jCaOzJ9uZ8b_0,588
40
41
  arkitekt_next/bloks/services/gateway.py,sha256=X7ghhLXZ9hDQIMXMTkfBMcS9o9oc16y0C-b_3r3uwCo,847
@@ -57,7 +58,7 @@ arkitekt_next/cli/commands/call/main.py,sha256=SdxlvSgA17-M_gwItiFU_srbh-CNdHpCT
57
58
  arkitekt_next/cli/commands/call/remote.py,sha256=Id6t1nUdXmERx9wbutEhvryUMAM80_G4HVHkhYZosTE,2097
58
59
  arkitekt_next/cli/commands/gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
60
  arkitekt_next/cli/commands/gen/compile.py,sha256=lygqut1fIiopa4MbBXkv1X-45g6UBxDxpGP7R6h-b7U,1445
60
- arkitekt_next/cli/commands/gen/init.py,sha256=ravDnzElABfK8ZkB0P_mZBBciqgrNKJ_eTkVMsgqCDU,4911
61
+ arkitekt_next/cli/commands/gen/init.py,sha256=qAA1aTzqbrrnGNRU4XpXPE_FDu0pnJpG4aV5oVE5fWY,4917
61
62
  arkitekt_next/cli/commands/gen/main.py,sha256=_BdkcsXoWY5_3gmboq2e0pGYM6lAnwqQgBAyxmvdf6U,947
62
63
  arkitekt_next/cli/commands/gen/watch.py,sha256=nf4QckdTJOWxvKoeNRwvC4rXQ4xhIx8LCDDJzpPhcY8,1189
63
64
  arkitekt_next/cli/commands/init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -65,23 +66,23 @@ arkitekt_next/cli/commands/init/main.py,sha256=1ZbZDBECZRxlcnulycdS15s-uQ5ngx4xP
65
66
  arkitekt_next/cli/commands/inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
67
  arkitekt_next/cli/commands/inspect/main.py,sha256=Bu1vAZudkFCtjDnZAB8yQLDt-UKY9pJGhLBlEfDqtkw,626
67
68
  arkitekt_next/cli/commands/inspect/requirements.py,sha256=bLYaWddScW2_qQFCwRtCFUZNM3N-ZnS26ee9xXQAi14,1862
68
- arkitekt_next/cli/commands/inspect/templates.py,sha256=x5v0QkrwWOuMupyDAaItA_yFCpNRTF7EENQcj9kUxNI,2483
69
+ arkitekt_next/cli/commands/inspect/templates.py,sha256=SE3V4eK0NL81eIWsGdEDfDp76B542O8niW8lxh9t4Oc,2481
69
70
  arkitekt_next/cli/commands/inspect/variables.py,sha256=LonDlbS2qH1v-jD6RfEhTv-mxmgeBMKqD3oO2iDJRjE,2698
70
71
  arkitekt_next/cli/commands/kabinet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- arkitekt_next/cli/commands/kabinet/build.py,sha256=9-G-gdvgTj1uXDbaUNfV0g4AgmAkBslcQ_q_lukGpEY,9696
72
- arkitekt_next/cli/commands/kabinet/init.py,sha256=YcxXlMick7Xd2XUjmA9vyku0QDGACw1PEWpfJum42E8,3600
73
- arkitekt_next/cli/commands/kabinet/main.py,sha256=U5EWekRTsMZZ34abWFfwilhzrd-zZtpZbl8RsLN_bC8,1008
74
- arkitekt_next/cli/commands/kabinet/publish.py,sha256=pbQ3QNNwSnyq06EPWfcJc_LoP9VhKo2wGBuUtNPPlV0,3572
75
- arkitekt_next/cli/commands/kabinet/stage.py,sha256=waYUynP_WeD5j69BaComZIcwQn-AE_JN7jdpYBPlA98,2030
76
- arkitekt_next/cli/commands/kabinet/utils.py,sha256=a1lGmGwhiVxsxFDt19GddNwXmAwUAfclgTMe3ErA43c,1666
77
- arkitekt_next/cli/commands/kabinet/validate.py,sha256=MSSuwjdJKDtXB6rkjRmG-PPK6cVwTcOuCRpgPDQ0uVg,2490
78
- arkitekt_next/cli/commands/kabinet/wizard.py,sha256=vbW-EAitypCl1HRjsgHRuwc18hQgOzAU8C__6SWuAzQ,9148
72
+ arkitekt_next/cli/commands/kabinet/build.py,sha256=ntDM0bcjDLJI6KUC3IiCj8Y-cwQ8NcFr7Fz_qV-UQE8,9956
73
+ arkitekt_next/cli/commands/kabinet/init.py,sha256=otVakPcD6bC-7VtmqiLWNZKi3BE9evtMVv0TOGRnaD4,3583
74
+ arkitekt_next/cli/commands/kabinet/io.py,sha256=0u7tCOgojuLIwtjW8pJQZcKvzsRq37mIWVuc4ZOQZlk,5556
75
+ arkitekt_next/cli/commands/kabinet/main.py,sha256=PFc8JGeSxbU8ZzxPlFDQp7--ogQyxL9sGQ4pA8XQmEo,1314
76
+ arkitekt_next/cli/commands/kabinet/publish.py,sha256=B22UKmJMkiC1GZl--Nxwm-AWpAYaZ0o0Wo4t1iTJQ2M,3538
77
+ arkitekt_next/cli/commands/kabinet/stage.py,sha256=kOkZ_GCkIzCEUmtc80u35hFwU4uOtfXODfhrPuHMaMk,2013
78
+ arkitekt_next/cli/commands/kabinet/types.py,sha256=PYQM8ca_5fpPg79T3ZYwKckE-5rJiJgevvxF5M4mivY,4024
79
+ arkitekt_next/cli/commands/kabinet/utils.py,sha256=5MFFy9pBBOGMs_ACoLcffclCUCmX8bsTjLnrvFHE2Q4,1649
80
+ arkitekt_next/cli/commands/kabinet/validate.py,sha256=9zeTb6yzjQpjk6FQq6ce38a8u_pH9gDg2mBqqp-Pqwg,2473
79
81
  arkitekt_next/cli/commands/manifest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
- arkitekt_next/cli/commands/manifest/inspect.py,sha256=eqYYt3M8XiYCJONarikVVa8uK7Hh7DfB2b3fOOQ3dlk,1370
81
- arkitekt_next/cli/commands/manifest/main.py,sha256=mOjsZSQeYorm38u4mg3IHsK_h8fTVprYYtvKpbG93V8,662
82
+ arkitekt_next/cli/commands/manifest/inspect.py,sha256=9EyApVrHiBtyPajYjIoZEzeSmuZb7Y796JjYeKjpJZ8,1189
83
+ arkitekt_next/cli/commands/manifest/main.py,sha256=b_kz8wPYF1eHv_9WmB9Gop8TlDUgfKU-ZzeO3IaOOJ8,596
82
84
  arkitekt_next/cli/commands/manifest/scopes.py,sha256=sw0HRy8GliEcmx3Sh6cPRpBkf1vxAGJwLgIO63ZB_t4,4879
83
85
  arkitekt_next/cli/commands/manifest/version.py,sha256=3JdcXqiFeCvIaEpsMfeSKWU_uQehDkEawEpdSxWaKSA,4822
84
- arkitekt_next/cli/commands/manifest/wizard.py,sha256=a8rIHgtmKuw-L4E3eO3kXwXv0TM2pN4Lq75y2QKXmcA,2498
85
86
  arkitekt_next/cli/commands/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
87
  arkitekt_next/cli/commands/run/dev.py,sha256=_UY1VdYS7Kx2FifFHk4gqtz51vI8JWWpesmwUd1pMnY,10056
87
88
  arkitekt_next/cli/commands/run/main.py,sha256=0bNO3DqwbZ4ddMsDWbCGmlPD6Cs3Jlg4yh2-zilsEbY,552
@@ -92,7 +93,7 @@ arkitekt_next/cli/constants.py,sha256=ONXKA8LRxXQkOQ56ZElVMZSTiaIH1LE_ikmUUKem98
92
93
  arkitekt_next/cli/dockerfiles/vanilla.dockerfile,sha256=0ujdG22rZ6v2n5TMHNA4HR5f1PP9KJvAQORz-DGHBpo,184
93
94
  arkitekt_next/cli/errors.py,sha256=zLTjaCbun6qM2nTldjyZd-DvykqKn5A3Gn80uYdx7Vc,93
94
95
  arkitekt_next/cli/inspect.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
95
- arkitekt_next/cli/io.py,sha256=7ZQzlXFTuXxo5jJUkx1qihSby_GPMyNOzzbmpqg0DhU,7178
96
+ arkitekt_next/cli/io.py,sha256=g5vj5W5k96t7WYcmWHL9CwPfUJbBl-JDX8huGqxWMYs,1889
96
97
  arkitekt_next/cli/main.py,sha256=Ua7sq_OfC491F6r6zNs_oEiR4jVOsZwxLpX0ZXR0Jk0,2227
97
98
  arkitekt_next/cli/options.py,sha256=LwhEdjZutH_go568buS37L9Gn_roinrCC6BUu2sC3B0,3814
98
99
  arkitekt_next/cli/schemas/fluss.schema.graphql,sha256=MqrSpOxtWO9kWFCoUn9ySBPhIH3XozFiqrQl2zjEbiQ,35803
@@ -112,14 +113,14 @@ arkitekt_next/cli/schemas/unlok.schema.graphql,sha256=fXR846snIBIqkuQ-PlYnSkQjkF
112
113
  arkitekt_next/cli/templates/filter.py,sha256=mD2jdNEXrZNagC_8WtuTisGJrGIbJDSylCvh19cF49I,650
113
114
  arkitekt_next/cli/templates/simple.py,sha256=IbcThJ5LryXVFQUdzxfHQCtzSNxEQWTxbD__Ygxsp4M,1171
114
115
  arkitekt_next/cli/texts.py,sha256=sYK94BLCt_FWFtdgPDZuKgpINICGFcHQLqO74fxQkug,688
115
- arkitekt_next/cli/types.py,sha256=UzzdHRi2yNW0gDyPtMIdnK7pa-Rpy87kn9nTeBU-h2E,5214
116
- arkitekt_next/cli/ui.py,sha256=BR_AOsBIIHwojI5otBzT_560-ep5Dw1xAHKsO2zOOJQ,3493
116
+ arkitekt_next/cli/types.py,sha256=s5gRsiQISrf6D2RKJi7jCoaAjpa8wcml5X2r2ED4kl8,1236
117
+ arkitekt_next/cli/ui.py,sha256=kn362oYYJHEg7q2vebA-EmcYH9nBIfwryBBsERULqM4,3518
117
118
  arkitekt_next/cli/utils.py,sha256=rl1hfQIVzepLHPN_ZWuvfVH-IIVqcSfiFGyfNtL1XCo,445
118
119
  arkitekt_next/cli/validators.py,sha256=XkLrOrDzBJwcG1keTawa_NJPt3QIBhb5KjepeH4N1KA,719
119
120
  arkitekt_next/cli/vars.py,sha256=ev7cKDSPoik8hU9A_ohNpjRZX4FT1GYJaBoGLnxCKjU,982
120
121
  arkitekt_next/cli/versions/v1.yaml,sha256=rv2-F6FQbTZi_H6pSE_csdICdtKBObDdoo_asOFi43Y,12
121
122
  arkitekt_next/constants.py,sha256=sJkLlkH21REjbpiSHnXCiW0lWOwWT-2VqGvWlxjQePY,89
122
- arkitekt_next/init_registry.py,sha256=31E7FCYKMaf54otwFoIcEmyWvwL80XEvl7OSoRbg61k,4192
123
+ arkitekt_next/init_registry.py,sha256=Hb110Bd6pEnQUuJBpuyifQplvewVJZXSg-98YjAA8Js,4163
123
124
  arkitekt_next/qt/__init__.py,sha256=5tCCd-FA3sMN9Lo5JRUYUM6xgs2zxyHj5YDpdWYbR0w,471
124
125
  arkitekt_next/qt/assets/dark/gear.png,sha256=nYl1JZhcpwd7s5FgG2g-1RpkK7TH_QQRqJMmK6r0BpU,6296
125
126
  arkitekt_next/qt/assets/dark/green pulse.gif,sha256=cUd2F3Qlvjb7SnsU-LjGgeLTa8KoPgu3C-LNrixIQds,105386
@@ -131,15 +132,15 @@ arkitekt_next/qt/assets/light/green pulse.gif,sha256=cUd2F3Qlvjb7SnsU-LjGgeLTa8K
131
132
  arkitekt_next/qt/assets/light/orange pulse.gif,sha256=0gDvrRed0mzZZPHB4tP6vptx7myUCAa_hEVGdjRhNy8,94769
132
133
  arkitekt_next/qt/assets/light/pink pulse.gif,sha256=rxd6ZTHSIG9JZuuHhi3jiSB_JYFBZpy7OWUeZETlhQ4,107513
133
134
  arkitekt_next/qt/assets/light/red pulse.gif,sha256=U7WLbZvSl5e-Ob5RmawtlC0Rh9VVHxkjDbGjj7NYVUo,108749
134
- arkitekt_next/qt/builders.py,sha256=zQLn-mJJnfLHSDjfAJ7gfzv66cnQz_yNX9yKTEdapi4,9129
135
+ arkitekt_next/qt/builders.py,sha256=Xr1clQ9me4_7Dl4OoM_wcZ8SPzcfybb6y9tkYDOfSSY,9104
135
136
  arkitekt_next/qt/magic_bar.py,sha256=b3WS8vN9cwaDHzBMtiKpw2UQcZwO1dF0mCLbLffO-eo,17596
136
137
  arkitekt_next/qt/types.py,sha256=_oo3XCSvP_iMp1bdPRxOGRrmeyHnBKTQsf86q09irL4,4043
137
138
  arkitekt_next/qt/utils.py,sha256=MgBPtPmCSBkIuATov3UgREESwxAHh77lWNNxyE7Qs48,773
138
- arkitekt_next/service_registry.py,sha256=Enu88Ja7k0VBNMhNjibBqGxCiz6Qixfbvs4pUA-Mqp8,8094
139
+ arkitekt_next/service_registry.py,sha256=gMXyFftwuSoda9V13QEiNqFuwSBB2ss62dOjnXOetK0,4973
139
140
  arkitekt_next/tqdm.py,sha256=lQcJI5Q6Py7Gy88hOCiJujjPEEGd8G2k1mOVJJ6oYe8,1531
140
- arkitekt_next/utils.py,sha256=4e4zEQSA7FZou8M01xV8oPBG1JvJJ0ySDP_nm3E3pMA,2390
141
- arkitekt_next-0.8.60.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
142
- arkitekt_next-0.8.60.dist-info/METADATA,sha256=vItifcxJbntwr25nDV1BlRgZdnBmX2k8maE1zlg8-dg,6256
143
- arkitekt_next-0.8.60.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
144
- arkitekt_next-0.8.60.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
145
- arkitekt_next-0.8.60.dist-info/RECORD,,
141
+ arkitekt_next/utils.py,sha256=Cf7B1-E7_NgBnV2vxIIfZRStiCYPopQqNJFjJwU3Uog,2403
142
+ arkitekt_next-0.8.62.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
143
+ arkitekt_next-0.8.62.dist-info/METADATA,sha256=bsm_l0_Lh1CeA7VNeBkk_7quBo6NzpS1bBdueOXGTc4,6774
144
+ arkitekt_next-0.8.62.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
145
+ arkitekt_next-0.8.62.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
146
+ arkitekt_next-0.8.62.dist-info/RECORD,,
@@ -1,329 +0,0 @@
1
- from arkitekt_next.cli.types import Manifest, Packager
2
- from arkitekt_next.cli.vars import get_manifest
3
- import sys
4
- import rich_click as click
5
- from click import Context
6
- import subprocess
7
- from rich import get_console
8
-
9
- try:
10
- pass
11
- except ImportError as e:
12
- raise ImportError("Please install rekuest to use this feature") from e
13
-
14
-
15
- import os
16
-
17
-
18
- def get_base_prefix_compat() -> str:
19
- """Get base/real prefix, or sys.prefix if there is none."""
20
- return (
21
- getattr(sys, "base_prefix", None)
22
- or getattr(sys, "real_prefix", None)
23
- or sys.prefix
24
- )
25
-
26
-
27
- def in_virtualenv() -> bool:
28
- """Returns True if in a virtualenv, otherwise False."""
29
- return get_base_prefix_compat() != sys.prefix
30
-
31
-
32
- def pip_no_gpu(manifest: Manifest, python_version: str) -> str:
33
- """A function to generate a dockerfile for pip without gpu support
34
-
35
- Parameters
36
- ----------
37
- manifest : Manifest
38
- The manifest of the project
39
- python_version : str
40
- The python version to use
41
-
42
- Returns
43
- -------
44
- str
45
- The dockerfile
46
- """
47
- get_console().print("[blue]Setting up environment...[/blue]")
48
- if not in_virtualenv():
49
- click.confirm(
50
- "You are not in a virtual environment. Consider using a virtual environment. Do you want to continue?",
51
- abort=True,
52
- )
53
-
54
- if not os.path.exists(".requirements.txt") and click.confirm(
55
- "Do you want to freeze the dependencies the current interpreter?"
56
- ):
57
- subprocess.check_call("pip freeze > requirements.txt", shell=True)
58
-
59
- get_console().print("[blue]Generating Dockerfile...[/blue]")
60
-
61
- BASE_IMAGE = f"FROM python:{python_version}\n"
62
- PIP_APPENDIX = "# setup pip environment\nCOPY ./requirements.txt /tmp/requirements.txt\nRUN pip install /tmp/requirements.yml\n"
63
- WORKDIR_APPENDIX = "RUN mkdir /app \nWORKDIR /app"
64
-
65
- dockerfile = BASE_IMAGE
66
- if click.confirm(
67
- "Do you want to install a requirements.txt with the dependencies with pip?"
68
- ):
69
- dockerfile += PIP_APPENDIX
70
-
71
- if click.confirm("Do you want to use the current working directory as the app?"):
72
- dockerfile += WORKDIR_APPENDIX
73
-
74
- return dockerfile
75
-
76
-
77
- def poetry_no_gpu(manifest: Manifest, python_version: str) -> str:
78
- """A function to generate a dockerfile for pip without gpu support
79
-
80
- Parameters
81
- ----------
82
- manifest : Manifest
83
- The manifest of the project
84
- python_version : str
85
- The python version to use
86
-
87
- Returns
88
- -------
89
- str
90
- The dockerfile
91
- """
92
- get_console().print("[blue]Setting up environment...[/blue]")
93
- if not in_virtualenv():
94
- click.confirm(
95
- "You are not in a virtual environment. Consider using a virtual environment. Do you want to continue?",
96
- abort=True,
97
- )
98
-
99
- if click.confirm("Do you want to lock the current dependencies?"):
100
- subprocess.check_call("poetry lock", shell=True)
101
-
102
- get_console().print("[blue]Generating Dockerfile...[/blue]")
103
-
104
- BASE_IMAGE = f"FROM python:{python_version}\n"
105
- SETUP_POETRY = "# Install dependencies\nRUN pip install poetry rich\nENV PYTHONUNBUFFERED=1\n# Install Project files\nCOPY pyproject.toml /tmp\nCOPY poetry.lock /tmp\nRUN poetry config virtualenvs.create false\nWORKDIR /tmp\nRUN poetry install\n"
106
- WORKDIR_APPENDIX = "RUN mkdir /app\nCOPY . /app\nWORKDIR /app\n"
107
-
108
- dockerfile = BASE_IMAGE
109
- dockerfile += SETUP_POETRY
110
-
111
- if click.confirm("Do you want to use the current working directory as the app?"):
112
- dockerfile += WORKDIR_APPENDIX
113
-
114
- return dockerfile
115
-
116
-
117
- CONDA_GPU = """
118
- FROM jhnnsrs/tensorflow_conda_gpu:latest
119
-
120
- # setup conda virtual environment
121
- COPY ./requirements.yml /tmp/requirements.yml
122
- RUN conda env create --name camera-seg -f /tmp/requirements.yml
123
-
124
- RUN conda activate camera-seg
125
- """
126
-
127
-
128
- CONDA_NO_GPU = """
129
- FROM jhnnsrs/tensorflow_conda:latest
130
-
131
- # setup conda virtual environment
132
- COPY ./requirements.yml /tmp/requirements.yml
133
- RUN conda env create --name camera-seg -f /tmp/requirements.yml
134
-
135
- RUN conda activate camera-seg
136
- """
137
-
138
- BUILDERS = {
139
- "pip": {
140
- "gpu": None,
141
- "no-gpu": pip_no_gpu,
142
- },
143
- "conda": None,
144
- "poetry": {
145
- "gpu": None,
146
- "no-gpu": poetry_no_gpu,
147
- },
148
- }
149
-
150
-
151
- def build_dockerfile(
152
- manifest: Manifest, packager: Packager, gpu: bool, python_version: str
153
- ) -> str:
154
- """A function to build a dockerfile
155
-
156
- It delegates to the correct builder, based on the packager and gpu support
157
-
158
-
159
- Parameters
160
- ----------
161
- manifest : Manifest
162
- The manifest of the project
163
- packager : Packager
164
- The detected packager
165
- gpu : bool
166
- The detected gpu support
167
- python_version : str
168
- _description_
169
-
170
- Returns
171
- -------
172
- str
173
- The dockerfile
174
-
175
- Raises
176
- ------
177
- click.ClickException
178
- An exception if the packager is not supported
179
- """
180
-
181
- strategy = BUILDERS.get(packager, {})
182
-
183
- if not strategy:
184
- raise click.ClickException(
185
- f"Packager {packager} is not supported. Please create a issue on github and create your own Dockerfile for now."
186
- )
187
-
188
- builder = strategy.get(gpu and "gpu" or "no-gpu", None)
189
-
190
- if not builder:
191
- raise click.ClickException(
192
- f"Packager {packager} {gpu and 'with GPU Support'} is not supported. Please create a issue on github and create your own Dockerfile for now."
193
- )
194
-
195
- return builder(manifest, python_version)
196
-
197
-
198
- def docker_file_wizard(manifest: Manifest, auto: bool = True) -> str:
199
- """A wizard to generate a dockerfile
200
-
201
- Parameters
202
- ----------
203
- manifest : Manifest
204
- The manifest of the project
205
- auto : bool, optional
206
- Should we autodefault prompts to true, by default True
207
-
208
- Returns
209
- -------
210
- str
211
- The dockerfile
212
-
213
- ------
214
- ImportError
215
- If toml is not installed
216
- """
217
- python_version = (
218
- f"{ sys.version_info.major}.{ sys.version_info.minor}.{ sys.version_info.micro}"
219
- )
220
- python_version = (
221
- python_version
222
- if auto
223
- else click.prompt(
224
- "Which python version to do you want to use?", default=python_version
225
- )
226
- )
227
-
228
- packager = None
229
-
230
- gpu = "gpu" in manifest.requirements
231
-
232
- # loading environment
233
- # check if running in conda
234
- conda_env = os.environ.get("CONDA_DEFAULT_ENV")
235
- if conda_env:
236
- click.echo(f"Found running in conda environment {conda_env}")
237
-
238
- packager = Packager.CONDA
239
-
240
- # Check if pyproject.toml exists
241
- if os.path.exists("pyproject.toml"):
242
- # Check if poetry is installed
243
- try:
244
- import toml
245
- except ImportError as e:
246
- raise ImportError("Please install toml to use this feature") from e
247
-
248
- # Check if poetry is used
249
- pyproject = toml.load("pyproject.toml")
250
- if "tool" in pyproject and "poetry" in pyproject["tool"]:
251
- click.echo("Found poetry project")
252
- do = True if auto else click.confirm("Do you want to use poetry?")
253
- if do:
254
- packager = Packager.POETRY
255
-
256
- if not packager:
257
- click.echo(
258
- "No advanced packager found. Considering using poetry "
259
- "with a pyproject.toml or conda with a environment.yml"
260
- )
261
-
262
- if os.path.exists("requirements.txt"):
263
- click.prompt("Found requirements.txt file in current directory. Using it.")
264
-
265
- packager = Packager.PIP
266
-
267
- if not click.confirm(
268
- f"Would you like to generate Template Dockerfile: Using {packager} with Python {python_version} {'and' if gpu else 'without'} GPU support"
269
- ):
270
- raise click.Abort("Aborted")
271
-
272
- dockfile = build_dockerfile(
273
- manifest, packager, gpu=gpu, python_version=python_version
274
- )
275
-
276
- return dockfile
277
-
278
-
279
- def check_overwrite_dockerfile(ctx: Context, param: str, value: bool) -> bool:
280
- """A callback to check if the dockerfile should be overwritten
281
-
282
- Parameters
283
- ----------
284
- ctx : Context
285
- The context of the click command
286
- param : str
287
- The parameter name
288
- value : str
289
- The value of the parameter
290
-
291
- Returns
292
- -------
293
- bool
294
- Should we overwrite the dockerfile?
295
- """
296
-
297
- app_file = ctx.params["dockerfile"]
298
- if os.path.exists(app_file) and not value:
299
- should_overwrite = click.confirm(
300
- "Docker already exists. Do you want to overwrite?", abort=True
301
- )
302
- if should_overwrite:
303
- return True
304
- else:
305
- raise click.Abort()
306
-
307
- return value
308
-
309
-
310
- @click.command()
311
- @click.option("--dockerfile", help="The dockerfile to generate", default="Dockerfile")
312
- @click.option(
313
- "--overwrite-dockerfile",
314
- "-o",
315
- help="Should we overwrite the existing Dockerfile?",
316
- is_flag=True,
317
- default=False,
318
- callback=check_overwrite_dockerfile,
319
- )
320
- @click.pass_context
321
- def wizard(ctx: Context, dockerfile: str, overwrite_dockerfile: bool) -> None:
322
- """Runs the port wizard to generate a dockerfile to be used with port"""
323
-
324
- manifest = get_manifest(ctx)
325
-
326
- dockfile = docker_file_wizard(manifest)
327
-
328
- with open(dockerfile, "w") as file:
329
- file.write(dockfile)
@@ -1,94 +0,0 @@
1
- import os
2
- import rich_click as click
3
- from arkitekt_next.cli.types import Requirement, Framework
4
- from rich.table import Table
5
- from rich.panel import Panel
6
- from rich.console import Group
7
- from arkitekt_next.cli.vars import get_console
8
-
9
-
10
- def check_dl_frameworks():
11
- import site
12
- import sys
13
-
14
- site_packages = site.getsitepackages()
15
- site_packages.append(sys.prefix)
16
-
17
- frameworks = {
18
- "tensorflow": Framework.TENSORFLOW,
19
- "torch": Framework.PYTORCH,
20
- "torchvision": Framework.PYTORCH,
21
- "tensorflow-gpu": Framework.TENSORFLOW,
22
- "torch-gpu": Framework.PYTORCH,
23
- "torchvision-gpu": Framework.PYTORCH,
24
- }
25
-
26
- included_frameworks = set()
27
-
28
- for key, value in frameworks.items():
29
- for site_package in site_packages:
30
- if os.path.exists(os.path.join(site_package, key)):
31
- included_frameworks.add(value)
32
-
33
- return included_frameworks
34
-
35
-
36
- def inspect_requirements(automatic=False):
37
- """Inspect the requirements and
38
-
39
-
40
- return a list of requirements and reasons.
41
-
42
- Parameters
43
- ----------
44
- automatic : bool, optional
45
- Should we automically add all of the requirements, by default False
46
-
47
- Returns
48
- -------
49
- _type_
50
- _description_
51
- """
52
- requirements = []
53
- reasons = []
54
- frameworks = check_dl_frameworks()
55
- if frameworks:
56
- requirements.append(Requirement.GPU)
57
- reasons.append(
58
- "Deep learning framework detected ('{}')".format(", ".join(frameworks))
59
- )
60
-
61
- return requirements, reasons
62
-
63
-
64
- @click.command()
65
- @click.pass_context
66
- def wizard(ctx) -> None:
67
- """Inspect the current project for requirements
68
-
69
- Inspects the current project and provides a list of [i]suggest[/]ed requirements
70
- that should be added to the manifest. You should run this command in the same
71
- virtual environment as you are running your app, as it will detect the installed
72
- packages and provide a list of requirements that should be added to the manifest.
73
-
74
- """
75
-
76
- console = get_console(ctx)
77
- requirements, reasons = inspect_requirements()
78
-
79
- table = Table.grid()
80
- table.padding = (0, 4, 0, 0)
81
- table.add_column("Requirement")
82
- table.add_column("Reason")
83
-
84
- for item in zip(requirements, reasons):
85
- table.add_row(str(item[0].value), item[1])
86
-
87
- panel = Panel(
88
- Group("[bold green]Manifest[/]", table),
89
- title_align="center",
90
- border_style="green",
91
- style="white",
92
- )
93
-
94
- console.print(panel)