From 3b07e94730765ae95f44b1723cec845184fd60e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn-Michael=20Miehe?= Date: Thu, 26 Oct 2023 23:31:03 +0200 Subject: [PATCH] updated for python 3.12 --- .devcontainer/Dockerfile | 23 +++++++++++++-------- .devcontainer/devcontainer.json | 36 +++++++++++---------------------- .flake8 | 4 ++++ .gitignore | 10 +-------- .vscode/settings.json | 17 +++++++++------- 5 files changed, 42 insertions(+), 48 deletions(-) create mode 100644 .flake8 diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 98f42c5..23af0d5 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,11 +1,20 @@ # 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] Python version (use -bookworm or -bullseye variants on local arm64/Apple Silicon): +# - 3, 3.12, 3.11, 3.10, 3.9, 3.8 +# - 3-bookworm, 3.12-bookworm, 3.11-bookworm, 3.10-bookworm, 3.9-bookworm, 3.8-bookworm +# - 3-bullseye, 3.12-bullseye, 3.11-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye +# - 3-buster, 3.12-buster, 3.11-buster, 3.10-buster, 3.9-buster, 3.8-buster +ARG VARIANT="3.12" +FROM mcr.microsoft.com/vscode/devcontainers/python:1-${VARIANT} + +# Add "Poetry": https://python-poetry.org +ARG POETRY_HOME="/usr/local" +ENV POETRY_HOME="${POETRY_HOME}" +RUN set -ex; \ + \ + curl -sSL https://install.python-poetry.org | python3 -; \ + poetry self add poetry-plugin-up; # [Choice] Node.js version: none, lts/*, 18, 16, 14, 12, 10 ARG NODE_VERSION="none" @@ -33,5 +42,3 @@ 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 - -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..feb8d70 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -7,15 +7,16 @@ "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", - + // Append -bookworm, -bullseye or -buster to pin to an OS version. + // Use -bookworm or -bullseye variants on arm64/Apple Silicon. + "VARIANT": "3.12", // Options "NODE_VERSION": "none" } }, - + "containerEnv": { + "TZ": "Europe/Berlin" + }, // Configure tool-specific properties. "customizations": { // Configure properties specific to VS Code. @@ -23,41 +24,28 @@ // 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" ] } }, - // 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/.gitignore b/.gitignore index 68bc17f..de2d5e0 100644 --- a/.gitignore +++ b/.gitignore @@ -101,15 +101,7 @@ ipython_config.py # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control #poetry.lock -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +# PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff diff --git a/.vscode/settings.json b/.vscode/settings.json index f0ced99..1602552 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,20 @@ { + "python.languageServer": "Pylance", + "editor.formatOnSave": true, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, "editor.codeActionsOnSave": { "source.organizeImports": true }, - "editor.formatOnSave": true, "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