zrb 1.0.0a16__py3-none-any.whl → 1.0.0a20__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 (196) hide show
  1. zrb/__init__.py +5 -0
  2. zrb/__main__.py +3 -0
  3. zrb/builtin/__init__.py +2 -2
  4. zrb/builtin/git.py +10 -2
  5. zrb/builtin/git_subtree.py +4 -0
  6. zrb/builtin/llm/tool/rag.py +2 -2
  7. zrb/builtin/project/add/fastapp/fastapp_input.py +16 -0
  8. zrb/builtin/project/add/fastapp/fastapp_task.py +78 -0
  9. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +3 -0
  10. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/create_column_task.py +14 -0
  11. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +128 -0
  12. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +213 -0
  13. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/any_client_method.py +27 -0
  14. zrb/builtin/project/add/{fastapp_template/_zrb/entity/module_template → fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module}/service/my_entity/my_entity_usecase.py +9 -10
  15. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/factory.py +13 -0
  16. zrb/builtin/project/add/{fastapp_template/_zrb/entity/module_template → fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module}/service/my_entity/repository/my_entity_db_repository.py +14 -9
  17. zrb/builtin/project/add/{fastapp_template/_zrb/entity/module_template → fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module}/service/my_entity/repository/my_entity_repository.py +6 -7
  18. zrb/builtin/project/add/{fastapp_template/_zrb/entity/schema.template.py → fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py} +8 -0
  19. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +17 -0
  20. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/_zrb/input.py +1 -4
  21. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +85 -0
  22. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +154 -0
  23. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/any_client.py +7 -0
  24. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/api_client.py +6 -0
  25. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/direct_client.py +6 -0
  26. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/factory.py +9 -0
  27. zrb/builtin/project/add/{fastapp_template/_zrb/module/module_template → fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module}/migration/env.py +2 -4
  28. zrb/builtin/project/add/{fastapp_template/module/auth → fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module}/migration/script.py.mako +1 -0
  29. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +33 -0
  30. zrb/builtin/project/add/{fastapp_template/_zrb/main.py → fastapp/fastapp_template/my_app_name/_zrb/task.py} +12 -14
  31. zrb/builtin/project/add/{fastapp_template/_zrb/helper.py → fastapp/fastapp_template/my_app_name/_zrb/util.py} +1 -1
  32. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/_zrb/venv_task.py +1 -1
  33. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/common/app.py +2 -2
  34. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/common/base_db_repository.py +1 -1
  35. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/common/base_usecase.py +19 -6
  36. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/common/db_engine.py +1 -1
  37. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/config.py +1 -0
  38. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +7 -0
  39. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/migrate.py +3 -0
  40. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/client/any_client.py +10 -4
  41. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/api_client.py +7 -0
  42. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/direct_client.py +6 -0
  43. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/factory.py +9 -0
  44. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/migration/env.py +2 -4
  45. zrb/builtin/project/add/{fastapp_template/module/gateway → fastapp/fastapp_template/my_app_name/module/auth}/migration/script.py.mako +1 -0
  46. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/migration_metadata.py +1 -1
  47. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +37 -0
  48. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/service/user/repository/user_db_repository.py +13 -7
  49. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +42 -0
  50. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +13 -0
  51. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/service/user/user_usecase.py +13 -12
  52. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_usecase_factory.py +6 -0
  53. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/gateway/migration/env.py +2 -4
  54. zrb/builtin/project/add/{fastapp_template/_zrb/module/module_template → fastapp/fastapp_template/my_app_name/module/gateway}/migration/script.py.mako +1 -0
  55. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +37 -0
  56. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +44 -0
  57. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/requirements.txt +1 -1
  58. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/schema/permission.py +8 -0
  59. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/schema/role.py +8 -0
  60. zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/schema/user.py +8 -0
  61. zrb/builtin/project/add/fastapp/fastapp_util.py +46 -0
  62. zrb/builtin/project/create/{create.py → project_task.py} +1 -1
  63. zrb/builtin/python.py +4 -1
  64. zrb/builtin/setup/asdf/asdf_helper.py +4 -8
  65. zrb/builtin/setup/tmux/tmux.py +7 -12
  66. zrb/builtin/todo.py +42 -26
  67. zrb/callback/callback.py +0 -1
  68. zrb/cmd/cmd_val.py +2 -2
  69. zrb/config.py +18 -0
  70. zrb/content_transformer/content_transformer.py +8 -7
  71. zrb/context/any_context.py +6 -6
  72. zrb/group/group.py +0 -1
  73. zrb/input/any_input.py +4 -0
  74. zrb/input/base_input.py +17 -5
  75. zrb/input/bool_input.py +1 -1
  76. zrb/input/float_input.py +2 -2
  77. zrb/input/int_input.py +1 -1
  78. zrb/input/option_input.py +2 -2
  79. zrb/input/password_input.py +2 -2
  80. zrb/input/text_input.py +6 -6
  81. zrb/runner/cli.py +9 -35
  82. zrb/runner/common_util.py +31 -0
  83. zrb/runner/web_app.py +169 -46
  84. zrb/runner/web_config.py +288 -0
  85. zrb/runner/web_controller/error_page/controller.py +27 -0
  86. zrb/runner/web_controller/error_page/view.html +33 -0
  87. zrb/runner/web_controller/group_info_page/controller.py +40 -0
  88. zrb/runner/web_controller/group_info_page/view.html +36 -0
  89. zrb/runner/web_controller/home_page/controller.py +14 -57
  90. zrb/runner/web_controller/home_page/view.html +29 -20
  91. zrb/runner/web_controller/login_page/controller.py +25 -0
  92. zrb/runner/web_controller/login_page/view.html +50 -0
  93. zrb/runner/web_controller/logout_page/controller.py +26 -0
  94. zrb/runner/web_controller/logout_page/view.html +40 -0
  95. zrb/runner/web_controller/{task_ui → session_page}/controller.py +36 -34
  96. zrb/runner/web_controller/{task_ui → session_page}/partial/input.html +1 -1
  97. zrb/runner/web_controller/session_page/view.html +91 -0
  98. zrb/runner/web_controller/static/common.css +11 -0
  99. zrb/runner/web_controller/static/login/event.js +33 -0
  100. zrb/runner/web_controller/static/logout/event.js +20 -0
  101. zrb/runner/web_controller/static/pico.min.css +1 -1
  102. zrb/runner/web_controller/static/session/common-util.js +63 -0
  103. zrb/runner/web_controller/static/session/current-session.js +164 -0
  104. zrb/runner/web_controller/static/session/event.js +120 -0
  105. zrb/runner/web_controller/static/session/past-session.js +138 -0
  106. zrb/runner/web_util.py +53 -0
  107. zrb/session_state_logger/any_session_state_logger.py +0 -1
  108. zrb/session_state_logger/file_session_state_logger.py +4 -8
  109. zrb/task/base_trigger.py +0 -1
  110. zrb/task/cmd_task.py +1 -1
  111. zrb/task/llm_task.py +3 -6
  112. zrb/task/make_task.py +0 -1
  113. zrb/task/scaffolder.py +18 -4
  114. zrb/task/scheduler.py +0 -1
  115. zrb/util/cmd/command.py +0 -1
  116. zrb/util/codemod/{add_code_to_class.py → append_code_to_class.py} +4 -4
  117. zrb/util/codemod/{add_code_to_function.py → append_code_to_function.py} +5 -3
  118. zrb/util/codemod/{add_code_to_method.py → append_code_to_method.py} +3 -3
  119. zrb/util/codemod/{add_key_to_dict.py → append_key_to_dict.py} +1 -1
  120. zrb/util/codemod/{add_param_to_function_call.py → append_param_to_function_call.py} +1 -1
  121. zrb/util/codemod/{add_code_to_module.py → prepend_code_to_module.py} +2 -2
  122. zrb/util/codemod/{add_parent_to_class.py → prepend_parent_to_class.py} +1 -1
  123. zrb/util/codemod/{add_property_to_class.py → prepend_property_to_class.py} +1 -1
  124. zrb/util/file.py +18 -0
  125. zrb/util/git_subtree.py +3 -4
  126. zrb/util/todo.py +105 -24
  127. zrb/xcom/xcom.py +0 -1
  128. {zrb-1.0.0a16.dist-info → zrb-1.0.0a20.dist-info}/METADATA +3 -2
  129. zrb-1.0.0a20.dist-info/RECORD +243 -0
  130. zrb/builtin/project/add/fastapp.py +0 -87
  131. zrb/builtin/project/add/fastapp_template/_zrb/column/create_column_task.py +0 -11
  132. zrb/builtin/project/add/fastapp_template/_zrb/entity/create_entity_task.py +0 -196
  133. zrb/builtin/project/add/fastapp_template/_zrb/entity/module_template/service/my_entity/repository/factory.py +0 -13
  134. zrb/builtin/project/add/fastapp_template/_zrb/module/create_module_task.py +0 -136
  135. zrb/builtin/project/add/fastapp_template/_zrb/module/module_template/client/any_client.py +0 -27
  136. zrb/builtin/project/add/fastapp_template/_zrb/module/module_template/client/api_client.py +0 -6
  137. zrb/builtin/project/add/fastapp_template/_zrb/module/module_template/client/direct_client.py +0 -6
  138. zrb/builtin/project/add/fastapp_template/_zrb/module/module_template/client/factory.py +0 -9
  139. zrb/builtin/project/add/fastapp_template/_zrb/module/module_template/route.py +0 -19
  140. zrb/builtin/project/add/fastapp_template/main.py +0 -7
  141. zrb/builtin/project/add/fastapp_template/migrate.py +0 -3
  142. zrb/builtin/project/add/fastapp_template/module/auth/client/api_client.py +0 -7
  143. zrb/builtin/project/add/fastapp_template/module/auth/client/direct_client.py +0 -6
  144. zrb/builtin/project/add/fastapp_template/module/auth/client/factory.py +0 -9
  145. zrb/builtin/project/add/fastapp_template/module/auth/migration/versions/3093c7336477_add_user_table.py +0 -37
  146. zrb/builtin/project/add/fastapp_template/module/auth/route.py +0 -22
  147. zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/factory.py +0 -13
  148. zrb/builtin/project/add/fastapp_template/module/auth/service/user/repository/user_repository.py +0 -34
  149. zrb/builtin/project/add/fastapp_template/module/gateway/route.py +0 -27
  150. zrb/runner/web_controller/group_info_ui/controller.py +0 -91
  151. zrb/runner/web_controller/group_info_ui/partial/group_info.html +0 -2
  152. zrb/runner/web_controller/group_info_ui/partial/group_li.html +0 -1
  153. zrb/runner/web_controller/group_info_ui/partial/task_info.html +0 -2
  154. zrb/runner/web_controller/group_info_ui/partial/task_li.html +0 -1
  155. zrb/runner/web_controller/group_info_ui/view.html +0 -31
  156. zrb/runner/web_controller/home_page/partial/group_info.html +0 -2
  157. zrb/runner/web_controller/home_page/partial/group_li.html +0 -1
  158. zrb/runner/web_controller/home_page/partial/task_info.html +0 -2
  159. zrb/runner/web_controller/home_page/partial/task_li.html +0 -1
  160. zrb/runner/web_controller/task_ui/partial/common-util.js +0 -37
  161. zrb/runner/web_controller/task_ui/partial/main.js +0 -195
  162. zrb/runner/web_controller/task_ui/partial/show-existing-session.js +0 -97
  163. zrb/runner/web_controller/task_ui/partial/visualize-history.js +0 -104
  164. zrb/runner/web_controller/task_ui/view.html +0 -87
  165. zrb-1.0.0a16.dist-info/RECORD +0 -231
  166. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/.gitignore +0 -0
  167. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/README.md +0 -0
  168. /zrb/builtin/project/add/{__init__.py → fastapp/fastapp_template/my_app_name/__init__.py} +0 -0
  169. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/_zrb/config.py +0 -0
  170. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/_zrb/group.py +0 -0
  171. /zrb/builtin/project/add/{fastapp_template/__init__.py → fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py} +0 -0
  172. /zrb/builtin/project/add/{fastapp_template/_zrb/module/module_template → fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module}/alembic.ini +0 -0
  173. /zrb/builtin/project/add/{fastapp_template/_zrb/module/module_template → fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module}/migration/README +0 -0
  174. /zrb/builtin/project/add/{fastapp_template/module/gateway → fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module}/migration/versions/.gitkeep +0 -0
  175. /zrb/builtin/project/add/{fastapp_template/_zrb/module/module_template → fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module}/migration_metadata.py +0 -0
  176. /zrb/builtin/project/add/{fastapp_template/_zrb/module/module_template → fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module}/service/__init__.py +0 -0
  177. /zrb/builtin/project/add/{fastapp_template/_zrb/module/run_module.template.py → fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py} +0 -0
  178. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/common/__init__.py +0 -0
  179. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/common/error.py +0 -0
  180. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/common/schema.py +0 -0
  181. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/__init__.py +0 -0
  182. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/alembic.ini +0 -0
  183. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/migration/README +0 -0
  184. /zrb/builtin/project/add/{fastapp_template/_zrb/module/module_template → fastapp/fastapp_template/my_app_name/module/auth}/migration/versions/3093c7336477_add_user_table.py +0 -0
  185. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/service/__init__.py +0 -0
  186. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/auth/service/user/__init__.py +0 -0
  187. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/gateway/alembic.ini +0 -0
  188. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/gateway/migration/README +0 -0
  189. /zrb/builtin/project/add/{fastapp_template/module/auth/service/user/repository/__init__.py → fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep} +0 -0
  190. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/module/gateway/migration_metadata.py +0 -0
  191. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/schema/__init__.py +0 -0
  192. /zrb/builtin/project/add/{fastapp_template → fastapp/fastapp_template/my_app_name}/template.env +0 -0
  193. /zrb/runner/web_controller/{group_info_ui → group_info_page}/__init__.py +0 -0
  194. /zrb/runner/web_controller/{task_ui → session_page}/__init__.py +0 -0
  195. {zrb-1.0.0a16.dist-info → zrb-1.0.0a20.dist-info}/WHEEL +0 -0
  196. {zrb-1.0.0a16.dist-info → zrb-1.0.0a20.dist-info}/entry_points.txt +0 -0
