zrb 1.0.0a1__py3-none-any.whl → 1.0.0a3__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.
Files changed (156) hide show
  1. zrb/__init__.py +48 -39
  2. zrb/__main__.py +3 -3
  3. zrb/attr/type.py +2 -1
  4. zrb/builtin/__init__.py +40 -2
  5. zrb/builtin/base64.py +32 -0
  6. zrb/builtin/git.py +156 -0
  7. zrb/builtin/git_subtree.py +88 -0
  8. zrb/builtin/group.py +34 -0
  9. zrb/builtin/llm.py +31 -0
  10. zrb/builtin/md5.py +34 -0
  11. zrb/builtin/project/__init__.py +0 -0
  12. zrb/builtin/project/add/__init__.py +0 -0
  13. zrb/builtin/project/add/fastapp.py +72 -0
  14. zrb/builtin/project/add/fastapp_template/.gitignore +4 -0
  15. zrb/builtin/project/add/fastapp_template/README.md +7 -0
  16. zrb/builtin/project/add/fastapp_template/__init__.py +0 -0
  17. zrb/builtin/project/add/fastapp_template/_zrb/config.py +17 -0
  18. zrb/builtin/project/add/fastapp_template/_zrb/group.py +16 -0
  19. zrb/builtin/project/add/fastapp_template/_zrb/helper.py +97 -0
  20. zrb/builtin/project/add/fastapp_template/_zrb/main.py +132 -0
  21. zrb/builtin/project/add/fastapp_template/_zrb/venv_task.py +22 -0
  22. zrb/builtin/project/add/fastapp_template/common/__init__.py +0 -0
  23. zrb/builtin/project/add/fastapp_template/common/app.py +18 -0
  24. zrb/builtin/project/add/fastapp_template/common/db_engine.py +5 -0
  25. zrb/builtin/project/add/fastapp_template/common/db_repository.py +134 -0
  26. zrb/builtin/project/add/fastapp_template/common/error.py +8 -0
  27. zrb/builtin/project/add/fastapp_template/common/schema.py +5 -0
  28. zrb/builtin/project/add/fastapp_template/common/usecase.py +232 -0
  29. zrb/builtin/project/add/fastapp_template/config.py +29 -0
  30. zrb/builtin/project/add/fastapp_template/main.py +7 -0
  31. zrb/builtin/project/add/fastapp_template/migrate.py +3 -0
  32. zrb/builtin/project/add/fastapp_template/module/__init__.py +0 -0
  33. zrb/builtin/project/add/fastapp_template/module/auth/alembic.ini +117 -0
  34. zrb/builtin/project/add/fastapp_template/module/auth/client/api_client.py +7 -0
  35. zrb/builtin/project/add/fastapp_template/module/auth/client/base_client.py +27 -0
  36. zrb/builtin/project/add/fastapp_template/module/auth/client/direct_client.py +6 -0
  37. zrb/builtin/project/add/fastapp_template/module/auth/client/factory.py +9 -0
  38. zrb/builtin/project/add/fastapp_template/module/auth/migration/README +1 -0
  39. zrb/builtin/project/add/fastapp_template/module/auth/migration/env.py +108 -0
  40. zrb/builtin/project/add/fastapp_template/module/auth/migration/script.py.mako +26 -0
  41. zrb/builtin/project/add/fastapp_template/module/auth/migration/versions/3093c7336477_add_user_table.py +37 -0
  42. zrb/builtin/project/add/fastapp_template/module/auth/migration_metadata.py +6 -0
  43. zrb/builtin/project/add/fastapp_template/module/auth/route.py +22 -0
  44. zrb/builtin/project/add/fastapp_template/module/auth/service/__init__.py +0 -0
  45. zrb/builtin/project/add/fastapp_template/module/auth/service/user/__init__.py +0 -0
  46. zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/__init__.py +0 -0
  47. zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/db_repository.py +39 -0
  48. zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/factory.py +13 -0
  49. zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/repository.py +34 -0
  50. zrb/builtin/project/add/fastapp_template/module/auth/service/user/usecase.py +45 -0
  51. zrb/builtin/project/add/fastapp_template/module/gateway/alembic.ini +117 -0
  52. zrb/builtin/project/add/fastapp_template/module/gateway/migration/README +1 -0
  53. zrb/builtin/project/add/fastapp_template/module/gateway/migration/env.py +108 -0
  54. zrb/builtin/project/add/fastapp_template/module/gateway/migration/script.py.mako +26 -0
  55. zrb/builtin/project/add/fastapp_template/module/gateway/migration/versions/.gitkeep +0 -0
  56. zrb/builtin/project/add/fastapp_template/module/gateway/migration_metadata.py +3 -0
  57. zrb/builtin/project/add/fastapp_template/module/gateway/route.py +27 -0
  58. zrb/builtin/project/add/fastapp_template/requirements.txt +6 -0
  59. zrb/builtin/project/add/fastapp_template/schema/__init__.py +0 -0
  60. zrb/builtin/project/add/fastapp_template/schema/role.py +31 -0
  61. zrb/builtin/project/add/fastapp_template/schema/user.py +31 -0
  62. zrb/builtin/project/add/fastapp_template/template.env +2 -0
  63. zrb/builtin/project/create/__init__.py +0 -0
  64. zrb/builtin/project/create/create.py +41 -0
  65. zrb/builtin/project/create/project-template/README.md +3 -0
  66. zrb/builtin/project/create/project-template/zrb_init.py +7 -0
  67. zrb/builtin/python.py +11 -0
  68. zrb/builtin/shell/__init__.py +0 -5
  69. zrb/builtin/shell/autocomplete/__init__.py +0 -9
  70. zrb/builtin/shell/autocomplete/bash.py +5 -6
  71. zrb/builtin/shell/autocomplete/subcmd.py +7 -8
  72. zrb/builtin/shell/autocomplete/zsh.py +5 -6
  73. zrb/builtin/todo.py +186 -0
  74. zrb/callback/any_callback.py +1 -1
  75. zrb/callback/callback.py +5 -5
  76. zrb/cmd/cmd_val.py +2 -2
  77. zrb/config.py +4 -1
  78. zrb/content_transformer/any_content_transformer.py +1 -1
  79. zrb/content_transformer/content_transformer.py +2 -2
  80. zrb/context/any_context.py +5 -1
  81. zrb/context/any_shared_context.py +3 -3
  82. zrb/context/context.py +15 -9
  83. zrb/context/shared_context.py +9 -8
  84. zrb/env/__init__.py +0 -3
  85. zrb/env/any_env.py +2 -2
  86. zrb/env/env.py +4 -5
  87. zrb/env/env_file.py +4 -4
  88. zrb/env/env_map.py +4 -4
  89. zrb/group/__init__.py +0 -3
  90. zrb/group/any_group.py +3 -3
  91. zrb/group/group.py +7 -6
  92. zrb/input/any_input.py +1 -1
  93. zrb/input/base_input.py +4 -4
  94. zrb/input/bool_input.py +5 -5
  95. zrb/input/float_input.py +3 -3
  96. zrb/input/int_input.py +3 -3
  97. zrb/input/option_input.py +51 -0
  98. zrb/input/password_input.py +2 -2
  99. zrb/input/str_input.py +1 -1
  100. zrb/input/text_input.py +12 -10
  101. zrb/runner/cli.py +79 -44
  102. zrb/runner/web_app/group_info_ui/controller.py +7 -8
  103. zrb/runner/web_app/group_info_ui/view.html +2 -2
  104. zrb/runner/web_app/home_page/controller.py +7 -6
  105. zrb/runner/web_app/home_page/view.html +2 -2
  106. zrb/runner/web_app/task_ui/controller.py +13 -13
  107. zrb/runner/web_app/task_ui/partial/common-util.js +37 -0
  108. zrb/runner/web_app/task_ui/partial/main.js +9 -2
  109. zrb/runner/web_app/task_ui/partial/show-existing-session.js +20 -5
  110. zrb/runner/web_app/task_ui/partial/visualize-history.js +1 -41
  111. zrb/runner/web_app/task_ui/view.html +4 -2
  112. zrb/runner/web_server.py +137 -211
  113. zrb/runner/web_util.py +5 -35
  114. zrb/session/any_session.py +13 -7
  115. zrb/session/session.py +80 -41
  116. zrb/session_state_log/session_state_log.py +7 -5
  117. zrb/session_state_logger/any_session_state_logger.py +1 -1
  118. zrb/session_state_logger/default_session_state_logger.py +2 -2
  119. zrb/session_state_logger/file_session_state_logger.py +19 -27
  120. zrb/task/any_task.py +8 -3
  121. zrb/task/base_task.py +47 -33
  122. zrb/task/base_trigger.py +11 -12
  123. zrb/task/cmd_task.py +55 -43
  124. zrb/task/http_check.py +8 -8
  125. zrb/task/llm_task.py +160 -0
  126. zrb/task/make_task.py +9 -9
  127. zrb/task/rsync_task.py +7 -7
  128. zrb/task/scaffolder.py +14 -11
  129. zrb/task/scheduler.py +6 -7
  130. zrb/task/task.py +1 -1
  131. zrb/task/tcp_check.py +8 -8
  132. zrb/util/attr.py +19 -3
  133. zrb/util/cli/style.py +71 -2
  134. zrb/util/cli/subcommand.py +2 -2
  135. zrb/util/codemod/__init__.py +0 -0
  136. zrb/util/codemod/add_code_to_class.py +35 -0
  137. zrb/util/codemod/add_code_to_function.py +36 -0
  138. zrb/util/codemod/add_code_to_method.py +55 -0
  139. zrb/util/codemod/add_key_to_dict.py +51 -0
  140. zrb/util/codemod/add_param_to_function_call.py +39 -0
  141. zrb/util/codemod/add_property_to_class.py +55 -0
  142. zrb/util/git.py +156 -0
  143. zrb/util/git_subtree.py +94 -0
  144. zrb/util/group.py +2 -2
  145. zrb/util/llm/tool.py +63 -0
  146. zrb/util/string/conversion.py +7 -0
  147. zrb/util/todo.py +135 -0
  148. {zrb-1.0.0a1.dist-info → zrb-1.0.0a3.dist-info}/METADATA +11 -7
  149. zrb-1.0.0a3.dist-info/RECORD +194 -0
  150. zrb/builtin/shell/_group.py +0 -9
  151. zrb/builtin/shell/autocomplete/_group.py +0 -6
  152. zrb/runner/web_app/any_request_handler.py +0 -24
  153. zrb/runner/web_server.bak.py +0 -208
  154. zrb-1.0.0a1.dist-info/RECORD +0 -120
  155. {zrb-1.0.0a1.dist-info → zrb-1.0.0a3.dist-info}/WHEEL +0 -0
  156. {zrb-1.0.0a1.dist-info → zrb-1.0.0a3.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,194 @@
1
+ zrb/__init__.py,sha256=Bds-I0ml_IAJ8PccXvy3NInpmi3hfUKDv-GP0ZEQecE,2781
2
+ zrb/__main__.py,sha256=1OjiBTPCdoBDPTZwSVQ-mnNI9cXZ-71sD25ctHpztY4,280
3
+ zrb/attr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ zrb/attr/type.py,sha256=4TV5gPYMMrKh5V-yB6iRYKCbsXAH_AvGXMsjxKLHcUs,568
5
+ zrb/builtin/__init__.py,sha256=UUg9Bt5usQ-mcjFoEnLL1baze9IncKe-PAjTNVMDhTc,1276
6
+ zrb/builtin/base64.py,sha256=lYA8CU-BXUKUFZ17JvyuBCinByK8SvxXRypZAIDRfoQ,898
7
+ zrb/builtin/git.py,sha256=m3uFadPTQvnwH4hxZVoU52znY5G3OST0-Xh_GplN0Ms,4351
8
+ zrb/builtin/git_subtree.py,sha256=5SndE5zdjBGERJjOg30W5pIvti3dlGakAFvY6NXXSmE,2603
9
+ zrb/builtin/group.py,sha256=FQnBUlHN2JFtVXTBQj0FYJDMMC-BJXoj74NFlsARwNU,1415
10
+ zrb/builtin/llm.py,sha256=PYnFSzvkPc9AlASfTG8U3m4peExA3SW09nWdjYQlLcs,968
11
+ zrb/builtin/md5.py,sha256=8gLL_V9dRBnwX-p0BhPhs0DChcbs1zwR52Y8lwH6X_c,925
12
+ zrb/builtin/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ zrb/builtin/project/add/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ zrb/builtin/project/add/fastapp.py,sha256=NsUycl9OMKHEXd52c0owoZlaXAYri_SjGei_LsIKypk,2336
15
+ zrb/builtin/project/add/fastapp_template/.gitignore,sha256=1BMFpr_M5OyTs-weCZZlVlf85sWikzdbvmKu86YD7G0,28
16
+ zrb/builtin/project/add/fastapp_template/README.md,sha256=MAo7ZFbg7LLiAfQbXcippMgjJ2-VXMKtiTDEZ3I4AAg,221
17
+ zrb/builtin/project/add/fastapp_template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ zrb/builtin/project/add/fastapp_template/_zrb/config.py,sha256=UyfX4XeecKo5goVGjFzWaQN-AZL_FriwHkI5x5btgG0,536
19
+ zrb/builtin/project/add/fastapp_template/_zrb/group.py,sha256=fXrIk8TRwiX5aQ-FQW6xSOo2uDfm6Ef7IXkGVBKDXgw,487
20
+ zrb/builtin/project/add/fastapp_template/_zrb/helper.py,sha256=2lxr2J94WixZgOC2431BPltHpqAEON5l3auYX0UL3Rg,2857
21
+ zrb/builtin/project/add/fastapp_template/_zrb/main.py,sha256=V2WbwGs6hKCXeoE2JlUTaA4r3sh7TBDZxr-NvZ2kDUc,4114
22
+ zrb/builtin/project/add/fastapp_template/_zrb/venv_task.py,sha256=hJaPGXeAjljA-sDq5RYF35diKFQLGY8sp81DHPo8bYU,571
23
+ zrb/builtin/project/add/fastapp_template/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ zrb/builtin/project/add/fastapp_template/common/app.py,sha256=GX3_HVcpT2KvnETTslffUzWzyVoOCpaQGGjsTNobL0I,474
25
+ zrb/builtin/project/add/fastapp_template/common/db_engine.py,sha256=8uDn6eLloVnw58Z2gA77-K8cWE0G6DGzDVEvyIqt41M,189
26
+ zrb/builtin/project/add/fastapp_template/common/db_repository.py,sha256=tyE5ZKapKtRrjbAww2kG8eSXGhfREas0vtwd3XjD37k,6023
27
+ zrb/builtin/project/add/fastapp_template/common/error.py,sha256=hgRvoCH3C7t_iZuLThiqJVs20zUasQWbH_8jDceF8nk,243
28
+ zrb/builtin/project/add/fastapp_template/common/schema.py,sha256=dbRryeP5u7ObGX3GjF9ZID00yXffOp-AxyXu8oVJP0I,82
29
+ zrb/builtin/project/add/fastapp_template/common/usecase.py,sha256=j-FBqrFAAfFbfTN8jAIctwXOIFf75S7T8gn9iLmBsC8,9275
30
+ zrb/builtin/project/add/fastapp_template/config.py,sha256=R_InkY0f2tMNgtoDlc1JuobrGwhvITsetRpWC223npo,933
31
+ zrb/builtin/project/add/fastapp_template/main.py,sha256=npRXgrPmAN32rjbykKP--Lth3PGKoaj51wTVjcl0k-w,223
32
+ zrb/builtin/project/add/fastapp_template/migrate.py,sha256=bpIKOHZ0sV3sJrUznhKt72tKXe-Uoq9dJ7f2Uh7E0g8,92
33
+ zrb/builtin/project/add/fastapp_template/module/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ zrb/builtin/project/add/fastapp_template/module/auth/alembic.ini,sha256=mgQyBAIwdkZZJWLu_FQWPx1FkyaARCNp6-rLqSVvMbA,3723
35
+ zrb/builtin/project/add/fastapp_template/module/auth/client/api_client.py,sha256=rsfS8_2FjSpZrqYEr8Jxu6VgJbIXso1USRyPDuTp-dY,296
36
+ zrb/builtin/project/add/fastapp_template/module/auth/client/base_client.py,sha256=sczw_a8fgxypgBmXwEU4YJkvYxqEE0ueVdbzrncfOAc,697
37
+ zrb/builtin/project/add/fastapp_template/module/auth/client/direct_client.py,sha256=RJ57_1EK4jG6fPOQ2sHAjfAOe47Ill-ovG5cFfZV3T8,222
38
+ zrb/builtin/project/add/fastapp_template/module/auth/client/factory.py,sha256=UoWSTOiYMQHGPfERyebKtKLKU30d5G95M3sfBFYuLIs,414
39
+ zrb/builtin/project/add/fastapp_template/module/auth/migration/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
40
+ zrb/builtin/project/add/fastapp_template/module/auth/migration/env.py,sha256=66zA_MPR6CCEe3yYKDibtv4eRZx4p6ZX-8waFxmzQZE,3489
41
+ zrb/builtin/project/add/fastapp_template/module/auth/migration/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
42
+ zrb/builtin/project/add/fastapp_template/module/auth/migration/versions/3093c7336477_add_user_table.py,sha256=j4tkh9NaTKNMefcy1dUdgRI5CzydUidli7i0Q6Ap-7Q,1021
43
+ zrb/builtin/project/add/fastapp_template/module/auth/migration_metadata.py,sha256=ONHEUZn4EDxKKiOt0UD9_8g7-XujRaXX0zU_PsjHZ0c,162
44
+ zrb/builtin/project/add/fastapp_template/module/auth/route.py,sha256=peU-HfXeyTRRNXJYhNhwwEkHE7_PTc_DxW7z5CVq8mA,793
45
+ zrb/builtin/project/add/fastapp_template/module/auth/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ zrb/builtin/project/add/fastapp_template/module/auth/service/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/db_repository.py,sha256=lIPvHj5I09U8A0hjyTHSaO-sE7ruGugQb74NhmtL1VM,1513
49
+ zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/factory.py,sha256=45S_u8yyTx__DzAq_5ioMeQr6r_K91n1bTEAczovvDE,459
50
+ zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/repository.py,sha256=vq_1EtjC3Oosu0V9NVhzSLeazFI4PaH3na83XyQz5Wk,849
51
+ zrb/builtin/project/add/fastapp_template/module/auth/service/user/usecase.py,sha256=12EneEK0vj24KO8WVdC_7MiUa76xcKSptOW7Y4x86w4,1624
52
+ zrb/builtin/project/add/fastapp_template/module/gateway/alembic.ini,sha256=mgQyBAIwdkZZJWLu_FQWPx1FkyaARCNp6-rLqSVvMbA,3723
53
+ zrb/builtin/project/add/fastapp_template/module/gateway/migration/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
54
+ zrb/builtin/project/add/fastapp_template/module/gateway/migration/env.py,sha256=q7KtNXDlHgO8DATx--CesiUHDcDM-oYtCyw75E7ILvs,3495
55
+ zrb/builtin/project/add/fastapp_template/module/gateway/migration/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
56
+ zrb/builtin/project/add/fastapp_template/module/gateway/migration/versions/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ zrb/builtin/project/add/fastapp_template/module/gateway/migration_metadata.py,sha256=NbIb5ncy6x5RrFD2TZMDwxBK_wDTyJEIvieMRmNpf9M,55
58
+ zrb/builtin/project/add/fastapp_template/module/gateway/route.py,sha256=pClO2mBmiDMps3PJEk75icnbak-nrPAt6eN-1WlC9QA,1176
59
+ zrb/builtin/project/add/fastapp_template/requirements.txt,sha256=J5qXx0sBagP-u-pdXsDnkPg66Gg-0ty4Mvz0WZXLAZY,108
60
+ zrb/builtin/project/add/fastapp_template/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
+ zrb/builtin/project/add/fastapp_template/schema/role.py,sha256=tbpF67NsX3K7WNsxtx-3b0ClRnOo7pkTxdNs5UEn8oo,581
62
+ zrb/builtin/project/add/fastapp_template/schema/user.py,sha256=5yiBVTuf9FcU7i_nM4sRRFztMhXCg0W1YAjnVlPgVRE,556
63
+ zrb/builtin/project/add/fastapp_template/template.env,sha256=OZeV5cn9I7Wm6yJakyQ4lq5wVqGHuShYc_t3LqQK1Xk,55
64
+ zrb/builtin/project/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ zrb/builtin/project/create/create.py,sha256=AY-Yje7otYXiwS99-baQBFeWW90ee43zEj5Q-Omlo6k,1161
66
+ zrb/builtin/project/create/project-template/README.md,sha256=BHeWF_txdTDzKewWdWfGhO3YOTiW8E3YwTMnd0T1LVA,39
67
+ zrb/builtin/project/create/project-template/zrb_init.py,sha256=cbPl2xZbr1LXBGd296yCvfullzmryG5nTZ8mcBmu_vU,89
68
+ zrb/builtin/python.py,sha256=herHFZl5wHsMFcqHhpisg9Ql3pQXqoCuTTwzNUTXzkw,281
69
+ zrb/builtin/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ zrb/builtin/shell/autocomplete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ zrb/builtin/shell/autocomplete/bash.py,sha256=-7YDVV7txgJH9mAYSYN0jmvUEeDIzWFvVNY-cY0myF8,1181
72
+ zrb/builtin/shell/autocomplete/subcmd.py,sha256=WZI6cGWJcn80zSyxOHG7sCMO3Ucix3mZf4xm_xyB_Y0,606
73
+ zrb/builtin/shell/autocomplete/zsh.py,sha256=9hlq0Wt3fhRz326mAQTypEd4_4lZdrbBx_3A-Ti3mvw,1022
74
+ zrb/builtin/todo.py,sha256=_jcXtU5wIX_O2L8gOdItqEQTj7yDFq6JXMGB4L5lgzE,5872
75
+ zrb/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ zrb/callback/any_callback.py,sha256=Yhdv5UWHAZSVzj5K2JdxcVQx8x8VX8aZJEivj3NTfZc,247
77
+ zrb/callback/callback.py,sha256=IQ7r9EnXYHHcNXKBJAk4WFqCqj7WDvflAuCyu5y-27I,849
78
+ zrb/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ zrb/cmd/cmd_result.py,sha256=L8bQJzWCpcYexIxHBNsXj2pT3BtLmWex0iJSMkvimOA,597
80
+ zrb/cmd/cmd_val.py,sha256=LGuE85zQt0KSjpmW7bwIE5dnfIq-ULB8V2CDAiQ-SFk,960
81
+ zrb/config.py,sha256=XMJEin-Y0bbcZodnnNOHEzsP6nD05y2rHfDa_vt8h7o,2465
82
+ zrb/content_transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
+ zrb/content_transformer/any_content_transformer.py,sha256=3XHM6ZdsJFXxRD7YlUkv0Gn7-mexsH8c8zdHt3C0x8k,741
84
+ zrb/content_transformer/content_transformer.py,sha256=8luyLZZneBIBAMgGZvydy0TTjhI-TWFgEiQbuCxCAbk,1640
85
+ zrb/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
+ zrb/context/any_context.py,sha256=KZy6NtX9cg7r9FCY-wHMTx5RNoDqH5077Rjv56Wdp4M,6245
87
+ zrb/context/any_shared_context.py,sha256=p1i9af_CUDz5Mf1h1kBZMAa2AEhf17I3O5IgAcjRLoY,1768
88
+ zrb/context/context.py,sha256=au1PLgAkx1wg5BudjxNfY_UbcGaZ1zzfHKSm3fNZ7tk,6246
89
+ zrb/context/shared_context.py,sha256=47Tnnor1ttpwpe_N07rMNM1jgIYPY9abMe1Q5igkMtE,2735
90
+ zrb/dot_dict/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
+ zrb/dot_dict/dot_dict.py,sha256=ubw_x8I7AOJ59xxtFVJ00VGmq_IYdZP3mUhNlO4nEK0,556
92
+ zrb/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ zrb/env/any_env.py,sha256=_Xd56VO09mPeogkWcZ7H8mQkWU7dmZP7ImKfxPfvlLQ,211
94
+ zrb/env/env.py,sha256=zT-xj0l5G_lp_ginV_InuBr5qTqZMcGaMKE_p5FoqlU,1061
95
+ zrb/env/env_file.py,sha256=dccsR_cjXp1Q_qz692YPaZSny3Xa049V5NAZ-WLDDEQ,746
96
+ zrb/env/env_map.py,sha256=CKMmXUbuvf6h2rgFWj-WvW_xLZNgG3TtWdfrqHDe4qk,1253
97
+ zrb/group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
+ zrb/group/any_group.py,sha256=1rNcsi5eu_86JAx_6Jy46SK4BTeppcb89MORynJd-4o,1115
99
+ zrb/group/group.py,sha256=KVaBZQ9Evihm84JCg5ZayWMbbA6iNTUiLmMgCk4OTcc,1862
100
+ zrb/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
+ zrb/input/any_input.py,sha256=07KgoPusxLMOwBHRjiImL955J33qC-24qGf_3My6fCE,701
102
+ zrb/input/base_input.py,sha256=zW2X2H-s4snu_xthgHwEsbBlqDwFbSKMxt4F1PaZW7w,2572
103
+ zrb/input/bool_input.py,sha256=Pgr34bpVpXkR3rrxnF_rsST-yGv_XvCWra9z9589Iyo,1383
104
+ zrb/input/float_input.py,sha256=YOPxMq6iOQXc0C3fS1k03fBSzToPV-gK5IFeuyMtlmQ,1004
105
+ zrb/input/int_input.py,sha256=DmzgGjaxgq3uLUtjI8VVvYDAwol3lu2InPBcltR_BLE,1005
106
+ zrb/input/option_input.py,sha256=KE2gJqxYT0I1M60KQf9eJ14xOscBla42FxUWdw3UvsQ,1940
107
+ zrb/input/password_input.py,sha256=SNZZv3YCfX5MAgVSiM69IMdRyH4Kd6QovXEBC48HVHA,1312
108
+ zrb/input/str_input.py,sha256=NevZHX9rf1g8eMatPyy-kUX3DglrVAQpzvVpKAzf7bA,81
109
+ zrb/input/text_input.py,sha256=te86xFpzIZnWb9xOeKHykNKTbY3pe1CdoaRCKr7UUQM,3054
110
+ zrb/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
+ zrb/runner/cli.py,sha256=bEdtpaWrDE5hQSRk6pQKQ0qcArzVTp8YvUav9U9R5f0,6969
112
+ zrb/runner/web_app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
+ zrb/runner/web_app/group_info_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
+ zrb/runner/web_app/group_info_ui/controller.py,sha256=a-wql4Labw5uYqfhyZ8Dsr1_NWfaP2MF6hO2wxs6Eg4,2827
115
+ zrb/runner/web_app/group_info_ui/partial/group_info.html,sha256=njcPd6_imhPiUy3eGqtDpY_oX2R9nEh2dJQsh5PAl3M,35
116
+ zrb/runner/web_app/group_info_ui/partial/group_li.html,sha256=n9d_EBEMUg1rGmNhkYloCwc1jHmwovw3ScxEB_fNL-w,61
117
+ zrb/runner/web_app/group_info_ui/partial/task_info.html,sha256=dKHHuLIXi37XBbq0Xv2mYFcmJ3oAmz5vH1yKgpunfdE,34
118
+ zrb/runner/web_app/group_info_ui/partial/task_li.html,sha256=x5Pqa_iN0IyUvzojseGUrHm2Y-xUeO8OFb7Zagui2g0,62
119
+ zrb/runner/web_app/group_info_ui/view.html,sha256=7yIMx0yxSsmdmwPvXkm8tLgbmw7iqW068xzfFROmh9Y,836
120
+ zrb/runner/web_app/home_page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
+ zrb/runner/web_app/home_page/controller.py,sha256=id-h4tW1YqfEMiXyj53UPxMrvB3jHkeIAaoOZCGUXVw,2242
122
+ zrb/runner/web_app/home_page/partial/group_info.html,sha256=njcPd6_imhPiUy3eGqtDpY_oX2R9nEh2dJQsh5PAl3M,35
123
+ zrb/runner/web_app/home_page/partial/group_li.html,sha256=gHF-RP8LG2ur8_mo1JwPXAZWvPM8BevAsdYrsv0uN6U,60
124
+ zrb/runner/web_app/home_page/partial/task_info.html,sha256=dKHHuLIXi37XBbq0Xv2mYFcmJ3oAmz5vH1yKgpunfdE,34
125
+ zrb/runner/web_app/home_page/partial/task_li.html,sha256=m-fs4VhbX27fZKgxBA0_Gv_Utntq5aaXD4sFk3zNMlk,61
126
+ zrb/runner/web_app/home_page/view.html,sha256=RuYx2V52_kTzb4Fkjpc2H97ZpSvlSB8ElbMng2uMDUI,606
127
+ zrb/runner/web_app/static/favicon-32x32.png,sha256=yu9AIU4k_qD4YHpul6XwJgOxIbmu0thv9ymm2QOsrAk,1456
128
+ zrb/runner/web_app/static/pico.min.css,sha256=3V_VWRr9ge4h3MEXrYXAFNw_HxncLXt9EB6grMKSdMI,82194
129
+ zrb/runner/web_app/task_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
+ zrb/runner/web_app/task_ui/controller.py,sha256=l7d41waA4vhBHJt1A2TRoH-krA7KxnZj9Qi9GpiuvGc,2477
131
+ zrb/runner/web_app/task_ui/partial/common-util.js,sha256=Un5HxlFMzNa16UBJZEWvEldFJaZpt6O3Qddd9Zlw0Io,931
132
+ zrb/runner/web_app/task_ui/partial/input.html,sha256=DDOCdHfwrU8ZF1SSNb0KDaQzbhzn-gipEGaa_ZH5k9I,154
133
+ zrb/runner/web_app/task_ui/partial/main.js,sha256=3rjahRpypoQ6U2FwDTg21Zx7qt9zfbgzSxk6b6mNOQY,6514
134
+ zrb/runner/web_app/task_ui/partial/show-existing-session.js,sha256=o5J-O5poWMIL1ujBXparwA4YalFuGXyA8S_wFw8obsM,3637
135
+ zrb/runner/web_app/task_ui/partial/visualize-history.js,sha256=xKFmE-eXy9PXTWXhG_aQZ15DWStSGRrA8xzHntO-rmY,3916
136
+ zrb/runner/web_app/task_ui/view.html,sha256=SARL-Dt03ar8IT9RJt7ULJLsjRm5u8K_F4VFwQwhxAs,2668
137
+ zrb/runner/web_server.py,sha256=gYZAVG_UaJ6XvlXkjHLLZwjsxOj50RdJO4y_6IpDP9w,6171
138
+ zrb/runner/web_util.py,sha256=FBMnS7qMp31ogm0pCZBObNjrlopIwzYM7UuZjCX1n8Q,428
139
+ zrb/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
+ zrb/session/any_session.py,sha256=x57mS15E-AfUjdVxwOWEzCBjW32zjer7WoeBw0guoDc,5266
141
+ zrb/session/session.py,sha256=s3rIcpddCAW79tuAcCNKuEWsHvgl-gwhL5usYeT8TQ8,9763
142
+ zrb/session_state_log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
+ zrb/session_state_log/session_state_log.py,sha256=VVghDMU72PbrvnzQ7MJuc-KTJ5P5fX0FYuCh3Rlwd9M,709
144
+ zrb/session_state_logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
+ zrb/session_state_logger/any_session_state_logger.py,sha256=W_G1fCw9ZVj4LRTplTpBZlXR-wNueGtc26jF5Gzmh74,611
146
+ zrb/session_state_logger/default_session_state_logger.py,sha256=w_cAaNUg1ZmJk-ge1kh3xtag3SApC3ZdB3VbxUvU5Ro,197
147
+ zrb/session_state_logger/file_session_state_logger.py,sha256=0lMtx7Othu4-jhL_iDHFbZWF_5HX84StU134QNCVgeQ,3753
148
+ zrb/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
+ zrb/task/any_task.py,sha256=QCuFCDXmfzvS09SWN1uFGUHheJlkKkii5oZDjO3s9tA,3896
150
+ zrb/task/base_task.py,sha256=pXFhZ0aJNdGXBBnOLSNiAXQ9MCRIpuqjB-Yfn_t8MB8,16293
151
+ zrb/task/base_trigger.py,sha256=milE5BNeIeq8jGCP38qTfstSvrc0CkSnO2sV-vlhzsM,4491
152
+ zrb/task/cmd_task.py,sha256=Aw1zCwe5Cv6A96QmfJA1pfDV5zd1J-exXl5e-ONL33Y,10431
153
+ zrb/task/http_check.py,sha256=I3x1uDfVnJgf1TnEPbJ-tjMuv-ABb2niKBDW0-Gidw8,2486
154
+ zrb/task/llm_task.py,sha256=ormrfEYPNOcfZ4Qv-4pqrRYhp0UHfCN8w7qVXwUyEPc,6318
155
+ zrb/task/make_task.py,sha256=ldXRfe3rA8utJrEPjWrie-_tg6NM2G8sFnZ0UNqzT08,2179
156
+ zrb/task/rsync_task.py,sha256=bmCZz9MdmdWVt8OtouaP0YqMrdnOqWBfdNECujgmC18,6377
157
+ zrb/task/scaffolder.py,sha256=hND89i-E3uAf-HWxFq6VTqHtlWP-1wObC7CiV-a0cIg,6250
158
+ zrb/task/scheduler.py,sha256=kggRClk_RrAa5fAHfkqM6c-e2tUQiFSeyeLuFT26UZ4,3047
159
+ zrb/task/task.py,sha256=KCrCaWYOQQvv1RJsYtHDeo9RBFmlXQ28oKyEFU4Q7pA,73
160
+ zrb/task/tcp_check.py,sha256=XrKQ_lWYa4QhXkfC7reYpFrzbHS13hrvA8TJrMPowMM,2462
161
+ zrb/task_status/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
+ zrb/task_status/task_status.py,sha256=aRygkj0DKrOYWgz2eF5wNmYcpVbLeklxL521BqIQN4A,3005
163
+ zrb/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
+ zrb/util/attr.py,sha256=HkXd2N-eUXw2o4WWWJpo2q8N0kS7k08jsMLXpK_3zq0,2353
165
+ zrb/util/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
+ zrb/util/cli/style.py,sha256=Pbqzu_fuhMDYDRjAH6Wl-oUW4-68tEOmv_ugJ3xH8qI,3671
167
+ zrb/util/cli/subcommand.py,sha256=gYr-CzVeKFQhY43s_FDstPwn8r-ypUz1Q2Rv_l2r-ck,1027
168
+ zrb/util/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
+ zrb/util/cmd/remote.py,sha256=VklVORobTmE7FqdtYsVLq9xkSYTR2W5r2Zou0-soidw,710
170
+ zrb/util/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
+ zrb/util/codemod/add_code_to_class.py,sha256=jg-ISD3sHCecOJ1CCJGR9quizRgvzddKH9GZ33-IQ1A,1358
172
+ zrb/util/codemod/add_code_to_function.py,sha256=iJT-cDxS_H72j3ec03Lqmm4YPe-6svB2314ooJljtvQ,1482
173
+ zrb/util/codemod/add_code_to_method.py,sha256=TiYj9N0eMi3dutwQw_y4gnu1G6PW_-fZDqHatvZxJDo,2359
174
+ zrb/util/codemod/add_key_to_dict.py,sha256=ROw7Ds73gP5G5vOYlSqcHGUQQmJP_6Vb2jPnV2kZPQM,2110
175
+ zrb/util/codemod/add_param_to_function_call.py,sha256=cNC16uYbkjl33QEZ7i3pYvifGJXSXEoyfyCYx96S8ZI,1567
176
+ zrb/util/codemod/add_property_to_class.py,sha256=43ll7b7SUWHPDpIoMp8Zp_I71wG1eAvnW_acp-HVF_4,2075
177
+ zrb/util/cron.py,sha256=9fTGatUMYCRgmDFGg-z6_XerT4U5Vq72nD05NnEVUm4,2852
178
+ zrb/util/git.py,sha256=4HJk15tpFmsBcnU1iapv6osx250SPAtWOo99e6mpwfY,4457
179
+ zrb/util/git_subtree.py,sha256=7hxiLWw7el77amT1hrXMHrPyi76KMp11jciEfvfKXHk,2509
180
+ zrb/util/group.py,sha256=Bg7HrSycoK110U5s_Tca6-uUQuZ5CMgb8wxZSrvDQ98,2790
181
+ zrb/util/llm/tool.py,sha256=9ezbPEAyMKLWABgeqAimJ82KBFl7ciWNFVGhtllXg6s,2106
182
+ zrb/util/load.py,sha256=VMScnycP8blLFOGXjFAKShbV-yvPXwRA_J2vt96T-wc,1552
183
+ zrb/util/run.py,sha256=DGHUP9x1Q8V8UF3FbpmjLGuhVVCCLfjTH2teT8qXlNI,207
184
+ zrb/util/string/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
+ zrb/util/string/conversion.py,sha256=utfzaCLS2LTWMr9YbjXt2Z0a_pgzOjq76ZEPUh2UKCc,2876
186
+ zrb/util/string/format.py,sha256=LuKznDICnnbMOjM7_CEY0drlIlpdNqbBL-n6M4yEUVI,306
187
+ zrb/util/string/name.py,sha256=8picJfUBXNpdh64GNaHv3om23QHhUZux7DguFLrXHp8,1163
188
+ zrb/util/todo.py,sha256=cSBkQyXsoh4bGspoP-YjhOTAXGgVKMq8UVGiPn5Zyhk,4765
189
+ zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
+ zrb/xcom/xcom.py,sha256=P4aYHdE3FRsTsNrXGyW8N44IWZjw-vG_qys1Ymn3aBg,1572
191
+ zrb-1.0.0a3.dist-info/METADATA,sha256=NDUzYWu_ZluLJfFrml-9gG7z-j8-LsgmZFLtw8RsQX4,3862
192
+ zrb-1.0.0a3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
193
+ zrb-1.0.0a3.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
194
+ zrb-1.0.0a3.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- from ...group.group import Group
2
- from ...runner.cli import cli
3
-
4
- shell_group = cli.add_group(
5
- Group(
6
- name="shell",
7
- description="Shell related commands",
8
- )
9
- )
@@ -1,6 +0,0 @@
1
- from ....group.group import Group
2
- from .._group import shell_group
3
-
4
- shell_autocomplete_group: Group = shell_group.add_group(
5
- Group(name="autocomplete", description="Shell autocomplete related commands")
6
- )
@@ -1,24 +0,0 @@
1
- from abc import ABC, abstractmethod
2
- from typing import Any
3
-
4
-
5
- class AnyRequestHandler(ABC):
6
- @abstractmethod
7
- def send_json_response(self, data: Any, http_status: int = 200):
8
- pass
9
-
10
- @abstractmethod
11
- def send_html_response(self, html: str, http_status: int = 200):
12
- pass
13
-
14
- @abstractmethod
15
- def read_json_request(self) -> Any:
16
- pass
17
-
18
- @abstractmethod
19
- def send_css_response(self, css_path: str):
20
- pass
21
-
22
- @abstractmethod
23
- def send_image_response(self, image_path: str):
24
- pass
@@ -1,208 +0,0 @@
1
- import asyncio
2
- import datetime
3
- import json
4
- import os
5
- from concurrent.futures import ThreadPoolExecutor
6
- from functools import partial
7
- from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
8
- from threading import Thread
9
- from typing import Any
10
- from urllib.parse import parse_qs, urlparse
11
-
12
- from ..config import BANNER, SESSION_LOG_DIR, WEB_HTTP_PORT
13
- from ..context.any_context import AnyContext
14
- from ..context.shared_context import SharedContext
15
- from ..group.any_group import AnyGroup
16
- from ..session.session import Session
17
- from ..session_state_logger.default_session_state_logger import (
18
- default_session_state_logger,
19
- )
20
- from ..task.any_task import AnyTask
21
- from ..util.group import extract_node_from_args, get_node_path
22
- from .web_app.group_info_ui.controller import handle_group_info_ui
23
- from .web_app.home_page.controller import handle_home_page
24
- from .web_app.task_ui.controller import handle_task_ui
25
- from .web_util import node_path_to_url, start_event_loop, url_to_args
26
-
27
- _DIR = os.path.dirname(__file__)
28
- _STATIC_DIR = os.path.join(_DIR, "web_app", "static")
29
- executor = ThreadPoolExecutor()
30
-
31
-
32
- class WebRequestHandler(BaseHTTPRequestHandler):
33
- def __init__(
34
- self,
35
- request: Any,
36
- client_address: Any,
37
- server: Any,
38
- root_group: AnyGroup,
39
- event_loop: asyncio.AbstractEventLoop,
40
- session_dir: str,
41
- ):
42
- self._root_group = root_group
43
- self._event_loop = event_loop
44
- self._session_dir = session_dir
45
- super().__init__(request=request, client_address=client_address, server=server)
46
-
47
- def do_GET(self):
48
- parsed_url = urlparse(self.path)
49
- if parsed_url.path in ["/", "/ui", "/ui/"]:
50
- handle_home_page(self, self._root_group)
51
- elif parsed_url.path == "/pico.min.css":
52
- self.send_css_response(os.path.join(_STATIC_DIR, "pico.min.css"))
53
- elif parsed_url.path == "/favicon-32x32.png":
54
- self.send_image_response(os.path.join(_STATIC_DIR, "favicon-32x32.png"))
55
- elif parsed_url.path.startswith("/ui/"):
56
- args = url_to_args(parsed_url.path[3:])
57
- node, node_path, residual_args = extract_node_from_args(
58
- self._root_group, args
59
- )
60
- url = f"/ui{node_path_to_url(node_path)}"
61
- if isinstance(node, AnyTask):
62
- shared_ctx = SharedContext(env=dict(os.environ))
63
- session = Session(shared_ctx=shared_ctx, root_group=self._root_group)
64
- handle_task_ui(
65
- self, self._root_group, node, session, url, residual_args
66
- )
67
- elif isinstance(node, AnyGroup):
68
- handle_group_info_ui(self, self._root_group, node, url)
69
- else:
70
- self.send_error(404, "Not Found")
71
- elif parsed_url.path.startswith("/api/"):
72
- args = url_to_args(parsed_url.path[5:])
73
- node, _, residual_args = extract_node_from_args(self._root_group, args)
74
- if isinstance(node, AnyTask) and len(residual_args) > 0:
75
- if residual_args[0] == "list":
76
- task_path = get_node_path(self._root_group, node)
77
- query_params = parse_qs(parsed_url.query)
78
- self.send_session_list_json_data(task_path, query_params)
79
- else:
80
- self.send_session_json_data(residual_args[0])
81
- else:
82
- self.send_error(404, "Not Found")
83
- else:
84
- self.send_error(404, "Not Found")
85
-
86
- def do_POST(self):
87
- parsed_url = urlparse(self.path)
88
- if parsed_url.path.startswith("/api/"):
89
- args = url_to_args(parsed_url.path[5:])
90
- task, _, residual_args = extract_node_from_args(self._root_group, args)
91
- session_name = residual_args[0] if len(residual_args) > 0 else None
92
- if not isinstance(task, AnyTask):
93
- self.send_error(404, "Not found")
94
- elif session_name is None:
95
- str_kwargs: dict[str, str] = self.read_json_request()
96
- shared_ctx = SharedContext(env=dict(os.environ))
97
- session = Session(shared_ctx=shared_ctx, root_group=self._root_group)
98
- asyncio.run_coroutine_threadsafe(
99
- task.async_run(session, str_kwargs=str_kwargs),
100
- self._event_loop,
101
- )
102
- self.send_json_response({"session_name": session.name})
103
- else:
104
- self.send_error(404, "Not Found")
105
-
106
- def send_session_list_json_data(
107
- self, task_path: list[str], query_params: dict[str, list[Any]]
108
- ):
109
- print(query_params)
110
- max_start_time = datetime.datetime.now()
111
- if "to" in query_params and len(query_params["to"]) > 0:
112
- max_start_time = datetime.datetime.strptime(
113
- query_params["to"][0], "%Y-%m-%d %H:%M:%S"
114
- )
115
- min_start_time = max_start_time - datetime.timedelta(hours=1)
116
- if "from" in query_params and len(query_params["from"]) > 0:
117
- min_start_time = datetime.datetime.strptime(
118
- query_params["from"][0], "%Y-%m-%d %H:%M:%S"
119
- )
120
- page = 0
121
- if "page" in query_params and len(query_params["page"]) > 0:
122
- page = int(query_params["page"][0])
123
- limit = 10
124
- if "limit" in query_params and len(query_params["limit"]) > 0:
125
- limit = int(query_params["limit"][0])
126
- try:
127
- self.send_json_response(
128
- default_session_state_logger.list(
129
- task_path,
130
- min_start_time=min_start_time,
131
- max_start_time=max_start_time,
132
- page=page,
133
- limit=limit,
134
- )
135
- )
136
- except Exception as e:
137
- self.send_json_response({"error": f"{e}"}, 500)
138
-
139
- def send_session_json_data(self, session_name: str):
140
- try:
141
- self.send_json_response(default_session_state_logger.read(session_name))
142
- except Exception as e:
143
- self.send_json_response({"error": f"{e}"}, 500)
144
-
145
- def send_json_response(self, data: Any, http_status: int = 200):
146
- self.send_response(http_status)
147
- self.send_header("Content-type", "application/json")
148
- self.end_headers()
149
- self.wfile.write(f"{json.dumps(data)}".encode())
150
-
151
- def send_html_response(self, html: str, http_status: int = 200):
152
- self.send_response(http_status)
153
- self.send_header("Content-type", "text/html")
154
- self.end_headers()
155
- self.wfile.write(f"{html}".encode())
156
-
157
- def send_css_response(self, css_path: str):
158
- self.send_response(200)
159
- self.send_header("Content-type", "text/css")
160
- self.end_headers()
161
- # If css_content is provided, send it; otherwise, you could read from a file here
162
- with open(css_path, "r") as f:
163
- css_content = f.read()
164
- self.wfile.write(css_content.encode())
165
-
166
- def send_image_response(self, image_path: str):
167
- try:
168
- with open(image_path, "rb") as img:
169
- self.send_response(200)
170
- if image_path.endswith(".png"):
171
- self.send_header("Content-type", "image/png")
172
- elif image_path.endswith(".jpg") or image_path.endswith(".jpeg"):
173
- self.send_header("Content-type", "image/jpeg")
174
- self.end_headers()
175
- self.wfile.write(img.read())
176
- except FileNotFoundError:
177
- self.send_error(404, "Image Not Found")
178
-
179
- def read_json_request(self) -> Any:
180
- content_length = int(self.headers["Content-Length"])
181
- post_data = self.rfile.read(content_length)
182
- try:
183
- return json.loads(post_data.decode())
184
- except json.JSONDecodeError:
185
- self.send_json_response({"error": "Invalid JSON"}, http_status=400)
186
- return None
187
-
188
-
189
- def run_web_server(ctx: AnyContext, root_group: AnyGroup, port: int = WEB_HTTP_PORT):
190
- server_address = ("", port)
191
- event_loop = asyncio.new_event_loop()
192
- # Use functools.partial to bind the custom attribute
193
- handler_with_custom_attr = partial(
194
- WebRequestHandler,
195
- root_group=root_group,
196
- event_loop=event_loop,
197
- session_dir=SESSION_LOG_DIR,
198
- )
199
- httpd = ThreadingHTTPServer(server_address, handler_with_custom_attr)
200
- banner_lines = BANNER.split("\n") + [
201
- f"Zrb Server running on http://localhost:{port}"
202
- ]
203
- for line in banner_lines:
204
- ctx.print(line)
205
- loop_thread = Thread(target=start_event_loop, args=[event_loop], daemon=True)
206
- loop_thread.start()
207
- httpd.serve_forever()
208
- loop_thread.join()
@@ -1,120 +0,0 @@
1
- zrb/__init__.py,sha256=RA7Vs7KuhAv8XTWgk3devrmchKsWY6x3E6VYlNzns6M,2401
2
- zrb/__main__.py,sha256=zlH2ZuqL9zn5xzfrv1H9wF-ltdZkdccOr5i0NR7n0PY,271
3
- zrb/attr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- zrb/attr/type.py,sha256=nfOt5SYFJ7qsYHa18mPB7KJs5TYsKLM-ys-3sF4qBOA,496
5
- zrb/builtin/__init__.py,sha256=746GkBkli7HHcBOegTpJWU1HKcWNNcs7D2Ek0DZnw1E,34
6
- zrb/builtin/shell/__init__.py,sha256=UG0y0tkCHdmWsvwaZzYZJeJEu78OkU-r-I7B6TcKgS8,99
7
- zrb/builtin/shell/_group.py,sha256=tuVZKhjlknDZtgu3KahBmkfTAP7wv0zu0LOHEVg3pZM,180
8
- zrb/builtin/shell/autocomplete/__init__.py,sha256=FxkxPR9Y6O1Du30KsRFtB9W7E6Yr4236NuJDqSbCAd4,288
9
- zrb/builtin/shell/autocomplete/_group.py,sha256=5-kpomAKxaXFzcjUutW9iNANguU88GSnrBauSrDXrw4,209
10
- zrb/builtin/shell/autocomplete/bash.py,sha256=BpLY1lkJKiOXs5wGu44_jfj3QLVMGi1A0vSfmS3ZRvA,1185
11
- zrb/builtin/shell/autocomplete/subcmd.py,sha256=ICnxz625mwTQssMx1dz3n8uQ29Cxj1wthrSehBjrT8Y,609
12
- zrb/builtin/shell/autocomplete/zsh.py,sha256=FDegIKuhuSgGj2J3CjsHfVwPBI7fTtUZgq3myvKP-60,1025
13
- zrb/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- zrb/callback/any_callback.py,sha256=a5JcpZ2lfIFKuztUAfyMjJpck26XObthy9DIfclIi3E,245
15
- zrb/callback/callback.py,sha256=JDMeM_pSwJTQFZ4At3pR37BEMS-ZaY7gP53iKmT_kiE,829
16
- zrb/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- zrb/cmd/cmd_result.py,sha256=L8bQJzWCpcYexIxHBNsXj2pT3BtLmWex0iJSMkvimOA,597
18
- zrb/cmd/cmd_val.py,sha256=Woqa0oEgbeoeLwG8bQxyyEMpEw0zP7sDlyOscVI6VbE,956
19
- zrb/config.py,sha256=zO_w3UroXXpHCbxAMGhV4FW87NROBMrtksnYorlnJ3k,2229
20
- zrb/content_transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- zrb/content_transformer/any_content_transformer.py,sha256=jA2GF7Il_AuApml2KMzaN3urQU0WP_UnWqhtYos40Do,739
22
- zrb/content_transformer/content_transformer.py,sha256=q4Es3xiMZT0VpYaDSuW0S3JiXJjLpiMbfEkQYs1XqI0,1615
23
- zrb/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- zrb/context/any_context.py,sha256=sf98YZuUq-DaN5bWcJxsJmXaJ6IGa0wHcQv0OgHaBAo,6143
25
- zrb/context/any_shared_context.py,sha256=bWp2r9BF_b5W9HuMs15V68_-R25o9UzKkOA6w1aZTTY,1762
26
- zrb/context/context.py,sha256=20xHojg0YnYXv0RxZrq8aHH3JEsGGsElh27jC8NFtYQ,5909
27
- zrb/context/shared_context.py,sha256=EdAXSnel-1F6Pyag2upuUagVw8hsUpzvknYr7tfGfhM,2678
28
- zrb/dot_dict/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- zrb/dot_dict/dot_dict.py,sha256=ubw_x8I7AOJ59xxtFVJ00VGmq_IYdZP3mUhNlO4nEK0,556
30
- zrb/env/__init__.py,sha256=poMQqx2UQHqlvAJmJ6ApkjAN0-h3raCYMCEKmRsGT54,33
31
- zrb/env/any_env.py,sha256=j8k8M9z7QeHKvJ9q37Ch0COwH0l_DMQPCIvA2g33KU0,216
32
- zrb/env/env.py,sha256=qbP43gWxqVSJXHEYsHR3JZKVcqF1sucH1E9VfxUj2ho,1058
33
- zrb/env/env_file.py,sha256=_RHJRvPIJTmpwmyaa5zsEXKo4lSTPG3nFtaRJiNSeWc,733
34
- zrb/env/env_map.py,sha256=0jBv0fZV2rAspQQQclv4w0jNMlHhkK7hfXd2FLP7TDs,1257
35
- zrb/group/__init__.py,sha256=3kqdBRThwO6hJkCGh0F7NtTtzUB9nXrt4dqDqY0ywA0,39
36
- zrb/group/any_group.py,sha256=fJKAVo2uHa2aUMfSjkK5S9V9RrNcJlsTQarCaEkPAcs,1094
37
- zrb/group/group.py,sha256=V8DjuiFODBG69lxBSL3pXJElOaYG-Ub7NxUb3MvA8zw,1759
38
- zrb/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- zrb/input/any_input.py,sha256=h6ECoL9AlEVc7KwkAA2eCf9T37PHCzgvs5B4GegAnBY,699
40
- zrb/input/base_input.py,sha256=gpA9UVBdcuJS5rr0ZA--qiKa-tiiVvb9wE4rer_DsOA,2557
41
- zrb/input/bool_input.py,sha256=MS4d0WeUzxU-QnVVsyizec6upGWjZAUVMZvZ7gs9s-M,1367
42
- zrb/input/float_input.py,sha256=y7ZGT0HTH4q12ISYWUwir3FHjdrSmeAZ9E8XJxSJCJI,991
43
- zrb/input/int_input.py,sha256=rSUrC5namx1dLVOdfaI2Mj1nAl3IJmi_1wHMSPFqxKU,992
44
- zrb/input/password_input.py,sha256=c69kq_PYMltJoJCRsp_25FfDXGhF-PEgXu7QDZmCk20,1301
45
- zrb/input/str_input.py,sha256=_gbOh2xds610Gb1_YByWfEusYBR-jQmrUoNUFJ-kv1c,72
46
- zrb/input/text_input.py,sha256=UBfc_0itxvI9hP-goqV9M4YdF27Bu81rXfRZ1VPaQ5w,3021
47
- zrb/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- zrb/runner/cli.py,sha256=35XGm_qY6Q9FxZ8h2h-rkSWImxQrMpcsuWMcuV4-7N4,5612
49
- zrb/runner/web_app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
- zrb/runner/web_app/any_request_handler.py,sha256=QZsr0uxMWvD0VgqhJ04zQVAqkrib5d2D4HuSaJH5moM,538
51
- zrb/runner/web_app/group_info_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- zrb/runner/web_app/group_info_ui/controller.py,sha256=Mv8ir5veGz6wwYk2N04AWtXjQCSr7UCxvfus3jHoDMY,2876
53
- zrb/runner/web_app/group_info_ui/partial/group_info.html,sha256=njcPd6_imhPiUy3eGqtDpY_oX2R9nEh2dJQsh5PAl3M,35
54
- zrb/runner/web_app/group_info_ui/partial/group_li.html,sha256=n9d_EBEMUg1rGmNhkYloCwc1jHmwovw3ScxEB_fNL-w,61
55
- zrb/runner/web_app/group_info_ui/partial/task_info.html,sha256=dKHHuLIXi37XBbq0Xv2mYFcmJ3oAmz5vH1yKgpunfdE,34
56
- zrb/runner/web_app/group_info_ui/partial/task_li.html,sha256=x5Pqa_iN0IyUvzojseGUrHm2Y-xUeO8OFb7Zagui2g0,62
57
- zrb/runner/web_app/group_info_ui/view.html,sha256=Ib31OpKoled-a4wkA3Fmngmewttocjro8MQoAul9ESA,822
58
- zrb/runner/web_app/home_page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- zrb/runner/web_app/home_page/controller.py,sha256=75G51Wln3adILH7rYnUMI-J6bxSZS2qb8pVxixi500s,2285
60
- zrb/runner/web_app/home_page/partial/group_info.html,sha256=njcPd6_imhPiUy3eGqtDpY_oX2R9nEh2dJQsh5PAl3M,35
61
- zrb/runner/web_app/home_page/partial/group_li.html,sha256=gHF-RP8LG2ur8_mo1JwPXAZWvPM8BevAsdYrsv0uN6U,60
62
- zrb/runner/web_app/home_page/partial/task_info.html,sha256=dKHHuLIXi37XBbq0Xv2mYFcmJ3oAmz5vH1yKgpunfdE,34
63
- zrb/runner/web_app/home_page/partial/task_li.html,sha256=m-fs4VhbX27fZKgxBA0_Gv_Utntq5aaXD4sFk3zNMlk,61
64
- zrb/runner/web_app/home_page/view.html,sha256=fSlyYU2L9YG6pAk5y83N5TWwjlhH8Mcg0IuK5gdVnsQ,592
65
- zrb/runner/web_app/static/favicon-32x32.png,sha256=yu9AIU4k_qD4YHpul6XwJgOxIbmu0thv9ymm2QOsrAk,1456
66
- zrb/runner/web_app/static/pico.min.css,sha256=3V_VWRr9ge4h3MEXrYXAFNw_HxncLXt9EB6grMKSdMI,82194
67
- zrb/runner/web_app/task_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- zrb/runner/web_app/task_ui/controller.py,sha256=rLkp8-JaKIQ545ipJiyjBvD-7XcNbfQ926yT6GDnO9o,2381
69
- zrb/runner/web_app/task_ui/partial/input.html,sha256=DDOCdHfwrU8ZF1SSNb0KDaQzbhzn-gipEGaa_ZH5k9I,154
70
- zrb/runner/web_app/task_ui/partial/main.js,sha256=QdjATR4y5oFGf1PsnFWnupZyDlArGh-DljZQxR1rdNM,6355
71
- zrb/runner/web_app/task_ui/partial/show-existing-session.js,sha256=7XbYXMgv_37hf5ZdGvw0jxjytvUNJyjqVM7DH5nThiQ,2938
72
- zrb/runner/web_app/task_ui/partial/visualize-history.js,sha256=-3-cYgNdK3VjG6DAAUiJ5mMou71hAD6s4rwj4Es63Is,4851
73
- zrb/runner/web_app/task_ui/view.html,sha256=0gx5cYmyLh2wuMFRg8LOBuu-WLbEwENHTwAXbeGGe5g,2611
74
- zrb/runner/web_server.bak.py,sha256=6xrPW3SJ7ut53Z-2BZp6sJEL2ybLoX_OQxwE0EaCqrc,8693
75
- zrb/runner/web_server.py,sha256=5h2NyqQm8Tlp_loUsIiTiTADm1EC_8PJF_wYBzK8idk,9168
76
- zrb/runner/web_util.py,sha256=Fn17emtjg2Z4GfySGIYptDn0zmAakolyQ6YkoVlYjgc,1188
77
- zrb/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
- zrb/session/any_session.py,sha256=UPqBtNODIaRbRh5iEQEBCcqByc-KFz0fijONDkcky-M,5124
79
- zrb/session/session.py,sha256=pkHJDOSe_OpJX3S_XqihN4vGE2XFgZunBV_yNi9mkck,8898
80
- zrb/session_state_log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- zrb/session_state_log/session_state_log.py,sha256=bJj7L_kX7HMC9cd-de6j4xb3ExIVQQ94aV-oC4ghgPE,688
82
- zrb/session_state_logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- zrb/session_state_logger/any_session_state_logger.py,sha256=QLxzrS_DYmAJgjMNrEI8WYZWj0FvqXaanWI6GMyKwSk,609
84
- zrb/session_state_logger/default_session_state_logger.py,sha256=4Mk_ONxN9PGx2tCKHXMJHlS52rC62CtJCJyzop66LNw,171
85
- zrb/session_state_logger/file_session_state_logger.py,sha256=efkAAXs9kVUpTpnIgGPWeOB9gPrVExI2Tq1Qh6y9O7U,3942
86
- zrb/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- zrb/task/any_task.py,sha256=oaDwXuozwpQWGUd6ucceXQkzSBH2PJBsGHsF8_S_z_4,3738
88
- zrb/task/base_task.py,sha256=ixIkgmQkx46xIliHu2QM9aXoMro0LKoqk2Q03sVjTnE,15663
89
- zrb/task/base_trigger.py,sha256=_jSr35bjoVee7s0-ktrn1sYY2bTqUwWICbz3-ATVrPU,4454
90
- zrb/task/cmd_task.py,sha256=A0NAafrHWFgspG8cijcJ9FAgMa_LsyCSdt7x25cdl3c,9877
91
- zrb/task/http_check.py,sha256=hxaC_evUIEM16asny_m6b1JvltQGG-k3Fa3RvYJ2ts0,2458
92
- zrb/task/make_task.py,sha256=t9yrEjxFdcFPPyjUDr8kou9S1RU8UgvTdSexfi-RBRc,2139
93
- zrb/task/rsync_task.py,sha256=J9NoBjcMJDpC2Agbk8QlWKXEWIiAmO9M6hHnahq0Hkw,6351
94
- zrb/task/scaffolder.py,sha256=0DnKN8ao16tqFGUoDzzi9Q6ytfRXmLeLRucM_KiXn2Q,6115
95
- zrb/task/scheduler.py,sha256=x8SgbiD7tqZdXHpzNRdYs8A2sVN7KwmOncLGEkBJgmg,3020
96
- zrb/task/task.py,sha256=NQ3N3QYKHJhiyfN4QZXm_PoJLoEXi_Sb5dv6nXuncE8,65
97
- zrb/task/tcp_check.py,sha256=OM8D_SJ2ZZMmi2XWnSuBxJwOCkC9kIZJywujluyCNvw,2434
98
- zrb/task_status/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
- zrb/task_status/task_status.py,sha256=aRygkj0DKrOYWgz2eF5wNmYcpVbLeklxL521BqIQN4A,3005
100
- zrb/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
- zrb/util/attr.py,sha256=KGp0NchjDzZbF01zLd8mHkFbOCp5o9omPCbxaAUkK9k,2044
102
- zrb/util/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
- zrb/util/cli/style.py,sha256=BUsc4obp-L_3aO9lK1S_R1Qcl3MW7zJla6jkMYg_mWI,2503
104
- zrb/util/cli/subcommand.py,sha256=YeZISsE9Nhql4oM42gNoKxrKACtvAysCrelt3JonrnI,1019
105
- zrb/util/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
- zrb/util/cmd/remote.py,sha256=VklVORobTmE7FqdtYsVLq9xkSYTR2W5r2Zou0-soidw,710
107
- zrb/util/cron.py,sha256=9fTGatUMYCRgmDFGg-z6_XerT4U5Vq72nD05NnEVUm4,2852
108
- zrb/util/group.py,sha256=a1rgMEiSpr6vc5xwjPYCXkTxmub0Apx6K5pSdRhsllY,2786
109
- zrb/util/load.py,sha256=VMScnycP8blLFOGXjFAKShbV-yvPXwRA_J2vt96T-wc,1552
110
- zrb/util/run.py,sha256=DGHUP9x1Q8V8UF3FbpmjLGuhVVCCLfjTH2teT8qXlNI,207
111
- zrb/util/string/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
- zrb/util/string/conversion.py,sha256=lem0DFkw0VT9j-bgK7Thh3W_RSjt09KACH2M8snFZaA,2641
113
- zrb/util/string/format.py,sha256=LuKznDICnnbMOjM7_CEY0drlIlpdNqbBL-n6M4yEUVI,306
114
- zrb/util/string/name.py,sha256=8picJfUBXNpdh64GNaHv3om23QHhUZux7DguFLrXHp8,1163
115
- zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
- zrb/xcom/xcom.py,sha256=P4aYHdE3FRsTsNrXGyW8N44IWZjw-vG_qys1Ymn3aBg,1572
117
- zrb-1.0.0a1.dist-info/METADATA,sha256=uIZTlLx-yZkOeLbTiJ93P6VfD20EiqEM1BUDU7rQx6w,3642
118
- zrb-1.0.0a1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
119
- zrb-1.0.0a1.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
120
- zrb-1.0.0a1.dist-info/RECORD,,
File without changes