zrb 1.0.0b7__py3-none-any.whl → 1.0.0b9__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 (40) hide show
  1. zrb/__main__.py +3 -0
  2. zrb/builtin/git.py +15 -15
  3. zrb/builtin/git_subtree.py +6 -6
  4. zrb/builtin/project/add/fastapp/fastapp_task.py +1 -0
  5. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +1 -0
  6. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service.py +5 -5
  7. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +1 -0
  8. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +8 -0
  9. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +9 -2
  10. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +100 -0
  11. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +6 -86
  12. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +27 -11
  13. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +32 -27
  14. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +15 -0
  15. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +22 -5
  16. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +21 -0
  17. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +103 -61
  18. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +3 -4
  19. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +15 -14
  20. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +4 -4
  21. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +24 -5
  22. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +14 -12
  23. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +130 -96
  24. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +28 -11
  25. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +220 -13
  26. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +30 -2
  27. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +27 -2
  28. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +2 -1
  29. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +1 -0
  30. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +13 -12
  31. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +55 -12
  32. zrb/task/cmd_task.py +4 -7
  33. zrb/util/cmd/command.py +41 -50
  34. zrb/util/git.py +18 -18
  35. zrb/util/git_subtree.py +6 -6
  36. {zrb-1.0.0b7.dist-info → zrb-1.0.0b9.dist-info}/METADATA +2 -1
  37. {zrb-1.0.0b7.dist-info → zrb-1.0.0b9.dist-info}/RECORD +39 -39
  38. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/session.py +0 -48
  39. {zrb-1.0.0b7.dist-info → zrb-1.0.0b9.dist-info}/WHEEL +0 -0
  40. {zrb-1.0.0b7.dist-info → zrb-1.0.0b9.dist-info}/entry_points.txt +0 -0
zrb/util/cmd/command.py CHANGED
@@ -1,26 +1,12 @@
1
1
  import asyncio
2
2
  import os
3
3
  import re
4
- import signal
5
4
  import sys
6
5
  from collections.abc import Callable
7
6
 
8
- from zrb.cmd.cmd_result import CmdResult
9
-
10
- _RUNNING_PROCESSES = []
11
-
12
-
13
- def _cleanup_processes():
14
- """Terminate all running subprocesses on exit."""
15
- for process in _RUNNING_PROCESSES:
16
- if process.returncode is None:
17
- process.terminate()
18
- process.kill()
19
-
7
+ import psutil
20
8
 
21
- # Register a single cleanup function once
22
- signal.signal(signal.SIGINT, lambda sig, frame: _cleanup_processes())
23
- signal.signal(signal.SIGTERM, lambda sig, frame: _cleanup_processes())
9
+ from zrb.cmd.cmd_result import CmdResult
24
10
 
25
11
 
26
12
  def check_unrecommended_commands(cmd_script: str) -> dict[str, str]:
@@ -65,7 +51,7 @@ async def run_command(
65
51
  max_error_line: int = 1000,
66
52
  ) -> tuple[CmdResult, int]:
67
53
  async def __read_stream(
68
- stream, log_method: Callable[..., None], max_lines: int
54
+ stream, print_method: Callable[..., None], max_lines: int
69
55
  ) -> str:
70
56
  lines = []
71
57
  while True:
