zrb 0.6.0__py3-none-any.whl → 0.6.1__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 (316) hide show
  1. zrb/__init__.py +24 -20
  2. zrb/__main__.py +5 -5
  3. zrb/action/runner.py +22 -30
  4. zrb/advertisement.py +10 -9
  5. zrb/builtin/__init__.py +18 -16
  6. zrb/builtin/base64.py +13 -18
  7. zrb/builtin/devtool/__init__.py +14 -3
  8. zrb/builtin/devtool/devtool_install.py +207 -221
  9. zrb/builtin/env.py +9 -12
  10. zrb/builtin/eval.py +9 -9
  11. zrb/builtin/explain.py +73 -74
  12. zrb/builtin/generator/__init__.py +7 -11
  13. zrb/builtin/generator/app_generator/add.py +86 -87
  14. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/add.py +78 -77
  15. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +6 -6
  16. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
  17. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +32 -32
  18. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +29 -30
  19. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +1 -3
  20. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +5 -4
  21. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
  22. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/add.py +89 -87
  23. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
  24. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +42 -54
  25. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +34 -32
  26. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +19 -22
  27. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +18 -18
  28. zrb/builtin/generator/app_generator/template/http-port/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +10 -10
  29. zrb/builtin/generator/app_generator/template/http-port-build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +19 -19
  30. zrb/builtin/generator/app_generator/template/use-helm/_automate/generate_snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +12 -14
  31. zrb/builtin/generator/cmd_task/add.py +23 -25
  32. zrb/builtin/generator/cmd_task/template/_automate/snake_zrb_task_name.py +3 -5
  33. zrb/builtin/generator/common/helper.py +15 -20
  34. zrb/builtin/generator/common/task_factory.py +29 -26
  35. zrb/builtin/generator/common/task_input.py +97 -91
  36. zrb/builtin/generator/docker_compose_task/add.py +38 -39
  37. zrb/builtin/generator/docker_compose_task/template/_automate/snake_zrb_task_name.py +13 -19
  38. zrb/builtin/generator/docker_compose_task/template/src/kebab-zrb-task-name/image/main.py +18 -14
  39. zrb/builtin/generator/fastapp/add.py +94 -90
  40. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_checker.py +28 -27
  41. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_config.py +68 -39
  42. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env.py +24 -22
  43. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env_file.py +12 -12
  44. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_get_start_microservices.py +43 -41
  45. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_helper.py +23 -24
  46. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_input.py +21 -20
  47. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-load-test.sh +1 -1
  48. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-start.sh +1 -1
  49. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-test.sh +2 -2
  50. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/container.py +46 -39
  51. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/deployment.py +28 -20
  52. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/frontend.py +21 -27
  53. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/image.py +23 -18
  54. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/load_test.py +35 -36
  55. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/local.py +68 -58
  56. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/test.py +24 -38
  57. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/__main__.py +23 -21
  58. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/_common.py +72 -75
  59. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/app_helper.py +70 -75
  60. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_postgresql_helper.py +18 -21
  61. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_rabbitmq_helper.py +11 -19
  62. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_redpanda_helper.py +18 -15
  63. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_signoz_helper.py +17 -21
  64. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/docker-compose.yml +12 -12
  65. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/loadtest/locustfile.py +10 -12
  66. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/Dockerfile +1 -0
  67. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app.py +35 -30
  68. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_lifespan.py +21 -17
  69. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_state.py +3 -2
  70. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/db_connection.py +18 -20
  71. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/frontend_index.py +5 -6
  72. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/log.py +7 -15
  73. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/messagebus.py +38 -34
  74. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/rpc.py +19 -18
  75. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/config.py +68 -103
  76. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/error.py +11 -10
  77. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/__init__.py +2 -4
  78. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/admin.py +38 -35
  79. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/consumer.py +38 -45
  80. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/publisher.py +26 -29
  81. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/messagebus.py +8 -14
  82. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/mock.py +12 -8
  83. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/admin.py +37 -44
  84. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/consumer.py +42 -67
  85. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/publisher.py +32 -55
  86. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/model/repo_model.py +11 -10
  87. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/__init__.py +2 -2
  88. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_entity_mixin.py +3 -6
  89. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_repo.py +76 -83
  90. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/repo.py +5 -5
  91. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/search_filter.py +1 -0
  92. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/__init__.py +1 -1
  93. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/caller.py +17 -19
  94. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/server.py +14 -18
  95. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/rpc.py +15 -28
  96. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/__init__.py +1 -1
  97. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/base_schema.py +6 -5
  98. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/__init__.py +1 -3
  99. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/serializer.py +3 -4
  100. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/async_task.py +3 -5
  101. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/conversion.py +10 -10
  102. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/migration.py +6 -10
  103. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/migrate.py +3 -2
  104. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/api.py +7 -12
  105. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/__init__.py +4 -6
  106. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_scheme.py +9 -10
  107. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_util.py +6 -5
  108. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/authorizer.py +4 -4
  109. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/bearer_token_scheme.py +1 -1
  110. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/model/user_model.py +8 -10
  111. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/password_hasher.py +1 -1
  112. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/refresh_token_util.py +7 -6
  113. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/group_repo.py +3 -8
  114. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/permission_repo.py +3 -7
  115. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/user_repo.py +3 -5
  116. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/user.py +12 -7
  117. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/__init__.py +7 -12
  118. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/scheme.py +7 -12
  119. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/util.py +20 -30
  120. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/authorizer.py +1 -3
  121. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/rpc_authorizer.py +5 -12
  122. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/bcrypt_password_hasher.py +3 -8
  123. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/password_hasher.py +0 -1
  124. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/refresh_token/util.py +15 -21
  125. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/api.py +42 -49
  126. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/model.py +3 -7
  127. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +18 -16
  128. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +26 -41
  129. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/api.py +46 -51
  130. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/model.py +5 -7
  131. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/repo.py +11 -8
  132. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +28 -45
  133. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/table.py +10 -10
  134. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +60 -72
  135. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +32 -61
  136. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +33 -36
  137. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +42 -61
  138. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/event.py +2 -4
  139. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +3 -5
  140. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +11 -12
  141. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +19 -26
  142. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/rpc.py +5 -13
  143. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +6 -4
  144. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +3 -1
  145. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -0
  146. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/token.py +2 -2
  147. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +4 -3
  148. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/api.py +4 -5
  149. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/model/activity_model.py +3 -9
  150. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/repo/activity_repo.py +3 -7
  151. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/core/historical_repo_model.py +13 -13
  152. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/api.py +22 -23
  153. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +5 -7
  154. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/model.py +2 -6
  155. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/repo.py +8 -8
  156. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +28 -45
  157. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/table.py +3 -3
  158. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/event.py +4 -8
  159. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -4
  160. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/register_module.py +10 -11
  161. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/rpc.py +3 -5
  162. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +3 -1
  163. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/requirements.txt +12 -12
  164. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +76 -106
  165. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +73 -103
  166. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +92 -122
  167. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +107 -134
  168. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/conftest.py +2 -2
  169. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +8 -15
  170. zrb/builtin/generator/fastapp_crud/add.py +74 -79
  171. zrb/builtin/generator/fastapp_crud/helper.py +51 -48
  172. zrb/builtin/generator/fastapp_crud/task_factory.py +17 -14
  173. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/component/model/snake_zrb_entity_name_model.py +2 -2
  174. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/component/repo/snake_zrb_entity_name_repo.py +3 -2
  175. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/api.py +58 -40
  176. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/model.py +7 -3
  177. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +9 -4
  178. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +32 -39
  179. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -1
  180. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +68 -98
  181. zrb/builtin/generator/fastapp_field/add.py +143 -85
  182. zrb/builtin/generator/fastapp_field/helper.py +184 -125
  183. zrb/builtin/generator/fastapp_module/add.py +90 -67
  184. zrb/builtin/generator/fastapp_module/helper.py +141 -155
  185. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/api.py +3 -2
  186. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/table.py +3 -3
  187. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/event.py +3 -5
  188. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -4
  189. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +10 -11
  190. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/rpc.py +3 -5
  191. zrb/builtin/generator/pip_package/add.py +39 -40
  192. zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/local.py +30 -30
  193. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__init__.py +1 -0
  194. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__main__.py +1 -0
  195. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/util.py +2 -2
  196. zrb/builtin/generator/plugin/create.py +39 -36
  197. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__init__.py +1 -1
  198. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__main__.py +1 -0
  199. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/task/example_task.py +6 -4
  200. zrb/builtin/generator/plugin/template/zrb_init.py +27 -27
  201. zrb/builtin/generator/project/create.py +38 -46
  202. zrb/builtin/generator/project/template/.flake8 +3 -0
  203. zrb/builtin/generator/project/template/project.sh +19 -10
  204. zrb/builtin/generator/project_task/task_factory.py +60 -61
  205. zrb/builtin/generator/project_task/template/_automate/_project/__init__.py +2 -2
  206. zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +4 -4
  207. zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +4 -4
  208. zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +4 -4
  209. zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +4 -4
  210. zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +4 -4
  211. zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +4 -4
  212. zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +4 -4
  213. zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +4 -4
  214. zrb/builtin/generator/python_task/add.py +25 -33
  215. zrb/builtin/generator/python_task/template/_automate/snake_zrb_task_name.py +8 -7
  216. zrb/builtin/generator/simple_python_app/add.py +81 -75
  217. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/_common.py +14 -15
  218. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/container.py +46 -61
  219. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/deployment.py +34 -32
  220. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/image.py +19 -22
  221. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/local.py +23 -25
  222. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
  223. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/src/main.py +18 -14
  224. zrb/builtin/git.py +46 -46
  225. zrb/builtin/group.py +13 -34
  226. zrb/builtin/helper/reccuring_action.py +26 -29
  227. zrb/builtin/md5.py +17 -30
  228. zrb/builtin/process.py +19 -19
  229. zrb/builtin/project.py +13 -15
  230. zrb/builtin/say.py +69 -88
  231. zrb/builtin/schedule.py +15 -19
  232. zrb/builtin/ubuntu.py +44 -35
  233. zrb/builtin/update.py +5 -5
  234. zrb/builtin/version.py +3 -7
  235. zrb/builtin/watch_changes.py +24 -25
  236. zrb/config/config.py +19 -18
  237. zrb/helper/accessories/color.py +18 -6
  238. zrb/helper/accessories/icon.py +24 -3
  239. zrb/helper/accessories/name.py +120 -28
  240. zrb/helper/advertisement.py +9 -13
  241. zrb/helper/callable.py +2 -4
  242. zrb/helper/cli.py +27 -31
  243. zrb/helper/codemod/add_argument_to_function.py +3 -4
  244. zrb/helper/codemod/add_argument_to_function_call.py +4 -7
  245. zrb/helper/codemod/add_assert_resource.py +7 -7
  246. zrb/helper/codemod/add_function_call.py +3 -5
  247. zrb/helper/codemod/add_import_module.py +15 -26
  248. zrb/helper/codemod/add_key_value_to_dict.py +7 -10
  249. zrb/helper/codemod/add_property_to_class.py +10 -8
  250. zrb/helper/codemod/add_upstream_to_task.py +21 -33
  251. zrb/helper/codemod/append_code_to_function.py +6 -13
  252. zrb/helper/codemod/format_code.py +2 -1
  253. zrb/helper/default_env.py +25 -25
  254. zrb/helper/docker_compose/fetch_external_env.py +18 -18
  255. zrb/helper/docker_compose/file.py +5 -4
  256. zrb/helper/docstring.py +44 -47
  257. zrb/helper/env_map/fetch.py +7 -12
  258. zrb/helper/file/copy_tree.py +12 -17
  259. zrb/helper/file/match.py +6 -7
  260. zrb/helper/file/text.py +8 -6
  261. zrb/helper/git/detect_changes.py +9 -8
  262. zrb/helper/loader/load_module.py +14 -13
  263. zrb/helper/log.py +4 -3
  264. zrb/helper/map/conversion.py +4 -5
  265. zrb/helper/python_task.py +2 -4
  266. zrb/helper/render_data.py +25 -18
  267. zrb/helper/string/constant.py +2 -2
  268. zrb/helper/string/conversion.py +17 -16
  269. zrb/helper/string/jinja.py +2 -2
  270. zrb/helper/typecheck.py +6 -4
  271. zrb/helper/typing.py +10 -2
  272. zrb/helper/util.py +44 -40
  273. zrb/task/any_task.py +251 -251
  274. zrb/task/base_remote_cmd_task.py +76 -59
  275. zrb/task/base_task/base_task.py +95 -108
  276. zrb/task/base_task/component/base_task_model.py +73 -71
  277. zrb/task/base_task/component/common_task_model.py +42 -29
  278. zrb/task/base_task/component/pid_model.py +3 -5
  279. zrb/task/base_task/component/renderer.py +26 -36
  280. zrb/task/base_task/component/trackers.py +6 -9
  281. zrb/task/checker.py +14 -9
  282. zrb/task/cmd_task.py +102 -100
  283. zrb/task/decorator.py +19 -13
  284. zrb/task/docker_compose_task.py +127 -98
  285. zrb/task/flow_task.py +16 -19
  286. zrb/task/http_checker.py +40 -36
  287. zrb/task/notifier.py +50 -38
  288. zrb/task/parallel.py +3 -3
  289. zrb/task/path_checker.py +34 -27
  290. zrb/task/path_watcher.py +49 -40
  291. zrb/task/port_checker.py +33 -26
  292. zrb/task/recurring_task.py +36 -42
  293. zrb/task/remote_cmd_task.py +31 -28
  294. zrb/task/resource_maker.py +66 -52
  295. zrb/task/rsync_task.py +24 -21
  296. zrb/task/task.py +4 -3
  297. zrb/task/time_watcher.py +36 -31
  298. zrb/task_env/constant.py +1 -1
  299. zrb/task_env/env.py +33 -31
  300. zrb/task_env/env_file.py +24 -23
  301. zrb/task_group/group.py +27 -30
  302. zrb/task_input/any_input.py +18 -16
  303. zrb/task_input/base_input.py +26 -26
  304. zrb/task_input/bool_input.py +6 -6
  305. zrb/task_input/choice_input.py +11 -9
  306. zrb/task_input/constant.py +1 -1
  307. zrb/task_input/float_input.py +6 -5
  308. zrb/task_input/int_input.py +8 -8
  309. zrb/task_input/password_input.py +9 -9
  310. zrb/task_input/str_input.py +8 -8
  311. zrb/task_input/task_input.py +4 -2
  312. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/METADATA +3 -1
  313. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/RECORD +316 -315
  314. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/LICENSE +0 -0
  315. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/WHEEL +0 -0
  316. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/entry_points.txt +0 -0
