[tool.poetry] name = "home-automation" version = "0.1.0" description = "Home automation monorepo" authors = ["Your Name "] readme = "README.md" packages = [ { include = "apps" }, { include = "packages" } ] [tool.poetry.dependencies] python = "^3.11" pydantic = "^2.12.3" fastapi = "^0.120.3" uvicorn = {extras = ["standard"], version = "^0.38.0"} asyncio-mqtt = "^0.16.2" pyyaml = "^6.0.3" aiomqtt = "^2.4.0" jinja2 = "^3.1.6" apscheduler = "^3.11.0" redis = "^7.0.1" paho-mqtt = "^2.1.0" httpx = "^0.28.1" beautifulsoup4 = "^4.14.2" [tool.poetry.group.dev.dependencies] ruff = "^0.6.0" black = "^24.0.0" mypy = "^1.11.0" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "N", # pep8-naming "UP", # pyupgrade "B", # flake8-bugbear "C4", # flake8-comprehensions "SIM", # flake8-simplify ] ignore = [] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] [tool.black] line-length = 100 target-version = ["py311"] include = '\.pyi?$' [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true disallow_incomplete_defs = true check_untyped_defs = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_no_return = true strict_equality = true