@@ -76,40 +62,45 @@ async def run_command(
76
62
  lines.append(line)
77
63
  if len(lines) > max_lines:
78
64
  lines.pop(0) # Keep only the last max_lines
79
- log_method(line)
65
+ print_method(line)
80
66
  return "\n".join(lines)
81
67
 
82
68
  actual_print_method = print_method if print_method is not None else print
83
69
  cmd_process = None
84
- try:
85
- if cwd is None:
86
- cwd = os.getcwd()
87
- if env_map is None:
88
- env_map = os.environ
89
- cmd_process = await asyncio.create_subprocess_exec(
90
- *cmd,
91
- cwd=cwd,
92
- stdin=sys.stdin if sys.stdin.isatty() else None,
93
- stdout=asyncio.subprocess.PIPE,
94
- stderr=asyncio.subprocess.PIPE,
95
- env=env_map,
96
- bufsize=0,
97
- )
98
- if register_pid_method is not None:
99
- register_pid_method(cmd_process.pid)
100
- stdout_task = asyncio.create_task(
101
- __read_stream(cmd_process.stdout, actual_print_method, max_output_line)
102
- )
103
- stderr_task = asyncio.create_task(
104
- __read_stream(cmd_process.stderr, actual_print_method, max_error_line)
105
- )
106
- # Wait for process to complete and gather stdout/stderr
107
- return_code = await cmd_process.wait()
108
- stdout = await stdout_task
109
- stderr = await stderr_task
110
- return CmdResult(stdout, stderr), return_code
111
- finally:
112
- if cmd_process in _RUNNING_PROCESSES:
113
- _RUNNING_PROCESSES.remove(cmd_process)
114
- if cmd_process is not None and cmd_process.returncode is None:
115
- cmd_process.terminate()
70
+ if cwd is None:
71
+ cwd = os.getcwd()
72
+ if env_map is None:
73
+ env_map = os.environ
74
+ cmd_process = await asyncio.create_subprocess_exec(
75
+ *cmd,
76
+ cwd=cwd,
77
+ stdin=sys.stdin if sys.stdin.isatty() else None,
78
+ stdout=asyncio.subprocess.PIPE,
79
+ stderr=asyncio.subprocess.PIPE,
80
+ env=env_map,
81
+ bufsize=0,
82
+ )
83
+ if register_pid_method is not None:
84
+ register_pid_method(cmd_process.pid)
85
+ stdout_task = asyncio.create_task(
86
+ __read_stream(cmd_process.stdout, actual_print_method, max_output_line)
87
+ )
88
+ stderr_task = asyncio.create_task(
89
+ __read_stream(cmd_process.stderr, actual_print_method, max_error_line)
90
+ )
91
+ # Wait for process to complete and gather stdout/stderr
92
+ return_code = await cmd_process.wait()
93
+ stdout = await stdout_task
94
+ stderr = await stderr_task
95
+ return CmdResult(stdout, stderr), return_code
96
+
97
+
98
+ def kill_pid(pid: int, print_method: Callable[..., None] | None = None):
99
+ actual_print_method = print_method if print_method is not None else print
100
+ parent = psutil.Process(pid)
101
+ children = parent.children(recursive=True)
102
+ for child in children:
103
+ actual_print_method(f"Killing child process {child.pid}")
104
+ child.terminate()
105
+ actual_print_method(f"Killing process {pid}")
106
+ parent.terminate()
zrb/util/git.py CHANGED
@@ -17,12 +17,12 @@ async def get_diff(
17
17
  repo_dir: str,
18
18
  source_commit: str,
19
19
  current_commit: str,
20
- log_method: Callable[..., Any] = print,
20
+ print_method: Callable[..., Any] = print,
21
21
  ) -> DiffResult:
22
22
  cmd_result, exit_code = await run_command(
23
23
  cmd=["git", "diff", source_commit, current_commit],
24
24
  cwd=repo_dir,
25
- print_method=log_method,
25
+ print_method=print_method,
26
26
  )
27
27
  if exit_code != 0:
28
28
  raise Exception(f"Non zero exit code: {exit_code}")
@@ -54,10 +54,10 @@ async def get_diff(
54
54
  )
55
55
 
56
56
 
57
- async def get_repo_dir(log_method: Callable[..., Any] = print) -> str:
57
+ async def get_repo_dir(print_method: Callable[..., Any] = print) -> str:
58
58
  cmd_result, exit_code = await run_command(
59
59
  cmd=["git", "rev-parse", "--show-toplevel"],
60
- print_method=log_method,
60
+ print_method=print_method,
61
61
  )
62
62
  if exit_code != 0:
63
63
  raise Exception(f"Non zero exit code: {exit_code}")
@@ -65,12 +65,12 @@ async def get_repo_dir(log_method: Callable[..., Any] = print) -> str:
65
65
 
66
66
 
67
67
  async def get_current_branch(
68
- repo_dir: str, log_method: Callable[..., Any] = print
68
+ repo_dir: str, print_method: Callable[..., Any] = print
69
69
  ) -> str:
70
70
  cmd_result, exit_code = await run_command(
71
71
  cmd=["git", "rev-parse", "--abbrev-ref", "HEAD"],
72
72
  cwd=repo_dir,
73
- print_method=log_method,
73
+ print_method=print_method,
74
74
  )
75
75
  if exit_code != 0:
76
76
  raise Exception(f"Non zero exit code: {exit_code}")
@@ -78,12 +78,12 @@ async def get_current_branch(
78
78
 
79
79
 
80
80
  async def get_branches(
81
- repo_dir: str, log_method: Callable[..., Any] = print
81
+ repo_dir: str, print_method: Callable[..., Any] = print
82
82
  ) -> list[str]:
83
83
  cmd_result, exit_code = await run_command(
84
84
  cmd=["git", "rev-parse", "--abbrev-ref", "HEAD"],
85
85
  cwd=repo_dir,
86
- print_method=log_method,
86
+ print_method=print_method,
87
87
  )
88
88
  if exit_code != 0:
89
89
  raise Exception(f"Non zero exit code: {exit_code}")
@@ -93,35 +93,35 @@ async def get_branches(
93
93
 
94
94
 
95
95
  async def delete_branch(
96
- repo_dir: str, branch_name: str, log_method: Callable[..., Any] = print
96
+ repo_dir: str, branch_name: str, print_method: Callable[..., Any] = print
97
97
  ) -> str:
98
98
  cmd_result, exit_code = await run_command(
99
99
  cmd=["git", "branch", "-D", branch_name],
100
100
  cwd=repo_dir,
101
- print_method=log_method,
101
+ print_method=print_method,
102
102
  )
103
103
  if exit_code != 0:
104
104
  raise Exception(f"Non zero exit code: {exit_code}")
105
105
  return cmd_result.output.strip()
106
106
 
107
107
 
108
- async def add(repo_dir: str, log_method: Callable[..., Any] = print):
108
+ async def add(repo_dir: str, print_method: Callable[..., Any] = print):
109
109
  _, exit_code = await run_command(
110
110
  cmd=["git", "add", ".", "-A"],
111
111
  cwd=repo_dir,
112
- print_method=log_method,
112
+ print_method=print_method,
113
113
  )
114
114
  if exit_code != 0:
115
115
  raise Exception(f"Non zero exit code: {exit_code}")
116
116
 
117
117
 
118
118
  async def commit(
119
- repo_dir: str, message: str, log_method: Callable[..., Any] = print
119
+ repo_dir: str, message: str, print_method: Callable[..., Any] = print
120
120
  ) -> str:
121
121
  cmd_result, exit_code = await run_command(
122
122
  cmd=["git", "commit", "-m", message],
123
123
  cwd=repo_dir,
124
- print_method=log_method,
124
+ print_method=print_method,
125
125
  )
126
126
  if exit_code != 0:
127
127
  ignored_error_message = "nothing to commit, working tree clean"
@@ -133,24 +133,24 @@ async def commit(
133
133
 
134
134
 
135
135
  async def pull(
136
- repo_dir: str, remote: str, branch: str, log_method: Callable[..., Any] = print
136
+ repo_dir: str, remote: str, branch: str, print_method: Callable[..., Any] = print
137
137
  ) -> str:
138
138
  _, exit_code = await run_command(
139
139
  cmd=["git", "pull", remote, branch],
140
140
  cwd=repo_dir,
141
- print_method=log_method,
141
+ print_method=print_method,
142
142
  )
143
143
  if exit_code != 0:
144
144
  raise Exception(f"Non zero exit code: {exit_code}")
145
145
 
146
146
 
147
147
  async def push(
148
- repo_dir: str, remote: str, branch: str, log_method: Callable[..., Any] = print
148
+ repo_dir: str, remote: str, branch: str, print_method: Callable[..., Any] = print
149
149
  ) -> str:
150
150
  _, exit_code = await run_command(
151
151
  cmd=["git", "push", "-u", remote, branch],
152
152
  cwd=repo_dir,
153
- print_method=log_method,
153
+ print_method=print_method,
154
154
  )
155
155
  if exit_code != 0:
156
156
  raise Exception(f"Non zero exit code: {exit_code}")
zrb/util/git_subtree.py CHANGED
@@ -36,7 +36,7 @@ async def add_subtree(
36
36
  repo_url: str,
37
37
  branch: str,
38
38
  prefix: str,
39
- log_method: Callable[..., Any] = print,
39
+ print_method: Callable[..., Any] = print,
40
40
  ):
41
41
  config = load_config()
42
42
  if os.path.isdir(prefix):
@@ -54,7 +54,7 @@ async def add_subtree(
54
54
  branch,
55
55
  ],
56
56
  cwd=repo_dir,
57
- print_method=log_method,
57
+ print_method=print_method,
58
58
  )
59
59
  if exit_code != 0:
60
60
  raise Exception(f"Non zero exit code: {exit_code}")
@@ -69,7 +69,7 @@ async def pull_subtree(
69
69
  prefix: str,
70
70
  repo_url: str,
71
71
  branch: str,
72
- log_method: Callable[..., Any] = print,
72
+ print_method: Callable[..., Any] = print,
73
73
  ):
74
74
  _, exit_code = await run_command(
75
75
  cmd=[
@@ -82,7 +82,7 @@ async def pull_subtree(
82
82
  branch,
83
83
  ],
84
84
  cwd=repo_dir,
85
- print_method=log_method,
85
+ print_method=print_method,
86
86
  )
87
87
  if exit_code != 0:
88
88
  raise Exception(f"Non zero exit code: {exit_code}")
@@ -93,7 +93,7 @@ async def push_subtree(
93
93
  prefix: str,
94
94
  repo_url: str,
95
95
  branch: str,
96
- log_method: Callable[..., Any] = print,
96
+ print_method: Callable[..., Any] = print,
97
97
  ):
98
98
  _, exit_code = await run_command(
99
99
  cmd=[
@@ -106,7 +106,7 @@ async def push_subtree(
106
106
  branch,
107
107
  ],
108
108
  cwd=repo_dir,
109
- print_method=log_method,
109
+ print_method=print_method,
110
110
  )
111
111
  if exit_code != 0:
112
112
  raise Exception(f"Non zero exit code: {exit_code}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.0.0b7
3
+ Version: 1.0.0b9
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -23,6 +23,7 @@ Requires-Dist: fastembed (>=0.5.1,<0.6.0)
23
23
  Requires-Dist: isort (>=5.13.2,<5.14.0)
24
24
  Requires-Dist: libcst (>=1.5.0,<2.0.0)
25
25
  Requires-Dist: pdfplumber (>=0.11.4,<0.12.0) ; extra == "rag"
26
+ Requires-Dist: psutil (>=6.1.1,<7.0.0)
26
27
  Requires-Dist: pydantic-ai (>=0.0.19,<0.0.20)
27
28
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
28
29
  Requires-Dist: python-jose[cryptography] (>=3.3.0,<4.0.0)
@@ -1,11 +1,11 @@
1
1
  zrb/__init__.py,sha256=JYLyBeSv-FP2iVKgsXJH8Ae-Cmjp5nmmIiwqayhCOEE,2964
2
- zrb/__main__.py,sha256=TnWp9Z3uuNb_6uf5FT1fcwh6BLZwGCAJB4R9NxnFLNs,748
2
+ zrb/__main__.py,sha256=QcMnHfAFbDUFw9p9tgfFS4U0Ra9nE-TLU5YoMBiAriE,808
3
3
  zrb/attr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  zrb/attr/type.py,sha256=4TV5gPYMMrKh5V-yB6iRYKCbsXAH_AvGXMsjxKLHcUs,568
5
5
  zrb/builtin/__init__.py,sha256=oXG4Zm_rIp3G81Y7hiSe38jeS2sGZAnADoP_yxxhYEc,1926
6
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
7
+ zrb/builtin/git.py,sha256=PhkTcW36aY5vnL3dnJexyO9OLjoajfzdszh57iVqUyk,5493
8
+ zrb/builtin/git_subtree.py,sha256=7BKwOkVTWDrR0DXXQ4iJyHqeR6sV5VYRt8y_rEB0EHg,3505
9
9
  zrb/builtin/group.py,sha256=-phJfVpTX3_gUwS1u8-RbZUHe-X41kxDBSmrVh4rq8E,1682
10
10
  zrb/builtin/llm/llm_chat.py,sha256=vUUchYKJuHr-N_HarpKRFsV0EdQDAFZzAfbK4C0vx88,4508
11
11
  zrb/builtin/llm/previous-session.js,sha256=xMKZvJoAbrwiyHS0OoPrWuaKxWYLoyR5sguePIoCjTY,816
@@ -16,26 +16,26 @@ zrb/builtin/llm/tool/web.py,sha256=N2HYuXbKPUpjVAq_UnQMbUrTIE8u0Ut3TeQadZ7_NJc,2
16
16
  zrb/builtin/md5.py,sha256=0pNlrfZA0wlZlHvFHLgyqN0JZJWGKQIF5oXxO44_OJk,949
17
17
  zrb/builtin/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  zrb/builtin/project/add/fastapp/fastapp_input.py,sha256=fYD6n8-PlrTyz1Kq5GYAt0PQsyUp2qsPKRJ68hINSXE,314
19
- zrb/builtin/project/add/fastapp/fastapp_task.py,sha256=m48ENwROECcAVzmianijcI2Ct4t9BhPyPjfxTbS3Zy0,2635
19
+ zrb/builtin/project/add/fastapp/fastapp_task.py,sha256=mUMZjC413DhZSKqA6donPTxVbd_DnDFqSV_ZTqQnSHs,2697
20
20
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8,sha256=fgvHmuskgYiCvHZHaFtiyOWW0zasVrs0P-sFHOq3W5U,56
21
21
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore,sha256=1BMFpr_M5OyTs-weCZZlVlf85sWikzdbvmKu86YD7G0,28
22
22
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md,sha256=MAo7ZFbg7LLiAfQbXcippMgjJ2-VXMKtiTDEZ3I4AAg,221
23
23
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py,sha256=x7igeeJl8M0vKw9v0VG6zIFk7qAZD2NIH3_uG-VJimY,2868
25
25
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py,sha256=rllXYH4LRyt-vXAoMLENx1T-01nxjN6CpWf76b_-ppw,580
26
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py,sha256=l7RAPWZZBHY3Uv6TmbPDuEvF0IwJ_lx3vHz6Cq4tgus,6256
26
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py,sha256=Ny62k3_23ln6_HplbiHx2X01uJ74wY50k8Skp0XAKe8,6324
27
27
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py,sha256=gtWMWdc0QC4vbMtzUJi_ZDlY5dZJCTWdJBCPGn0vkso,11962
28
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service.py,sha256=Z8yzVRx_Eew2cnyB82nQMpJfFdvd2LlKv-KZ53a0R1E,3894
28
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service.py,sha256=PgwTsHMHRiFS7JQeAe6wWmIHk6s-OfIybx_mJfuT_G4,3918
29
29
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service_factory.py,sha256=lnhhpc_AflWnCQbLkYORrshiqIA5wy4SdxDuUxmn7Ts,372
30
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_db_repository.py,sha256=GrMxMb98-XD7Rue1v14jBu6HRb8Gy5DywBSKnMhN0iY,770
31
31
  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=QJmQmeXvkuhpnAFWkATJk7zvr-GY1RSyb5U9bSslFn4,1644
32
32
  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_factory.py,sha256=XKkHHpH_3N_govvyuPY6yn1PBZKKtwstWtxyo7hYJS8,523
33
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py,sha256=R4LAnfTaIO5nRCDjQXSTUMuESELw4XjI0e1bIUTYuf0,1206
33
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py,sha256=Xu8ELEI_chPmaX6ks4z_bbYO3ZapdWCXcJlmUnED1-I,1240
34
34
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py,sha256=0Bwn1lamv3o6ti68gk35gPiKxbKUQRysNAnHOlVz9TY,1311
35
35
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py,sha256=-0-ukhgjiHYZ0vf26Ky4tHeFKeV9fb8Gwj3YCi99BAM,2149
36
36
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py,sha256=8YykCthDgjXT8MFvTrPSWYUXsfhafmoSMG9LH2ZiaD0,431
37
37
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py,sha256=S0sKnnABSGy3YzaExH40xJjm4UsEX6AyDE1u94ewk6A,648
38
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py,sha256=PYbPwO5odaQDzRIgKkLmLEKOOYs9gQw3q7L-Fakw90Q,1349
38
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py,sha256=NBy_9xwvbFvKWt2bHRyzNQr4zUrP4lUGd6L7k_eA5do,1523
39
39
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py,sha256=mGD3iHocO3TcmFgrBRHEoOgci3qXmwaSmEpVe7jGjvE,3690
40
40
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py,sha256=2totrFEzt0sEA4U0HHMy5GAsNM-X6uLv9eq8rsrA9XU,7145
41
41
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py,sha256=Ks-TtmuhzFy1H5BGQt7FU09ZHBTWwsSVhHFzOXpnSQg,120
@@ -52,15 +52,16 @@ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/templat
52
52
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py,sha256=PbWya4KW4OyoJl-5OpZm1gJMLeWOBvyHLlez9r5baOk,960
53
53
  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
54
54
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py,sha256=avqbX7qgfW5KAB7Q_FDrbKcl5NqxSHBx0Ii5fKV0Oec,907
55
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py,sha256=wETVTlhiL4kuM-9bM4jQ6cL7JFWF9OncHKTIAloQjgM,4526
56
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py,sha256=pvasVUTar51DOWPmcypa4inm4khBKoh6VLqZPUE3uO8,4332
55
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py,sha256=MCIH7TfGq3KkLp2pLCFyCv7gIWAjwnL8omaBvhkzZx4,4612
56
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py,sha256=pSu5NemKWNNgZzU3eVlgBX9jKzCGOpqymYohO8KYBsA,2907
57
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py,sha256=cyesVckwI4y2IXuvBCI_PNBpXKX07Z-8K-T22SMZDeY,1937
57
58
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py,sha256=ZLS3YnF-bz1AOjMCMHypzjNGX2UHXG-axdYngznC1mk,472
58
59
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
60
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py,sha256=9mEGQSNfGeNNrCziw0Ik4JeJWKwhOcfcWN5-uMin7aw,773
60
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py,sha256=b74pggiphsyNoS8FWnjuIjC4cBwMaFuWrnAIXXbHVkA,11015
61
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py,sha256=NS7OjbhcZAZ6vukCnGP0NAy-eJrrKN770-RrDaqkAEQ,8456
61
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py,sha256=LjdeLXxn_2yj3b2X56Qa83sF-dM2sgJMgQA_HaLG0go,11818
62
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py,sha256=5Z9srxvyvPW8TSc4OpiuNdQ1T00jZe94SPnymzcetpw,8629
62
63
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py,sha256=Ku4iowi5DhkXwdWGljCOiHqcC4sI_mTB0hpvmd1_4x0,198
63
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py,sha256=dbpcpCa-qhxWFqIsC-988oeidJRH0VG5Ow9V2NVBBTU,656
64
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py,sha256=MCPn4hkJiCMgtCqVFusK0RHEQ-eABs_JjzHoWpPtvVs,1219
64
65
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py,sha256=v_glMWbCZfFRtLq6vSu1fWYcubYhnpD4j2nc9NS6-Wo,241
65
66
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py,sha256=0dsYhxDec4EBDngkLyyPztDOhNUEyDue8DjIPUd5XvM,238
66
67
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py,sha256=dbRryeP5u7ObGX3GjF9ZID00yXffOp-AxyXu8oVJP0I,82
@@ -68,40 +69,40 @@ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py,
68
69
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py,sha256=dvS9cBRx1FjerwHO_HOaHKCKEzwWRJ5C7wYimzHp4i8,4035
69
70
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py,sha256=eOFJ9gnz0iw7XE-1vc53bx-uPST6m5K3cpR_f61T544,1669
70
71
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py,sha256=vrNAr90GMZnu37EMvi2BnTgWoAOpQwJxWCFkZAtFeFA,1161
71
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py,sha256=v6G1mxrnmPN_aWssM0aTuM9xfDh8lYs2H9T5MsEqzLA,2415
72
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py,sha256=QssiD5fvMZaklO7m8ORNFg7mSIqLaag4hMZ1z_H3X-0,3109
72
73
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py,sha256=ouA4P7f7GDuB-0iPJsOjqh_DGlZaOBnMgBgkUy9Os5A,216
73
74
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/migrate.py,sha256=K20Seket9IlZVaZpHSrpR0Ijndv71Mtqwiujzunx98w,87
74
75
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
76
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini,sha256=mgQyBAIwdkZZJWLu_FQWPx1FkyaARCNp6-rLqSVvMbA,3723
76
77
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py,sha256=T6fcaGobL2A24PhFbNPb7mlJ9Erxufh0Eh-E6K6Qs4I,628
77
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py,sha256=OpjnZR6Eup9J2OQUH3NzNbW-xuB5tyXnAV9EyuW3ppQ,4714
78
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py,sha256=PM7y3j6ZD2Ncg4lYA0t7sjRnjErtf1uC5e3e8plzlDU,5377
78
79
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py,sha256=g9VFJx8se6f4m-HqOAMd2qm8j5JdJtVhXWsLKJ39Uw4,430
79
80
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py,sha256=5RwYmbuYZnDVNSvYamXoIMPqvA3AjlHcK2TtnCWzr2Y,513
80
81
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
81
82
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py,sha256=rtUFa4Gaoz3wmq7YfQ-lY8vYA5aWguwe2yvQQ1OLCL8,3343
82
83
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako,sha256=U9DYBoBRd_ooogMfRydCUGEjIDZ-aV8OsjBiBrdTvy4,680
83
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py,sha256=DrCTijo1w7BW9T-FTvlRxAyKyJYd4uWGB2jmr-Wtdko,7454
84
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py,sha256=n9wDfKIu4oYrdZg1byj6JgyTSMLKFYn23FMJMJceYFg,679
85
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py,sha256=oLKVOCRvupnGmguEO10b7ZE5pXbhTBV8OSZmp_nOkfc,1255
84
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py,sha256=GC46G9TDcihsnRU1kR9mbWm88AjqXnXgNN6uy1rZNGQ,8890
85
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py,sha256=4eF1sqtd87v9yHGR6N6Ko4LVELr3tYYwQmJwhvz9uXM,653
86
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py,sha256=PYW4Wn0yCADI9HwGPxhYzxzRIEJMAT0LwSVs-jC7gJw,1335
86
87
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
88
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py,sha256=ro3LOvHNh9VnZwoeOg4T2n1mvXWoiAmOsk15vxvH_2o,4032
89
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py,sha256=3paLkQ_VfC2ZhmoXgXZpMQTB1D3zxaq8P7JjxURNsHE,4056
89
90
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py,sha256=PhAhpLtk9Qz96DsHTMTeHeWilv_L7SVOU-Wfpmg741Y,380
90
91
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py,sha256=dldy05Jx6hJzWJz6YHIXUVUX7LrPrZLSpQQjZ8C_fTQ,728
91
92
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py,sha256=qpzSQg_opkq0U2bGjShxS8cGX26zncqNPoZsqqHnRfk,1699
92
93
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py,sha256=tusBxTVVMIhKn__-9oj3O7DUYNQmvcmqGfMJ-UMrE-c,529
93
94
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py,sha256=CLjMEGE4sJyT4VpURYfqO6nh_lRWmYupfE86pbVDMBE,3152
95
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py,sha256=XZh1SXYmNWCLPL_UJABgjtGUyCD4JN5qCwTmG_bOPWM,3906
95
96
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py,sha256=LWPNu6kURF3xU2n8mVn4Kfq12rFsZq2vxnh-mgT9SDY,1791
96
97
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py,sha256=iTEoSP3kKnhpGEFW3veA3lnGb3CfmQJslnneUJ8ktJs,463
97
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py,sha256=gCoWt-N10Sg_sSnSx5AS4m_eDboFlKc8beys28hUkWE,5057
98
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py,sha256=lO-h9ZXq_HSSpUrvz-osbADUnO6zzpfREmT9Bc1rqYw,5143
98
99
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py,sha256=TqQfx0jXGZmBDR1UYPyys8-I6tDKhqr1yjWpp-ezkDA,305
99
100
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py,sha256=pcR9gFa2_deordx6jvSWNnz4hih3cyMJrJ-gWRTW6UU,8444
101
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py,sha256=_mP1VN0TW0TFvzHN6k7uBZt5GST5ueK4G5T6EwXiEsI,2563
101
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py,sha256=qrYB1YWYnauuQ56mNh4mxuELs96qnkr9Cf8PyghJHyg,10105
102
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py,sha256=GT1N3XI_eN_Kbjc036jTS43ONrwzA9UlR6NMzvQ_9DA,3069
102
103
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py,sha256=Ea9ykNhzYiWu_IEhfpWsg1OIWeQ9pOTCzbZF9rrsZqU,463
103
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py,sha256=KgfHIBHvEVY5V7CNm0Y8BnNQ6sd5UJB_wFq6WMnrBvg,4901
104
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py,sha256=vyJv-gK4Myo1GH3ZwJm4b2lws35gW04VFW5K8Nw-iCw,305
104
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py,sha256=uSo1f93BL-kQgnR85OHuJpuSqmxRxM4YmgWWy_QiZp0,12792
105
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py,sha256=TFqm7_wcU6zDiyV7DSCYc1Q47ppZaIDxlK_R9PmpDI4,1239
105
106
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini,sha256=mgQyBAIwdkZZJWLu_FQWPx1FkyaARCNp6-rLqSVvMbA,3723
106
107
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
107
108
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py,sha256=xQ4UYy6aaHhE0NssPZ6QkeNFlC1KBd07EhDR0NNzj20,3349
@@ -109,7 +110,7 @@ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migr
109
110
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
111
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py,sha256=NbIb5ncy6x5RrFD2TZMDwxBK_wDTyJEIvieMRmNpf9M,55
111
112
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py,sha256=5to7rhN3n-N2-7HqRQf9AE9r6OUJQTEyS-g5dPkjV7Q,2015
112
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py,sha256=E9NNR0VA8_5m7yEB7ZsmiwsVjnyfuDE8qtnC-EvWNl4,7064
113
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py,sha256=XhY2QiHXx7QKoLgjAtnt2efJlb2dNfIua42ezbwWEDc,8125
113
114
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py,sha256=mlYSu1xfL_nztJHPbBRuUQuKBT0zCNgsg6bouw5PfG0,2117
114
115
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html,sha256=K8jJFW99ORUrJqdybmWf191NK7tCFNoc5VmmNAcWqeo,133
115
116
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html,sha256=Q8jEwRraYJmn0rJIT1Ct4Dz2NB4S-NWJ1ZrU46oZkkw,126
@@ -137,12 +138,11 @@ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view
137
138
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css,sha256=mOkvNiE272UAgO8cVewJjU9BYidLxDZ97IcYodW--Ik,82218
138
139
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css,sha256=s8SdVQv4fX3W0LbfKDgUDczWcCyUfRbZhpyYtLdASC0,82212
139
140
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html,sha256=kSQFOLj1urKRbMwVX5S2AHmHUxF1SVjw3NWbt32pYRg,1137
140
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt,sha256=HLwDyB4LmhRkg1ZlLNTTeS5C9Mp9x5JFx43OBc3Ub3g,104
141
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt,sha256=10a4hYLlOgU-Dn3OUbw1Ml2HC_gmslJF4LfpZlnBBas,122
141
142
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py,sha256=muFLcZOc4_VFqD5vRp5LdFZJDEWqPD6SCMATOorlcZs,1330
143
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py,sha256=TworwOj5hnUfm1eAfIxiha7iNtN6pBT9iZBLsY1o-1c,3135
144
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/session.py,sha256=8y9kY0nB0GfNpb0j-agFpM1TOqLBEisMfnwXSUiyjuM,1173
145
- zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py,sha256=GWvFLb6EcvTfFr3qJBsHGE-cw4wHqAwcQpFNEsQalCE,2919
143
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py,sha256=bMCajbTijzfr0kHqV80OjH7JPmZ7xsT1yM9KP5mbfD4,1364
144
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py,sha256=UKXijAUY0ryXJFv74lCzH5ArYGbeuakX0cUbP7ToAQU,3167
145
+ zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py,sha256=z6bujKgcyYrQE-pqtQSc-BU7KhuwqZWkPQbmOfR5S1A,4035
146
146
  zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env,sha256=DquDUGa12Jzg24ATq_I6M-TglO-2vDwr5kE768DoJ-w,61
147
147
  zrb/builtin/project/add/fastapp/fastapp_util.py,sha256=UVzKfljUDLvlassnKy8pKH4hBP23ZUwEK5Ouh-fr87w,1463
148
148
  zrb/builtin/project/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -263,7 +263,7 @@ zrb/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
263
263
  zrb/task/any_task.py,sha256=9rCdKe-Sayr34Han9AsbhRxFpkbk6Rteg1DOyETulwQ,4917
264
264
  zrb/task/base_task.py,sha256=ImA0ReyB6neVUfY4nKLnL0h2EMGIJ9wvvNvIAN92-RE,21194
265
265
  zrb/task/base_trigger.py,sha256=jC722rDvodaBLeNaFghkTyv1u0QXrK6BLZUUqcmBJ7Q,4581
266
- zrb/task/cmd_task.py,sha256=lg9Dkb0wwjo-F1F6gsH-RqNdndfQAwLkd7SOW5DdpGc,10809
266
+ zrb/task/cmd_task.py,sha256=pUKRSR4DZKjbmluB6vi7cxqyhxOLfJ2czSpYeQbiDvo,10705
267
267
  zrb/task/http_check.py,sha256=Gf5rOB2Se2EdizuN9rp65HpGmfZkGc-clIAlHmPVehs,2565
268
268
  zrb/task/llm_task.py,sha256=ptXC3x9Dwn7-4JrGQyEtzOXZ4dNQATDgCeowkvwAu9U,7723
269
269
  zrb/task/make_task.py,sha256=PD3b_aYazthS8LHeJsLAhwKDEgdurQZpymJDKeN60u0,2265
@@ -280,7 +280,7 @@ zrb/util/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
280
280
  zrb/util/cli/style.py,sha256=wxdtE18d4Q3GV7aojinD-XN9iWvazfvLs9MTJPlCNQU,3805
281
281
  zrb/util/cli/subcommand.py,sha256=gYr-CzVeKFQhY43s_FDstPwn8r-ypUz1Q2Rv_l2r-ck,1027
282
282
  zrb/util/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
283
- zrb/util/cmd/command.py,sha256=g6MNfBFSfeabwbevCeXn2puVsOxo8N3pi8k_Olv2zxQ,4254
283
+ zrb/util/cmd/command.py,sha256=XSzZlaAyfMXSErg83CmdrL0pORiZ2O9cd80Ta1GmYsM,3925
284
284
  zrb/util/cmd/remote.py,sha256=VklVORobTmE7FqdtYsVLq9xkSYTR2W5r2Zou0-soidw,710
285
285
  zrb/util/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
286
286
  zrb/util/codemod/append_code_to_class.py,sha256=5PiGzFqB-q8XQnGnDqWBn4OA4ydSmQWpKQzSr3l6wws,1361
@@ -293,8 +293,8 @@ zrb/util/codemod/prepend_parent_to_class.py,sha256=xOcDHv1cXXV_VqLHVifr6jvDoWk_i
293
293
  zrb/util/codemod/prepend_property_to_class.py,sha256=9L11WaYIUF53Kn_ZMT51ylhm7xTxttNjPp83Mnm9iUQ,2079
294
294
  zrb/util/cron.py,sha256=9fTGatUMYCRgmDFGg-z6_XerT4U5Vq72nD05NnEVUm4,2852
295
295
  zrb/util/file.py,sha256=cBPkIonfcWytoqtG3ScJd6FFK7HVYeCIuLmfAFO1HIQ,791
296
- zrb/util/git.py,sha256=qTc6rHJd_HyJktiOC_kZGKc75qLx_6X899TG0DrXC04,4751
297
- zrb/util/git_subtree.py,sha256=8oLaMBy2giMQcZnLZ31Tu0W5xicSEKrm5xiHfd1worA,2646
296
+ zrb/util/git.py,sha256=TShnMxPAk20Tglp25d_XPVZX-q0mvKeqdprVMeXQ5f0,4787
297
+ zrb/util/git_subtree.py,sha256=zyWl0aUEZJyUJKjfw1uglozB4R1kF9pWtfKjhu8DN44,2658
298
298
  zrb/util/group.py,sha256=Bg7HrSycoK110U5s_Tca6-uUQuZ5CMgb8wxZSrvDQ98,2790
299
299
  zrb/util/llm/tool.py,sha256=NkENrUlGxcqqU7jzHAH7DBXNcm_ndEo2dFnJ5nhvWmk,2991
300
300
  zrb/util/load.py,sha256=i8_83ApWJXlZlbFMNfEptrOzfXdvtaIhAErsd6tU9y8,1649
@@ -306,7 +306,7 @@ zrb/util/string/name.py,sha256=8picJfUBXNpdh64GNaHv3om23QHhUZux7DguFLrXHp8,1163
306
306
  zrb/util/todo.py,sha256=1nDdwPc22oFoK_1ZTXyf3638Bg6sqE2yp_U4_-frHoc,16015
307
307
  zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
308
308
  zrb/xcom/xcom.py,sha256=o79rxR9wphnShrcIushA0Qt71d_p3ZTxjNf7x9hJB78,1571
309
- zrb-1.0.0b7.dist-info/METADATA,sha256=nw9wiAEB0ViBOiqQGH0SQXPz-3YulrupirW9Rw3EZFY,4270
310
- zrb-1.0.0b7.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
311
- zrb-1.0.0b7.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
312
- zrb-1.0.0b7.dist-info/RECORD,,
309
+ zrb-1.0.0b9.dist-info/METADATA,sha256=NAVGeL01mfAGgkwJEVjrZ1v17XSMJmma7p-nVS2u0IM,4309
310
+ zrb-1.0.0b9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
311
+ zrb-1.0.0b9.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
312
+ zrb-1.0.0b9.dist-info/RECORD,,
@@ -1,48 +0,0 @@
1
- import datetime
2
-
3
- import ulid
4
- from pydantic import BaseModel
5
- from sqlmodel import Field, SQLModel
6
-
7
-
8
- class SessionBase(SQLModel):
9
- user_id: str
10
- token: str
11
- expired_at: datetime.datetime | None
12
-
13
-
14
- class SessionCreate(SessionBase):
15
-
16
- def with_audit(self, created_by: str) -> "SessionCreateWithAudit":
17
- return SessionCreateWithAudit(**self.model_dump(), created_by=created_by)
18
-
19
-
20
- class SessionCreateWithAudit(SessionCreate):
21
- created_by: str
22
-
23
-
24
- class SessionUpdate(SessionBase):
25
-
26
- def with_audit(self, updated_by: str) -> "SessionUpdateWithAudit":
27
- return SessionUpdateWithAudit(**self.model_dump(), updated_by=updated_by)
28
-
29
-
30
- class SessionUpdateWithAudit(SessionUpdate):
31
- updated_by: str
32
-
33
-
34
- class SessionResponse(SessionBase):
35
- id: str
36
- created_at: datetime.datetime = Field(index=True)
37
- updated_at: datetime.datetime | None = Field(index=True)
38
-
39
-
40
- class MultipleSessionResponse(BaseModel):
41
- data: list[SessionResponse]
42
- count: int
43
-
44
-
45
- class Session(SQLModel, table=True):
46
- id: str = Field(default_factory=lambda: ulid.new().str, primary_key=True)
47
- user_id: str = Field(index=True)
48
- token: str = Field(index=True, unique=True)
File without changes