{ "name": "jpawlowski/hass.tibber_prices", "image": "mcr.microsoft.com/devcontainers/python:3.14", "postCreateCommand": "bash .devcontainer/setup-git.sh && scripts/setup/setup", "postStartCommand": "scripts/motd", "containerEnv": { "PYTHONASYNCIODEBUG": "1", "TIBBER_PRICES_DEV": "1" }, "forwardPorts": [8123, 3000, 3001], "portsAttributes": { "8123": { "label": "Home Assistant", "onAutoForward": "notify" }, "3000": { "label": "Docusaurus User Docs", "onAutoForward": "notify" }, "3001": { "label": "Docusaurus Developer Docs", "onAutoForward": "notify" } }, "customizations": { "vscode": { "extensions": [ "charliermarsh.ruff", "EditorConfig.EditorConfig", "esbenp.prettier-vscode", "github.copilot", "github.vscode-pull-request-github", "ms-python.python", "ms-python.vscode-pylance", "ms-vscode-remote.remote-containers", "redhat.vscode-yaml", "ryanluker.vscode-coverage-gutters" ], "settings": { "editor.tabSize": 4, "editor.formatOnSave": true, "editor.formatOnType": false, "extensions.ignoreRecommendations": false, "files.eol": "\n", "files.trimTrailingWhitespace": true, "python.analysis.typeCheckingMode": "basic", "python.analysis.autoImportCompletions": true, "python.analysis.diagnosticMode": "workspace", "python.analysis.diagnosticSeverityOverrides": { "reportUnusedImport": "none", "reportUnusedVariable": "none", "reportUnusedCoroutine": "none", "reportMissingTypeStubs": "none" }, "python.analysis.include": ["custom_components/tibber_prices"], "python.analysis.exclude": [ "**/.venv/**", "**/venv/**", "**/__pycache__/**", "**/.git/**", "**/.github/**", "**/docs/**", "**/node_modules/**" ], "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python", "python.analysis.extraPaths": [ "${workspaceFolder}/.venv/lib/python3.14/site-packages" ], "python.terminal.activateEnvironment": true, "python.terminal.activateEnvInCurrentTerminal": true, "python.testing.pytestArgs": ["--no-cov"], "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "editor.tabSize": 2 }, "[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "editor.tabSize": 2 }, "[python]": { "editor.defaultFormatter": "charliermarsh.ruff", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll.ruff": "explicit", "source.organizeImports.ruff": "explicit" } }, "[markdown]": { "editor.wordWrap": "on" }, "yaml.customTags": [ "!secret scalar", "!include scalar", "!include_dir_list scalar", "!include_dir_merge_list scalar", "!include_dir_named scalar", "!include_dir_merge_named scalar", "!input scalar" ], "markdown.validate.enabled": false, "markdown.validate.fileLinks.enabled": "ignore", "markdown.validate.fragmentLinks.enabled": "ignore", "json.schemas": [ { "fileMatch": ["homeassistant/components/*/manifest.json"], "url": "${containerWorkspaceFolder}/schemas/json/manifest_schema.json" }, { "fileMatch": ["homeassistant/components/*/translations/*.json"], "url": "${containerWorkspaceFolder}/schemas/json/translation_schema.json" } ], "github.copilot.chat.commitMessageGeneration.instructions": [ { "file": ".github/instructions/commit-messages.instructions.md" } ], "git.useConfigOnly": false } } }, "mounts": [ "source=${localEnv:HOME}${localEnv:USERPROFILE}/.gitconfig,target=/home/vscode/.gitconfig.host,type=bind,consistency=cached" ], "remoteUser": "vscode", "features": { "ghcr.io/devcontainers/features/github-cli:1": {}, "ghcr.io/flexwie/devcontainer-features/op:1": { "version": "latest" }, "ghcr.io/devcontainers/features/node:1": { "version": "24" }, "ghcr.io/devcontainers/features/rust:1": { "version": "latest", "profile": "minimal" }, "ghcr.io/devcontainer-community/devcontainer-features/yq:1": { "version": "latest" }, "ghcr.io/devcontainers-extra/features/apt-packages:1": { "packages": [ "bat", "eza", "fd-find", "ffmpeg", "fzf", "git-delta", "httpie", "hyperfine", "ipython3", "jo", "jq", "libpcap-dev", "libturbojpeg0", "miller", "moreutils", "ripgrep", "shellcheck", "shfmt", "sqlite3", "tree", "yamllint" ] } } }