pyproject.toml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. [build-system]
  2. requires = ["uv_build >=0.11.25,<0.14"]
  3. build-backend = "uv_build"
  4. [project]
  5. name = "tuya-local"
  6. description = "A Home Assistant integration for local control of Tuya devices."
  7. version = "0.0.0"
  8. requires-python = ">=3.14.2"
  9. dependencies = [
  10. "tinytuya~=1.20.0",
  11. "tuya-device-sharing-sdk~=0.2.4"
  12. ]
  13. readme = "README.md"
  14. license = "MIT"
  15. license-file = "LICENSE.md"
  16. [project.scripts]
  17. duplicates = "util.duplicates:main"
  18. best_match = "util.best_match:main"
  19. all_matches = "util.config_match:main"
  20. match_against = "util.match_against:main"
  21. translation_candidates = "util.translation_candidates:main"
  22. untranslated_entities = "util.untranslated_entities:main"
  23. untranslated_select = "util.untranslated_select:main"
  24. catalog = "util.catalog:main"
  25. entities = "util.entities:main"
  26. [dependency-groups]
  27. dev = [
  28. "fuzzywuzzy",
  29. "infrared-protocols>=5.6",
  30. "levenshtein",
  31. "PyTurboJPEG~=1.8.0",
  32. "pytest-homeassistant-custom-component==0.13.372",
  33. "pytest",
  34. "pytest-asyncio",
  35. "pytest-cov",
  36. "pytest-mock",
  37. "ruff",
  38. "yamllint"
  39. ]
  40. [tool.pytest.ini_options]
  41. asyncio_mode = "auto"
  42. [tool.ruff]
  43. target-version = "py314"
  44. [tool.ruff.lint]
  45. select = [
  46. "F", # pyflakes
  47. "E", # pycodestyle
  48. "W", # pycodestyle warnings
  49. "S", # flake8-bandit
  50. "B", # flake8-bugbear
  51. "A", # flake8-builtins
  52. ]
  53. ignore = ["E501"] # long lines (checked by ruff format)
  54. [tool.ruff.lint.per-file-ignores]
  55. "tests/**.py" = ["B011", "B028", "S101"]
  56. [tool.uv.build-backend]
  57. module-name = ["custom_components.tuya_local", "util"]
  58. module-root = ""