mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-05-28 18:43:40 +00:00
Add a comprehensive entity reference system that helps users find entities across all 5 supported languages (EN, DE, NO, NL, SV). Core components: - Generator script (scripts/docs/generate-sensor-reference) that builds sensor-reference.md from translation files with --check mode for CI validation - EntityRef component for compact inline entity annotations with tooltip and version-aware linking to the reference table - EntitySearch component with live filtering, clickable results, keyboard navigation, "/" shortcut to focus, category filter chips, match highlighting, copy-entity-ID button per row, back-links to documentation pages, persistent row highlights, hash-based deep linking, and mobile-responsive layout - MDXComponents theme override for global component registration Documentation updates: - New sensor-reference.md page (115 entities x 5 languages) - EntityRef annotations across 10 documentation pages - Sidebar entry for quick navigation - CI integration (docusaurus.yml + scripts/check) - Ruff per-file-ignores for scripts/ (T201, INP001) Impact: Users can now find any entity by its localized display name regardless of their UI language. Inline EntityRef annotations link directly to the multi-language lookup table with version-aware URLs.
84 lines
2.1 KiB
TOML
84 lines
2.1 KiB
TOML
[build-system]
|
|
requires = ["setuptools==82.0.1"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "tibber_prices"
|
|
version = "0.0.0" # Version is managed in manifest.json only
|
|
requires-python = ">=3.14"
|
|
|
|
[tool.setuptools]
|
|
packages = ["custom_components.tibber_prices"]
|
|
|
|
[tool.pyright]
|
|
include = ["custom_components/tibber_prices"]
|
|
exclude = [
|
|
"**/node_modules",
|
|
"**/__pycache__",
|
|
"**/.git",
|
|
"**/.github",
|
|
"**/docs",
|
|
"**/venv",
|
|
"**/.venv",
|
|
]
|
|
venvPath = "."
|
|
venv = ".venv"
|
|
typeCheckingMode = "basic"
|
|
|
|
[tool.ruff]
|
|
# Based on https://github.com/home-assistant/core/blob/dev/pyproject.toml
|
|
target-version = "py314"
|
|
line-length = 120
|
|
|
|
[tool.ruff.lint]
|
|
select = ["ALL"]
|
|
ignore = [
|
|
# "ANN101", # Missing type annotation for `self` in method
|
|
"ANN401", # Dynamically typed expressions (typing.Any) are disallowed
|
|
"D203", # no-blank-line-before-class (incompatible with formatter)
|
|
"D212", # multi-line-summary-first-line (incompatible with formatter)
|
|
"COM812", # incompatible with formatter
|
|
"ISC001", # incompatible with formatter
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests/*" = [
|
|
"S101", # assert is fine in tests
|
|
"PLR2004", # Magic values are fine in tests
|
|
]
|
|
"scripts/*" = [
|
|
"T201", # print() is the correct output method for CLI scripts
|
|
"INP001", # scripts/ is not a Python package (no __init__.py)
|
|
]
|
|
|
|
[tool.ruff.lint.flake8-pytest-style]
|
|
fixture-parentheses = false
|
|
|
|
[tool.ruff.lint.pyupgrade]
|
|
keep-runtime-typing = true
|
|
|
|
[tool.ruff.lint.mccabe]
|
|
max-complexity = 25
|
|
|
|
[tool.ruff.lint.isort]
|
|
force-single-line = false
|
|
known-first-party = ["custom_components", "homeassistant"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
asyncio_default_fixture_loop_scope = "function"
|
|
addopts = "-ra -q --strict-markers"
|
|
markers = [
|
|
"unit: Unit tests (fast, no external dependencies)",
|
|
"integration: Integration tests (may use coordinator/time service)",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
test = [
|
|
"pytest>=8.0.0",
|
|
"pytest-asyncio>=0.23.0",
|
|
"pytest-homeassistant-custom-component>=0.13.0",
|
|
]
|