diff --git a/api/.devcontainer/Dockerfile b/api/.devcontainer/Dockerfile index b36479d..9740438 100644 --- a/api/.devcontainer/Dockerfile +++ b/api/.devcontainer/Dockerfile @@ -1,12 +1,19 @@ -# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.224.2/containers/python-3/.devcontainer/base.Dockerfile +# See here for image contents: https://github.com/devcontainers/images/blob/main/src/python/.devcontainer/Dockerfile -# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.10, 3.9, 3.8, 3.7, 3.6, 3-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye, 3.7-bullseye, 3.6-bullseye, 3-buster, 3.10-buster, 3.9-buster, 3.8-buster, 3.7-buster, 3.6-buster -ARG VARIANT="3.10-bullseye" +# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): +# - 3, 3.11, 3.10, 3.9, 3.8, 3.7, 3.6 +# - 3-bullseye, 3.11-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye, 3.7-bullseye, 3.6-bullseye +# - 3-buster, 3.11-buster, 3.10-buster, 3.9-buster, 3.8-buster, 3.7-buster, 3.6-buster +ARG VARIANT="3.11-bullseye" FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT} -# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 +# [Choice] Node.js version: none, lts/*, 18, 16, 14, 12, 10 ARG NODE_VERSION="none" -RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi +RUN set -ex; \ + \ + if [ "${NODE_VERSION}" != "none" ]; then \ + su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; \ + fi # [Optional] If your pip requirements rarely change, uncomment this section to add them to the image. # COPY requirements.txt /tmp/pip-tmp/ @@ -20,7 +27,7 @@ RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/ RUN set -ex; \ \ export DEBIAN_FRONTEND=noninteractive; \ - apt-get update; apt-get -y install --no-install-recommends \ + apt-get update; apt-get install --yes --no-install-recommends \ git-flow \ libmagic1 \ ; rm -rf /var/lib/apt/lists/*; @@ -28,5 +35,4 @@ RUN set -ex; \ # [Optional] Uncomment this line to install global node packages. # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 -USER vscode -RUN curl -sSL https://install.python-poetry.org | python3 - +RUN su vscode -c "curl -sSL https://install.python-poetry.org | python3 -" 2>&1 diff --git a/api/.devcontainer/devcontainer.json b/api/.devcontainer/devcontainer.json index 8152cc6..88c2149 100644 --- a/api/.devcontainer/devcontainer.json +++ b/api/.devcontainer/devcontainer.json @@ -1,46 +1,51 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: -// https://github.com/microsoft/vscode-dev-containers/tree/v0.224.2/containers/python-3 +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/python { - "name": "Python 3", + "name": "OVD API", "build": { "dockerfile": "Dockerfile", "context": "..", "args": { - // Update 'VARIANT' to pick a Python version: 3, 3.10, 3.9, 3.8, 3.7, 3.6 + // Update 'VARIANT' to pick a Python version. // Append -bullseye or -buster to pin to an OS version. // Use -bullseye variants on local on arm64/Apple Silicon. - "VARIANT": "3.9", + // "VARIANT": "3.11-bullseye", // Options "NODE_VERSION": "none" } }, - // Set *default* container specific settings.json values on container create. - "settings": { - "terminal.integrated.defaultProfile.linux": "zsh", - "python.defaultInterpreterPath": "/usr/local/bin/python", - "python.linting.enabled": true, - "python.linting.pylintEnabled": true, - "python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8", - "python.formatting.blackPath": "/usr/local/py-utils/bin/black", - "python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf", - "python.linting.banditPath": "/usr/local/py-utils/bin/bandit", - "python.linting.flake8Path": "/usr/local/py-utils/bin/flake8", - "python.linting.mypyPath": "/usr/local/py-utils/bin/mypy", - "python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle", - "python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle", - "python.linting.pylintPath": "/usr/local/py-utils/bin/pylint" + "containerEnv": { + "TZ": "Europe/Berlin" }, - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "ms-python.python", - "ms-python.vscode-pylance", - "be5invis.toml" - ], + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": { + "python.defaultInterpreterPath": "/usr/local/bin/python", + "terminal.integrated.defaultProfile.linux": "zsh" + }, + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "be5invis.toml", + "mhutchie.git-graph", + "ms-python.python", + "ms-python.black-formatter", + // "ms-python.flake8", + "ms-python.isort", + "ms-python.vscode-pylance" + ] + } + }, + // Use 'postStartCommand' to run commands after the container is started. + "postStartCommand": "poetry install" + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], // Use 'postCreateCommand' to run commands after the container is created. // "postCreateCommand": "pip3 install --user -r requirements.txt", - "postStartCommand": "poetry install", - // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. - "remoteUser": "vscode" + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" } \ No newline at end of file diff --git a/api/.vscode/launch.json b/api/.vscode/launch.json index ff096b8..257a470 100644 --- a/api/.vscode/launch.json +++ b/api/.vscode/launch.json @@ -8,7 +8,13 @@ "name": "Main Module", "type": "python", "request": "launch", - "module": "ovdashboard_api", + "module": "ovdashboard_api.main", + "pythonArgs": [ + "-Xfrozen_modules=off", + ], + "env": { + "PYDEVD_DISABLE_FILE_VALIDATION": "1", + }, "justMyCode": true } ] diff --git a/api/.vscode/settings.json b/api/.vscode/settings.json index 2de9c9c..623e4e9 100644 --- a/api/.vscode/settings.json +++ b/api/.vscode/settings.json @@ -1,17 +1,22 @@ { - "python.testing.pytestArgs": [ - "tests" - ], - "python.testing.unittestEnabled": false, - "python.testing.pytestEnabled": true, "python.linting.enabled": true, "python.linting.pylintEnabled": false, "python.linting.flake8Enabled": true, "python.languageServer": "Pylance", "editor.formatOnSave": true, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, "editor.codeActionsOnSave": { "source.organizeImports": true }, "git.closeDiffOnOperation": true, - "python.analysis.typeCheckingMode": "basic" + "python.analysis.typeCheckingMode": "basic", + "python.analysis.diagnosticMode": "workspace", + "python.testing.pytestArgs": [ + "test" + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true, + "python.formatting.provider": "none", } \ No newline at end of file