mountaineer 0.5.2.dev1__tar.gz → 0.5.2.dev3__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.
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/Cargo.lock +1 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/Cargo.toml +1 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/Makefile +2 -2
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/PKG-INFO +8 -8
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/README.md +7 -7
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/__tests__/test_builder.py +2 -2
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/controllers/detail.py +2 -2
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/controllers/home.py +4 -4
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/database_migrations.md +1 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/quickstart.md +6 -6
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/structure.md +1 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/views.md +3 -3
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/actions/test_passthrough_dec.py +44 -29
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/actions/test_sideeffect_dec.py +26 -2
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/conftest.py +7 -4
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/test_actions.py +76 -76
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/test_db_serializer.py +2 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/actions/fields.py +70 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/actions/passthrough_dec.py +21 -7
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/actions/sideeffect_dec.py +25 -10
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/database/dependencies/core.py +4 -1
- mountaineer-0.5.2.dev3/mountaineer/database/session.py +87 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/actions.py +2 -2
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/cli.py +1 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/db_serializer.py +16 -13
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/migrator.py +7 -8
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/test_utilities.py +0 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/pyproject.toml +1 -1
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.git-blame-ignore-revs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.gitattributes +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/README_SCRIPTS.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/poetry.lock +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/pyproject.toml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/scripts/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/scripts/__tests__/test_update_version.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/scripts/check_dependencies.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/scripts/update_version.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/workflows/publish_docs.yml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/workflows/test.yml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.github/workflows/validate.yml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/.gitignore +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/Dockerfile +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/LICENSE +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/benchmarking/README.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/benchmarking/benchmarking/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/benchmarking/benchmarking/simple_render.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/benchmarking/poetry.lock +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/benchmarking/pyproject.toml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/README.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/__tests__/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/__tests__/common.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/__tests__/test_cli.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/__tests__/test_generation.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/builder.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/cli.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/environments/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/environments/base.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/environments/poetry.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/environments/venv.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/external.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/generation.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/io.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/.zed/settings.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/editor_configs/vim/.vimrc +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/editor_configs/vscode/.vscode/settings.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/editor_configs/zed/pyrightconfig.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/.env +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/.gitignore +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/README.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/app.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/cli.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/config.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/controllers/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/main.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/models/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/models/detail.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/views/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/views/app/detail/page.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/views/app/home/page.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/views/app/main.css +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/views/package.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/views/postcss.config.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/[project_name]/views/tailwind.config.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/docker-compose.yml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/create_mountaineer_app/templates/project/pyproject.toml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/poetry.lock +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/create_mountaineer_app/pyproject.toml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docker-compose.test.yml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/.zed/settings.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/README.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/CNAME +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/actions.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/api_exception.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/app-controller.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/build_plugins/base.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/build_plugins/javascript.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/build_plugins/postcss.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/cli.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/config.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/controller.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/core_dependencies.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/database/config.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/database/dependencies.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/database/migrations.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/logging.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/render.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/ssr.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/api/watch_server.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/client_actions.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/cma.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/database.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/deploy.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/error_handling.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/index.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/internal/core_library.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/links.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/media/final_todo_list.png +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/media/ide_typehints.png +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/media/network_debug.png +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/media/server_side_rendering.png +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/metadata.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/postcss.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/static_analysis.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/docs/stylesheets/extra.css +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/mkdocs.yml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/overrides/partials/footer.html +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/poetry.lock +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/docs_website/pyproject.toml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/media/header.png +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/actions/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/actions/test_fields.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/client_builder/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/client_builder/conf_models.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/client_builder/test_build_actions.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/client_builder/test_build_links.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/client_builder/test_build_schemas.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/client_builder/test_builder.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/client_builder/test_openapi.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/client_builder/test_typescript.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/common.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/conftest.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/database/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/database/dependencies/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/database/dependencies/conftest.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/database/dependencies/test_core.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/database/test_config.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/database/test_sqlmodel.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/dependencies/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/dependencies/test_base.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/README.md +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/app.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/cli.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/config.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/controllers/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/controllers/complex.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/controllers/detail.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/controllers/home.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/controllers/root_layout.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/controllers/stream.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/main.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/app/complex/page.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/app/detail/page.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/app/home/page.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/app/layout.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/app/main.css +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/app/stream/page.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/package-lock.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/package.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/postcss.config.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/ci_webapp/views/tailwind.config.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/poetry.lock +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/ci_webapp/pyproject.toml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/complex_controller_ssr_with_react.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/home_controller_source_map.js.map +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/fixtures/home_controller_ssr_with_react.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/js_compiler/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/js_compiler/test_javascript.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/js_compiler/test_postcss.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/js_compiler/test_source_maps.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/test_db_memory_serializer.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/test_db_stubs.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/test_generator.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/test_generics.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/test_handlers.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_annotation_helpers.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_app.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_cache.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_cli.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_compat.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_config.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_controller.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_controller_layout.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_cropper.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_exceptions.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_generics.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_io.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_logging.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_paths.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_ssr.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/test_watch.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/actions/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/annotation_helpers.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/app.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/cache.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/cli.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/client_builder/build_actions.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/client_builder/build_links.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/client_builder/build_schemas.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/client_builder/builder.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/client_builder/openapi.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/client_builder/typescript.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/compat.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/config.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/console.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/constants.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/controller.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/controller_layout.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/controllers/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/controllers/exception_controller.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/cropper.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/database/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/database/cli.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/database/config.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/database/dependencies/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/database/sqlmodel.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/database/validator.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/dependencies/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/dependencies/base.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/dependencies/core/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/dependencies/core/core.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/exceptions.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/generics.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/io.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/js_compiler/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/js_compiler/base.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/js_compiler/exceptions.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/js_compiler/javascript.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/js_compiler/postcss.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/js_compiler/source_maps.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/logging.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/client_io.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/db_memory_serializer.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/db_stubs.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/dependency/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/dependency/core/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/dependency/core/core.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/generator.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/generics.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/handlers.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/migrations/migration.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/paths.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/py.typed +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/render.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/ssr.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/static/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/static/api.ts +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/static/live_reload.ts +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/static/ssr_polyfills.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/views/__init__.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/views/core/exception/page.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/views/core/layout.tsx +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/views/core/main.css +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/views/package-lock.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/views/package.json +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/views/postcss.config.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/views/tailwind.config.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/watch.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/watch_server.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/webservice.py +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/poetry.lock +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/benches/fixtures/complex_sourcemap_mapping.txt +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/benches/fixtures/home_controller_ssr_with_react.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/benches/fixtures/ssr_polyfill_archive.js +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/benches/lexers_benchmark.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/benches/source_map_benchmark.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/benches/ssr_benchmark.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/errors.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/lexers.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/lib.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/logging.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/source_map.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/ssr.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src/timeout.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src_go/Cargo.toml +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src_go/build.rs +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src_go/go/js_build.go +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src_go/go.mod +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src_go/go.sum +0 -0
- {mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/src_go/src/lib.rs +0 -0
|
@@ -83,11 +83,11 @@ lint-validation-scripts:
|
|
|
83
83
|
|
|
84
84
|
# Tests
|
|
85
85
|
test-lib:
|
|
86
|
-
(cd $(LIB_DIR) && docker
|
|
86
|
+
(cd $(LIB_DIR) && docker compose -f docker-compose.test.yml up -d)
|
|
87
87
|
@$(call wait-for-postgres,30,5438)
|
|
88
88
|
@set -e; \
|
|
89
89
|
$(call test-common,$(LIB_DIR),$(LIB_NAME))
|
|
90
|
-
(cd $(LIB_DIR) && docker
|
|
90
|
+
(cd $(LIB_DIR) && docker compose -f docker-compose.test.yml down)
|
|
91
91
|
$(call test-rust-common,$(LIB_DIR),$(LIB_NAME))
|
|
92
92
|
test-lib-integrations:
|
|
93
93
|
$(call test-common-integrations,$(LIB_DIR),$(LIB_NAME))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: mountaineer
|
|
3
|
-
Version: 0.5.2.
|
|
3
|
+
Version: 0.5.2.dev3
|
|
4
4
|
Requires-Dist: pydantic
|
|
5
5
|
Requires-Dist: fastapi
|
|
6
6
|
Requires-Dist: inflection
|
|
@@ -80,10 +80,10 @@ Every service file is nested under the `my_webapp` root package. Views are defin
|
|
|
80
80
|
|
|
81
81
|
### Development
|
|
82
82
|
|
|
83
|
-
If you're starting a new application from scratch, you'll typically want to create your new database tables. Make sure you have postgres running. We bundle a docker
|
|
83
|
+
If you're starting a new application from scratch, you'll typically want to create your new database tables. Make sure you have postgres running. We bundle a docker compose file for convenience with `create-mountaineer-app`.
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
docker
|
|
86
|
+
docker compose up -d
|
|
87
87
|
poetry run createdb
|
|
88
88
|
```
|
|
89
89
|
|
|
@@ -141,10 +141,10 @@ Update the index file as well:
|
|
|
141
141
|
from .todo import TodoItem # noqa: F401
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
-
Make sure you have a Postgres database running. We bundle a docker
|
|
144
|
+
Make sure you have a Postgres database running. We bundle a docker compose file for convenience with `create-mountaineer-app`. Launch it in the background and create the new database tables from these code definitions:
|
|
145
145
|
|
|
146
146
|
```bash
|
|
147
|
-
docker
|
|
147
|
+
docker compose up -d
|
|
148
148
|
poetry run createdb
|
|
149
149
|
poetry run runserver
|
|
150
150
|
```
|
|
@@ -158,7 +158,7 @@ from mountaineer import sideeffect, ControllerBase, RenderBase
|
|
|
158
158
|
from mountaineer.database import DatabaseDependencies
|
|
159
159
|
|
|
160
160
|
from fastapi import Request, Depends
|
|
161
|
-
from
|
|
161
|
+
from mountaineer.database.session import AsyncSession
|
|
162
162
|
from sqlmodel import select
|
|
163
163
|
|
|
164
164
|
from my_webapp.models.todo import TodoItem
|
|
@@ -176,7 +176,7 @@ class HomeController(ControllerBase):
|
|
|
176
176
|
request: Request,
|
|
177
177
|
session: AsyncSession = Depends(DatabaseDependencies.get_db_session)
|
|
178
178
|
) -> HomeRender:
|
|
179
|
-
todos = await session.
|
|
179
|
+
todos = (await session.exec(select(TodoItem))).all()
|
|
180
180
|
|
|
181
181
|
return HomeRender(
|
|
182
182
|
client_ip=(
|
|
@@ -184,7 +184,7 @@ class HomeController(ControllerBase):
|
|
|
184
184
|
if request.client
|
|
185
185
|
else "unknown"
|
|
186
186
|
),
|
|
187
|
-
todos=todos
|
|
187
|
+
todos=todos
|
|
188
188
|
)
|
|
189
189
|
```
|
|
190
190
|
|
|
@@ -62,10 +62,10 @@ Every service file is nested under the `my_webapp` root package. Views are defin
|
|
|
62
62
|
|
|
63
63
|
### Development
|
|
64
64
|
|
|
65
|
-
If you're starting a new application from scratch, you'll typically want to create your new database tables. Make sure you have postgres running. We bundle a docker
|
|
65
|
+
If you're starting a new application from scratch, you'll typically want to create your new database tables. Make sure you have postgres running. We bundle a docker compose file for convenience with `create-mountaineer-app`.
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
-
docker
|
|
68
|
+
docker compose up -d
|
|
69
69
|
poetry run createdb
|
|
70
70
|
```
|
|
71
71
|
|
|
@@ -123,10 +123,10 @@ Update the index file as well:
|
|
|
123
123
|
from .todo import TodoItem # noqa: F401
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
Make sure you have a Postgres database running. We bundle a docker
|
|
126
|
+
Make sure you have a Postgres database running. We bundle a docker compose file for convenience with `create-mountaineer-app`. Launch it in the background and create the new database tables from these code definitions:
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
|
-
docker
|
|
129
|
+
docker compose up -d
|
|
130
130
|
poetry run createdb
|
|
131
131
|
poetry run runserver
|
|
132
132
|
```
|
|
@@ -140,7 +140,7 @@ from mountaineer import sideeffect, ControllerBase, RenderBase
|
|
|
140
140
|
from mountaineer.database import DatabaseDependencies
|
|
141
141
|
|
|
142
142
|
from fastapi import Request, Depends
|
|
143
|
-
from
|
|
143
|
+
from mountaineer.database.session import AsyncSession
|
|
144
144
|
from sqlmodel import select
|
|
145
145
|
|
|
146
146
|
from my_webapp.models.todo import TodoItem
|
|
@@ -158,7 +158,7 @@ class HomeController(ControllerBase):
|
|
|
158
158
|
request: Request,
|
|
159
159
|
session: AsyncSession = Depends(DatabaseDependencies.get_db_session)
|
|
160
160
|
) -> HomeRender:
|
|
161
|
-
todos = await session.
|
|
161
|
+
todos = (await session.exec(select(TodoItem))).all()
|
|
162
162
|
|
|
163
163
|
return HomeRender(
|
|
164
164
|
client_ip=(
|
|
@@ -166,7 +166,7 @@ class HomeController(ControllerBase):
|
|
|
166
166
|
if request.client
|
|
167
167
|
else "unknown"
|
|
168
168
|
),
|
|
169
|
-
todos=todos
|
|
169
|
+
todos=todos
|
|
170
170
|
)
|
|
171
171
|
```
|
|
172
172
|
|
|
@@ -129,7 +129,7 @@ def test_valid_permutations(
|
|
|
129
129
|
"COMPOSE_PROJECT_NAME": f"test_project-{uuid4()}",
|
|
130
130
|
}
|
|
131
131
|
subprocess.run(
|
|
132
|
-
["docker
|
|
132
|
+
["docker", "compose", "up", "-d"],
|
|
133
133
|
cwd=metadata.project_path,
|
|
134
134
|
check=True,
|
|
135
135
|
env=docker_compose_env,
|
|
@@ -202,7 +202,7 @@ def test_valid_permutations(
|
|
|
202
202
|
|
|
203
203
|
secho("Shutting down docker...")
|
|
204
204
|
subprocess.run(
|
|
205
|
-
["docker
|
|
205
|
+
["docker", "compose", "down"],
|
|
206
206
|
cwd=metadata.project_path,
|
|
207
207
|
check=True,
|
|
208
208
|
env=docker_compose_env,
|
|
@@ -5,7 +5,7 @@ from mountaineer import Metadata, RenderBase, ControllerBase, APIException, side
|
|
|
5
5
|
from mountaineer.database import DatabaseDependencies
|
|
6
6
|
|
|
7
7
|
from fastapi import Request, Depends
|
|
8
|
-
from
|
|
8
|
+
from mountaineer.database.session import AsyncSession
|
|
9
9
|
from fastapi.exceptions import HTTPException
|
|
10
10
|
from pydantic import BaseModel
|
|
11
11
|
|
|
@@ -60,4 +60,4 @@ class DetailController(ControllerBase):
|
|
|
60
60
|
|
|
61
61
|
detail_item.description = payload.description
|
|
62
62
|
await session.commit()
|
|
63
|
-
{% endif %}
|
|
63
|
+
{% endif %}
|
|
@@ -7,7 +7,7 @@ from mountaineer.database import DatabaseDependencies
|
|
|
7
7
|
from fastapi import Request, Depends
|
|
8
8
|
from pydantic import BaseModel
|
|
9
9
|
from sqlmodel import select
|
|
10
|
-
from
|
|
10
|
+
from mountaineer.database.session import AsyncSession
|
|
11
11
|
|
|
12
12
|
from {{project_name}} import models
|
|
13
13
|
|
|
@@ -24,9 +24,9 @@ class HomeController(ControllerBase):
|
|
|
24
24
|
self,
|
|
25
25
|
session: AsyncSession = Depends(DatabaseDependencies.get_db_session)
|
|
26
26
|
) -> HomeRender:
|
|
27
|
-
items = await session.
|
|
27
|
+
items = (await session.exec(select(models.DetailItem))).all()
|
|
28
28
|
return HomeRender(
|
|
29
|
-
items=items
|
|
29
|
+
items=items,
|
|
30
30
|
metadata=Metadata(title="Home"),
|
|
31
31
|
)
|
|
32
32
|
|
|
@@ -38,4 +38,4 @@ class HomeController(ControllerBase):
|
|
|
38
38
|
obj = models.DetailItem(description="Untitled Item")
|
|
39
39
|
session.add(obj)
|
|
40
40
|
await session.commit()
|
|
41
|
-
{% endif %}
|
|
41
|
+
{% endif %}
|
|
@@ -143,7 +143,7 @@ async def up(
|
|
|
143
143
|
self,
|
|
144
144
|
migrator: Migrator = Depends(MigrationDependencies.get_migrator),
|
|
145
145
|
):
|
|
146
|
-
result = await migrator.db_session.
|
|
146
|
+
result = await migrator.db_session.exec("SELECT * FROM article")
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
We recommend using the actor object whenever possible, as it provides a more consistent and safe way to run migrations. If you are using the raw database session object, be aware that we require migrations to be run in a single transaction. This ensures that if a migration fails, the database will be rolled back to its previous state. We therefore disable calling `db_session.commit()` explicitly from within user code.
|
|
@@ -21,10 +21,10 @@ Mountaineer projects all follow a similar structure. For more on this, see our d
|
|
|
21
21
|
|
|
22
22
|
### Development
|
|
23
23
|
|
|
24
|
-
If you're starting a new application from scratch, you'll typically want to create your new database tables. Make sure you have postgres running. We bundle a docker
|
|
24
|
+
If you're starting a new application from scratch, you'll typically want to create your new database tables. Make sure you have postgres running. We bundle a docker compose file for convenience with `create-mountaineer-app`.
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
docker
|
|
27
|
+
docker compose up -d
|
|
28
28
|
poetry run createdb
|
|
29
29
|
```
|
|
30
30
|
|
|
@@ -78,10 +78,10 @@ Update the index file as well:
|
|
|
78
78
|
from .todo import TodoItem # noqa: F401
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Make sure you have a Postgres database running. We bundle a docker
|
|
81
|
+
Make sure you have a Postgres database running. We bundle a docker compose file for convenience with `create-mountaineer-app`. Launch it in the background and create the new database tables from these code definitions:
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
docker
|
|
84
|
+
docker compose up -d
|
|
85
85
|
poetry run createdb
|
|
86
86
|
poetry run runserver
|
|
87
87
|
```
|
|
@@ -111,7 +111,7 @@ class HomeController(ControllerBase):
|
|
|
111
111
|
request: Request,
|
|
112
112
|
session: AsyncSession = Depends(DatabaseDependencies.get_db_session)
|
|
113
113
|
) -> HomeRender:
|
|
114
|
-
todos = await session.
|
|
114
|
+
todos = (await session.exec(select(TodoItem))).all()
|
|
115
115
|
|
|
116
116
|
return HomeRender(
|
|
117
117
|
client_ip=(
|
|
@@ -119,7 +119,7 @@ class HomeController(ControllerBase):
|
|
|
119
119
|
if request.client
|
|
120
120
|
else "unknown"
|
|
121
121
|
),
|
|
122
|
-
todos=todos
|
|
122
|
+
todos=todos
|
|
123
123
|
)
|
|
124
124
|
```
|
|
125
125
|
|
|
@@ -51,7 +51,7 @@ A controller backs a view in a 1:1 relationship. It provides the backend plumbin
|
|
|
51
51
|
from mountaineer import sideeffect, ControllerBase, RenderBase
|
|
52
52
|
from mountaineer.database import DatabaseDependencies
|
|
53
53
|
|
|
54
|
-
from
|
|
54
|
+
from mountaineer.database.session import AsyncSession
|
|
55
55
|
from sqlmodel import select
|
|
56
56
|
|
|
57
57
|
from myapp.models import TodoItem
|
|
@@ -67,10 +67,10 @@ class HomeController(ControllerBase):
|
|
|
67
67
|
self,
|
|
68
68
|
session: AsyncSession = Depends(DatabaseDependencies.get_db_session)
|
|
69
69
|
) -> HomeRender:
|
|
70
|
-
todos = await session.execute(select(TodoItem))
|
|
70
|
+
todos = (await session.execute(select(TodoItem))).all()
|
|
71
71
|
|
|
72
72
|
return HomeRender(
|
|
73
|
-
todos=todos
|
|
73
|
+
todos=todos
|
|
74
74
|
)
|
|
75
75
|
```
|
|
76
76
|
|
|
@@ -54,40 +54,39 @@ class ExamplePassthroughModel(BaseModel):
|
|
|
54
54
|
status: str
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
class ExampleController(ControllerBase):
|
|
58
|
+
url: str = "/test/{query_id}/"
|
|
59
|
+
|
|
60
|
+
def __init__(self):
|
|
61
|
+
super().__init__()
|
|
62
|
+
self.counter = 0
|
|
63
|
+
self.render_counts = 0
|
|
64
|
+
|
|
65
|
+
def render(
|
|
66
|
+
self,
|
|
67
|
+
query_id: int,
|
|
68
|
+
) -> ExampleRenderModel:
|
|
69
|
+
self.render_counts += 1
|
|
70
|
+
return ExampleRenderModel(
|
|
71
|
+
value_a="Hello",
|
|
72
|
+
value_b="World",
|
|
73
|
+
)
|
|
66
74
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
)
|
|
71
|
-
self.render_counts += 1
|
|
72
|
-
return ExampleRenderModel(
|
|
73
|
-
value_a="Hello",
|
|
74
|
-
value_b="World",
|
|
75
|
-
)
|
|
75
|
+
@passthrough
|
|
76
|
+
def call_passthrough(self, payload: dict) -> ExamplePassthroughModel:
|
|
77
|
+
self.counter += 1
|
|
78
|
+
return ExamplePassthroughModel(status="success")
|
|
76
79
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
@passthrough
|
|
81
|
+
async def call_passthrough_async(self, payload: dict) -> ExamplePassthroughModel:
|
|
82
|
+
self.counter += 1
|
|
83
|
+
return ExamplePassthroughModel(status="success")
|
|
81
84
|
|
|
82
|
-
@passthrough
|
|
83
|
-
async def call_passthrough_async(
|
|
84
|
-
self, payload: dict
|
|
85
|
-
) -> ExamplePassthroughModel:
|
|
86
|
-
self.counter += 1
|
|
87
|
-
return ExamplePassthroughModel(status="success")
|
|
88
85
|
|
|
86
|
+
@pytest.mark.asyncio
|
|
87
|
+
async def test_can_call_passthrough():
|
|
89
88
|
app = AppController(view_root=Path())
|
|
90
|
-
controller =
|
|
89
|
+
controller = ExampleController()
|
|
91
90
|
app.register(controller)
|
|
92
91
|
|
|
93
92
|
return_value_sync = await controller.call_passthrough(
|
|
@@ -114,6 +113,22 @@ async def test_can_call_passthrough():
|
|
|
114
113
|
assert controller.render_counts == 0
|
|
115
114
|
|
|
116
115
|
|
|
116
|
+
@pytest.mark.asyncio
|
|
117
|
+
async def test_can_call_passthrough_original():
|
|
118
|
+
"""
|
|
119
|
+
Ensure that we can access the raw underlying function that was
|
|
120
|
+
wrapped by the decorator.
|
|
121
|
+
|
|
122
|
+
"""
|
|
123
|
+
controller = ExampleController()
|
|
124
|
+
assert await ExampleController.call_passthrough.original(
|
|
125
|
+
controller, dict()
|
|
126
|
+
) == ExamplePassthroughModel(status="success")
|
|
127
|
+
assert await ExampleController.call_passthrough_async.original(
|
|
128
|
+
controller, dict()
|
|
129
|
+
) == ExamplePassthroughModel(status="success")
|
|
130
|
+
|
|
131
|
+
|
|
117
132
|
class ExampleModel(BaseModel):
|
|
118
133
|
value: str
|
|
119
134
|
|
|
@@ -90,12 +90,12 @@ async def call_sideeffect_common(controller: ControllerCommon):
|
|
|
90
90
|
|
|
91
91
|
# Even if the "request" is not required by our sideeffects, it's required
|
|
92
92
|
# by the function injected by the sideeffect decorator.
|
|
93
|
-
return_value_sync = await controller.call_sideeffect(
|
|
93
|
+
return_value_sync = await controller.call_sideeffect( # type: ignore
|
|
94
94
|
{},
|
|
95
95
|
request=Request({"type": "http"}), # type: ignore
|
|
96
96
|
)
|
|
97
97
|
|
|
98
|
-
return_value_async = await controller.call_sideeffect_async(
|
|
98
|
+
return_value_async = await controller.call_sideeffect_async( # type: ignore
|
|
99
99
|
{},
|
|
100
100
|
request=Request({"type": "http"}), # type: ignore
|
|
101
101
|
)
|
|
@@ -157,6 +157,30 @@ async def test_can_call_sideeffect_async_render():
|
|
|
157
157
|
await call_sideeffect_common(ExampleController())
|
|
158
158
|
|
|
159
159
|
|
|
160
|
+
@pytest.mark.asyncio
|
|
161
|
+
async def test_can_call_sideeffect_original():
|
|
162
|
+
"""
|
|
163
|
+
Ensure that we can access the raw underlying function that was
|
|
164
|
+
wrapped by the decorator.
|
|
165
|
+
|
|
166
|
+
"""
|
|
167
|
+
|
|
168
|
+
class ExampleController(ControllerCommon):
|
|
169
|
+
def render(
|
|
170
|
+
self,
|
|
171
|
+
query_id: int,
|
|
172
|
+
) -> ExampleRenderModel:
|
|
173
|
+
self.render_counts += 1
|
|
174
|
+
return ExampleRenderModel(
|
|
175
|
+
value_a="Hello",
|
|
176
|
+
value_b="World",
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
controller = ExampleController()
|
|
180
|
+
await ExampleController.call_sideeffect.original(controller, dict())
|
|
181
|
+
await ExampleController.call_sideeffect_async.original(controller, dict())
|
|
182
|
+
|
|
183
|
+
|
|
160
184
|
@pytest.mark.asyncio
|
|
161
185
|
@pytest.mark.parametrize(
|
|
162
186
|
"referer, expected_resolved",
|
{mountaineer-0.5.2.dev1 → mountaineer-0.5.2.dev3}/mountaineer/__tests__/migrations/conftest.py
RENAMED
|
@@ -6,12 +6,13 @@ import pytest
|
|
|
6
6
|
import pytest_asyncio
|
|
7
7
|
from fastapi import Depends
|
|
8
8
|
from sqlalchemy import exc as sa_exc
|
|
9
|
-
from sqlalchemy.ext.asyncio import AsyncEngine,
|
|
9
|
+
from sqlalchemy.ext.asyncio import AsyncEngine, async_sessionmaker
|
|
10
10
|
from sqlmodel import SQLModel, text
|
|
11
11
|
|
|
12
12
|
from mountaineer.config import ConfigBase, unregister_config
|
|
13
13
|
from mountaineer.database import DatabaseDependencies
|
|
14
14
|
from mountaineer.database.config import DatabaseConfig
|
|
15
|
+
from mountaineer.database.session import AsyncSession
|
|
15
16
|
from mountaineer.dependencies.base import get_function_dependencies
|
|
16
17
|
from mountaineer.test_utilities import bootstrap_database
|
|
17
18
|
|
|
@@ -44,7 +45,7 @@ async def clear_all_database_objects(db_session: AsyncSession):
|
|
|
44
45
|
|
|
45
46
|
"""
|
|
46
47
|
# Step 1: Drop all tables in the public schema
|
|
47
|
-
await db_session.
|
|
48
|
+
await db_session.exec(
|
|
48
49
|
text(
|
|
49
50
|
"""
|
|
50
51
|
DO $$ DECLARE
|
|
@@ -59,7 +60,7 @@ async def clear_all_database_objects(db_session: AsyncSession):
|
|
|
59
60
|
)
|
|
60
61
|
|
|
61
62
|
# Step 2: Drop all custom types in the public schema
|
|
62
|
-
await db_session.
|
|
63
|
+
await db_session.exec(
|
|
63
64
|
text(
|
|
64
65
|
"""
|
|
65
66
|
DO $$ DECLARE
|
|
@@ -130,6 +131,8 @@ async def db_engine(config: MigrationAppConfig):
|
|
|
130
131
|
|
|
131
132
|
@pytest_asyncio.fixture
|
|
132
133
|
async def db_session(db_engine: AsyncEngine):
|
|
133
|
-
session_maker = async_sessionmaker(
|
|
134
|
+
session_maker = async_sessionmaker(
|
|
135
|
+
db_engine, class_=AsyncSession, expire_on_commit=False
|
|
136
|
+
)
|
|
134
137
|
async with session_maker() as session:
|
|
135
138
|
yield session
|