@@ -1,77 +1,62 @@
1
- from typing import Any, Mapping
2
1
  from logging import Logger
2
+ from typing import Any, Mapping
3
+
3
4
  from core.messagebus import Publisher
4
- from core.rpc import Caller, Server
5
5
  from core.repo import SearchFilter
6
+ from core.rpc import Caller, Server
6
7
  from module.auth.component.model.group_model import group_model
7
8
  from module.auth.schema.group import GroupData
8
9
  from module.auth.schema.token import AccessTokenData
9
10
 
10
11
 
11
12
  def register_rpc(
12
- logger: Logger,
13
- rpc_server: Server,
14
- rpc_caller: Caller,
15
- publisher: Publisher
13
+ logger: Logger, rpc_server: Server, rpc_caller: Caller, publisher: Publisher
16
14
  ):
17
15
  logger.info('🥪 Register RPC handlers for "auth.group"')
18
16
 
19
- @rpc_server.register('auth_get_group')
17
+ @rpc_server.register("auth_get_group")
20
18
  async def get(
21
19
  keyword: str,
22
20
  criterion: Mapping[str, Any],
23
21
  limit: int,
24
22
  offset: int,
25
- user_token_data: Mapping[str, Any]
23
+ user_token_data: Mapping[str, Any],
26
24
  ) -> Mapping[str, Any]:
