From 303b9104aed688901218d6694218470ee6867cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn-Michael=20Miehe?= <40151420+ldericher@users.noreply.github.com> Date: Sat, 30 Dec 2023 17:18:34 +0000 Subject: [PATCH] apply new devcontainer scaffold https://code.yavook.de/Yavook.de/vscode-python3 --- .devcontainer/Dockerfile | 37 ------------------------- .devcontainer/devcontainer.json | 48 ++++++++++++--------------------- .flake8 | 4 +++ .vscode/settings.json | 21 ++++++++------- 4 files changed, 33 insertions(+), 77 deletions(-) delete mode 100644 .devcontainer/Dockerfile create mode 100644 .flake8 diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 98f42c5..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -# 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.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/*, 18, 16, 14, 12, 10 -ARG NODE_VERSION="none" -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/ -# RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \ -# && rm -rf /tmp/pip-tmp - -# [Optional] Uncomment this section to install additional OS packages. -# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ -# && apt-get -y install --no-install-recommends - -RUN set -ex; \ - \ - export DEBIAN_FRONTEND=noninteractive; \ - apt-get update; apt-get install --yes --no-install-recommends \ - git-flow \ - ; rm -rf /var/lib/apt/lists/*; - -# [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 - -RUN su vscode -c "curl -sSL https://install.python-poetry.org | python3 -" 2>&1 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e910557..2f65210 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,20 +2,18 @@ // README at: https://github.com/devcontainers/templates/tree/main/src/python { "name": "Python 3", - "build": { - "dockerfile": "Dockerfile", - "context": "..", - "args": { - // 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.11-bullseye", - - // Options - "NODE_VERSION": "none" + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/vscode/devcontainers/python:1-3.12-bookworm", + // Features to add to the dev container. More info: https://containers.dev/features. + "features": { + "ghcr.io/devcontainers-contrib/features/poetry:2": {}, + "ghcr.io/devcontainers-contrib/features/apt-get-packages:1": { + "packages": "git-flow" } }, - + "containerEnv": { + "TZ": "Europe/Berlin" + }, // Configure tool-specific properties. "customizations": { // Configure properties specific to VS Code. @@ -23,41 +21,29 @@ // Set *default* container specific settings.json values on container create. "settings": { "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" + "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", - "be5invis.toml" + "ms-python.vscode-pylance" ] } }, - + "postCreateCommand": "sudo /usr/local/py-utils/bin/poetry self add poetry-plugin-up", // 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", - // 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/.flake8 b/.flake8 new file mode 100644 index 0000000..666e9d4 --- /dev/null +++ b/.flake8 @@ -0,0 +1,4 @@ +[flake8] +max-line-length = 80 +select = C,E,F,I,W,B,B950 +extend-ignore = E203, E501 diff --git a/.vscode/settings.json b/.vscode/settings.json index f0ced99..3a2612b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,20 @@ { - "editor.codeActionsOnSave": { - "source.organizeImports": true - }, + "python.languageServer": "Pylance", "editor.formatOnSave": true, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit" + }, "git.closeDiffOnOperation": true, "python.analysis.typeCheckingMode": "basic", - "python.languageServer": "Pylance", - "python.linting.enabled": true, - "python.linting.pylintEnabled": false, - "python.linting.flake8Enabled": true, - "python.testing.unittestEnabled": false, - "python.testing.pytestEnabled": true, + "python.analysis.diagnosticMode": "workspace", "python.testing.pytestArgs": [ "--import-mode=importlib" ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true, + "black-formatter.importStrategy": "fromEnvironment", + "flake8.importStrategy": "fromEnvironment", } \ No newline at end of file