瀏覽代碼

ci(project): restructure into proper project

util scripts have always required setting PYTHONPATH to run.
Avoid that by making this into a proper project with two
modules.
Jason Rumney 5 月之前
父節點
當前提交
a251675e37
共有 8 個文件被更改,包括 27 次插入 和 9 次删除
  1. 1 1
      .github/workflows/yamltests.yml
  2. 21 3
      pyproject.toml
  3. 0 0
      util/__init__.py
  4. 1 1
      util/best_match.py
  5. 1 1
      util/config_match.py
  6. 1 1
      util/duplicates.py
  7. 1 1
      util/match_against.py
  8. 1 1
      util/untranslated_select.py

+ 1 - 1
.github/workflows/yamltests.yml

@@ -39,4 +39,4 @@ jobs:
       - name: Device configs check with pytest
         run: |
           uv run pytest tests/test_device_config.py
-          uv run python util/untranslated_entities.py
+          uv run untranslated_entities

+ 21 - 3
pyproject.toml

@@ -1,7 +1,11 @@
+[build-system]
+requires = ["uv_build >=0.11.6,<0.12"]
+build-backend = "uv_build"
+
 [project]
-name = "Tuya-Local"
+name = "tuya-local"
 description = "A Home Assistant integration for local control of Tuya devices."
-version = "2026.4.3"
+version = "0.0.0"
 requires-python = ">3.14.2"
 dependencies = [
   "tinytuya~=1.18.0",
@@ -11,6 +15,16 @@ readme = "README.md"
 license = "MIT"
 license-file = "LICENSE.md"
 
+[project.scripts]
+duplicates = "util.duplicates:main"
+best_match = "util.best_match:main"
+all_matches = "util.config_match:main"
+match_against = "util.match_against:main"
+translation_candidates = "util.translation_candidates:main"
+untranslated_entities = "util.untranslated_entities:main"
+catalog = "util.catalog:main"
+entities = "util.entities:main"
+
 [dependency-groups]
 dev = [
   "fuzzywuzzy",
@@ -43,4 +57,8 @@ select = [
 ]
 ignore = [
   "E501",  # Duplicate of format rule, hits on tests
-]
+]
+
+[tool.uv.build-backend]
+module-name = ["custom_components.tuya_local", "util"]
+module-root = ""

+ 0 - 0
custom_components/__init__.py → util/__init__.py


+ 1 - 1
util/best_match.py

@@ -3,7 +3,7 @@
 import json
 import sys
 
-from common_funcs import FakeDevice
+from .common_funcs import FakeDevice
 
 from custom_components.tuya_local.helpers.device_config import possible_matches
 

+ 1 - 1
util/config_match.py

@@ -3,7 +3,7 @@
 import json
 import sys
 
-from common_funcs import FakeDevice
+from .common_funcs import FakeDevice
 
 from custom_components.tuya_local.helpers.device_config import possible_matches
 

+ 1 - 1
util/duplicates.py

@@ -2,7 +2,7 @@
 
 import sys
 
-from common_funcs import load_config, make_sample_dps
+from .common_funcs import load_config, make_sample_dps
 
 from custom_components.tuya_local.helpers.device_config import possible_matches
 

+ 1 - 1
util/match_against.py

@@ -3,7 +3,7 @@
 import json
 import sys
 
-from common_funcs import FakeDevice, load_config, make_sample_dps
+from .common_funcs import FakeDevice, load_config, make_sample_dps
 
 from custom_components.tuya_local.helpers.device_config import _typematch
 

+ 1 - 1
util/untranslated_select.py

@@ -3,7 +3,7 @@
 import json
 import sys
 
-from common_funcs import FakeDevice
+from .common_funcs import FakeDevice
 
 from custom_components.tuya_local.helpers.device_config import (
     TuyaDeviceConfig,