27
25
  result = await group_model.get(
28
- search_filter=SearchFilter(
29
- keyword=keyword, criterion=criterion
30
- ),
26
+ search_filter=SearchFilter(keyword=keyword, criterion=criterion),
31
27
  limit=limit,
32
- offset=offset
28
+ offset=offset,
33
29
  )
34
- return result.dict()
30
+ return result.model_dump()
35
31
 
36
- @rpc_server.register('auth_get_group_by_id')
32
+ @rpc_server.register("auth_get_group_by_id")
37
33
  async def get_by_id(
38
- id: str,
39
- user_token_data: Mapping[str, Any] = {}
34
+ id: str, user_token_data: Mapping[str, Any] = {}
40
35
  ) -> Mapping[str, Any]:
41
36
  row = await group_model.get_by_id(id)
42
- return row.dict()
37
+ return row.model_dump()
43
38
 
44
- @rpc_server.register('auth_insert_group')
39
+ @rpc_server.register("auth_insert_group")
45
40
  async def insert(
46
- data: Mapping[str, Any],
47
- user_token_data: Mapping[str, Any]
41
+ data: Mapping[str, Any], user_token_data: Mapping[str, Any]
48
42
  ) -> Mapping[str, Any]:
49
43
  user_token_data: AccessTokenData = AccessTokenData(**user_token_data)
