{
  "name": "jpawlowski/hass.tibber_prices",
  "image": "mcr.microsoft.com/devcontainers/base:debian",
  "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",
        "MermaidChart.vscode-mermaid-chart"
      ],
      "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": [
        "autoconf",
        "automake",
        "bat",
        "eza",
        "fd-find",
        "ffmpeg",
        "fzf",
        "git-delta",
        "httpie",
        "hyperfine",
        "ipython3",
        "jo",
        "jq",
        "libpcap-dev",
        "libssl-dev",
        "libtool",
        "libturbojpeg0",
        "miller",
        "moreutils",
        "pipx",
        "ripgrep",
        "shellcheck",
        "shfmt",
        "sqlite3",
        "tree",
        "yamllint"
      ]
    }
  }
}
