zrb 1.0.0a2__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 (151) 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 +1 -1
  81. zrb/context/any_shared_context.py +3 -3
  82. zrb/context/context.py +10 -8
  83. zrb/context/shared_context.py +9 -8
  84. zrb/env/__init__.py +0 -3
  85. zrb/env/any_env.py +1 -1
  86. zrb/env/env.py +3 -4
  87. zrb/env/env_file.py +4 -4
  88. zrb/env/env_map.py +2 -2
  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 -45
  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 +8 -12
  107. zrb/runner/web_app/task_ui/view.html +2 -2
  108. zrb/runner/web_server.py +137 -211
  109. zrb/runner/web_util.py +5 -35
  110. zrb/session/any_session.py +13 -7
  111. zrb/session/session.py +78 -40
  112. zrb/session_state_log/session_state_log.py +7 -5
  113. zrb/session_state_logger/any_session_state_logger.py +1 -1
  114. zrb/session_state_logger/default_session_state_logger.py +2 -2
  115. zrb/session_state_logger/file_session_state_logger.py +19 -27
  116. zrb/task/any_task.py +4 -4
  117. zrb/task/base_task.py +33 -23
  118. zrb/task/base_trigger.py +11 -12
  119. zrb/task/cmd_task.py +48 -39
  120. zrb/task/http_check.py +8 -8
  121. zrb/task/llm_task.py +160 -0
  122. zrb/task/make_task.py +9 -9
  123. zrb/task/rsync_task.py +7 -7
  124. zrb/task/scaffolder.py +14 -11
  125. zrb/task/scheduler.py +6 -7
  126. zrb/task/task.py +1 -1
  127. zrb/task/tcp_check.py +8 -8
  128. zrb/util/attr.py +19 -3
  129. zrb/util/cli/style.py +71 -2
  130. zrb/util/cli/subcommand.py +2 -2
  131. zrb/util/codemod/__init__.py +0 -0
  132. zrb/util/codemod/add_code_to_class.py +35 -0
  133. zrb/util/codemod/add_code_to_function.py +36 -0
  134. zrb/util/codemod/add_code_to_method.py +55 -0
  135. zrb/util/codemod/add_key_to_dict.py +51 -0
  136. zrb/util/codemod/add_param_to_function_call.py +39 -0
  137. zrb/util/codemod/add_property_to_class.py +55 -0
  138. zrb/util/git.py +156 -0
  139. zrb/util/git_subtree.py +94 -0
  140. zrb/util/group.py +2 -2
  141. zrb/util/llm/tool.py +63 -0
  142. zrb/util/string/conversion.py +7 -0
  143. zrb/util/todo.py +135 -0
  144. {zrb-1.0.0a2.dist-info → zrb-1.0.0a3.dist-info}/METADATA +8 -5
  145. zrb-1.0.0a3.dist-info/RECORD +194 -0
  146. zrb/builtin/shell/_group.py +0 -9
  147. zrb/builtin/shell/autocomplete/_group.py +0 -6
  148. zrb/runner/web_app/any_request_handler.py +0 -24
  149. zrb-1.0.0a2.dist-info/RECORD +0 -120
  150. {zrb-1.0.0a2.dist-info → zrb-1.0.0a3.dist-info}/WHEEL +0 -0
  151. {zrb-1.0.0a2.dist-info → zrb-1.0.0a3.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,94 @@
1
+ import os
2
+ import subprocess
3
+
4
+ from pydantic import BaseModel
5
+
6
+ from zrb.util.git import get_repo_dir
7
+
8
+
9
+ class SingleSubTreeConfig(BaseModel):
10
+ repo_url: str
11
+ branch: str
12
+ prefix: str
13
+
14
+
15
+ class SubTreeConfig(BaseModel):
16
+ data: dict[str, SingleSubTreeConfig]
17
+
18
+
19
+ def load_config() -> SubTreeConfig:
20
+ file_path = os.path.join(get_repo_dir(), "subtrees.json")
21
+ if not os.path.exists(file_path):
22
+ return SubTreeConfig(data={})
23
+ with open(file_path, "r") as f:
24
+ return SubTreeConfig.model_validate_json(f.read())
25
+
26
+
27
+ def save_config(config: SubTreeConfig):
28
+ file_path = os.path.join(get_repo_dir(), "subtrees.json")
29
+ with open(file_path, "w") as f:
30
+ f.write(config.model_dump_json(indent=2))
31
+
32
+
33
+ def add_subtree(name: str, repo_url: str, branch: str, prefix: str):
34
+ config = load_config()
35
+ if os.path.isdir(prefix):
36
+ raise ValueError(f"Directory exists: {prefix}")
37
+ if name in config.data:
38
+ raise ValueError(f"Subtree config already exists: {name}")
39
+ try:
40
+ subprocess.run(
41
+ ["git", "subtree", "add", "--prefix", prefix, repo_url, branch],
42
+ stdout=subprocess.PIPE,
43
+ stderr=subprocess.PIPE,
44
+ text=True,
45
+ check=True,
46
+ )
47
+ except subprocess.CalledProcessError as e:
48
+ raise Exception(e.stderr or e.stdout)
49
+ config.data[name] = SingleSubTreeConfig(
50
+ repo_url=repo_url, branch=branch, prefix=prefix
51
+ )
52
+ save_config(config)
53
+
54
+
55
+ def pull_subtree(prefix: str, repo_url: str, branch: str):
56
+ try:
57
+ subprocess.run(
58
+ [
59
+ "git",
60
+ "subtree",
61
+ "pull",
62
+ "--prefix",
63
+ prefix,
64
+ repo_url,
65
+ branch,
66
+ ],
67
+ stdout=subprocess.PIPE,
68
+ stderr=subprocess.PIPE,
69
+ text=True,
70
+ check=True,
71
+ )
72
+ except subprocess.CalledProcessError as e:
73
+ raise Exception(e.stderr or e.stdout)
74
+
75
+
76
+ def push_subtree(prefix: str, repo_url: str, branch: str):
77
+ try:
78
+ subprocess.run(
79
+ [
80
+ "git",
81
+ "subtree",
82
+ "push",
83
+ "--prefix",
84
+ prefix,
85
+ repo_url,
86
+ branch,
87
+ ],
88
+ stdout=subprocess.PIPE,
89
+ stderr=subprocess.PIPE,
90
+ text=True,
91
+ check=True,
92
+ )
93
+ except subprocess.CalledProcessError as e:
94
+ raise Exception(e.stderr or e.stdout)
zrb/util/group.py CHANGED
@@ -1,5 +1,5 @@
1
- from ..group.any_group import AnyGroup
2
- from ..task.any_task import AnyTask
1
+ from zrb.group.any_group import AnyGroup
2
+ from zrb.task.any_task import AnyTask
3
3
 
4
4
 
5
5
  class NodeNotFoundError(ValueError):
zrb/util/llm/tool.py ADDED
@@ -0,0 +1,63 @@
1
+ import inspect
2
+ from collections.abc import Callable
3
+ from typing import Any, get_type_hints
4
+
5
+
6
+ def callable_to_tool_schema(
7
+ callable_obj: Callable, name: str | None = None, description: str | None = None
8
+ ) -> dict[str, Any]:
9
+ """
10
+ Convert a callable into a tool schema dictionary by deriving the parameter schema.
11
+
12
+ :param callable_obj: The callable object (e.g., a function).
13
+ :param name: The name to assign to the function in the schema.
14
+ :param description: A description of the function.
15
+ :return: A dictionary representing the tool schema.
16
+ """
17
+ if not callable(callable_obj):
18
+ raise ValueError("Provided object is not callable")
19
+ # Derive name and description
20
+ name = name or callable_obj.__name__
21
+ description = description or (callable_obj.__doc__ or "").strip()
22
+ # Get function signature
23
+ sig = inspect.signature(callable_obj)
24
+ hints = get_type_hints(callable_obj)
25
+ # Build parameter schema
26
+ param_schema = {"type": "object", "properties": {}, "required": []}
27
+ for param_name, param in sig.parameters.items():
28
+ param_type = hints.get(param_name, str) # Default type is string
29
+ param_schema["properties"][param_name] = {
30
+ "type": _python_type_to_json_type(param_type)
31
+ }
32
+ if param.default is inspect.Parameter.empty:
33
+ param_schema["required"].append(param_name)
34
+ return {
35
+ "type": "function",
36
+ "function": {
37
+ "name": name,
38
+ "description": description,
39
+ "parameters": param_schema,
40
+ },
41
+ }
42
+
43
+
44
+ def _python_type_to_json_type(py_type):
45
+ """
46
+ Map Python types to JSON Schema types.
47
+ """
48
+ if py_type is str:
49
+ return "string"
50
+ elif py_type is int:
51
+ return "integer"
52
+ elif py_type is float:
53
+ return "number"
54
+ elif py_type is bool:
55
+ return "boolean"
56
+ elif py_type is list:
57
+ return "array"
58
+ elif py_type is dict:
59
+ return "object"
60
+ elif py_type in {None, type(None)}:
61
+ return "null"
62
+ else:
63
+ return "string" # Default to string for unsupported types
@@ -5,6 +5,13 @@ TRUE_STRS = ["true", "1", "yes", "y", "active", "on"]
5
5
  FALSE_STRS = ["false", "0", "no", "n", "inactive", "off"]
6
6
 
7
7
 
8
+ def double_quote(input_string: str) -> str:
9
+ # Escape necessary characters: backslashes and double quotes
10
+ escaped_string = re.sub(r'([\\"])', r"\\\1", input_string)
11
+ # Wrap in double quotes
12
+ return f'"{escaped_string}"'
13
+
14
+
8
15
  def to_boolean(text: str) -> bool:
9
16
  if text.lower() in TRUE_STRS:
10
17
  return True
zrb/util/todo.py ADDED
@@ -0,0 +1,135 @@
1
+ import datetime
2
+ import re
3
+
4
+ from pydantic import BaseModel, Field, model_validator
5
+
6
+
7
+ class TodoTask(BaseModel):
8
+ priority: str | None = Field("D", pattern=r"^[A-Z]$") # Priority like A, B, ...
9
+ completed: bool = False # True if completed, False otherwise
10
+ description: str # Main task description
11
+ projects: list[str] = [] # List of projects (e.g., +Project)
12
+ contexts: list[str] = [] # List of contexts (e.g., @Context)
13
+ keyval: dict[str, str] = {} # Special key (e.g., due:2016-05-30)
14
+ creation_date: datetime.date | None = None # Creation date
15
+ completion_date: datetime.date | None = None # Completion date
16
+
17
+ @model_validator(mode="before")
18
+ def validate_dates(cls, values):
19
+ completion_date = values.get("completion_date")
20
+ creation_date = values.get("creation_date")
21
+ if completion_date and not creation_date:
22
+ raise ValueError(
23
+ "creation_date must be specified if completion_date is set."
24
+ )
25
+ return values
26
+
27
+
28
+ TODO_TXT_PATTERN = re.compile(
29
+ r"^(?P<status>x)?\s*" # Optional completion mark ('x')
30
+ r"(?:\((?P<priority>[A-Z])\)\s+)?" # Optional priority (e.g., '(A)')
31
+ r"(?P<date1>\d{4}-\d{2}-\d{2})?\s*" # Optional first date
32
+ r"(?P<date2>\d{4}-\d{2}-\d{2})?\s*" # Optional second date
33
+ r"(?P<description>.*?)$" # Main description
34
+ )
35
+
36
+
37
+ def read_todo_from_file(todo_file_path: str) -> list[TodoTask]:
38
+ with open(todo_file_path, "r") as f:
39
+ todo_lines = f.read().strip().split("\n")
40
+ todo_tasks: list[TodoTask] = []
41
+ for todo_line in todo_lines:
42
+ todo_line = todo_line.strip()
43
+ if todo_line == "":
44
+ continue
45
+ todo_tasks.append(parse_todo_line(todo_line))
46
+ todo_tasks.sort(
47
+ key=lambda task: (
48
+ task.completed,
49
+ task.priority if task.priority else "Z",
50
+ task.projects[0] if task.projects else "zzz",
51
+ task.creation_date if task.creation_date else datetime.date.max,
52
+ )
53
+ )
54
+ return todo_tasks
55
+
56
+
57
+ def write_todo_to_file(todo_file_path: str, todo_task_list: list[TodoTask]):
58
+ with open(todo_file_path, "w") as f:
59
+ for todo_task in todo_task_list:
60
+ f.write(todo_task_to_line(todo_task))
61
+
62
+
63
+ def parse_todo_line(line: str) -> TodoTask:
64
+ """Parses a single todo.txt line into a TodoTask model."""
65
+ match = TODO_TXT_PATTERN.match(line)
66
+ if not match:
67
+ raise ValueError(f"Invalid todo.txt line: {line}")
68
+ groups = match.groupdict()
69
+ # Extract completion status
70
+ is_completed = groups["status"] == "x"
71
+ # Extract dates
72
+ date1 = parse_date(groups["date1"])
73
+ date2 = parse_date(groups["date2"])
74
+ # Determine creation_date and completion_date
75
+ completion_date, creation_date = None, None
76
+ if date2 is None:
77
+ creation_date = date1
78
+ else:
79
+ completion_date = date1
80
+ creation_date = date2
81
+ # Extract and clean description
82
+ raw_description = groups["description"] or ""
83
+ projects = re.findall(r"\+(\S+)", raw_description)
84
+ contexts = re.findall(r"@(\S+)", raw_description)
85
+ keyval = {}
86
+ for keyval_str in re.findall(r"(\S+:\S+)", raw_description):
87
+ key, val = keyval_str.split(":", 1)
88
+ keyval[key] = val
89
+ description = re.sub(r"\s*\+\S+|\s*@\S+|\s*\S+:\S+", "", raw_description).strip()
90
+ return TodoTask(
91
+ priority=groups["priority"],
92
+ completed=is_completed,
93
+ description=description,
94
+ projects=projects,
95
+ contexts=contexts,
96
+ keyval=keyval,
97
+ creation_date=creation_date,
98
+ completion_date=completion_date,
99
+ )
100
+
101
+
102
+ def parse_date(date_str: str | None) -> datetime.date | None:
103
+ """Parses a date string in the format YYYY-MM-DD."""
104
+ if date_str:
105
+ return datetime.date.fromisoformat(date_str)
106
+ return None
107
+
108
+
109
+ def todo_task_to_line(task: TodoTask) -> str:
110
+ """Converts a TodoTask instance back into a todo.txt formatted line."""
111
+ parts = []
112
+ # Add completion mark if task is completed
113
+ if task.completed:
114
+ parts.append("x")
115
+ # Add priority if present
116
+ if task.priority:
117
+ parts.append(f"({task.priority})")
118
+ # Add completion and creation dates if present
119
+ if task.completion_date:
120
+ parts.append(task.completion_date.isoformat())
121
+ if task.creation_date:
122
+ parts.append(task.creation_date.isoformat())
123
+ # Add description
124
+ parts.append(task.description)
125
+ # Append projects
126
+ for project in task.projects:
127
+ parts.append(f"+{project}")
128
+ # Append contexts
129
+ for context in task.contexts:
130
+ parts.append(f"@{context}")
131
+ # Append keyval
132
+ for key, val in task.keyval.items():
133
+ parts.append(f"{key}:{val}")
134
+ # Join all parts with a space
135
+ return " ".join(parts)
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.0.0a2
4
- Summary: A Framework to Enhance Your Workflow
3
+ Version: 1.0.0a3
4
+ Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
7
7
  Keywords: Automation,Task Runner,Code Generator,Monorepo,Low Code
@@ -13,10 +13,13 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
- Requires-Dist: autopep8 (>=2.0.4,<2.1.0)
17
- Requires-Dist: python-dotenv (>=1.0.1,<1.1.0)
16
+ Requires-Dist: autopep8 (>=2.0.4,<3.0.0)
17
+ Requires-Dist: black (>=24.10.0,<24.11.0)
18
+ Requires-Dist: isort (>=5.13.2,<5.14.0)
19
+ Requires-Dist: libcst (>=1.5.0,<2.0.0)
20
+ Requires-Dist: litellm (>=1.52.12,<2.0.0)
21
+ Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
18
22
  Requires-Dist: requests (>=2.32.3,<3.0.0)
19
- Requires-Dist: tomlkit (>=0.12.4,<0.13.0)
20
23
  Project-URL: Documentation, https://github.com/state-alchemists/zrb
21
24
  Project-URL: Repository, https://github.com/state-alchemists/zrb
22
25
  Description-Content-Type: text/markdown
@@ -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