50
- data['created_by'] = user_token_data.user_id
51
- data['updated_by'] = user_token_data.user_id
52
- row = await group_model.insert(
53
- data=GroupData(**data)
54
- )
55
- return row.dict()
44
+ data["created_by"] = user_token_data.user_id
45
+ data["updated_by"] = user_token_data.user_id
46
+ row = await group_model.insert(data=GroupData(**data))
47
+ return row.model_dump()
56
48
 
57
- @rpc_server.register('auth_update_group')
49
+ @rpc_server.register("auth_update_group")
58
50
  async def update(
59
- id: str,
60
- data: Mapping[str, Any],
61
- user_token_data: Mapping[str, Any]
51
+ id: str, data: Mapping[str, Any], user_token_data: Mapping[str, Any]
62
52
  ) -> Mapping[str, Any]:
63
53
  user_token_data: AccessTokenData = AccessTokenData(**user_token_data)
64
- data['updated_by'] = user_token_data.user_id
65
- row = await group_model.update(
66
- id=id, data=GroupData(**data)
67
- )
68
- return row.dict()
54
+ data["updated_by"] = user_token_data.user_id
55
+ row = await group_model.update(id=id, data=GroupData(**data))
56
+ return row.model_dump()
69
57
 
70
- @rpc_server.register('auth_delete_group')
71
- async def delete(
72
- id: str,
73
- user_token_data: Mapping[str, Any]
74
- ) -> Mapping[str, Any]:
58
+ @rpc_server.register("auth_delete_group")
59
+ async def delete(id: str, user_token_data: Mapping[str, Any]) -> Mapping[str, Any]:
75
60
  user_token_data = AccessTokenData(**user_token_data)
