zrb 1.3.0__tar.gz → 1.4.0__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.3.0 → zrb-1.4.0}/PKG-INFO +26 -24
- {zrb-1.3.0 → zrb-1.4.0}/README.md +24 -22
- {zrb-1.3.0 → zrb-1.4.0}/pyproject.toml +2 -2
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/__init__.py +2 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/llm/llm_chat.py +36 -44
- zrb-1.4.0/src/zrb/builtin/llm/tool/file.py +76 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +39 -3
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/gateway/view/content/my-module/my-entity.html +14 -14
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +14 -14
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +16 -16
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +16 -16
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +8 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/config.py +0 -1
- zrb-1.4.0/src/zrb/llm_config.py +50 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/llm_task.py +51 -12
- zrb-1.3.0/src/zrb/builtin/llm/tool/file.py +0 -39
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/__main__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/attr/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/attr/type.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/base64.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/git.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/git_subtree.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/group.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/llm/previous-session.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/llm/tool/api.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/llm/tool/cli.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/llm/tool/rag.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/llm/tool/web.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/md5.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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 -0
- {zrb-1.3.0 → zrb-1.4.0}/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 +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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 -0
- {zrb-1.3.0 → zrb-1.4.0}/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 -0
- {zrb-1.3.0 → zrb-1.4.0}/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 +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_create_my_entity.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_delete_my_entity.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_read_my_entity.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_update_my_entity.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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 +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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 +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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 +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/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.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/create/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/create/project-template/README.md +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/project/create/project_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/python.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/random.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/common_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/ubuntu.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/shell/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/shell/autocomplete/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/builtin/todo.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/callback/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/callback/any_callback.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/callback/callback.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/cmd/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/cmd/cmd_result.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/cmd/cmd_val.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/content_transformer/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/content_transformer/any_content_transformer.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/content_transformer/content_transformer.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/context/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/context/any_context.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/context/any_shared_context.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/context/context.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/context/shared_context.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/dot_dict/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/dot_dict/dot_dict.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/env/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/env/any_env.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/env/env.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/env/env_file.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/env/env_map.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/group/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/group/any_group.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/group/group.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/any_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/base_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/bool_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/float_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/int_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/option_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/password_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/str_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/input/text_input.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/cli.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/common_util.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_app.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_config/config.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_config/config_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/docs_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/error_page/view.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/home_page/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/home_page/view.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/login_api_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/login_page/view.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/logout_api_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/logout_page/view.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/refresh_token_api_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/refresh-token.template.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/common.css +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/pico.min.css +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/static/static_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_schema/session.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_schema/token.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_schema/user.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_util/cookie.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_util/html.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_util/token.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/runner/web_util/user.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session/any_session.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session/session.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session_state_log/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session_state_log/session_state_log.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session_state_logger/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/any_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/base_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/base_trigger.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/cmd_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/http_check.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/make_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/rsync_task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/scaffolder.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/scheduler.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/task.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task/tcp_check.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task_status/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/task_status/task_status.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/attr.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/cli/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/cli/style.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/cli/subcommand.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/cmd/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/cmd/command.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/cmd/remote.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modification_mode.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modify_class.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modify_class_parent.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modify_class_property.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modify_dict.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modify_function.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modify_function_call.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modify_method.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/codemod/modify_module.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/cron.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/file.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/git.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/git_subtree.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/group.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/load.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/run.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/string/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/string/conversion.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/string/format.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/string/name.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/util/todo.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/xcom/__init__.py +0 -0
- {zrb-1.3.0 → zrb-1.4.0}/src/zrb/xcom/xcom.py +0 -0
{zrb-1.3.0 → zrb-1.4.0}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: zrb
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.4.0
|
4
4
|
Summary: Your Automation Powerhouse
|
5
5
|
Home-page: https://github.com/state-alchemists/zrb
|
6
6
|
License: AGPL-3.0-or-later
|
@@ -24,7 +24,7 @@ Requires-Dist: isort (>=5.13.2,<5.14.0)
|
|
24
24
|
Requires-Dist: libcst (>=1.5.0,<2.0.0)
|
25
25
|
Requires-Dist: pdfplumber (>=0.11.4,<0.12.0) ; extra == "rag"
|
26
26
|
Requires-Dist: psutil (>=6.1.1,<7.0.0)
|
27
|
-
Requires-Dist: pydantic-ai (>=0.0.
|
27
|
+
Requires-Dist: pydantic-ai (>=0.0.42,<0.0.43)
|
28
28
|
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
|
29
29
|
Requires-Dist: python-jose[cryptography] (>=3.4.0,<4.0.0)
|
30
30
|
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
@@ -44,47 +44,49 @@ Zrb allows you to write your automation tasks in Python. For example, you can de
|
|
44
44
|
|
45
45
|
```python
|
46
46
|
import os
|
47
|
-
from zrb import cli, LLMTask, CmdTask, StrInput
|
48
|
-
from zrb.builtin.llm.tool.file import
|
47
|
+
from zrb import cli, llm_config, LLMTask, CmdTask, StrInput, Group
|
48
|
+
from zrb.builtin.llm.tool.file import read_all_files, write_text_file
|
49
49
|
from pydantic_ai.models.openai import OpenAIModel
|
50
|
-
|
50
|
+
from pydantic_ai.providers.openai import OpenAIProvider
|
51
51
|
|
52
52
|
CURRENT_DIR = os.getcwd()
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
|
54
|
+
# Setup default LLM Config
|
55
|
+
llm_config.set_default_model(
|
56
|
+
OpenAIModel(
|
57
|
+
model_name="gpt-4o",
|
58
|
+
provider=OpenAIProvider(
|
59
|
+
base_url="https://openrouter.ai/api/v1",
|
60
|
+
api_key=os.getenv("OPENROUTER_API_KEY", "")
|
61
|
+
)
|
62
|
+
)
|
57
63
|
)
|
58
64
|
|
65
|
+
# Make UML group
|
66
|
+
uml_group = cli.add_group(Group(name="uml", description="UML related tasks"))
|
59
67
|
|
60
|
-
#
|
61
|
-
|
62
|
-
make_uml = cli.add_task(
|
68
|
+
# Generate UML script
|
69
|
+
make_uml_script = uml_group.add_task(
|
63
70
|
LLMTask(
|
64
|
-
name="make-
|
71
|
+
name="make-script",
|
65
72
|
description="Creating plantuml diagram based on source code in current directory",
|
66
73
|
input=StrInput(name="diagram", default="state diagram"),
|
67
|
-
model=OpenAIModel(
|
68
|
-
OPENROUTER_MODEL_NAME,
|
69
|
-
base_url=OPENROUTER_BASE_URL,
|
70
|
-
api_key=OPENROUTER_API_KEY,
|
71
|
-
),
|
72
74
|
message=(
|
73
75
|
f"Read source code in {CURRENT_DIR}, "
|
74
76
|
"make a {ctx.input.diagram} in plantuml format. "
|
75
77
|
f"Write the script into {CURRENT_DIR}/{{ctx.input.diagram}}.uml"
|
76
78
|
),
|
77
79
|
tools=[
|
78
|
-
|
80
|
+
read_all_files,
|
79
81
|
write_text_file,
|
80
82
|
],
|
81
83
|
)
|
82
84
|
)
|
83
85
|
|
84
86
|
# Defining a Cmd Task to transform Plantuml script into a png image.
|
85
|
-
|
87
|
+
make_uml_image = uml_group.add_task(
|
86
88
|
CmdTask(
|
87
|
-
name="make-
|
89
|
+
name="make-image",
|
88
90
|
description="Creating png based on source code in current directory",
|
89
91
|
input=StrInput(name="diagram", default="state diagram"),
|
90
92
|
cmd="plantuml -tpng '{ctx.input.diagram}.uml'",
|
@@ -93,19 +95,19 @@ make_png = cli.add_task(
|
|
93
95
|
)
|
94
96
|
|
95
97
|
# Making sure that make_png has make_uml as its dependency.
|
96
|
-
|
98
|
+
make_uml_script >> make_uml_image
|
97
99
|
```
|
98
100
|
|
99
101
|
Once defined, your automation tasks are immediately accessible from the CLI. You can then invoke the tasks by invoking.
|
100
102
|
|
101
103
|
```bash
|
102
|
-
zrb make-
|
104
|
+
zrb uml make-image --diagram "state diagram"
|
103
105
|
```
|
104
106
|
|
105
107
|
Or you can invoke the tasks without parameter.
|
106
108
|
|
107
109
|
```bash
|
108
|
-
zrb make-
|
110
|
+
zrb uml make-image
|
109
111
|
```
|
110
112
|
|
111
113
|
At this point, Zrb will politely ask you to provide the diagram type.
|
@@ -9,47 +9,49 @@ Zrb allows you to write your automation tasks in Python. For example, you can de
|
|
9
9
|
|
10
10
|
```python
|
11
11
|
import os
|
12
|
-
from zrb import cli, LLMTask, CmdTask, StrInput
|
13
|
-
from zrb.builtin.llm.tool.file import
|
12
|
+
from zrb import cli, llm_config, LLMTask, CmdTask, StrInput, Group
|
13
|
+
from zrb.builtin.llm.tool.file import read_all_files, write_text_file
|
14
14
|
from pydantic_ai.models.openai import OpenAIModel
|
15
|
-
|
15
|
+
from pydantic_ai.providers.openai import OpenAIProvider
|
16
16
|
|
17
17
|
CURRENT_DIR = os.getcwd()
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
|
19
|
+
# Setup default LLM Config
|
20
|
+
llm_config.set_default_model(
|
21
|
+
OpenAIModel(
|
22
|
+
model_name="gpt-4o",
|
23
|
+
provider=OpenAIProvider(
|
24
|
+
base_url="https://openrouter.ai/api/v1",
|
25
|
+
api_key=os.getenv("OPENROUTER_API_KEY", "")
|
26
|
+
)
|
27
|
+
)
|
22
28
|
)
|
23
29
|
|
30
|
+
# Make UML group
|
31
|
+
uml_group = cli.add_group(Group(name="uml", description="UML related tasks"))
|
24
32
|
|
25
|
-
#
|
26
|
-
|
27
|
-
make_uml = cli.add_task(
|
33
|
+
# Generate UML script
|
34
|
+
make_uml_script = uml_group.add_task(
|
28
35
|
LLMTask(
|
29
|
-
name="make-
|
36
|
+
name="make-script",
|
30
37
|
description="Creating plantuml diagram based on source code in current directory",
|
31
38
|
input=StrInput(name="diagram", default="state diagram"),
|
32
|
-
model=OpenAIModel(
|
33
|
-
OPENROUTER_MODEL_NAME,
|
34
|
-
base_url=OPENROUTER_BASE_URL,
|
35
|
-
api_key=OPENROUTER_API_KEY,
|
36
|
-
),
|
37
39
|
message=(
|
38
40
|
f"Read source code in {CURRENT_DIR}, "
|
39
41
|
"make a {ctx.input.diagram} in plantuml format. "
|
40
42
|
f"Write the script into {CURRENT_DIR}/{{ctx.input.diagram}}.uml"
|
41
43
|
),
|
42
44
|
tools=[
|
43
|
-
|
45
|
+
read_all_files,
|
44
46
|
write_text_file,
|
45
47
|
],
|
46
48
|
)
|
47
49
|
)
|
48
50
|
|
49
51
|
# Defining a Cmd Task to transform Plantuml script into a png image.
|
50
|
-
|
52
|
+
make_uml_image = uml_group.add_task(
|
51
53
|
CmdTask(
|
52
|
-
name="make-
|
54
|
+
name="make-image",
|
53
55
|
description="Creating png based on source code in current directory",
|
54
56
|
input=StrInput(name="diagram", default="state diagram"),
|
55
57
|
cmd="plantuml -tpng '{ctx.input.diagram}.uml'",
|
@@ -58,19 +60,19 @@ make_png = cli.add_task(
|
|
58
60
|
)
|
59
61
|
|
60
62
|
# Making sure that make_png has make_uml as its dependency.
|
61
|
-
|
63
|
+
make_uml_script >> make_uml_image
|
62
64
|
```
|
63
65
|
|
64
66
|
Once defined, your automation tasks are immediately accessible from the CLI. You can then invoke the tasks by invoking.
|
65
67
|
|
66
68
|
```bash
|
67
|
-
zrb make-
|
69
|
+
zrb uml make-image --diagram "state diagram"
|
68
70
|
```
|
69
71
|
|
70
72
|
Or you can invoke the tasks without parameter.
|
71
73
|
|
72
74
|
```bash
|
73
|
-
zrb make-
|
75
|
+
zrb uml make-image
|
74
76
|
```
|
75
77
|
|
76
78
|
At this point, Zrb will politely ask you to provide the diagram type.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "zrb"
|
3
|
-
version = "1.
|
3
|
+
version = "1.4.0"
|
4
4
|
description = "Your Automation Powerhouse"
|
5
5
|
authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
|
6
6
|
license = "AGPL-3.0-or-later"
|
@@ -50,7 +50,7 @@ beautifulsoup4 = "^4.12.3"
|
|
50
50
|
fastapi = {extras = ["standard"], version = "^0.115.6"}
|
51
51
|
python-jose = {extras = ["cryptography"], version = "^3.4.0"}
|
52
52
|
ulid-py = "^1.1.0"
|
53
|
-
pydantic-ai = "^0.0.
|
53
|
+
pydantic-ai = "^0.0.42"
|
54
54
|
fastembed = "^0.5.1"
|
55
55
|
psutil = "^6.1.1"
|
56
56
|
|
@@ -33,6 +33,7 @@ from zrb.input.option_input import OptionInput
|
|
33
33
|
from zrb.input.password_input import PasswordInput
|
34
34
|
from zrb.input.str_input import StrInput
|
35
35
|
from zrb.input.text_input import TextInput
|
36
|
+
from zrb.llm_config import llm_config
|
36
37
|
from zrb.runner.cli import cli
|
37
38
|
from zrb.runner.web_config.config_factory import web_config
|
38
39
|
from zrb.runner.web_schema.user import User
|
@@ -101,6 +102,7 @@ assert ContentTransformer
|
|
101
102
|
assert Scaffolder
|
102
103
|
assert Scheduler
|
103
104
|
assert cli
|
105
|
+
assert llm_config
|
104
106
|
assert Xcom
|
105
107
|
assert web_config
|
106
108
|
assert User
|
@@ -2,14 +2,12 @@ import json
|
|
2
2
|
import os
|
3
3
|
from typing import Any
|
4
4
|
|
5
|
-
from pydantic_ai.models import Model
|
6
|
-
|
7
5
|
from zrb.builtin.group import llm_group
|
8
6
|
from zrb.builtin.llm.tool.api import get_current_location, get_current_weather
|
9
7
|
from zrb.builtin.llm.tool.cli import run_shell_command
|
10
8
|
from zrb.builtin.llm.tool.file import (
|
11
|
-
|
12
|
-
|
9
|
+
list_files,
|
10
|
+
read_all_files,
|
13
11
|
read_text_file,
|
14
12
|
write_text_file,
|
15
13
|
)
|
@@ -24,18 +22,14 @@ from zrb.config import (
|
|
24
22
|
LLM_ALLOW_ACCESS_LOCAL_FILE,
|
25
23
|
LLM_ALLOW_ACCESS_SHELL,
|
26
24
|
LLM_HISTORY_DIR,
|
27
|
-
LLM_MODEL,
|
28
25
|
LLM_SYSTEM_PROMPT,
|
29
26
|
SERP_API_KEY,
|
30
27
|
)
|
31
|
-
from zrb.context.any_context import AnyContext
|
32
28
|
from zrb.context.any_shared_context import AnySharedContext
|
33
|
-
from zrb.input.any_input import AnyInput
|
34
29
|
from zrb.input.bool_input import BoolInput
|
35
30
|
from zrb.input.str_input import StrInput
|
36
31
|
from zrb.input.text_input import TextInput
|
37
32
|
from zrb.task.llm_task import LLMTask
|
38
|
-
from zrb.util.attr import get_attr
|
39
33
|
from zrb.util.file import read_file, write_file
|
40
34
|
from zrb.util.string.conversion import to_pascal_case
|
41
35
|
|
@@ -90,46 +84,37 @@ def _write_chat_conversation(
|
|
90
84
|
write_file(last_session_file_path, current_session_name)
|
91
85
|
|
92
86
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
def set_default_model(self, model: Model | str):
|
98
|
-
self._default_model = model
|
99
|
-
|
100
|
-
@property
|
101
|
-
def inputs(self) -> list[AnyInput]:
|
102
|
-
task_inputs = super().inputs
|
103
|
-
model_input_default = LLM_MODEL if self._default_model is None else "default"
|
104
|
-
return [
|
87
|
+
llm_chat: LLMTask = llm_group.add_task(
|
88
|
+
LLMTask(
|
89
|
+
name="llm-chat",
|
90
|
+
input=[
|
105
91
|
StrInput(
|
106
92
|
"model",
|
107
93
|
description="LLM Model",
|
108
94
|
prompt="LLM Model",
|
109
|
-
default=
|
95
|
+
default="",
|
110
96
|
allow_positional_parsing=False,
|
111
97
|
always_prompt=False,
|
98
|
+
allow_empty=True,
|
99
|
+
),
|
100
|
+
StrInput(
|
101
|
+
"base-url",
|
102
|
+
description="LLM API Base URL",
|
103
|
+
prompt="LLM API Base URL",
|
104
|
+
default="",
|
105
|
+
allow_positional_parsing=False,
|
106
|
+
always_prompt=False,
|
107
|
+
allow_empty=True,
|
108
|
+
),
|
109
|
+
StrInput(
|
110
|
+
"api-key",
|
111
|
+
description="LLM API Key",
|
112
|
+
prompt="LLM API Key",
|
113
|
+
default="",
|
114
|
+
allow_positional_parsing=False,
|
115
|
+
always_prompt=False,
|
116
|
+
allow_empty=True,
|
112
117
|
),
|
113
|
-
*task_inputs,
|
114
|
-
]
|
115
|
-
|
116
|
-
def _get_model(self, ctx: AnyContext) -> str | Model | None:
|
117
|
-
if ctx.input.model == "default":
|
118
|
-
if self._default_model is not None:
|
119
|
-
return self._default_model
|
120
|
-
return super()._get_model(ctx)
|
121
|
-
model = get_attr(
|
122
|
-
ctx, ctx.input.model, "ollama_chat/llama3.1", auto_render=self._render_model
|
123
|
-
)
|
124
|
-
if isinstance(model, (Model, str)) or model is None:
|
125
|
-
return model
|
126
|
-
raise ValueError("Invalid model")
|
127
|
-
|
128
|
-
|
129
|
-
llm_chat: LLMTask = llm_group.add_task(
|
130
|
-
_LLMChat(
|
131
|
-
name="llm-chat",
|
132
|
-
input=[
|
133
118
|
TextInput(
|
134
119
|
"system-prompt",
|
135
120
|
description="System prompt",
|
@@ -156,10 +141,17 @@ llm_chat: LLMTask = llm_group.add_task(
|
|
156
141
|
always_prompt=False,
|
157
142
|
),
|
158
143
|
],
|
144
|
+
model=lambda ctx: None if ctx.input.model == "" else ctx.input.model,
|
145
|
+
model_base_url=lambda ctx: (
|
146
|
+
None if ctx.input.base_url == "" else ctx.input.base_url
|
147
|
+
),
|
148
|
+
model_api_key=lambda ctx: (
|
149
|
+
None if ctx.input.api_key == "" else ctx.input.api_key
|
150
|
+
),
|
159
151
|
conversation_history_reader=_read_chat_conversation,
|
160
152
|
conversation_history_writer=_write_chat_conversation,
|
161
153
|
description="Chat with LLM",
|
162
|
-
system_prompt="{ctx.input
|
154
|
+
system_prompt="{ctx.input.system_prompt}",
|
163
155
|
message="{ctx.input.message}",
|
164
156
|
retries=0,
|
165
157
|
),
|
@@ -168,8 +160,8 @@ llm_chat: LLMTask = llm_group.add_task(
|
|
168
160
|
|
169
161
|
|
170
162
|
if LLM_ALLOW_ACCESS_LOCAL_FILE:
|
171
|
-
llm_chat.add_tool(
|
172
|
-
llm_chat.add_tool(
|
163
|
+
llm_chat.add_tool(read_all_files)
|
164
|
+
llm_chat.add_tool(list_files)
|
173
165
|
llm_chat.add_tool(read_text_file)
|
174
166
|
llm_chat.add_tool(write_text_file)
|
175
167
|
|
@@ -0,0 +1,76 @@
|
|
1
|
+
import fnmatch
|
2
|
+
import os
|
3
|
+
|
4
|
+
from zrb.util.file import read_file, write_file
|
5
|
+
|
6
|
+
|
7
|
+
def list_files(
|
8
|
+
directory: str = ".",
|
9
|
+
included_patterns: list[str] = [
|
10
|
+
"*.py",
|
11
|
+
"*.go",
|
12
|
+
"*.js",
|
13
|
+
"*.ts",
|
14
|
+
"*.java",
|
15
|
+
"*.c",
|
16
|
+
"*.cpp",
|
17
|
+
],
|
18
|
+
excluded_patterns: list[str] = [
|
19
|
+
"venv",
|
20
|
+
".venv",
|
21
|
+
"node_modules",
|
22
|
+
".git",
|
23
|
+
"__pycache__",
|
24
|
+
],
|
25
|
+
) -> list[str]:
|
26
|
+
"""List all files in a directory that match any of the included glob patterns
|
27
|
+
and do not reside in any directory matching an excluded pattern.
|
28
|
+
Patterns are evaluated using glob-style matching.
|
29
|
+
"""
|
30
|
+
all_files: list[str] = []
|
31
|
+
for root, dirs, files in os.walk(directory):
|
32
|
+
for filename in files:
|
33
|
+
if any(fnmatch.fnmatch(filename, pat) for pat in included_patterns):
|
34
|
+
full_path = os.path.join(root, filename)
|
35
|
+
# Check each component of the full path for excluded patterns.
|
36
|
+
if any(
|
37
|
+
any(fnmatch.fnmatch(part, pat) for pat in excluded_patterns)
|
38
|
+
for part in os.path.normpath(full_path).split(os.sep)
|
39
|
+
):
|
40
|
+
continue
|
41
|
+
all_files.append(full_path)
|
42
|
+
return all_files
|
43
|
+
|
44
|
+
|
45
|
+
def read_text_file(file: str) -> str:
|
46
|
+
"""Read a text file"""
|
47
|
+
return read_file(os.path.abspath(file))
|
48
|
+
|
49
|
+
|
50
|
+
def write_text_file(file: str, content: str):
|
51
|
+
"""Write a text file"""
|
52
|
+
return write_file(os.path.abspath(file), content)
|
53
|
+
|
54
|
+
|
55
|
+
def read_all_files(
|
56
|
+
directory: str = ".",
|
57
|
+
included_patterns: list[str] = [
|
58
|
+
"*.py",
|
59
|
+
"*.go",
|
60
|
+
"*.js",
|
61
|
+
"*.ts",
|
62
|
+
"*.java",
|
63
|
+
"*.c",
|
64
|
+
"*.cpp",
|
65
|
+
],
|
66
|
+
excluded_patterns: list[str] = [],
|
67
|
+
) -> list[str]:
|
68
|
+
"""Read all files in a directory that match any of the included glob patterns
|
69
|
+
and do not match any of the excluded glob patterns.
|
70
|
+
Patterns are evaluated using glob-style matching.
|
71
|
+
"""
|
72
|
+
files = list_files(directory, included_patterns, excluded_patterns)
|
73
|
+
for index, file in enumerate(files):
|
74
|
+
content = read_text_file(file)
|
75
|
+
files[index] = f"# {file}\n```\n{content}\n```"
|
76
|
+
return files
|
@@ -8,7 +8,7 @@ from my_app_name._zrb.column.add_column_util import (
|
|
8
8
|
update_my_app_name_test_update,
|
9
9
|
update_my_app_name_ui,
|
10
10
|
)
|
11
|
-
from my_app_name._zrb.config import APP_DIR
|
11
|
+
from my_app_name._zrb.config import ACTIVATE_VENV_SCRIPT, APP_DIR
|
12
12
|
from my_app_name._zrb.format_task import format_my_app_name_code
|
13
13
|
from my_app_name._zrb.group import app_create_group
|
14
14
|
from my_app_name._zrb.input import (
|
@@ -17,9 +17,16 @@ from my_app_name._zrb.input import (
|
|
17
17
|
new_column_input,
|
18
18
|
new_column_type_input,
|
19
19
|
)
|
20
|
-
from my_app_name._zrb.util import
|
20
|
+
from my_app_name._zrb.util import (
|
21
|
+
cd_module_script,
|
22
|
+
get_existing_module_names,
|
23
|
+
get_existing_schema_names,
|
24
|
+
set_create_migration_db_url_env,
|
25
|
+
set_env,
|
26
|
+
)
|
27
|
+
from my_app_name._zrb.venv_task import prepare_venv
|
21
28
|
|
22
|
-
from zrb import AnyContext, Task, make_task
|
29
|
+
from zrb import AnyContext, Cmd, CmdTask, EnvFile, Task, make_task
|
23
30
|
|
24
31
|
|
25
32
|
@make_task(
|
@@ -118,6 +125,34 @@ update_my_app_name_test_delete_task = Task(
|
|
118
125
|
)
|
119
126
|
|
120
127
|
|
128
|
+
create_my_app_name_entity_migration = CmdTask(
|
129
|
+
name="create-my-app-name-entity-migration",
|
130
|
+
input=[
|
131
|
+
existing_module_input,
|
132
|
+
existing_entity_input,
|
133
|
+
new_column_input,
|
134
|
+
],
|
135
|
+
env=EnvFile(path=os.path.join(APP_DIR, "template.env")),
|
136
|
+
cwd=APP_DIR,
|
137
|
+
cmd=[
|
138
|
+
ACTIVATE_VENV_SCRIPT,
|
139
|
+
Cmd(lambda ctx: set_create_migration_db_url_env(ctx.input.module)),
|
140
|
+
Cmd(lambda ctx: set_env("MY_APP_NAME_MODULES", ctx.input.module)),
|
141
|
+
Cmd(lambda ctx: cd_module_script(ctx.input.module)),
|
142
|
+
"alembic upgrade head",
|
143
|
+
Cmd(
|
144
|
+
'alembic revision --autogenerate -m "create_{to_snake_case(ctx.input.entity)}_{to_snake_case(ctx.input.column)}_column"', # noqa
|
145
|
+
),
|
146
|
+
],
|
147
|
+
render_cmd=False,
|
148
|
+
retries=0,
|
149
|
+
upstream=[
|
150
|
+
prepare_venv,
|
151
|
+
update_my_app_name_schema_task,
|
152
|
+
],
|
153
|
+
)
|
154
|
+
|
155
|
+
|
121
156
|
add_my_app_name_column = app_create_group.add_task(
|
122
157
|
Task(
|
123
158
|
name="add-my-app-name-column",
|
@@ -129,6 +164,7 @@ add_my_app_name_column = app_create_group.add_task(
|
|
129
164
|
update_my_app_name_test_read_task,
|
130
165
|
update_my_app_name_test_update_task,
|
131
166
|
update_my_app_name_test_delete_task,
|
167
|
+
create_my_app_name_entity_migration,
|
132
168
|
],
|
133
169
|
successor=format_my_app_name_code,
|
134
170
|
retries=0,
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
<main id="crud-app"
|
4
4
|
class="container"
|
5
|
-
data-page-size='{{ page_size | tojson }}'
|
6
|
-
data-page='{{ page | tojson }}'
|
7
|
-
data-sort='{{ sort | tojson }}'
|
8
|
-
data-filter='{{ filter | tojson }}'
|
9
|
-
data-allow-create='{{ allow_create | tojson }}'
|
10
|
-
data-allow-update='{{ allow_update | tojson }}'
|
11
|
-
data-allow-delete='{{ allow_delete | tojson }}'>
|
5
|
+
data-page-size='{{ page_size | tojson | safe }}'
|
6
|
+
data-page='{{ page | tojson | safe }}'
|
7
|
+
data-sort='{{ sort | tojson | safe }}'
|
8
|
+
data-filter='{{ filter | tojson | safe }}'
|
9
|
+
data-allow-create='{{ allow_create | tojson | safe }}'
|
10
|
+
data-allow-update='{{ allow_update | tojson | safe }}'
|
11
|
+
data-allow-delete='{{ allow_delete | tojson | safe }}'>
|
12
12
|
<article>
|
13
13
|
<h1>My Entity</h1>
|
14
14
|
|
@@ -311,13 +311,13 @@
|
|
311
311
|
document.addEventListener("DOMContentLoaded", () => {
|
312
312
|
const app = document.getElementById("crud-app");
|
313
313
|
new CrudApp("/api/v1/my-entities", {
|
314
|
-
pageSize:
|
315
|
-
currentPage:
|
316
|
-
sort:
|
317
|
-
filter:
|
318
|
-
allowCreate:
|
319
|
-
allowUpdate:
|
320
|
-
allowDelete:
|
314
|
+
pageSize: UTIL.tryParseJSON(app.dataset.pageSize),
|
315
|
+
currentPage: UTIL.tryParseJSON(app.dataset.page),
|
316
|
+
sort: UTIL.tryParseJSON(app.dataset.sort),
|
317
|
+
filter: UTIL.tryParseJSON(app.dataset.filter),
|
318
|
+
allowCreate: UTIL.tryParseJSON(app.dataset.allowCreate),
|
319
|
+
allowUpdate: UTIL.tryParseJSON(app.dataset.allowUpdate),
|
320
|
+
allowDelete: UTIL.tryParseJSON(app.dataset.allowDelete),
|
321
321
|
updatedRowId: null,
|
322
322
|
deletedRowId: null,
|
323
323
|
});
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
<main id="crud-app"
|
4
4
|
class="container"
|
5
|
-
data-page-size='{{ page_size | tojson }}'
|
6
|
-
data-page='{{ page | tojson }}'
|
7
|
-
data-sort='{{ sort | tojson }}'
|
8
|
-
data-filter='{{ filter | tojson }}'
|
9
|
-
data-allow-create='{{ allow_create | tojson }}'
|
10
|
-
data-allow-update='{{ allow_update | tojson }}'
|
11
|
-
data-allow-delete='{{ allow_delete | tojson }}'>
|
5
|
+
data-page-size='{{ page_size | tojson | safe }}'
|
6
|
+
data-page='{{ page | tojson | safe }}'
|
7
|
+
data-sort='{{ sort | tojson | safe }}'
|
8
|
+
data-filter='{{ filter | tojson | safe }}'
|
9
|
+
data-allow-create='{{ allow_create | tojson | safe }}'
|
10
|
+
data-allow-update='{{ allow_update | tojson | safe }}'
|
11
|
+
data-allow-delete='{{ allow_delete | tojson | safe }}'>
|
12
12
|
<article>
|
13
13
|
<h1>Permission</h1>
|
14
14
|
|
@@ -326,13 +326,13 @@
|
|
326
326
|
document.addEventListener("DOMContentLoaded", () => {
|
327
327
|
const app = document.getElementById("crud-app");
|
328
328
|
new CrudApp("/api/v1/permissions", {
|
329
|
-
pageSize:
|
330
|
-
currentPage:
|
331
|
-
sort:
|
332
|
-
filter:
|
333
|
-
allowCreate:
|
334
|
-
allowUpdate:
|
335
|
-
allowDelete:
|
329
|
+
pageSize: UTIL.tryParseJSON(app.dataset.pageSize),
|
330
|
+
currentPage: UTIL.tryParseJSON(app.dataset.page),
|
331
|
+
sort: UTIL.tryParseJSON(app.dataset.sort),
|
332
|
+
filter: UTIL.tryParseJSON(app.dataset.filter),
|
333
|
+
allowCreate: UTIL.tryParseJSON(app.dataset.allowCreate),
|
334
|
+
allowUpdate: UTIL.tryParseJSON(app.dataset.allowUpdate),
|
335
|
+
allowDelete: UTIL.tryParseJSON(app.dataset.allowDelete),
|
336
336
|
updatedRowId: null,
|
337
337
|
deletedRowId: null,
|
338
338
|
});
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
<main id="crud-app"
|
4
4
|
class="container"
|
5
|
-
data-page-size='{{ page_size | tojson }}'
|
6
|
-
data-page='{{ page | tojson }}'
|
7
|
-
data-sort='{{ sort | tojson }}'
|
8
|
-
data-filter='{{ filter | tojson }}'
|
9
|
-
data-allow-create='{{ allow_create | tojson }}'
|
10
|
-
data-allow-update='{{ allow_update | tojson }}'
|
11
|
-
data-allow-delete='{{ allow_delete | tojson }}'>
|
5
|
+
data-page-size='{{ page_size | tojson | safe }}'
|
6
|
+
data-page='{{ page | tojson | safe }}'
|
7
|
+
data-sort='{{ sort | tojson | safe }}'
|
8
|
+
data-filter='{{ filter | tojson | safe }}'
|
9
|
+
data-allow-create='{{ allow_create | tojson | safe }}'
|
10
|
+
data-allow-update='{{ allow_update | tojson | safe }}'
|
11
|
+
data-allow-delete='{{ allow_delete | tojson | safe }}'>
|
12
12
|
<article>
|
13
13
|
<h1>Role</h1>
|
14
14
|
|
@@ -251,7 +251,7 @@
|
|
251
251
|
try {
|
252
252
|
const createForm = document.getElementById("crud-create-form");
|
253
253
|
const formData = UTIL.getFormData(createForm);
|
254
|
-
formData.permission_names =
|
254
|
+
formData.permission_names = UTIL.tryParseJSON(formData.permission_names);
|
255
255
|
await UTIL.fetchAPI(this.apiUrl, { method: "POST", body: JSON.stringify(formData) });
|
256
256
|
await this.fetchRows();
|
257
257
|
this.hideCreateForm();
|
@@ -283,7 +283,7 @@
|
|
283
283
|
try {
|
284
284
|
const updateForm = document.getElementById("crud-update-form");
|
285
285
|
const formData = UTIL.getFormData(updateForm);
|
286
|
-
formData.permission_names =
|
286
|
+
formData.permission_names = UTIL.tryParseJSON(formData.permission_names);
|
287
287
|
await UTIL.fetchAPI(`${this.apiUrl}/${this.state.updatedRowId}`, {
|
288
288
|
method: "PUT",
|
289
289
|
body: JSON.stringify(formData)
|
@@ -348,13 +348,13 @@
|
|
348
348
|
document.addEventListener("DOMContentLoaded", () => {
|
349
349
|
const app = document.getElementById("crud-app");
|
350
350
|
new CrudApp("/api/v1/roles", {
|
351
|
-
pageSize:
|
352
|
-
currentPage:
|
353
|
-
sort:
|
354
|
-
filter:
|
355
|
-
allowCreate:
|
356
|
-
allowUpdate:
|
357
|
-
allowDelete:
|
351
|
+
pageSize: UTIL.tryParseJSON(app.dataset.pageSize),
|
352
|
+
currentPage: UTIL.tryParseJSON(app.dataset.page),
|
353
|
+
sort: UTIL.tryParseJSON(app.dataset.sort),
|
354
|
+
filter: UTIL.tryParseJSON(app.dataset.filter),
|
355
|
+
allowCreate: UTIL.tryParseJSON(app.dataset.allowCreate),
|
356
|
+
allowUpdate: UTIL.tryParseJSON(app.dataset.allowUpdate),
|
357
|
+
allowDelete: UTIL.tryParseJSON(app.dataset.allowDelete),
|
358
358
|
updatedRowId: null,
|
359
359
|
deletedRowId: null,
|
360
360
|
});
|