zrb/util/git_subtree.py CHANGED
@@ -5,6 +5,7 @@ from typing import Any
5
5
  from pydantic import BaseModel
6
6
 
7
7
  from zrb.util.cmd.command import run_command
8
+ from zrb.util.file import read_file, write_file
8
9
 
9
10
 
10
11
  class SingleSubTreeConfig(BaseModel):
@@ -21,14 +22,12 @@ def load_config(repo_dir: str) -> SubTreeConfig:
21
22
  file_path = os.path.join(repo_dir, "subtrees.json")
22
23
  if not os.path.exists(file_path):
23
24
  return SubTreeConfig(data={})
24
- with open(file_path, "r") as f:
25
- return SubTreeConfig.model_validate_json(f.read())
25
+ return SubTreeConfig.model_validate_json(read_file(file_path))
26
26
 
27
27
 
28
28
  def save_config(repo_dir: str, config: SubTreeConfig):
29
29
  file_path = os.path.join(repo_dir, "subtrees.json")
30
- with open(file_path, "w") as f:
31
- f.write(config.model_dump_json(indent=2))
30
+ write_file(file_path, config.model_dump_json(indent=2))
32
31
 
33
32
 
34
33
  async def add_subtree(
zrb/util/todo.py CHANGED
@@ -1,20 +1,27 @@
1
1
  import datetime
2
2
  import re
3
3
  import shutil
4
- from typing import Any
5
4
 
6
5
  from pydantic import BaseModel, Field, model_validator
7
6
 
8
7
  from zrb.util.cli.style import (
9
- stylize_bold_green,
10
8
  stylize_bold_yellow,
11
9
  stylize_cyan,
12
10
  stylize_faint,
13
11
  stylize_magenta,
14
12
  stylize_yellow,
15
13
  )
14
+ from zrb.util.file import read_file, write_file
16
15
  from zrb.util.string.name import get_random_name
17
16
 
17
+ _DATE_TIME_STR_WIDTH = 14
18
+ _MAX_DESCRIPTION_WIDTH = 70
19
+ _PRIORITY_WIDTH = 3
20
+ _COMPLETED_WIDTH = 3
21
+ _COMPLETED_AT_WIDTH = _DATE_TIME_STR_WIDTH
22
+ _CREATED_AT_WIDTH = _DATE_TIME_STR_WIDTH
23
+ _GAP_WIDTH = 2
24
+
18
25
 
19
26
  class TodoTaskModel(BaseModel):
20
27
  priority: str | None = Field("D", pattern=r"^[A-Z]$") # Priority like A, B, ...
@@ -87,8 +94,7 @@ def select_todo_task(
87
94
 
88
95
 
89
96
  def load_todo_list(todo_file_path: str) -> list[TodoTaskModel]:
90
- with open(todo_file_path, "r") as f:
91
- todo_lines = f.read().strip().split("\n")
97
+ todo_lines = read_file(todo_file_path).strip().split("\n")
92
98
  todo_list: list[TodoTaskModel] = []
93
99
  for todo_line in todo_lines:
94
100
  todo_line = todo_line.strip()
@@ -108,9 +114,9 @@ def load_todo_list(todo_file_path: str) -> list[TodoTaskModel]:
108
114
 
109
115
 
110
116
  def save_todo_list(todo_file_path: str, todo_list: list[TodoTaskModel]):
111
- with open(todo_file_path, "w") as f:
112
- for todo_task in todo_list:
113
- f.write(todo_task_to_line(todo_task) + "\n")
117
+ write_file(
118
+ todo_file_path, [todo_task_to_line(todo_task) for todo_task in todo_list]
119
+ )
114
120
 
115
121
 
116
122
  def line_to_todo_task(line: str) -> TodoTaskModel:
@@ -215,8 +221,8 @@ def get_visual_todo_list(todo_list: list[TodoTaskModel], filter: str) -> str:
215
221
  )
216
222
  if max_desc_length < len("DESCRIPTION"):
217
223
  max_desc_length = len("DESCRIPTION")
218
- if max_desc_length > 70:
219
- max_desc_length = 70
224
+ if max_desc_length > _MAX_DESCRIPTION_WIDTH:
225
+ max_desc_length = _MAX_DESCRIPTION_WIDTH
220
226
  max_additional_info_length = max(
221
227
  todo_task.get_additional_info_length() for todo_task in filtered_todo_list
222
228
  )
@@ -243,18 +249,24 @@ def get_visual_todo_list(todo_list: list[TodoTaskModel], filter: str) -> str:
243
249
  def get_visual_todo_header(
244
250
  terminal_width: int, max_desc_length: int, max_additional_info_length: int
245
251
  ) -> str:
246
- priority = "".ljust(3)
247
- completed = "".ljust(3)
248
- completed_at = "COMPLETED AT".rjust(14)
249
- created_at = "CREATED_AT".ljust(14)
250
- description = "DESCRIPTION".ljust(min(max_desc_length, 70))
251
- additional_info = "PROJECT/CONTEXT/OTHERS"
252
- if terminal_width <= 14 + max_desc_length + max_additional_info_length:
253
- return " ".join([priority, completed, description])
254
- if terminal_width <= 36 + max_desc_length + max_additional_info_length:
255
- return " ".join([priority, completed, description, additional_info])
256
- return " ".join(
257
- [priority, completed, completed_at, created_at, description, additional_info]
252
+ priority_caption = "".ljust(_PRIORITY_WIDTH)
253
+ completed_caption = "".ljust(_COMPLETED_WIDTH)
254
+ completed_at_caption = "COMPLETED AT".rjust(_COMPLETED_AT_WIDTH)
255
+ created_at_caption = "CREATED_AT".ljust(_CREATED_AT_WIDTH)
256
+ description_caption = "DESCRIPTION".ljust(
257
+ min(max_desc_length, _MAX_DESCRIPTION_WIDTH)
258
+ )
259
+ additional_info_caption = "PROJECT/CONTEXT/OTHERS".ljust(max_additional_info_length)
260
+ return _get_line_str(
261
+ terminal_width=terminal_width,
262
+ description_width=min(max_desc_length, _MAX_DESCRIPTION_WIDTH),
263
+ additional_info_width=max_additional_info_length,
264
+ priority=priority_caption,
265
+ completed=completed_caption,
266
+ completed_at=completed_at_caption,
267
+ created_at=created_at_caption,
268
+ description=description_caption,
269
+ additional_info=additional_info_caption,
258
270
  )
259
271
 
260
272
 
@@ -282,6 +294,17 @@ def get_visual_todo_line(
282
294
  + [stylize_cyan(f"@{context}") for context in todo_task.contexts]
283
295
  + [stylize_magenta(f"{key}:{val}") for key, val in todo_task.keyval.items()]
284
296
  )
297
+ return _get_line_str(
298
+ terminal_width=terminal_width,
299
+ description_width=min(max_desc_length, _MAX_DESCRIPTION_WIDTH),
300
+ additional_info_width=max_additional_info_length,
301
+ priority=priority,
302
+ completed=completed,
303
+ completed_at=completed_at,
304
+ created_at=created_at,
305
+ description=description,
306
+ additional_info=additional_info,
307
+ )
285
308
  if terminal_width <= 14 + max_desc_length + max_additional_info_length:
286
309
  return " ".join([priority, completed, description])
287
310
  if terminal_width <= 36 + max_desc_length + max_additional_info_length:
@@ -291,6 +314,64 @@ def get_visual_todo_line(
291
314
  )
292
315
 
293
316
 
317
+ def _get_line_str(
318
+ terminal_width: int,
319
+ description_width: int,
320
+ additional_info_width: int,
321
+ priority: str,
322
+ completed: str,
323
+ completed_at: str,
324
+ created_at: str,
325
+ description: str,
326
+ additional_info: str,
327
+ ):
328
+ gap = "".ljust(_GAP_WIDTH)
329
+ if terminal_width >= _get_minimum_width(
330
+ [
331
+ _PRIORITY_WIDTH,
332
+ _COMPLETED_WIDTH,
333
+ _COMPLETED_AT_WIDTH,
334
+ _CREATED_AT_WIDTH,
335
+ description_width,
336
+ additional_info_width,
337
+ ]
338
+ ):
339
+ return gap.join(
340
+ [
341
+ priority,
342
+ completed,
343
+ completed_at,
344
+ created_at,
345
+ description,
346
+ additional_info,
347
+ ]
348
+ )
349
+ if terminal_width >= _get_minimum_width(
350
+ [_PRIORITY_WIDTH, _COMPLETED_WIDTH, description_width, additional_info_width]
351
+ ):
352
+ return gap.join([priority, completed, description, additional_info])
353
+ if terminal_width >= _get_minimum_width(
354
+ [
355
+ _PRIORITY_WIDTH,
356
+ _COMPLETED_WIDTH,
357
+ _COMPLETED_AT_WIDTH,
358
+ _CREATED_AT_WIDTH,
359
+ description_width,
360
+ ]
361
+ ):
362
+ return gap.join([priority, completed, completed_at, created_at, description])
363
+ if terminal_width >= _get_minimum_width(
364
+ [_PRIORITY_WIDTH, _COMPLETED_WIDTH, description_width]
365
+ ):
366
+ return gap.join([priority, completed, description])
367
+ return gap.join([priority, description])
368
+
369
+
370
+ def _get_minimum_width(field_widths: list[int]) -> int:
371
+ gap_width = _GAP_WIDTH * (len(field_widths) - 1)
372
+ return sum(field_width for field_width in field_widths) + gap_width
373
+
374
+
294
375
  def get_visual_todo_card(
295
376
  todo_task: TodoTaskModel, log_work_list: list[dict[str, str]]
296
377
  ) -> str:
@@ -344,13 +425,13 @@ def _date_to_str(date: datetime.date | None) -> str:
344
425
  return date.strftime("%a %Y-%m-%d")
345
426
 
346
427
 
347
- def add_durations(duration1: str, duration2: str) -> str:
348
- total_seconds = _parse_duration(duration1) + _parse_duration(duration2)
428
+ def add_duration(duration1: str, duration2: str) -> str:
429
+ total_seconds = parse_duration(duration1) + parse_duration(duration2)
349
430
  # Format and return the result
350
431
  return _format_duration(total_seconds)
351
432
 
352
433
 
353
- def _parse_duration(duration: str) -> int:
434
+ def parse_duration(duration: str) -> int:
354
435
  """Parse a duration string into total seconds."""
355
436
  units = {"M": 2592000, "w": 604800, "d": 86400, "h": 3600, "m": 60, "s": 1}
356
437
  total_seconds = 0
zrb/xcom/xcom.py CHANGED
@@ -4,7 +4,6 @@ from typing import Any
4
4
 
5
5
 
6
6
  class Xcom(deque):
7
-
8
7
  def __repr__(self):
9
8
  class_name = self.__class__.__name__
10
9
  return f"<{class_name} {list(self)}>"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.0.0a16
3
+ Version: 1.0.0a20
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -18,12 +18,13 @@ Requires-Dist: autopep8 (>=2.0.4,<3.0.0)
18
18
  Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
19
19
  Requires-Dist: black (>=24.10.0,<24.11.0)
20
20
  Requires-Dist: chromadb (>=0.5.20,<0.6.0) ; extra == "rag"
21
- Requires-Dist: fastapi[standard] (>=0.115.5,<0.116.0)
21
+ Requires-Dist: fastapi[standard] (>=0.115.6,<0.116.0)
22
22
  Requires-Dist: isort (>=5.13.2,<5.14.0)
23
23
  Requires-Dist: libcst (>=1.5.0,<2.0.0)
24
24
  Requires-Dist: litellm (>=1.52.12,<2.0.0)
25
25
  Requires-Dist: pdfplumber (>=0.11.4,<0.12.0) ; extra == "rag"
26
26
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
27
+ Requires-Dist: python-jose[cryptography] (>=3.3.0,<4.0.0)
27
28
  Requires-Dist: requests (>=2.32.3,<3.0.0)
28
29
  Project-URL: Documentation, https://github.com/state-alchemists/zrb
29
30
  Project-URL: Repository, https://github.com/state-alchemists/zrb
@@ -0,0 +1,243 @@
1
+ zrb/__init__.py,sha256=YY3rfl2gdDLe-t5RMWsvlChSQXv6izw24yv0V1MQ60E,2911
2
+ zrb/__main__.py,sha256=tCRJm0qtx646ojZP8Rtgu8t_SDdSpply21HbR5poVvk,744
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=xTpG014FKCt-HSe_80V27rFbYS66jrDuryeeilVd5f8,1763
6
+ zrb/builtin/base64.py,sha256=1YnSwASp7OEAvQcsnHZGpJEvYoI1Z2zTIJ1bCDHfcPQ,921
7
+ zrb/builtin/git.py,sha256=xHzg0srhp1uOSXWvwA--Fo8idkt0G9010iJ8uIndzg4,5463
8
+ zrb/builtin/git_subtree.py,sha256=GwI8befmvXEoX1xyZ4jkeG8nsyCkuRG1lzPiGss3yqw,3493
9
+ zrb/builtin/group.py,sha256=3xfEx9aEDcq6rDprGKYGqOXN2i0ts4W_RQVErL51o1o,1594
10
+ zrb/builtin/llm/llm_chat.py,sha256=ATENrihXUMkQ8IoarhacohUe-I_43yb7c0Tl5f69mAI,1397
11
+ zrb/builtin/llm/tool/cli.py,sha256=n8THj513k1vrXUoZrTcxESmdZzhBOP1-L3Dmup5ZW54,225
12
+ zrb/builtin/llm/tool/rag.py,sha256=vH4ztOATqpVqFaXEccZ2DkZ5nxioMy3t9yaaUUhAKwI,6831
13
+ zrb/builtin/llm/tool/web.py,sha256=cc-3vg8vKRq-uOk-7Z1Xe70Sn1omNqZCvePUcRptEgw,2216
14
+ zrb/builtin/md5.py,sha256=0pNlrfZA0wlZlHvFHLgyqN0JZJWGKQIF5oXxO44_OJk,949
15
+ zrb/builtin/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ zrb/builtin/project/add/fastapp/fastapp_input.py,sha256=fYD6n8-PlrTyz1Kq5GYAt0PQsyUp2qsPKRJ68hINSXE,314
17
+ zrb/builtin/project/add/fastapp/fastapp_task.py,sha256=WawXyXDM_cmpnd6_1P6_8IipkA3oHkrcY9z5TOrVDig,2567
18
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8,sha256=fgvHmuskgYiCvHZHaFtiyOWW0zasVrs0P-sFHOq3W5U,56
19
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore,sha256=1BMFpr_M5OyTs-weCZZlVlf85sWikzdbvmKu86YD7G0,28
20
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md,sha256=MAo7ZFbg7LLiAfQbXcippMgjJ2-VXMKtiTDEZ3I4AAg,221
21
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/create_column_task.py,sha256=0sPR_pe_oYUevWu0FvMvxTu6lwefsw4YH01vkCBBZsg,391
23
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py,sha256=PZw_cL9OQr6s2f1wMt4QC3hBk1JP7DtXBWFKNhJZE6o,547
24
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py,sha256=eK2-o-CfqNqPNLRv2PzAe4q5Xo6-luBLLn_uP5UtzfI,4462
25
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py,sha256=8G7Shz7H7oDC9Jp8XIMPKi-lagqKJN4vv9vPm09oFNY,7507
26
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/any_client_method.py,sha256=KH9h_QDf3nfagdfes3qLrnqlQrcjDngxslAxapAk0mc,603
27
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_usecase.py,sha256=SiawcR924z9Jpu7GRFgtIIhfDOm5eH2PPmhX4NMai_k,2339
28
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/factory.py,sha256=chQpEflbwV_m_ptvw_CVFik_9dh74iwnCO16AdmDkXo,509
29
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_db_repository.py,sha256=rEGj0fj0Al_YXmbNJGkqLOsaG8GHgJeo7mDbiqX1akw,1081
30
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository.py,sha256=Qgc65PUDHRXuHjRluq7R4lGyizm-A3BzjHkIH-xUn-0,908
31
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py,sha256=O98QJ0mH2obF_rY0dFopSEWrZ9PWm78ns2ESrjKBMgc,666
32
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py,sha256=BsZ61XWMUDWFBwuZvhbeOgHDEiZNZQFgcM0GvnyUtzs,434
33
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py,sha256=S0sKnnABSGy3YzaExH40xJjm4UsEX6AyDE1u94ewk6A,648
34
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py,sha256=Yr6lL4na7Jt0k7J8Eji3vruVNHpOow-bTotpC5259FE,1058
35
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py,sha256=B4-IBrYbWxdvvWRoQal0sBuKyM6IIUMwjindOuZReqs,2758
36
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py,sha256=__xzKTE1cEAqFPadtBoTUYIvrO90s1WfxPAvF0aHPwA,5490
37
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini,sha256=mgQyBAIwdkZZJWLu_FQWPx1FkyaARCNp6-rLqSVvMbA,3723
39
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/any_client.py,sha256=6ZI13OocD7BDF6z6RdIUL6Rk9oDzT5L55bkaN1HjmZE,104
40
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/api_client.py,sha256=CklisdLfv5cc8nDmDieh50e7f9j-ewjJjVKjGScCXu0,168
41
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/direct_client.py,sha256=qcSA4MFPIun6ppDYalCH2rU-kIj_QgOX90h_6gkn2xM,198
42
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/factory.py,sha256=SNFX-8RtX4Y41uuKyfsCxFSGbZZzI0-5QzClWZAMfaE,423
43
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
44
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py,sha256=v0VH_EyDu6yzYuw_Y5_68cVnGh6014PbzFKQPayFW-k,3353
45
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/script.py.mako,sha256=U9DYBoBRd_ooogMfRydCUGEjIDZ-aV8OsjBiBrdTvy4,680
46
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py,sha256=NbIb5ncy6x5RrFD2TZMDwxBK_wDTyJEIvieMRmNpf9M,55
48
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py,sha256=q3bZx8mE2JMWDmuJo-TYMlLz9gFt3fOGL7cX9F1rXcw,948
49
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py,sha256=uWeBptdMZfX-PZ2OdB_4DnUpIc-AZcZqb9wAehBdx7w,927
51
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py,sha256=0bDyPAmuUcYwRCTjokHMKHYiDzlCXKjlkLVo3CBb-g4,4565
52
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py,sha256=i9RQBy5UPW_wpLj4HSRXXjtUpMAsOeBVPBxn56qwKhw,3323
53
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py,sha256=ZLS3YnF-bz1AOjMCMHypzjNGX2UHXG-axdYngznC1mk,472
54
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app.py,sha256=DIcVCMzBnsFp4Op-sL-BmgSoiVnH-ZILGs45I3W-KJU,478
56
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py,sha256=e7c7clq5myjC8tkhaieeWCSBtx-zdYlaB83Chlm65YY,6018
57
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_usecase.py,sha256=3zVrV_DeTWQmDYf0RisjOyCyUbzJI0v1AP65_gC_9Sc,10030
58
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine.py,sha256=cfNvlvx8Wiku0uePQOWjf7tudZutnRYjlkca3Z-iTSo,184
59
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py,sha256=hgRvoCH3C7t_iZuLThiqJVs20zUasQWbH_8jDceF8nk,243
60
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py,sha256=dbRryeP5u7ObGX3GjF9ZID00yXffOp-AxyXu8oVJP0I,82
61
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py,sha256=FRhDQ6ZTvvdYu-I6nRhc9wxA3nYaYMpkl8q-FeZZcdA,1024
62
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py,sha256=B77GOA3qDOvU9d3aFKFZOdBs61QCPQea1x76FRa24tY,208
63
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/migrate.py,sha256=K20Seket9IlZVaZpHSrpR0Ijndv71Mtqwiujzunx98w,87
64
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini,sha256=mgQyBAIwdkZZJWLu_FQWPx1FkyaARCNp6-rLqSVvMbA,3723
66
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/any_client.py,sha256=jJLY951xnDQoLdRrKQTE0aan73gw2a7Zb_4QCu6qCu4,767
67
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/api_client.py,sha256=qgjykg69zgrVz8V2wN8bBY0ptGwkPp3Ae5G5IZVkhs4,291
68
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/direct_client.py,sha256=OIoUcTsYoTFmnzIazSZhQM9-l-7lsG-Fe54rrMpRSp0,222
69
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/factory.py,sha256=3Z-PStpA-7D_LiVO50CRchOY5m77rRhQrWcxq3fBLF4,390
70
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
71
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py,sha256=rtUFa4Gaoz3wmq7YfQ-lY8vYA5aWguwe2yvQQ1OLCL8,3343
72
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako,sha256=U9DYBoBRd_ooogMfRydCUGEjIDZ-aV8OsjBiBrdTvy4,680
73
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_user_table.py,sha256=j4tkh9NaTKNMefcy1dUdgRI5CzydUidli7i0Q6Ap-7Q,1021
74
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py,sha256=ZO-6D7V-KyESQ_e7LjiWRovsSNP5E3KS_oVo77xdFh8,157
75
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py,sha256=TdQ38QeVGvqJdLH3Ixdg_R6emcV6pLtX8CFln1lrE5o,1097
76
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py,sha256=4nz9-PBjm_Jr06nUoHXLj90Ygwm4qgT1Gy5MOMdoRfU,1583
79
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py,sha256=titxurh5C0sMZ49OTb53EG32QGYzKfZhvHqpyCxlVag,961
80
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py,sha256=-tpEF53042tyorTLvWXpf_ti-w8W8wsvPzOOi_FsqZM,449
81
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_usecase.py,sha256=LxnjFXxpnCKnpv7BqYukdP_W06Ax1NTfGujLAR1RENo,1862
82
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_usecase_factory.py,sha256=R5mK1_XGUnog0AmbNnPiuPfWAWdPanxSeI8v3NJ601E,244
83
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini,sha256=mgQyBAIwdkZZJWLu_FQWPx1FkyaARCNp6-rLqSVvMbA,3723
84
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
85
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py,sha256=xQ4UYy6aaHhE0NssPZ6QkeNFlC1KBd07EhDR0NNzj20,3349
86
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako,sha256=U9DYBoBRd_ooogMfRydCUGEjIDZ-aV8OsjBiBrdTvy4,680
87
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py,sha256=NbIb5ncy6x5RrFD2TZMDwxBK_wDTyJEIvieMRmNpf9M,55
89
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py,sha256=O_ZAxrvwQesXRv2Fpy0rEVhWpU5HKoFESlXxrVVCifE,1084
90
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py,sha256=VWSyJw-Ou96a5EENn1poa-GlthJZ3Js-Pbn9sY8bndI,1813
91
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt,sha256=B8CigKAHjauuEyQaKQ-U9g3pAbe70femEScpZgblNbI,90
92
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py,sha256=vK8Qb5dDd_b5Y9gpehUr5OMSKggp1NlkWSz8ePAa0No,769
94
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py,sha256=LoMpPZtdR6RvtmR7tOA-z-8gzOeNXOyUaawvLoBzlIM,703
95
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py,sha256=c9pnEyPHA7P1mHVcvxoqL1tFJK7vX8i5Kel9OLks-iA,678
96
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env,sha256=DquDUGa12Jzg24ATq_I6M-TglO-2vDwr5kE768DoJ-w,61
97
+ zrb/builtin/project/add/fastapp/fastapp_util.py,sha256=UVzKfljUDLvlassnKy8pKH4hBP23ZUwEK5Ouh-fr87w,1463
98
+ zrb/builtin/project/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
+ zrb/builtin/project/create/project-template/README.md,sha256=BHeWF_txdTDzKewWdWfGhO3YOTiW8E3YwTMnd0T1LVA,39
100
+ zrb/builtin/project/create/project-template/zrb_init.py,sha256=kY0x5MrkIVl3l1GtN2ROrYGNpsfN2dgRT84LCcSrGUs,44
101
+ zrb/builtin/project/create/project_task.py,sha256=B6ao8sd26mtLAkxwqjqiHy47PuACslYQtwAGcutgq7I,1140
102
+ zrb/builtin/python.py,sha256=x1TEcs_2TrS8AillDHocXov46_btH57iZrHB9gMmX8c,352
103
+ zrb/builtin/setup/asdf/asdf.py,sha256=n_dWoyYa7vZ9tBCy8hgxmSWZ-XHltC1R70mIVZQhnXY,2419
104
+ zrb/builtin/setup/asdf/asdf_helper.py,sha256=6jARtyIAE1H82HKVQ84D25RrMAsAip_gD28X9ZlaTCk,1205
105
+ zrb/builtin/setup/common_input.py,sha256=M8q9Unt7dCfBHTHqV3__Mxk9YC2Pl3DDtxat2BanZCQ,870
106
+ zrb/builtin/setup/latex/ubuntu.py,sha256=er9wJAT4CpmghIaiIPFb3FvgqAn1aqU5UgX7GHL3FjA,577
107
+ zrb/builtin/setup/tmux/tmux.py,sha256=4CswI40w3W6vsNckO7oEYnI7ySAeGhA80FsYzoq6HWQ,1410
108
+ zrb/builtin/setup/tmux/tmux_config.sh,sha256=wQCb4Q-mNkxIPOcvpN84X9RUWkGY16u3Vd-pOhVidgg,416
109
+ zrb/builtin/setup/tmux/tmux_helper.py,sha256=M03l0wfL25TzGGp6lnVfX40ayT_x7N2lz-nz2chO7PU,396
110
+ zrb/builtin/setup/ubuntu.py,sha256=oOSN7Eq7arEpY2i0vWHPR2owio6dqqOvceteYrgmbYw,1019
111
+ zrb/builtin/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
+ zrb/builtin/shell/autocomplete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
+ zrb/builtin/shell/autocomplete/bash.py,sha256=-7YDVV7txgJH9mAYSYN0jmvUEeDIzWFvVNY-cY0myF8,1181
114
+ zrb/builtin/shell/autocomplete/subcmd.py,sha256=WZI6cGWJcn80zSyxOHG7sCMO3Ucix3mZf4xm_xyB_Y0,606
115
+ zrb/builtin/shell/autocomplete/zsh.py,sha256=9hlq0Wt3fhRz326mAQTypEd4_4lZdrbBx_3A-Ti3mvw,1022
116
+ zrb/builtin/todo.py,sha256=Tnt_XhXMGaZGtA5Cn6XwWG26s3NNvfpJFlXnuMcwI7U,10796
117
+ zrb/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
+ zrb/callback/any_callback.py,sha256=Yhdv5UWHAZSVzj5K2JdxcVQx8x8VX8aZJEivj3NTfZc,247
119
+ zrb/callback/callback.py,sha256=hKefB_Jd1XGjPSLQdMKDsGLHPzEGO2dqrIArLl_EmD0,848
120
+ zrb/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
+ zrb/cmd/cmd_result.py,sha256=L8bQJzWCpcYexIxHBNsXj2pT3BtLmWex0iJSMkvimOA,597
122
+ zrb/cmd/cmd_val.py,sha256=hr8Ge0FRe7FZStvkDYnd1MUOOiJW2lDOQqBv338Ymas,963
123
+ zrb/config.py,sha256=tqOcu19vUxElbOOr0t55dbgVVD3ya6WoUP2PqlfY9N0,3823
124
+ zrb/content_transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ zrb/content_transformer/any_content_transformer.py,sha256=3XHM6ZdsJFXxRD7YlUkv0Gn7-mexsH8c8zdHt3C0x8k,741
126
+ zrb/content_transformer/content_transformer.py,sha256=vNR8Z_fS7dG2A42O7scDG96JYKBz6IDuFa_B4zMVzZY,2012
127
+ zrb/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
+ zrb/context/any_context.py,sha256=itd_lCyaPbZvcB_8XDEbvde9yQ7YPRHlOQCxE4hniB4,6251
129
+ zrb/context/any_shared_context.py,sha256=p1i9af_CUDz5Mf1h1kBZMAa2AEhf17I3O5IgAcjRLoY,1768
130
+ zrb/context/context.py,sha256=RWjluPpNBAZ_qjfza5fP-ScnEsZk2pD5rroYWQSfjAE,6201
131
+ zrb/context/shared_context.py,sha256=47Tnnor1ttpwpe_N07rMNM1jgIYPY9abMe1Q5igkMtE,2735
132
+ zrb/dot_dict/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
+ zrb/dot_dict/dot_dict.py,sha256=ubw_x8I7AOJ59xxtFVJ00VGmq_IYdZP3mUhNlO4nEK0,556
134
+ zrb/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
+ zrb/env/any_env.py,sha256=_Xd56VO09mPeogkWcZ7H8mQkWU7dmZP7ImKfxPfvlLQ,211
136
+ zrb/env/env.py,sha256=zT-xj0l5G_lp_ginV_InuBr5qTqZMcGaMKE_p5FoqlU,1061
137
+ zrb/env/env_file.py,sha256=dccsR_cjXp1Q_qz692YPaZSny3Xa049V5NAZ-WLDDEQ,746
138
+ zrb/env/env_map.py,sha256=CKMmXUbuvf6h2rgFWj-WvW_xLZNgG3TtWdfrqHDe4qk,1253
139
+ zrb/group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
+ zrb/group/any_group.py,sha256=1rNcsi5eu_86JAx_6Jy46SK4BTeppcb89MORynJd-4o,1115
141
+ zrb/group/group.py,sha256=JFmWVEQ9PVy2WCf5pUG74iwL2xcGxXaAjT-NArAeloM,1861
142
+ zrb/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
+ zrb/input/any_input.py,sha256=0YxEaXvWyG3mWmBgUf3Z0HqtFag-JSoFuBSnfdqvWWI,803
144
+ zrb/input/base_input.py,sha256=AiSCxxYqJd5rlYsuzO1zqXQQ_ZuJsSONvR7t_m9Kj-I,3161
145
+ zrb/input/bool_input.py,sha256=zI1fea1k--r57vX61YVRog9sL_O7XX3gS7J3MGE8654,1383
146
+ zrb/input/float_input.py,sha256=W_FGgnL26l6iaNkWGHDXeu20B9QHAlyHonOVR2evin0,1015
147
+ zrb/input/int_input.py,sha256=tOgjhR8KYyahcmEto05lLzYtBowBUckwpcX4v-5sJlM,1005
148
+ zrb/input/option_input.py,sha256=S9IjGNzjPBexMb6BEuyyrPOcb10xjkFwVH02k2v7C2A,1939
149
+ zrb/input/password_input.py,sha256=C2alr0hgO_YLWf9MDF2H8w0NIIf_DZlDJSdKQwEyM0E,1311
150
+ zrb/input/str_input.py,sha256=NevZHX9rf1g8eMatPyy-kUX3DglrVAQpzvVpKAzf7bA,81
151
+ zrb/input/text_input.py,sha256=7i0lvWYw79ILp0NEOBn-Twwnv7sBEgxJsqVaai6LzAA,3033
152
+ zrb/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
+ zrb/runner/cli.py,sha256=ycus4N2T4sTdvLSxocyqjK3Atacm2vGRwpZuPhk9dDA,6573
154
+ zrb/runner/common_util.py,sha256=JYBgNPSGyJHZo0X-Qp9sDi4B14NdcTi20n1fJP4SW3M,1298
155
+ zrb/runner/web_app.py,sha256=7_j-FAJqHvFNN1q03iOC7Dw4tnd4uBwpAheH-LwMmnI,11404
156
+ zrb/runner/web_config.py,sha256=9T21eEkyQYZpjdV9uAIn8um1leKL3VGB7M2SBrrxxvk,9852
157
+ zrb/runner/web_controller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
+ zrb/runner/web_controller/error_page/controller.py,sha256=Dh2vanfPMvc5aAW0rLYOd2WwUrcO1fGdNVk80-8Qzzs,857
159
+ zrb/runner/web_controller/error_page/view.html,sha256=ZlC0oLRv5WXNI-iwP0TcOoQfP5jYZJ-8ojWx_055CcE,1110
160
+ zrb/runner/web_controller/group_info_page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
+ zrb/runner/web_controller/group_info_page/controller.py,sha256=PBPCyVXILa7gCIC8d-0Exip7EAnTm3ch5GWe1Fs3WxI,1311
162
+ zrb/runner/web_controller/group_info_page/view.html,sha256=X-LtSQcbJ2HwTWGSZhN0MhXaSI4OqDF26DzyXh1COJo,1234
163
+ zrb/runner/web_controller/home_page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
+ zrb/runner/web_controller/home_page/controller.py,sha256=2e_Oarts9nnau7ZSdBDiqqvsw7qd7jsIB14BXAsu4FI,1008
165
+ zrb/runner/web_controller/home_page/view.html,sha256=p1ZoX604_q8JEqyU2awXnqKUI2bR8RXSEF4hUsLLiLc,1024
166
+ zrb/runner/web_controller/login_page/controller.py,sha256=vCRGgp8mW5JnYt-sPzWdJLLqlaARQO2zTOHAcPzkqrw,733
167
+ zrb/runner/web_controller/login_page/view.html,sha256=XANr3qHbAx3g8dGwx677zVeYbKiX5znEZPVi4oqnfcc,1715
168
+ zrb/runner/web_controller/logout_page/controller.py,sha256=0mX3wyY5jNtI1Jnxfl_7N8fHtLfBwPE81x9yh2zO_u4,764
169
+ zrb/runner/web_controller/logout_page/view.html,sha256=5hGZeil1Z4_oLRmkXdvXsDW12UFwlUt6u7wjDHvQS5s,1278
170
+ zrb/runner/web_controller/session_page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
+ zrb/runner/web_controller/session_page/controller.py,sha256=bsnslbWLEGWyKdMtqvqXRZzGLAkvjIY2tVkvSOizN3s,2616
172
+ zrb/runner/web_controller/session_page/partial/input.html,sha256=X2jy0q7TLQGP853exZMed0lqPezL3gzn6mnhB5QKfkc,178
173
+ zrb/runner/web_controller/session_page/view.html,sha256=k-jAF_AOOCcNg1vdqsXEHEQWOzkyyxPaaU2WqCIM3uM,3547
174
+ zrb/runner/web_controller/static/common.css,sha256=u5rGLsPx2943z324iQ2X81krM3z-kc-8e1SkBdYAvKU,157
175
+ zrb/runner/web_controller/static/favicon-32x32.png,sha256=yu9AIU4k_qD4YHpul6XwJgOxIbmu0thv9ymm2QOsrAk,1456
176
+ zrb/runner/web_controller/static/login/event.js,sha256=1-NxaUwU-X7Tu2RAwVkzU7gngS0OdooH7Ple4_KDrh4,1135
177
+ zrb/runner/web_controller/static/logout/event.js,sha256=MfZxrTa2yL49Lbh7cCZDdqsIcf9e1q3W8-WjmZXV5pA,692
178
+ zrb/runner/web_controller/static/pico.min.css,sha256=_Esfkjs_U_igYn-tXBUaK3AEKb7d4l9DlmaOiw9bXfI,82214
179
+ zrb/runner/web_controller/static/session/common-util.js,sha256=t7_s5DXgMyZlT8L8LYZTkzOT6vWVeZvmCKjt-bflQY0,2117
180
+ zrb/runner/web_controller/static/session/current-session.js,sha256=oA1OFWeRYJzowL8-5mMpy32m9hv-_T6MwAuVruP7XDw,6515
181
+ zrb/runner/web_controller/static/session/event.js,sha256=NpFPV2kejUu_WSqfZgW57Un791L4NbmATujavcoIhrM,4217
182
+ zrb/runner/web_controller/static/session/past-session.js,sha256=LP0ABMTm7Ap9t9G-JF4b_pRm7BCbh96D_IFb5p91FgA,5325
183
+ zrb/runner/web_util.py,sha256=4t6DQ1Avb-aPaLCPB_Q3qaDOZssZ1oNsMBIW5MDqCIU,2262
184
+ zrb/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
+ zrb/session/any_session.py,sha256=x57mS15E-AfUjdVxwOWEzCBjW32zjer7WoeBw0guoDc,5266
186
+ zrb/session/session.py,sha256=b89UdwPs0U9XXmTHNhCXFmcYXxuRVhNr94Dp_bVO3n4,9827
187
+ zrb/session_state_log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
+ zrb/session_state_log/session_state_log.py,sha256=VVghDMU72PbrvnzQ7MJuc-KTJ5P5fX0FYuCh3Rlwd9M,709
189
+ zrb/session_state_logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
+ zrb/session_state_logger/any_session_state_logger.py,sha256=OEP7RQD6sPSJP0OY8oDKRZcoqQ9oKMOjBswanMj6OaE,610
191
+ zrb/session_state_logger/default_session_state_logger.py,sha256=w_cAaNUg1ZmJk-ge1kh3xtag3SApC3ZdB3VbxUvU5Ro,197
192
+ zrb/session_state_logger/file_session_state_logger.py,sha256=1ue7-Bcwg4wlLn2G_7ARR4Rij2zUISj_Y56VBQsCaMQ,3666
193
+ zrb/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
+ zrb/task/any_task.py,sha256=9rCdKe-Sayr34Han9AsbhRxFpkbk6Rteg1DOyETulwQ,4917
195
+ zrb/task/base_task.py,sha256=Vn_MTR5aa3jIEWmh5LXpzezh-JwaEXPbjGKptx-Q-U8,19161
196
+ zrb/task/base_trigger.py,sha256=hto1xI6SIdywAmIV4Z0fBd6lL-86oLUrg9D9UB2jPJ0,4490
197
+ zrb/task/cmd_task.py,sha256=P8V0RUtzrI4qFdQbgJo_hoRV1E5nDwFdZhCh6BHkTkg,10184
198
+ zrb/task/http_check.py,sha256=TwQCql3589a4-H2c7hgS1HayyU-NdBAdJ4qQNTvjXHM,2474
199
+ zrb/task/llm_task.py,sha256=1jWkGcbeY_zmpKObowInsX0JJ-xLrIO1AkseOSRQqDw,8542
200
+ zrb/task/make_task.py,sha256=1eVfaq8gbrlCRgwDgce9xcha-WZ1iVBbrrFdSJr9sE8,2178
201
+ zrb/task/rsync_task.py,sha256=vENITMBXShKgj-NNgjM8eUK2ujU3wD8MUvyS_69ePEA,6227
202
+ zrb/task/scaffolder.py,sha256=UZ25QKBejeSd2sTGF99OvG9Vz_9xYpLrCJ0HJFWf2XE,6646
203
+ zrb/task/scheduler.py,sha256=V4krEPojWAOqAsdLwLH97j97zI1lID5q9KCLTmlPWdM,3046
204
+ zrb/task/task.py,sha256=KCrCaWYOQQvv1RJsYtHDeo9RBFmlXQ28oKyEFU4Q7pA,73
205
+ zrb/task/tcp_check.py,sha256=UQ3rMrwDwhuvz-lf1qx6Z3D4mWPqdJIjxqcIKCOKVes,2420
206
+ zrb/task_status/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
+ zrb/task_status/task_status.py,sha256=aRygkj0DKrOYWgz2eF5wNmYcpVbLeklxL521BqIQN4A,3005
208
+ zrb/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
+ zrb/util/attr.py,sha256=HkXd2N-eUXw2o4WWWJpo2q8N0kS7k08jsMLXpK_3zq0,2353
210
+ zrb/util/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
211
+ zrb/util/cli/style.py,sha256=wxdtE18d4Q3GV7aojinD-XN9iWvazfvLs9MTJPlCNQU,3805
212
+ zrb/util/cli/subcommand.py,sha256=gYr-CzVeKFQhY43s_FDstPwn8r-ypUz1Q2Rv_l2r-ck,1027
213
+ zrb/util/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
+ zrb/util/cmd/command.py,sha256=awuhBC7_44aMCIj81m64mU6LosR75GnIlXR9yDA-R3k,3432
215
+ zrb/util/cmd/remote.py,sha256=VklVORobTmE7FqdtYsVLq9xkSYTR2W5r2Zou0-soidw,710
216
+ zrb/util/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
+ zrb/util/codemod/append_code_to_class.py,sha256=5PiGzFqB-q8XQnGnDqWBn4OA4ydSmQWpKQzSr3l6wws,1361
218
+ zrb/util/codemod/append_code_to_function.py,sha256=kOCWuaVMoRgyGdyAZOrx8NNUOMUY5scyOegJsqJhUO4,1497
219
+ zrb/util/codemod/append_code_to_method.py,sha256=nfTcBkcvPZX0YhQzOb0abqbW3m2EKlbwbb-WRXtMBF4,2368
220
+ zrb/util/codemod/append_key_to_dict.py,sha256=ZVaAXCZEXs_j3NrCjvXoOYeDFF0RCLYe7y-dJZIcBvI,2113
221
+ zrb/util/codemod/append_param_to_function_call.py,sha256=V8hQor4z0dTSiLzQ7pYOZI2TclUlwc-ZNe5KpqlH7X8,1570
222
+ zrb/util/codemod/prepend_code_to_module.py,sha256=O_2PxXdRiIf-aJ3AUAAHuezYzJol83V4Y8TZ2T3-aEE,525
223
+ zrb/util/codemod/prepend_parent_to_class.py,sha256=xOcDHv1cXXV_VqLHVifr6jvDoWk_iOLammhNxsWc6r8,1417
224
+ zrb/util/codemod/prepend_property_to_class.py,sha256=9L11WaYIUF53Kn_ZMT51ylhm7xTxttNjPp83Mnm9iUQ,2079
225
+ zrb/util/cron.py,sha256=9fTGatUMYCRgmDFGg-z6_XerT4U5Vq72nD05NnEVUm4,2852
226
+ zrb/util/file.py,sha256=ORbuGcMlvY1fBlwK3RD-07U7BfdAarSwhlj2aGnjVBQ,591
227
+ zrb/util/git.py,sha256=o_kLF1fySv5uQdLlhY-ztc-z0zLOdcDf0IpuPAl2ciA,4733
228
+ zrb/util/git_subtree.py,sha256=US8oCHUOKgt14Ie6SaEelwTs__jLGLPsDQZvI-1P4KY,2640
229
+ zrb/util/group.py,sha256=Bg7HrSycoK110U5s_Tca6-uUQuZ5CMgb8wxZSrvDQ98,2790
230
+ zrb/util/llm/tool.py,sha256=9ezbPEAyMKLWABgeqAimJ82KBFl7ciWNFVGhtllXg6s,2106
231
+ zrb/util/load.py,sha256=i8_83ApWJXlZlbFMNfEptrOzfXdvtaIhAErsd6tU9y8,1649
232
+ zrb/util/run.py,sha256=DGHUP9x1Q8V8UF3FbpmjLGuhVVCCLfjTH2teT8qXlNI,207
233
+ zrb/util/string/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
+ zrb/util/string/conversion.py,sha256=636sfF1a3_bpzXNw5bdSzbJzwakyAoo70KT3_ItgZEo,4333
235
+ zrb/util/string/format.py,sha256=c9dUrsl_DII7jZZPJi9NBTvxKnrzZDPcQuksW6FJ_Lk,611
236
+ zrb/util/string/name.py,sha256=8picJfUBXNpdh64GNaHv3om23QHhUZux7DguFLrXHp8,1163
237
+ zrb/util/todo.py,sha256=1nDdwPc22oFoK_1ZTXyf3638Bg6sqE2yp_U4_-frHoc,16015
238
+ zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
239
+ zrb/xcom/xcom.py,sha256=o79rxR9wphnShrcIushA0Qt71d_p3ZTxjNf7x9hJB78,1571
240
+ zrb-1.0.0a20.dist-info/METADATA,sha256=u-FbzxbG3e53o9Q9_YN93QeDzSKbsF6jq82fJB7EHhQ,4164
241
+ zrb-1.0.0a20.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
242
+ zrb-1.0.0a20.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
243
+ zrb-1.0.0a20.dist-info/RECORD,,
@@ -1,87 +0,0 @@
1
- import os
2
-
3
- from zrb.builtin.group import add_to_project_group
4
- from zrb.context.any_context import AnyContext
5
- from zrb.input.str_input import StrInput
6
- from zrb.task.make_task import make_task
7
- from zrb.task.scaffolder import Scaffolder
8
- from zrb.task.task import Task
9
- from zrb.util.string.conversion import double_quote, to_snake_case
10
- from zrb.util.string.name import get_random_name
11
-
12
- _DIR = os.path.dirname(__file__)
13
-
14
-
15
- scaffold_fastapp = Scaffolder(
16
- name="scaffold-fastapp",
17
- input=[
18
- StrInput(
19
- name="project-dir",
20
- description="Project directory",
21
- prompt="Project directory",
22
- default_str=lambda _: os.getcwd(),
23
- ),
24
- StrInput(
25
- name="app",
26
- description="App name",
27
- prompt="App name",
28
- ),
29
- ],
30
- source_path=os.path.join(_DIR, "fastapp_template"),
31
- render_source_path=False,
32
- destination_path=lambda ctx: os.path.join(ctx.input["project-dir"], ctx.input.app),
33
- transform_content={
34
- "fastapp_template": "{to_snake_case(ctx.input.app)}",
35
- "My App Name": "{ctx.input.app.title()}",
36
- "my-app-name": "{to_kebab_case(ctx.input.app)}",
37
- "my_app_name": "{to_snake_case(ctx.input.app)}",
38
- "MY_APP_NAME": "{to_snake_case(ctx.input.app).upper()}",
39
- "my-secure-password": lambda _: get_random_name(),
40
- },
41
- retries=0,
42
- )
43
-
44
-
45
- @make_task(
46
- name="register-fastapp-automation",
47
- retries=0,
48
- )
49
- def register_fastapp_automation(ctx: AnyContext):
50
- project_dir_path = ctx.input["project-dir"]
51
- zrb_init_path = os.path.join(project_dir_path, "zrb_init.py")
52
- app_dir_path = ctx.input.app
53
- app_name = to_snake_case(ctx.input.app)
54
- with open(zrb_init_path, "r") as f:
55
- file_content = f.read().strip()
56
- # Assemble new content
57
- new_content_list = [file_content]
58
- # Check if import load_file is exists, if not exists, add
59
- import_load_file_script = "from zrb import load_file"
60
- if import_load_file_script not in file_content:
61
- new_content_list = [import_load_file_script] + new_content_list
62
- # Add fastapp-automation script
63
- automation_file_part = ", ".join(
64
- [double_quote(part) for part in [app_dir_path, "_zrb", "main.py"]]
65
- )
66
- new_content_list = new_content_list + [
67
- f"{app_name} = load_file(os.path.join(_DIR, {automation_file_part}))",
68
- f"assert {app_name}",
69
- "",
70
- ]
71
- new_content = "\n".join(new_content_list)
72
- # Write new content
73
- with open(zrb_init_path, "w") as f:
74
- f.write(new_content)
75
-
76
-
77
- scaffold_fastapp >> register_fastapp_automation
78
-
79
- add_fastapp_to_project = add_to_project_group.add_task(
80
- Task(
81
- name="add-fastapp",
82
- description="🚀 Add FastApp to project",
83
- retries=0,
84
- ),
85
- alias="fastapp",
86
- )
87
- add_fastapp_to_project << [register_fastapp_automation]
@@ -1,11 +0,0 @@
1
- from fastapp_template._zrb.group import app_create_group
2
-
3
- from zrb import Task
4
-
5
- create_my_app_name_column = app_create_group.add_task(
6
- Task(
7
- name="create-my-app-name-column",
8
- description="📊 Create new column on an entity",
9
- ),
10
- alias="column",
11
- )