govee-toolkit 0.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ # OS
2
+ .DS_Store
3
+
4
+ # Node
5
+ node_modules/
6
+ dist/
7
+ *.tsbuildinfo
8
+
9
+ # Python
10
+ __pycache__/
11
+ *.py[cod]
12
+ .venv/
13
+ build/
14
+ *.egg-info/
15
+ .pytest_cache/
16
+
17
+ # Electron
18
+ out/
19
+ release/
20
+
21
+ # Cache runtime (discovery)
22
+ .cache/
23
+ *.local
24
+
25
+ # Vendored at publish time only: the catalog lives in devices/ at the root.
26
+ /packages/rust/devices/
27
+
28
+ # Generated build outputs (the device catalog artifact).
29
+ /dist/
@@ -0,0 +1,23 @@
1
+ # Changelog
2
+
3
+ Changes to `govee-toolkit` (Python), the binding over the Rust core in
4
+ [`../rust`](../rust). The policy is
5
+ [`../../docs/versioning.md`](../../docs/versioning.md).
6
+
7
+ ### Added
8
+
9
+ - Package scaffolding: `pyproject.toml` (hatchling, `requires-python >= 3.10`,
10
+ no dependencies) declaring the name `govee-toolkit`, and the `govee_toolkit`
11
+ module.
12
+ - Package metadata: `authors`, `keywords` and `[project.urls]`.
13
+
14
+ ### Changed
15
+
16
+ - The package README links to `docs/` and `devices/` by absolute URL: it is the
17
+ description shown on PyPI, where a link out of the package directory is dead.
18
+
19
+ ### Fixed
20
+
21
+ - `license = "MIT"` as an SPDX expression instead of a path to the repository's
22
+ `LICENSE`. The build backend refuses a license file above the package
23
+ directory, so no distribution could be built at all.
@@ -0,0 +1,30 @@
1
+ Metadata-Version: 2.5
2
+ Name: govee-toolkit
3
+ Version: 0.0.0
4
+ Summary: Control Govee devices from your own network: undocumented LAN features, with BLE and Cloud modes when you need them.
5
+ Project-URL: Homepage, https://github.com/damient/govee-toolkit
6
+ Project-URL: Repository, https://github.com/damient/govee-toolkit
7
+ Project-URL: Issues, https://github.com/damient/govee-toolkit/issues
8
+ Project-URL: Changelog, https://github.com/damient/govee-toolkit/blob/main/packages/python/CHANGELOG.md
9
+ Author: damient
10
+ License-Expression: MIT
11
+ Keywords: govee,iot,led,sdk,smart-home
12
+ Requires-Python: >=3.10
13
+ Provides-Extra: dev
14
+ Requires-Dist: pytest; extra == 'dev'
15
+ Description-Content-Type: text/markdown
16
+
17
+ # govee-toolkit (Python)
18
+
19
+ Python SDK. `lan` mode by default; `ble` and `cloud` modes are opt-in, enabled
20
+ per device by the user — see [`docs/modes.md`][modes].
21
+
22
+ Reads the shared device database in [`devices/`][devices] — no protocol logic
23
+ is duplicated here.
24
+
25
+ <!-- TODO: install + usage once implemented -->
26
+
27
+ <!-- Absolute: this file is the package description on PyPI, where a relative
28
+ link out of the package directory is dead. -->
29
+ [modes]: https://github.com/damient/govee-toolkit/blob/main/docs/modes.md
30
+ [devices]: https://github.com/damient/govee-toolkit/tree/main/devices
@@ -0,0 +1,14 @@
1
+ # govee-toolkit (Python)
2
+
3
+ Python SDK. `lan` mode by default; `ble` and `cloud` modes are opt-in, enabled
4
+ per device by the user — see [`docs/modes.md`][modes].
5
+
6
+ Reads the shared device database in [`devices/`][devices] — no protocol logic
7
+ is duplicated here.
8
+
9
+ <!-- TODO: install + usage once implemented -->
10
+
11
+ <!-- Absolute: this file is the package description on PyPI, where a relative
12
+ link out of the package directory is dead. -->
13
+ [modes]: https://github.com/damient/govee-toolkit/blob/main/docs/modes.md
14
+ [devices]: https://github.com/damient/govee-toolkit/tree/main/devices
@@ -0,0 +1,11 @@
1
+ """govee-toolkit — Python SDK.
2
+
3
+ TODO: public API. Planned modules:
4
+ discovery.py — multicast scan + persistent cache
5
+ modes/lan.py — reused UDP socket, fire-and-verify
6
+ modes/ble.py — BLE mode (opt-in)
7
+ modes/cloud.py — Cloud mode (opt-in, throttled)
8
+ selector.py — per-device enabled modes + preference order
9
+ breaker.py — per-device, per-mode circuit breaker (OK / DEGRADED / DOWN)
10
+ registry.py — loads devices/*.yaml
11
+ """
@@ -0,0 +1,27 @@
1
+ # TODO: fill in once the PyO3 binding is written.
2
+ [build-system]
3
+ requires = ["hatchling"]
4
+ build-backend = "hatchling.build"
5
+
6
+ [project]
7
+ name = "govee-toolkit"
8
+ version = "0.0.0"
9
+ description = "Control Govee devices from your own network: undocumented LAN features, with BLE and Cloud modes when you need them."
10
+ authors = [{ name = "damient" }]
11
+ readme = "README.md"
12
+ license = "MIT"
13
+ requires-python = ">=3.10"
14
+ dependencies = []
15
+ keywords = ["govee", "led", "smart-home", "iot", "sdk"]
16
+
17
+ [project.urls]
18
+ Homepage = "https://github.com/damient/govee-toolkit"
19
+ Repository = "https://github.com/damient/govee-toolkit"
20
+ Issues = "https://github.com/damient/govee-toolkit/issues"
21
+ Changelog = "https://github.com/damient/govee-toolkit/blob/main/packages/python/CHANGELOG.md"
22
+
23
+ [project.optional-dependencies]
24
+ dev = ["pytest"]
25
+
26
+ [tool.pytest.ini_options]
27
+ testpaths = ["tests"]
File without changes