76
61
  row = await group_model.delete(id=id)
77
- return row.dict()
62
+ return row.model_dump()
@@ -1,14 +1,13 @@
1
- from fastapi import FastAPI, Depends
2
1
  from logging import Logger
2
+
3
+ from core.error import HTTPAPIException
3
4
  from core.messagebus import Publisher
4
5
  from core.rpc import Caller
5
- from core.error import HTTPAPIException
6
+ from fastapi import Depends, FastAPI
7
+ from module.auth.component import access_token_scheme
6
8
  from module.auth.core import Authorizer
7
- from module.auth.schema.permission import (
8
- Permission, PermissionData, PermissionResult
9
- )
9
+ from module.auth.schema.permission import Permission, PermissionData, PermissionResult
10
10
  from module.auth.schema.token import AccessTokenData
11
- from module.auth.component import access_token_scheme
12
11
 
13
12
 
14
13
  def register_api(
@@ -16,109 +15,105 @@ def register_api(
16
15
  app: FastAPI,
17
16
  authorizer: Authorizer,
18
17
  rpc_caller: Caller,
19
- publisher: Publisher
18
+ publisher: Publisher,
20
19
  ):
21
20
  logger.info('🥪 Register API for "auth.permission"')
22
21
 
23
- @app.get(
24
- '/api/v1/auth/permissions', response_model=PermissionResult
25
- )
22
+ @app.get("/api/v1/auth/permissions", response_model=PermissionResult)
26
23
  async def get_permissions(
27
- keyword: str = '', limit: int = 100, offset: int = 0,
28
- user_token_data: AccessTokenData = Depends(access_token_scheme)
24
+ keyword: str = "",
25
+ limit: int = 100,
26
+ offset: int = 0,
27
+ user_token_data: AccessTokenData = Depends(access_token_scheme),
29
28
  ):
30
29
  if not await authorizer.is_having_permission(
31
- user_token_data.user_id, 'auth:permission:get'
30
+ user_token_data.user_id, "auth:permission:get"
32
31
  ):
33
- raise HTTPAPIException(403, 'Unauthorized')
32
+ raise HTTPAPIException(403, "Unauthorized")
34
33
  try:
35
34
  result_dict = await rpc_caller.call(
36
- 'auth_get_permission',
35
+ "auth_get_permission",
37
36
  keyword=keyword,
38
37
  criterion={},
39
38
  limit=limit,
40
39
  offset=offset,
41
- user_token_data=user_token_data.dict()
40
+ user_token_data=user_token_data.model_dump(),
42
41
  )
43
42
  return PermissionResult(**result_dict)
44
43
  except Exception as e:
45
44
  raise HTTPAPIException(error=e)
46
45
 
47
- @app.get(
48
- '/api/v1/auth/permissions/{id}', response_model=Permission
49
- )
46
+ @app.get("/api/v1/auth/permissions/{id}", response_model=Permission)
50
47
  async def get_permission_by_id(
51
- id: str,
52
- user_token_data: AccessTokenData = Depends(access_token_scheme)
48
+ id: str, user_token_data: AccessTokenData = Depends(access_token_scheme)
53
49
  ):
54
50
  if not await authorizer.is_having_permission(
55
- user_token_data.user_id, 'auth:permission:get_by_id'
51
+ user_token_data.user_id, "auth:permission:get_by_id"
56
52
  ):
57
- raise HTTPAPIException(403, 'Unauthorized')
53
+ raise HTTPAPIException(403, "Unauthorized")
58
54
  try:
59
55
  result_dict = await rpc_caller.call(
60
- 'auth_get_permission_by_id',
61
- id=id, user_token_data=user_token_data.dict()
56
+ "auth_get_permission_by_id",
57
+ id=id,
58
+ user_token_data=user_token_data.model_dump(),
62
59
  )
63
60
  return Permission(**result_dict)
64
61
  except Exception as e:
65
62
  raise HTTPAPIException(error=e)
66
63
 
67
- @app.post(
68
- '/api/v1/auth/permissions', response_model=Permission
69
- )
64
+ @app.post("/api/v1/auth/permissions", response_model=Permission)
70
65
  async def insert_permission(
71
66
  data: PermissionData,
72
- user_token_data: AccessTokenData = Depends(access_token_scheme)
67
+ user_token_data: AccessTokenData = Depends(access_token_scheme),
73
68
  ):
74
69
  if not await authorizer.is_having_permission(
75
- user_token_data.user_id, 'auth:permission:insert'
70
+ user_token_data.user_id, "auth:permission:insert"
76
71
  ):
77
- raise HTTPAPIException(403, 'Unauthorized')
72
+ raise HTTPAPIException(403, "Unauthorized")
78
73
  try:
79
74
  result_dict = await rpc_caller.call(
80
- 'auth_insert_permission',
81
- data=data.dict(), user_token_data=user_token_data.dict()
75
+ "auth_insert_permission",
76
+ data=data.model_dump(),
77
+ user_token_data=user_token_data.model_dump(),
82
78
  )
83
79
  return Permission(**result_dict)
84
80
  except Exception as e:
85
81
  raise HTTPAPIException(error=e)
86
82
 
87
- @app.put(
88
- '/api/v1/auth/permissions/{id}', response_model=Permission
89
- )
83
+ @app.put("/api/v1/auth/permissions/{id}", response_model=Permission)
90
84
  async def update_permission(
91
- id: str, data: PermissionData,
92
- user_token_data: AccessTokenData = Depends(access_token_scheme)
85
+ id: str,
86
+ data: PermissionData,
87
+ user_token_data: AccessTokenData = Depends(access_token_scheme),
93
88
  ):
94
89
  if not await authorizer.is_having_permission(
95
- user_token_data.user_id, 'auth:permission:update'
90
+ user_token_data.user_id, "auth:permission:update"
96
91
  ):
97
- raise HTTPAPIException(403, 'Unauthorized')
92
+ raise HTTPAPIException(403, "Unauthorized")
98
93
  try:
99
94
  result_dict = await rpc_caller.call(
100
- 'auth_update_permission',
101
- id=id, data=data.dict(), user_token_data=user_token_data.dict()
95
+ "auth_update_permission",
96
+ id=id,
97
+ data=data.model_dump(),
98
+ user_token_data=user_token_data.model_dump(),
102
99
  )
103
100
  return Permission(**result_dict)
104
101
  except Exception as e:
105
102
  raise HTTPAPIException(error=e)
106
103
 
107
- @app.delete(
108
- '/api/v1/auth/permissions/{id}', response_model=Permission
109
- )
104
+ @app.delete("/api/v1/auth/permissions/{id}", response_model=Permission)
110
105
  async def delete_permission(
111
- id: str,
112
- user_token_data: AccessTokenData = Depends(access_token_scheme)
106
+ id: str, user_token_data: AccessTokenData = Depends(access_token_scheme)
113
107
  ):
114
108
  if not await authorizer.is_having_permission(
115
- user_token_data.user_id, 'auth:permission:delete'
109
+ user_token_data.user_id, "auth:permission:delete"
116
110
  ):
117
- raise HTTPAPIException(403, 'Unauthorized')
111
+ raise HTTPAPIException(403, "Unauthorized")
118
112
  try:
119
113
  result_dict = await rpc_caller.call(
120
- 'auth_delete_permission',
121
- id=id, user_token_data=user_token_data.dict()
114
+ "auth_delete_permission",
115
+ id=id,
116
+ user_token_data=user_token_data.model_dump(),
122
117
  )
123
118
  return Permission(**result_dict)
124
119
  except Exception as e:
@@ -1,16 +1,14 @@
1
1
  from core.messagebus.messagebus import Publisher
2
- from module.log.core.historical_repo_model import HistoricalRepoModel
3
- from module.auth.schema.permission import (
4
- Permission, PermissionData, PermissionResult
5
- )
6
2
  from module.auth.entity.permission.repo import PermissionRepo
3
+ from module.auth.schema.permission import Permission, PermissionData, PermissionResult
4
+ from module.log.core.historical_repo_model import HistoricalRepoModel
7
5
 
8
6
 
9
7
  class PermissionModel(
10
8
  HistoricalRepoModel[Permission, PermissionData, PermissionResult]
11
9
  ):
12
10
  schema_result_cls = PermissionResult
13
- log_entity_name = 'permission'
11
+ log_entity_name = "permission"
14
12
 
15
13
  def __init__(self, repo: PermissionRepo, publisher: Publisher):
16
14
  super().__init__(repo, publisher)
@@ -19,8 +17,8 @@ class PermissionModel(
19
17
  try:
20
18
  await self.repo.get_by_name(data.name)
21
19
  except Exception as e:
22
- error_message = f'{e}'
23
- if error_message.lower().startswith('not found'):
20
+ error_message = f"{e}"
21
+ if error_message.lower().startswith("not found"):
24
22
  await self.repo.insert(data)
25
23
  return
26
24
  raise e
@@ -1,11 +1,16 @@
1
1
  from abc import ABC, abstractmethod
2
- from sqlalchemy import Column, String
3
- from core.repo import Repo, DBEntityMixin, DBRepo
4
- from module.auth.schema.permission import Permission, PermissionData
2
+
3
+ from core.repo import DBEntityMixin, DBRepo, Repo
5
4
  from module.auth.component import Base
5
+ from module.auth.schema.permission import Permission, PermissionData
6
+ from sqlalchemy import Column, String
6
7
 
7
8
 
8
9
  class DBEntityPermission(Base, DBEntityMixin):
10
+ class Config:
11
+ orm_mode = True
12
+ from_attributes = True
13
+
9
14
  __tablename__ = "permissions"
10
15
  name = Column(String)
11
16
  description = Column(String)
@@ -17,16 +22,14 @@ class PermissionRepo(Repo[Permission, PermissionData], ABC):
17
22
  pass
18
23
 
19
24
 
20
- class PermissionDBRepo(
21
- DBRepo[Permission, PermissionData], PermissionRepo
22
- ):
25
+ class PermissionDBRepo(DBRepo[Permission, PermissionData], PermissionRepo):
23
26
  schema_cls = Permission
24
27
  db_entity_cls = DBEntityPermission
25
28
 
26
29
  async def get_by_name(self, name: str) -> Permission:
27
- '''
30
+ """
28
31
  Find permission by name.
29
- '''
32
+ """
30
33
  db = self._get_db_session()
31
34
  try:
32
35
  search_filter = DBEntityPermission.name == name
@@ -1,83 +1,66 @@
1
- from typing import Any, Mapping
2
1
  from logging import Logger
2
+ from typing import Any, Mapping
3
+
3
4
  from core.messagebus import Publisher
4
- from core.rpc import Caller, Server
5
5
  from core.repo import SearchFilter
6
+ from core.rpc import Caller, Server
6
7
  from module.auth.component.model.permission_model import permission_model
7
8
  from module.auth.schema.permission import PermissionData
8
9
  from module.auth.schema.token import AccessTokenData
9
10
 
10
11
 
11
12
  def register_rpc(
12
- logger: Logger,
13
- rpc_server: Server,
14
- rpc_caller: Caller,
15
- publisher: Publisher
13
+ logger: Logger, rpc_server: Server, rpc_caller: Caller, publisher: Publisher
16
14
  ):
17
15
  logger.info('🥪 Register RPC handlers for "auth.permission"')
18
16
 
19
- @rpc_server.register('auth_ensure_permission')
17
+ @rpc_server.register("auth_ensure_permission")
20
18
  async def ensure(data: Mapping[str, Any]):
21
- await permission_model.ensure_permission(
22
- PermissionData(**data)
23
- )
19
+ await permission_model.ensure_permission(PermissionData(**data))
24
20
 
25
- @rpc_server.register('auth_get_permission')
21
+ @rpc_server.register("auth_get_permission")
26
22
  async def get(
27
23
  keyword: str,
28
24
  criterion: Mapping[str, Any],
29
25
  limit: int,
30
26
  offset: int,
31
- user_token_data: Mapping[str, Any]
27
+ user_token_data: Mapping[str, Any],
32
28
  ) -> Mapping[str, Any]:
33
29
  result = await permission_model.get(
34
- search_filter=SearchFilter(
35
- keyword=keyword, criterion=criterion
36
- ),
30
+ search_filter=SearchFilter(keyword=keyword, criterion=criterion),
37
31
  limit=limit,
38
- offset=offset
32
+ offset=offset,
39
33
  )
40
- return result.dict()
34
+ return result.model_dump()
41
35
 
42
- @rpc_server.register('auth_get_permission_by_id')
36
+ @rpc_server.register("auth_get_permission_by_id")
43
37
  async def get_by_id(
44
- id: str,
45
- user_token_data: Mapping[str, Any] = {}
38
+ id: str, user_token_data: Mapping[str, Any] = {}
46
39
  ) -> Mapping[str, Any]:
47
40
  row = await permission_model.get_by_id(id)
48
- return row.dict()
41
+ return row.model_dump()
49
42
 
50
- @rpc_server.register('auth_insert_permission')
43
+ @rpc_server.register("auth_insert_permission")
51
44
  async def insert(
52
- data: Mapping[str, Any],
53
- user_token_data: Mapping[str, Any]
45
+ data: Mapping[str, Any], user_token_data: Mapping[str, Any]
54
46
  ) -> Mapping[str, Any]:
55
47
  user_token_data = AccessTokenData(**user_token_data)
56
- data['created_by'] = user_token_data.user_id
57
- data['updated_by'] = user_token_data.user_id
58
- row = await permission_model.insert(
59
- data=PermissionData(**data)
60
- )
61
- return row.dict()
48
+ data["created_by"] = user_token_data.user_id
49
+ data["updated_by"] = user_token_data.user_id
50
+ row = await permission_model.insert(data=PermissionData(**data))
51
+ return row.model_dump()
62
52
 
63
- @rpc_server.register('auth_update_permission')
53
+ @rpc_server.register("auth_update_permission")
64
54
  async def update(
65
- id: str,
66
- data: Mapping[str, Any],
67
- user_token_data: Mapping[str, Any]
55
+ id: str, data: Mapping[str, Any], user_token_data: Mapping[str, Any]
68
56
  ) -> Mapping[str, Any]:
69
57
  user_token_data = AccessTokenData(**user_token_data)
70
- data['updated_by'] = user_token_data.user_id
71
- row = await permission_model.update(
72
- id=id, data=PermissionData(**data)
73
- )
74
- return row.dict()
58
+ data["updated_by"] = user_token_data.user_id
59
+ row = await permission_model.update(id=id, data=PermissionData(**data))
60
+ return row.model_dump()
75
61
 
76
- @rpc_server.register('auth_delete_permission')
77
- async def delete(
78
- id: str,
79
- user_token_data: Mapping[str, Any]
80
- ) -> Mapping[str, Any]:
62
+ @rpc_server.register("auth_delete_permission")
63
+ async def delete(id: str, user_token_data: Mapping[str, Any]) -> Mapping[str, Any]:
81
64
  user_token_data = AccessTokenData(**user_token_data)
82
65
  row = await permission_model.delete(id=id)
83
- return row.dict()
66
+ return row.model_dump()
@@ -1,23 +1,23 @@
1
- from sqlalchemy import Column, String, Table, ForeignKey
2
1
  from module.auth.component import Base
2
+ from sqlalchemy import Column, ForeignKey, String, Table
3
3
 
4
4
  user_group = Table(
5
- 'user_groups',
5
+ "user_groups",
6
6
  Base.metadata,
7
- Column('user_id', String, ForeignKey('users.id')),
8
- Column('group_id', String, ForeignKey('groups.id')),
7
+ Column("user_id", String, ForeignKey("users.id")),
8
+ Column("group_id", String, ForeignKey("groups.id")),
9
9
  )
10
10
 
11
11
  user_permission = Table(
12
- 'user_permissions',
12
+ "user_permissions",
13
13
  Base.metadata,
14
- Column('user_id', String, ForeignKey('users.id')),
15
- Column('permission_id', String, ForeignKey('permissions.id')),
14
+ Column("user_id", String, ForeignKey("users.id")),
15
+ Column("permission_id", String, ForeignKey("permissions.id")),
16
16
  )
17
17
 
18
18
  group_permission = Table(
19
- 'group_permissions',
19
+ "group_permissions",
20
20
  Base.metadata,
21
- Column('group_id', String, ForeignKey('groups.id')),
22
- Column('permission_id', String, ForeignKey('permissions.id')),
21
+ Column("group_id", String, ForeignKey("groups.id")),
22
+ Column("permission_id", String, ForeignKey("permissions.id")),
23
23
  )