zrb 1.0.0b8__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 (36) hide show
  1. zrb/__main__.py +3 -0
  2. zrb/builtin/project/add/fastapp/fastapp_task.py +1 -0
  3. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +1 -0
  4. 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
  5. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +1 -0
  6. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +8 -0
  7. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +9 -2
  8. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +100 -0
  9. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +6 -86
  10. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +27 -11
  11. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +32 -27
  12. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +15 -0
  13. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +22 -5
  14. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +21 -0
  15. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +103 -61
  16. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +3 -4
  17. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +15 -14
  18. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +4 -4
  19. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +24 -5
  20. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +14 -12
  21. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +130 -96
  22. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +28 -11
  23. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +220 -13
  24. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +30 -2
  25. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +27 -2
  26. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +2 -1
  27. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +1 -0
  28. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +13 -12
  29. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +55 -12
  30. zrb/task/cmd_task.py +2 -5
  31. zrb/util/cmd/command.py +39 -48
  32. {zrb-1.0.0b8.dist-info → zrb-1.0.0b9.dist-info}/METADATA +2 -1
  33. {zrb-1.0.0b8.dist-info → zrb-1.0.0b9.dist-info}/RECORD +35 -35
  34. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/session.py +0 -48
  35. {zrb-1.0.0b8.dist-info → zrb-1.0.0b9.dist-info}/WHEEL +0 -0
  36. {zrb-1.0.0b8.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]:
@@ -81,35 +67,40 @@ async def run_command(
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()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.0.0b8
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,5 +1,5 @@
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
@@ -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=9t23WLxF-PN_axx2_eFCK0t9OWP49HCsFadc4Fss0-U,10813
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=fsIIkMNOHzU4FO7SXjfDJg7nhunc0UkEw4Bk9K--O1U,4258
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
@@ -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.0b8.dist-info/METADATA,sha256=72M7y3ARtB_n7TIVIA5zzLyX7WhmwS-iO6RcXIBPSAg,4270
310
- zrb-1.0.0b8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
311
- zrb-1.0.0b8.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
312
- zrb-1.0.0b8.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