pyproject.toml 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. [build-system]
  2. requires = ["uv_build >=0.11.6,<0.12"]
  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.18.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. catalog = "util.catalog:main"
  24. entities = "util.entities:main"
  25. [dependency-groups]
  26. dev = [
  27. "fuzzywuzzy",
  28. "infrared-protocols~=1.1",
  29. "levenshtein",
  30. "PyTurboJPEG~=1.8.0",
  31. "pytest-homeassistant-custom-component==0.13.322",
  32. "pytest",
  33. "pytest-asyncio",
  34. "pytest-cov",
  35. "pytest-mock",
  36. "ruff",
  37. "yamllint"
  38. ]
  39. [tool.pytest.ini_options]
  40. asyncio_mode = "auto"
  41. [tool.ruff]
  42. target-version = "py314"
  43. [tool.ruff.lint]
  44. select = [
  45. "F", # pyflakes
  46. "E", # pycodestyle
  47. "W", # pycodestyle warnings
  48. "S", # flake8-bandit
  49. "B", # flake8-bugbear
  50. "A", # flake8-builtins
  51. ]
  52. ignore = ["E501"] # long lines (checked by ruff format)
  53. [tool.ruff.lint.per-file-ignores]
  54. "tests/**.py" = ["B011", "B028", "S101"]
  55. [tool.uv.build-backend]
  56. module-name = ["custom_components.tuya_local", "util"]
  57. module-root = ""