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
|