zrb 1.0.0b1__tar.gz → 1.0.0b2__tar.gz
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.
- {zrb-1.0.0b1 → zrb-1.0.0b2}/PKG-INFO +1 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/pyproject.toml +4 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/__main__.py +0 -3
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/__init__.py +3 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/group.py +1 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +1 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +66 -21
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +67 -41
- zrb-1.0.0b2/src/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 +113 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/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 +2 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/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 +0 -10
- zrb-1.0.0b2/src/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 +59 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/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 +2 -2
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +47 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +57 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +72 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +1 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_api_client.py +6 -0
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/any_client.py → zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client.py +1 -1
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client_factory.py +11 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_direct_client.py +5 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +1 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +2 -2
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +4 -4
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +47 -20
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +29 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +218 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +236 -0
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine.py → zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +1 -1
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +20 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +10 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +7 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +47 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +105 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +58 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +1 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +1 -1
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +16 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +163 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +9 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +15 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +160 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +23 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +5 -1
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +117 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +11 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +26 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +61 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +13 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +75 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +59 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +13 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +105 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +7 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +74 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +63 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +2 -2
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +105 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +2 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +1 -1
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +214 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +1 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +1 -1
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +51 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +85 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/session.py +52 -0
- zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +64 -0
- zrb-1.0.0b2/src/zrb/builtin/random.py +61 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/cmd/cmd_val.py +6 -5
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/cli.py +10 -1
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_util/token.py +7 -3
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/base_task.py +24 -2
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/cmd_task.py +7 -5
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/cmd/command.py +1 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/file.py +7 -1
- zrb-1.0.0b2/src/zrb/util/string/__init__.py +0 -0
- zrb-1.0.0b2/src/zrb/xcom/__init__.py +0 -0
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/any_client_method.py +0 -27
- zrb-1.0.0b1/src/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 +0 -59
- zrb-1.0.0b1/src/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 +0 -38
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -37
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -37
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/api_client.py +0 -6
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/direct_client.py +0 -5
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/factory.py +0 -9
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app.py +0 -57
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -134
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -245
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -8
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/any_client.py +0 -33
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/api_client.py +0 -7
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/direct_client.py +0 -6
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/factory.py +0 -9
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_user_table.py +0 -37
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -6
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -45
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -42
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -53
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -44
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -39
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -39
- zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -39
- {zrb-1.0.0b1 → zrb-1.0.0b2}/README.md +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/attr/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/attr/type.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/base64.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/git.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/git_subtree.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/llm/llm_chat.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/llm/tool/cli.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/llm/tool/rag.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/llm/tool/web.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/md5.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/script.py.mako +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
- {zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common → zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util}/view.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/migrate.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
- {zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user → zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission}/__init__.py +0 -0
- {zrb-1.0.0b1/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema → zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role}/__init__.py +0 -0
- {zrb-1.0.0b1/src/zrb/builtin/project/create → zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
- {zrb-1.0.0b1/src/zrb/builtin/shell → zrb-1.0.0b2/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
- {zrb-1.0.0b1/src/zrb/builtin/shell/autocomplete → zrb-1.0.0b2/src/zrb/builtin/project/create}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/create/project-template/README.md +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/project/create/project_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/python.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/setup/common_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/setup/ubuntu.py +0 -0
- {zrb-1.0.0b1/src/zrb/callback → zrb-1.0.0b2/src/zrb/builtin/shell}/__init__.py +0 -0
- {zrb-1.0.0b1/src/zrb/cmd → zrb-1.0.0b2/src/zrb/builtin/shell/autocomplete}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/builtin/todo.py +0 -0
- {zrb-1.0.0b1/src/zrb/content_transformer → zrb-1.0.0b2/src/zrb/callback}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/callback/any_callback.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/callback/callback.py +0 -0
- {zrb-1.0.0b1/src/zrb/context → zrb-1.0.0b2/src/zrb/cmd}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/cmd/cmd_result.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/config.py +0 -0
- {zrb-1.0.0b1/src/zrb/dot_dict → zrb-1.0.0b2/src/zrb/content_transformer}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/content_transformer/any_content_transformer.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/content_transformer/content_transformer.py +0 -0
- {zrb-1.0.0b1/src/zrb/env → zrb-1.0.0b2/src/zrb/context}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/context/any_context.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/context/any_shared_context.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/context/context.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/context/shared_context.py +0 -0
- {zrb-1.0.0b1/src/zrb/group → zrb-1.0.0b2/src/zrb/dot_dict}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/dot_dict/dot_dict.py +0 -0
- {zrb-1.0.0b1/src/zrb/input → zrb-1.0.0b2/src/zrb/env}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/env/any_env.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/env/env.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/env/env_file.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/env/env_map.py +0 -0
- {zrb-1.0.0b1/src/zrb/runner → zrb-1.0.0b2/src/zrb/group}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/group/any_group.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/group/group.py +0 -0
- {zrb-1.0.0b1/src/zrb/runner/web_route → zrb-1.0.0b2/src/zrb/input}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/any_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/base_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/bool_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/float_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/int_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/option_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/password_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/str_input.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/input/text_input.py +0 -0
- {zrb-1.0.0b1/src/zrb/runner/web_route/home_page → zrb-1.0.0b2/src/zrb/runner}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/common_util.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_app.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_config/config.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_config/config_factory.py +0 -0
- {zrb-1.0.0b1/src/zrb/session → zrb-1.0.0b2/src/zrb/runner/web_route}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/docs_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/error_page/view.html +0 -0
- {zrb-1.0.0b1/src/zrb/session_state_log → zrb-1.0.0b2/src/zrb/runner/web_route/home_page}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/home_page/view.html +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/login_api_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/login_page/view.html +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/logout_api_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/logout_page/view.html +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/common.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/pico.min.css +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/static/static_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_schema/session.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_schema/token.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_schema/user.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_util/cookie.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_util/html.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/runner/web_util/user.py +0 -0
- {zrb-1.0.0b1/src/zrb/session_state_logger → zrb-1.0.0b2/src/zrb/session}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/session/any_session.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/session/session.py +0 -0
- {zrb-1.0.0b1/src/zrb/task → zrb-1.0.0b2/src/zrb/session_state_log}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/session_state_log/session_state_log.py +0 -0
- {zrb-1.0.0b1/src/zrb/task_status → zrb-1.0.0b2/src/zrb/session_state_logger}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
- {zrb-1.0.0b1/src/zrb/util → zrb-1.0.0b2/src/zrb/task}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/any_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/base_trigger.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/http_check.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/llm_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/make_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/rsync_task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/scaffolder.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/scheduler.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/task.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task/tcp_check.py +0 -0
- {zrb-1.0.0b1/src/zrb/util/cli → zrb-1.0.0b2/src/zrb/task_status}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/task_status/task_status.py +0 -0
- {zrb-1.0.0b1/src/zrb/util/cmd → zrb-1.0.0b2/src/zrb/util}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/attr.py +0 -0
- {zrb-1.0.0b1/src/zrb/util/codemod → zrb-1.0.0b2/src/zrb/util/cli}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/cli/style.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/cli/subcommand.py +0 -0
- {zrb-1.0.0b1/src/zrb/util/string → zrb-1.0.0b2/src/zrb/util/cmd}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/cmd/remote.py +0 -0
- {zrb-1.0.0b1/src/zrb/xcom → zrb-1.0.0b2/src/zrb/util/codemod}/__init__.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/codemod/append_code_to_class.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/codemod/append_code_to_function.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/codemod/append_code_to_method.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/codemod/append_key_to_dict.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/codemod/append_param_to_function_call.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/codemod/prepend_code_to_module.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/codemod/prepend_parent_to_class.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/codemod/prepend_property_to_class.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/cron.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/git.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/git_subtree.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/group.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/llm/tool.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/load.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/run.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/string/conversion.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/string/format.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/string/name.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/util/todo.py +0 -0
- {zrb-1.0.0b1 → zrb-1.0.0b2}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "zrb"
|
3
|
-
version = "1.0.
|
3
|
+
version = "1.0.0b2"
|
4
4
|
description = "Your Automation Powerhouse"
|
5
5
|
authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
|
6
6
|
license = "AGPL-3.0-or-later"
|
@@ -56,11 +56,14 @@ python-jose = {extras = ["cryptography"], version = "^3.3.0"}
|
|
56
56
|
rag = ["chromadb", "pdfplumber"]
|
57
57
|
|
58
58
|
[tool.poetry.dev-dependencies]
|
59
|
+
alembic = "^1.14.0" # FastApp dependencies
|
59
60
|
flake8 = "~7.1.1"
|
60
61
|
pytest = "~8.3.3"
|
61
62
|
pytest-cov = "~6.0.0"
|
62
63
|
pytest-asyncio = "~0.24.0"
|
64
|
+
sqlmodel = "^0.0.22" # FastApp dependencies
|
63
65
|
tomlkit = "^0.13.2"
|
66
|
+
ulid = "^1.1" # FastApp dependencies
|
64
67
|
|
65
68
|
[tool.pytest.ini_options]
|
66
69
|
asyncio_default_fixture_loop_scope = "function"
|
@@ -14,9 +14,6 @@ def serve_cli():
|
|
14
14
|
for init_script in INIT_SCRIPTS:
|
15
15
|
load_file(init_script, -1)
|
16
16
|
cli.run(sys.argv[1:])
|
17
|
-
except RuntimeError as e:
|
18
|
-
if "Event loop is closed" not in f"{e}":
|
19
|
-
raise e
|
20
17
|
except KeyboardInterrupt:
|
21
18
|
print(stylize_warning("\nStopped"), file=sys.stderr)
|
22
19
|
except NodeNotFoundError as e:
|
@@ -12,6 +12,7 @@ from zrb.builtin.md5 import hash_md5, sum_md5
|
|
12
12
|
from zrb.builtin.project.add.fastapp.fastapp_task import add_fastapp_to_project
|
13
13
|
from zrb.builtin.project.create.project_task import create_project
|
14
14
|
from zrb.builtin.python import format_python_code
|
15
|
+
from zrb.builtin.random import shuffle_values, throw_dice
|
15
16
|
from zrb.builtin.setup.asdf.asdf import setup_asdf
|
16
17
|
from zrb.builtin.setup.latex.ubuntu import setup_latex_on_ubuntu
|
17
18
|
from zrb.builtin.setup.tmux.tmux import setup_tmux
|
@@ -55,6 +56,8 @@ assert edit_todo
|
|
55
56
|
assert complete_todo
|
56
57
|
assert log_todo
|
57
58
|
assert show_todo
|
59
|
+
assert throw_dice
|
60
|
+
assert shuffle_values
|
58
61
|
assert setup_ubuntu
|
59
62
|
assert setup_latex_on_ubuntu
|
60
63
|
assert setup_asdf
|
@@ -2,6 +2,7 @@ from zrb.group.group import Group
|
|
2
2
|
from zrb.runner.cli import cli
|
3
3
|
|
4
4
|
base64_group = cli.add_group(Group(name="base64", description="📄 Base64 operations"))
|
5
|
+
random_group = cli.add_group(Group(name="random", description="🔀 Random operation"))
|
5
6
|
git_group = cli.add_group(Group(name="git", description="🌱 Git related commands"))
|
6
7
|
git_branch_group = git_group.add_group(
|
7
8
|
Group(name="branch", description="🌿 Git branch related commands")
|
@@ -17,4 +17,4 @@ MONOLITH_ENV_VARS = {
|
|
17
17
|
if platform.system() == "Windows":
|
18
18
|
ACTIVATE_VENV_SCRIPT = "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser; . .venv\\Scripts\\Activate" # noqa
|
19
19
|
else:
|
20
|
-
ACTIVATE_VENV_SCRIPT = "
|
20
|
+
ACTIVATE_VENV_SCRIPT = ". .venv/bin/activate"
|
@@ -1,21 +1,21 @@
|
|
1
1
|
import os
|
2
2
|
|
3
|
-
from my_app_name._zrb.config import APP_DIR
|
3
|
+
from my_app_name._zrb.config import ACTIVATE_VENV_SCRIPT, APP_DIR
|
4
4
|
from my_app_name._zrb.entity.add_entity_util import (
|
5
5
|
is_in_app_schema_dir,
|
6
6
|
is_in_module_entity_dir,
|
7
|
-
is_module_any_client_file,
|
8
7
|
is_module_api_client_file,
|
8
|
+
is_module_client_file,
|
9
9
|
is_module_direct_client_file,
|
10
10
|
is_module_gateway_subroute_file,
|
11
11
|
is_module_migration_metadata_file,
|
12
12
|
is_module_route_file,
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
update_api_client_file,
|
14
|
+
update_client_file,
|
15
|
+
update_direct_client_file,
|
16
|
+
update_gateway_subroute_file,
|
17
|
+
update_migration_metadata_file,
|
18
|
+
update_route_file,
|
19
19
|
)
|
20
20
|
from my_app_name._zrb.format_task import format_my_app_name_code
|
21
21
|
from my_app_name._zrb.group import app_create_group
|
@@ -25,9 +25,25 @@ from my_app_name._zrb.input import (
|
|
25
25
|
new_entity_input,
|
26
26
|
plural_entity_input,
|
27
27
|
)
|
28
|
-
from my_app_name._zrb.util import
|
28
|
+
from my_app_name._zrb.util import (
|
29
|
+
cd_module_script,
|
30
|
+
get_existing_module_names,
|
31
|
+
get_existing_schema_names,
|
32
|
+
set_create_migration_db_url_env,
|
33
|
+
set_env,
|
34
|
+
)
|
35
|
+
from my_app_name._zrb.venv_task import prepare_venv
|
29
36
|
|
30
|
-
from zrb import
|
37
|
+
from zrb import (
|
38
|
+
AnyContext,
|
39
|
+
Cmd,
|
40
|
+
CmdTask,
|
41
|
+
ContentTransformer,
|
42
|
+
EnvFile,
|
43
|
+
Scaffolder,
|
44
|
+
Task,
|
45
|
+
make_task,
|
46
|
+
)
|
31
47
|
from zrb.util.string.conversion import to_snake_case
|
32
48
|
|
33
49
|
|
@@ -93,49 +109,78 @@ scaffold_my_app_name_entity = Scaffolder(
|
|
93
109
|
ContentTransformer(
|
94
110
|
name="transform-module-migration-metadata",
|
95
111
|
match=is_module_migration_metadata_file,
|
96
|
-
transform=
|
112
|
+
transform=update_migration_metadata_file,
|
97
113
|
),
|
98
|
-
# Update API Client
|
114
|
+
# Update API Client
|
115
|
+
# (my_app_name/module/snake_module_name/client/snake_module_name_api_client.py)
|
99
116
|
ContentTransformer(
|
100
117
|
name="transform-module-api-client",
|
101
118
|
match=is_module_api_client_file,
|
102
|
-
transform=
|
119
|
+
transform=update_api_client_file,
|
103
120
|
),
|
104
|
-
# Update Direct Client
|
121
|
+
# Update Direct Client
|
122
|
+
# (my_app_name/module/snake_module_name/client/snake_module_name_direct_client.py)
|
105
123
|
ContentTransformer(
|
106
124
|
name="transform-module-direct-client",
|
107
125
|
match=is_module_direct_client_file,
|
108
|
-
transform=
|
126
|
+
transform=update_direct_client_file,
|
109
127
|
),
|
110
|
-
# Update
|
128
|
+
# Update Client
|
129
|
+
# (my_app_name/module/snake_module_name/client/snake_module_name_client.py)
|
111
130
|
ContentTransformer(
|
112
131
|
name="transform-module-any-client",
|
113
|
-
match=
|
114
|
-
transform=
|
132
|
+
match=is_module_client_file,
|
133
|
+
transform=update_client_file,
|
115
134
|
),
|
116
135
|
# Update module route (my_app_name/module/route.py)
|
117
136
|
ContentTransformer(
|
118
137
|
name="transform-module-route",
|
119
138
|
match=is_module_route_file,
|
120
|
-
transform=
|
139
|
+
transform=update_route_file,
|
121
140
|
),
|
122
141
|
# Update module gateway subroute
|
123
142
|
# (my_app_name/module/gateway/subroute/snake_module_name.py)
|
124
143
|
ContentTransformer(
|
125
144
|
name="transform-module-gateway-subroute",
|
126
145
|
match=is_module_gateway_subroute_file,
|
127
|
-
transform=
|
146
|
+
transform=update_gateway_subroute_file,
|
128
147
|
),
|
129
148
|
],
|
130
149
|
retries=0,
|
131
150
|
upstream=validate_create_my_app_name_entity,
|
132
151
|
)
|
133
152
|
|
153
|
+
create_my_app_name_entity_migration = CmdTask(
|
154
|
+
name="create-my-app-name-entity-migration",
|
155
|
+
input=[
|
156
|
+
existing_module_input,
|
157
|
+
new_entity_input,
|
158
|
+
],
|
159
|
+
env=EnvFile(path=os.path.join(APP_DIR, "template.env")),
|
160
|
+
cwd=APP_DIR,
|
161
|
+
cmd=[
|
162
|
+
ACTIVATE_VENV_SCRIPT,
|
163
|
+
Cmd(lambda ctx: set_create_migration_db_url_env(ctx.input.module)),
|
164
|
+
Cmd(lambda ctx: set_env("MY_APP_NAME_MODULES", ctx.input.module)),
|
165
|
+
Cmd(lambda ctx: cd_module_script(ctx.input.module)),
|
166
|
+
"alembic upgrade head",
|
167
|
+
Cmd(
|
168
|
+
'alembic revision --autogenerate -m "create_{to_snake_case(ctx.input.entity)}_table"', # noqa
|
169
|
+
),
|
170
|
+
],
|
171
|
+
render_cmd=False,
|
172
|
+
retries=0,
|
173
|
+
upstream=[
|
174
|
+
prepare_venv,
|
175
|
+
scaffold_my_app_name_entity,
|
176
|
+
],
|
177
|
+
)
|
178
|
+
|
134
179
|
add_my_app_name_entity = app_create_group.add_task(
|
135
180
|
Task(
|
136
181
|
name="add-my-app-name-entity",
|
137
182
|
description="🏗️ Create new entity on a module",
|
138
|
-
upstream=
|
183
|
+
upstream=create_my_app_name_entity_migration,
|
139
184
|
successor=format_my_app_name_code,
|
140
185
|
retries=0,
|
141
186
|
),
|
@@ -8,7 +8,7 @@ from zrb.util.codemod.append_code_to_function import append_code_to_function
|
|
8
8
|
from zrb.util.codemod.prepend_code_to_module import prepend_code_to_module
|
9
9
|
from zrb.util.codemod.prepend_parent_to_class import prepend_parent_class
|
10
10
|
from zrb.util.file import read_file, write_file
|
11
|
-
from zrb.util.string.conversion import to_pascal_case, to_snake_case
|
11
|
+
from zrb.util.string.conversion import to_kebab_case, to_pascal_case, to_snake_case
|
12
12
|
|
13
13
|
|
14
14
|
def is_in_app_schema_dir(ctx: AnyContext, file_path: str) -> bool:
|
@@ -49,13 +49,13 @@ def is_module_migration_metadata_file(ctx: AnyContext, file_path: str) -> bool:
|
|
49
49
|
return file_path == module_migration_metadata_file
|
50
50
|
|
51
51
|
|
52
|
-
def
|
52
|
+
def is_module_client_file(ctx: AnyContext, file_path: str) -> bool:
|
53
53
|
module_any_client_file = os.path.join(
|
54
54
|
APP_DIR,
|
55
55
|
"module",
|
56
56
|
to_snake_case(ctx.input.module),
|
57
57
|
"client",
|
58
|
-
"
|
58
|
+
f"{to_snake_case(ctx.input.module)}_client.py",
|
59
59
|
)
|
60
60
|
return file_path == module_any_client_file
|
61
61
|
|
@@ -66,7 +66,7 @@ def is_module_api_client_file(ctx: AnyContext, file_path: str) -> bool:
|
|
66
66
|
"module",
|
67
67
|
to_snake_case(ctx.input.module),
|
68
68
|
"client",
|
69
|
-
"
|
69
|
+
f"{to_snake_case(ctx.input.module)}_api_client.py",
|
70
70
|
)
|
71
71
|
return file_path == module_api_client_file
|
72
72
|
|
@@ -77,7 +77,7 @@ def is_module_direct_client_file(ctx: AnyContext, file_path: str) -> bool:
|
|
77
77
|
"module",
|
78
78
|
to_snake_case(ctx.input.module),
|
79
79
|
"client",
|
80
|
-
"
|
80
|
+
f"{to_snake_case(ctx.input.module)}_direct_client.py",
|
81
81
|
)
|
82
82
|
return file_path == module_direct_client_file
|
83
83
|
|
@@ -93,24 +93,24 @@ def is_module_gateway_subroute_file(ctx: AnyContext, file_path: str) -> bool:
|
|
93
93
|
return file_path == module_gateway_subroute_file
|
94
94
|
|
95
95
|
|
96
|
-
def
|
96
|
+
def update_migration_metadata_file(ctx: AnyContext, migration_metadata_file_path: str):
|
97
97
|
app_name = os.path.basename(APP_DIR)
|
98
98
|
existing_migration_metadata_code = read_file(migration_metadata_file_path)
|
99
99
|
write_file(
|
100
100
|
file_path=migration_metadata_file_path,
|
101
101
|
content=[
|
102
|
-
|
102
|
+
_get_migration_import_schema_code(
|
103
103
|
existing_migration_metadata_code, app_name, ctx.input.entity
|
104
104
|
),
|
105
105
|
existing_migration_metadata_code.strip(),
|
106
|
-
|
106
|
+
_get_migration_entity_metadata_assignment_code(
|
107
107
|
existing_migration_metadata_code, ctx.input.entity
|
108
108
|
),
|
109
109
|
],
|
110
110
|
)
|
111
111
|
|
112
112
|
|
113
|
-
def
|
113
|
+
def _get_migration_import_schema_code(
|
114
114
|
existing_code: str, app_name: str, entity_name: str
|
115
115
|
) -> str | None:
|
116
116
|
snake_entity_name = to_snake_case(entity_name)
|
@@ -122,7 +122,7 @@ def _get_import_schema_code(
|
|
122
122
|
return import_schema_code
|
123
123
|
|
124
124
|
|
125
|
-
def
|
125
|
+
def _get_migration_entity_metadata_assignment_code(
|
126
126
|
existing_code: str, entity_name: str
|
127
127
|
) -> str | None:
|
128
128
|
pascal_entity_name = to_pascal_case(entity_name)
|
@@ -137,42 +137,66 @@ def _get_entity_metadata_assignment_code(
|
|
137
137
|
return entity_metadata_assignment_code
|
138
138
|
|
139
139
|
|
140
|
-
def
|
141
|
-
|
142
|
-
|
140
|
+
def update_client_file(ctx: AnyContext, client_file_path: str):
|
141
|
+
existing_client_code = read_file(client_file_path)
|
142
|
+
pascal_module_name = to_pascal_case(ctx.input.module)
|
143
143
|
snake_entity_name = to_snake_case(ctx.input.entity)
|
144
144
|
snake_plural_entity_name = to_snake_case(ctx.input.plural)
|
145
145
|
pascal_entity_name = to_pascal_case(ctx.input.entity)
|
146
|
-
any_client_method = read_file(
|
147
|
-
file_path=os.path.join(
|
148
|
-
os.path.dirname(__file__), "template", "any_client_method.py"
|
149
|
-
),
|
150
|
-
replace_map={
|
151
|
-
"my_entity": snake_entity_name,
|
152
|
-
"my_entities": snake_plural_entity_name,
|
153
|
-
"MyEntity": pascal_entity_name,
|
154
|
-
},
|
155
|
-
)
|
156
|
-
new_code = append_code_to_class(
|
157
|
-
existing_any_client_code, "AnyClient", any_client_method
|
158
|
-
)
|
159
146
|
write_file(
|
160
|
-
file_path=
|
147
|
+
file_path=client_file_path,
|
161
148
|
content=[
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
149
|
+
_get_import_schema_for_client_code(
|
150
|
+
existing_code=existing_client_code, entity_name=ctx.input.entity
|
151
|
+
),
|
152
|
+
append_code_to_class(
|
153
|
+
original_code=existing_client_code,
|
154
|
+
class_name=f"{pascal_module_name}Client",
|
155
|
+
new_code=read_file(
|
156
|
+
file_path=os.path.join(
|
157
|
+
os.path.dirname(__file__), "template", "client_method.py"
|
158
|
+
),
|
159
|
+
replace_map={
|
160
|
+
"my_entity": snake_entity_name,
|
161
|
+
"my_entities": snake_plural_entity_name,
|
162
|
+
"MyEntity": pascal_entity_name,
|
163
|
+
},
|
164
|
+
),
|
165
|
+
),
|
166
166
|
],
|
167
167
|
)
|
168
168
|
|
169
169
|
|
170
|
-
def
|
170
|
+
def _get_import_schema_for_client_code(
|
171
|
+
existing_code: str, entity_name: str
|
172
|
+
) -> str | None:
|
173
|
+
snake_entity_name = to_snake_case(entity_name)
|
174
|
+
pascal_entity_name = to_pascal_case(entity_name)
|
175
|
+
schema_import_path = f"my_app_name.schema.{snake_entity_name}"
|
176
|
+
new_code = "\n".join(
|
177
|
+
[
|
178
|
+
f"from {schema_import_path} import (",
|
179
|
+
f" Multiple{pascal_entity_name}Response,",
|
180
|
+
f" {pascal_entity_name}Create,",
|
181
|
+
f" {pascal_entity_name}CreateWithAudit,",
|
182
|
+
f" {pascal_entity_name}Response,",
|
183
|
+
f" {pascal_entity_name}Update,",
|
184
|
+
f" {pascal_entity_name}UpdateWithAudit,",
|
185
|
+
")",
|
186
|
+
]
|
187
|
+
)
|
188
|
+
if new_code in existing_code:
|
189
|
+
return None
|
190
|
+
return new_code
|
191
|
+
|
192
|
+
|
193
|
+
def update_api_client_file(ctx: AnyContext, api_client_file_path: str):
|
171
194
|
existing_api_client_code = read_file(api_client_file_path)
|
172
195
|
upper_snake_module_name = to_snake_case(ctx.input.module).upper()
|
173
196
|
app_name = os.path.basename(APP_DIR)
|
174
197
|
snake_entity_name = to_snake_case(ctx.input.entity)
|
175
198
|
snake_module_name = to_snake_case(ctx.input.module)
|
199
|
+
pascal_module_name = to_pascal_case(ctx.input.module)
|
176
200
|
write_file(
|
177
201
|
file_path=api_client_file_path,
|
178
202
|
content=[
|
@@ -180,7 +204,7 @@ def update_api_client(ctx: AnyContext, api_client_file_path: str):
|
|
180
204
|
prepend_code_to_module(
|
181
205
|
prepend_parent_class(
|
182
206
|
original_code=existing_api_client_code,
|
183
|
-
class_name="APIClient",
|
207
|
+
class_name=f"{pascal_module_name}APIClient",
|
184
208
|
parent_class_name=f"{snake_entity_name}_api_client",
|
185
209
|
),
|
186
210
|
f"{snake_entity_name}_api_client = {snake_entity_name}_service.as_api_client(base_url=APP_{upper_snake_module_name}_BASE_URL)", # noqa
|
@@ -189,11 +213,12 @@ def update_api_client(ctx: AnyContext, api_client_file_path: str):
|
|
189
213
|
)
|
190
214
|
|
191
215
|
|
192
|
-
def
|
216
|
+
def update_direct_client_file(ctx: AnyContext, direct_client_file_path: str):
|
193
217
|
existing_direct_client_code = read_file(direct_client_file_path)
|
194
218
|
app_name = os.path.basename(APP_DIR)
|
195
219
|
snake_entity_name = to_snake_case(ctx.input.entity)
|
196
220
|
snake_module_name = to_snake_case(ctx.input.module)
|
221
|
+
pascal_module_name = to_pascal_case(ctx.input.module)
|
197
222
|
write_file(
|
198
223
|
file_path=direct_client_file_path,
|
199
224
|
content=[
|
@@ -201,7 +226,7 @@ def update_direct_client(ctx: AnyContext, direct_client_file_path: str):
|
|
201
226
|
prepend_code_to_module(
|
202
227
|
prepend_parent_class(
|
203
228
|
original_code=existing_direct_client_code,
|
204
|
-
class_name="DirectClient",
|
229
|
+
class_name=f"{pascal_module_name}DirectClient",
|
205
230
|
parent_class_name=f"{snake_entity_name}_direct_client",
|
206
231
|
),
|
207
232
|
f"{snake_entity_name}_direct_client = {snake_entity_name}_service.as_direct_client()", # noqa
|
@@ -210,7 +235,7 @@ def update_direct_client(ctx: AnyContext, direct_client_file_path: str):
|
|
210
235
|
)
|
211
236
|
|
212
237
|
|
213
|
-
def
|
238
|
+
def update_route_file(ctx: AnyContext, route_file_path: str):
|
214
239
|
existing_route_code = read_file(route_file_path)
|
215
240
|
entity_name = to_snake_case(ctx.input.entity)
|
216
241
|
app_name = os.path.basename(APP_DIR)
|
@@ -228,10 +253,11 @@ def update_route(ctx: AnyContext, route_file_path: str):
|
|
228
253
|
)
|
229
254
|
|
230
255
|
|
231
|
-
def
|
256
|
+
def update_gateway_subroute_file(ctx: AnyContext, module_gateway_subroute_path: str):
|
232
257
|
snake_module_name = to_snake_case(ctx.input.module)
|
233
258
|
snake_entity_name = to_snake_case(ctx.input.entity)
|
234
259
|
snake_plural_entity_name = to_snake_case(ctx.input.plural)
|
260
|
+
kebab_plural_entity_name = to_kebab_case(ctx.input.plural)
|
235
261
|
pascal_entity_name = to_pascal_case(ctx.input.entity)
|
236
262
|
existing_gateway_subroute_code = read_file(module_gateway_subroute_path)
|
237
263
|
write_file(
|
@@ -254,6 +280,7 @@ def update_gateway_subroute(ctx: AnyContext, module_gateway_subroute_path: str):
|
|
254
280
|
"my_module": snake_module_name,
|
255
281
|
"my_entity": snake_entity_name,
|
256
282
|
"my_entities": snake_plural_entity_name,
|
283
|
+
"my-entities": kebab_plural_entity_name,
|
257
284
|
"MyEntity": pascal_entity_name,
|
258
285
|
},
|
259
286
|
),
|
@@ -266,8 +293,8 @@ def _get_import_client_for_gateway_subroute_code(
|
|
266
293
|
existing_code: str, module_name: str
|
267
294
|
) -> str | None:
|
268
295
|
snake_module_name = to_snake_case(module_name)
|
269
|
-
client_import_path = f"my_app_name.module.{snake_module_name}.client.
|
270
|
-
new_code = f"from {client_import_path} import
|
296
|
+
client_import_path = f"my_app_name.module.{snake_module_name}.client.{snake_module_name}_client_factory" # noqa
|
297
|
+
new_code = f"from {client_import_path} import {snake_module_name}_client"
|
271
298
|
if new_code in existing_code:
|
272
299
|
return None
|
273
300
|
return new_code
|
@@ -282,11 +309,10 @@ def _get_import_schema_for_gateway_subroute_code(
|
|
282
309
|
new_code = "\n".join(
|
283
310
|
[
|
284
311
|
f"from {schema_import_path} import (",
|
312
|
+
f" Multiple{pascal_entity_name}Response,",
|
285
313
|
f" {pascal_entity_name}Create,",
|
286
|
-
f" {pascal_entity_name}CreateWithAudit,",
|
287
314
|
f" {pascal_entity_name}Response,",
|
288
315
|
f" {pascal_entity_name}Update,",
|
289
|
-
f" {pascal_entity_name}UpdateWithAudit,",
|
290
316
|
")",
|
291
317
|
]
|
292
318
|
)
|
@@ -0,0 +1,113 @@
|
|
1
|
+
from logging import Logger
|
2
|
+
|
3
|
+
from my_app_name.common.base_service import BaseService
|
4
|
+
from my_app_name.module.my_module.service.my_entity.repository.my_entity_repository import (
|
5
|
+
MyEntityRepository,
|
6
|
+
)
|
7
|
+
from my_app_name.schema.my_entity import (
|
8
|
+
MultipleMyEntityResponse,
|
9
|
+
MyEntityCreateWithAudit,
|
10
|
+
MyEntityResponse,
|
11
|
+
MyEntityUpdateWithAudit,
|
12
|
+
)
|
13
|
+
|
14
|
+
|
15
|
+
class MyEntityService(BaseService):
|
16
|
+
|
17
|
+
def __init__(self, logger: Logger, my_entity_repository: MyEntityRepository):
|
18
|
+
super().__init__(logger)
|
19
|
+
self.my_entity_repository = my_entity_repository
|
20
|
+
|
21
|
+
@BaseService.route(
|
22
|
+
"/api/v1/my-entities/{my_entity_id}",
|
23
|
+
methods=["get"],
|
24
|
+
response_model=MyEntityResponse,
|
25
|
+
)
|
26
|
+
async def get_my_entity_by_id(self, my_entity_id: str) -> MyEntityResponse:
|
27
|
+
return await self.my_entity_repository.get_by_id(my_entity_id)
|
28
|
+
|
29
|
+
@BaseService.route(
|
30
|
+
"/api/v1/my-entities",
|
31
|
+
methods=["get"],
|
32
|
+
response_model=MultipleMyEntityResponse,
|
33
|
+
)
|
34
|
+
async def get_my_entities(
|
35
|
+
self,
|
36
|
+
page: int = 1,
|
37
|
+
page_size: int = 10,
|
38
|
+
sort: str | None = None,
|
39
|
+
filter: str | None = None,
|
40
|
+
) -> MultipleMyEntityResponse:
|
41
|
+
my_entities = await self.my_entity_repository.get(page, page_size, filter, sort)
|
42
|
+
count = await self.my_entity_repository.count(filter)
|
43
|
+
return MultipleMyEntityResponse(data=my_entities, count=count)
|
44
|
+
|
45
|
+
@BaseService.route(
|
46
|
+
"/api/v1/my-entities/bulk",
|
47
|
+
methods=["post"],
|
48
|
+
response_model=list[MyEntityResponse],
|
49
|
+
)
|
50
|
+
async def create_my_entity_bulk(
|
51
|
+
self, data: list[MyEntityCreateWithAudit]
|
52
|
+
) -> list[MyEntityResponse]:
|
53
|
+
my_entities = await self.my_entity_repository.create_bulk(data)
|
54
|
+
return await self.my_entity_repository.get_by_ids(
|
55
|
+
[my_entity.id for my_entity in my_entities]
|
56
|
+
)
|
57
|
+
|
58
|
+
@BaseService.route(
|
59
|
+
"/api/v1/my-entities",
|
60
|
+
methods=["post"],
|
61
|
+
response_model=MyEntityResponse,
|
62
|
+
)
|
63
|
+
async def create_my_entity(self, data: MyEntityCreateWithAudit) -> MyEntityResponse:
|
64
|
+
my_entity = await self.my_entity_repository.create(data)
|
65
|
+
return await self.my_entity_repository.get_by_id(my_entity.id)
|
66
|
+
|
67
|
+
@BaseService.route(
|
68
|
+
"/api/v1/my-entities/bulk",
|
69
|
+
methods=["put"],
|
70
|
+
response_model=MyEntityResponse,
|
71
|
+
)
|
72
|
+
async def update_my_entity_bulk(
|
73
|
+
self, my_entity_ids: list[str], data: MyEntityUpdateWithAudit
|
74
|
+
) -> MyEntityResponse:
|
75
|
+
my_entities = await self.my_entity_repository.update_bulk(my_entity_ids, data)
|
76
|
+
return await self.my_entity_repository.get_by_ids(
|
77
|
+
[my_entity.id for my_entity in my_entities]
|
78
|
+
)
|
79
|
+
|
80
|
+
@BaseService.route(
|
81
|
+
"/api/v1/my-entities/{my_entity_id}",
|
82
|
+
methods=["put"],
|
83
|
+
response_model=MyEntityResponse,
|
84
|
+
)
|
85
|
+
async def update_my_entity(
|
86
|
+
self, my_entity_id: str, data: MyEntityUpdateWithAudit
|
87
|
+
) -> MyEntityResponse:
|
88
|
+
my_entity = await self.my_entity_repository.update(my_entity_id, data)
|
89
|
+
return await self.my_entity_repository.get_by_id(my_entity.id)
|
90
|
+
|
91
|
+
@BaseService.route(
|
92
|
+
"/api/v1/my-entities/{my_entity_id}",
|
93
|
+
methods=["delete"],
|
94
|
+
response_model=MyEntityResponse,
|
95
|
+
)
|
96
|
+
async def delete_my_entity_bulk(
|
97
|
+
self, my_entity_ids: list[str], deleted_by: str
|
98
|
+
) -> MyEntityResponse:
|
99
|
+
my_entities = await self.my_entity_repository.delete_bulk(my_entity_ids)
|
100
|
+
return await self.my_entity_repository.get_by_ids(
|
101
|
+
[my_entity.id for my_entity in my_entities]
|
102
|
+
)
|
103
|
+
|
104
|
+
@BaseService.route(
|
105
|
+
"/api/v1/my-entities/{my_entity_id}",
|
106
|
+
methods=["delete"],
|
107
|
+
response_model=MyEntityResponse,
|
108
|
+
)
|
109
|
+
async def delete_my_entity(
|
110
|
+
self, my_entity_id: str, deleted_by: str
|
111
|
+
) -> MyEntityResponse:
|
112
|
+
my_entity = await self.my_entity_repository.delete(my_entity_id)
|
113
|
+
return await self.my_entity_repository.get_by_id(my_entity.id)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
from my_app_name.common.logger_factory import logger
|
1
2
|
from my_app_name.module.my_module.service.my_entity.my_entity_service import (
|
2
3
|
MyEntityService,
|
3
4
|
)
|
@@ -5,4 +6,4 @@ from my_app_name.module.my_module.service.my_entity.repository.my_entity_reposit
|
|
5
6
|
my_entity_repository,
|
6
7
|
)
|
7
8
|
|
8
|
-
my_entity_service = MyEntityService(my_entity_repository=my_entity_repository)
|
9
|
+
my_entity_service = MyEntityService(logger, my_entity_repository=my_entity_repository)
|
@@ -1,5 +1,4 @@
|
|
1
1
|
from my_app_name.common.base_db_repository import BaseDBRepository
|
2
|
-
from my_app_name.common.error import NotFoundError
|
3
2
|
from my_app_name.module.my_module.service.my_entity.repository.my_entity_repository import (
|
4
3
|
MyEntityRepository,
|
5
4
|
)
|
@@ -10,15 +9,6 @@ from my_app_name.schema.my_entity import (
|
|
10
9
|
MyEntityUpdateWithAudit,
|
11
10
|
)
|
12
11
|
from passlib.context import CryptContext
|
13
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
14
|
-
from sqlmodel import Session, select
|
15
|
-
|
16
|
-
# Password hashing context
|
17
|
-
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
18
|
-
|
19
|
-
|
20
|
-
def hash_password(password: str) -> str:
|
21
|
-
return pwd_context.hash(password)
|
22
12
|
|
23
13
|
|
24
14
|
class MyEntityDBRepository(
|