echopose-sdk 0.1.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,35 @@
1
+ Metadata-Version: 2.4
2
+ Name: echopose-sdk
3
+ Version: 0.1.0
4
+ Summary: EchoPose utilities for WiFi CSI pose ingestion, quality scoring, and replay tooling
5
+ Author: EchoPose Contributors
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/shaz-in-dev/EchoPose
8
+ Project-URL: Issues, https://github.com/shaz-in-dev/EchoPose/issues
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.10
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: numpy>=1.26.4
15
+
16
+ # echopose-sdk
17
+
18
+ Installable Python package for EchoPose helper tools.
19
+
20
+ Initial features:
21
+ - Validate CSI bundle shape.
22
+ - Compute simple confidence summary statistics.
23
+ - CLI entrypoint for quick checks.
24
+
25
+ ## Development Install
26
+
27
+ ```bash
28
+ pip install -e .
29
+ ```
30
+
31
+ ## CLI
32
+
33
+ ```bash
34
+ echopose-sdk --help
35
+ ```
@@ -0,0 +1,20 @@
1
+ # echopose-sdk
2
+
3
+ Installable Python package for EchoPose helper tools.
4
+
5
+ Initial features:
6
+ - Validate CSI bundle shape.
7
+ - Compute simple confidence summary statistics.
8
+ - CLI entrypoint for quick checks.
9
+
10
+ ## Development Install
11
+
12
+ ```bash
13
+ pip install -e .
14
+ ```
15
+
16
+ ## CLI
17
+
18
+ ```bash
19
+ echopose-sdk --help
20
+ ```
@@ -0,0 +1,35 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "echopose-sdk"
7
+ version = "0.1.0"
8
+ description = "EchoPose utilities for WiFi CSI pose ingestion, quality scoring, and replay tooling"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ authors = [
12
+ {name = "EchoPose Contributors"}
13
+ ]
14
+ license = {text = "MIT"}
15
+ classifiers = [
16
+ "Programming Language :: Python :: 3",
17
+ "License :: OSI Approved :: MIT License",
18
+ "Operating System :: OS Independent"
19
+ ]
20
+ dependencies = [
21
+ "numpy>=1.26.4"
22
+ ]
23
+
24
+ [project.urls]
25
+ Homepage = "https://github.com/shaz-in-dev/EchoPose"
26
+ Issues = "https://github.com/shaz-in-dev/EchoPose/issues"
27
+
28
+ [project.scripts]
29
+ echopose-sdk = "echopose_sdk.cli:main"
30
+
31
+ [tool.setuptools]
32
+ package-dir = {"" = "src"}
33
+
34
+ [tool.setuptools.packages.find]
35
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,6 @@
1
+ """echopose_sdk package."""
2
+
3
+ from .quality import summarize_confidence
4
+ from .validation import validate_bundle
5
+
6
+ __all__ = ["summarize_confidence", "validate_bundle"]
@@ -0,0 +1,25 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import json
5
+ from pathlib import Path
6
+
7
+ from .validation import validate_bundle
8
+
9
+
10
+ def main() -> None:
11
+ parser = argparse.ArgumentParser(description="echopose-sdk utilities")
12
+ parser.add_argument("--bundle", type=Path, help="Path to CSI bundle JSON")
13
+ args = parser.parse_args()
14
+
15
+ if not args.bundle:
16
+ parser.print_help()
17
+ return
18
+
19
+ payload = json.loads(args.bundle.read_text(encoding="utf-8"))
20
+ ok, msg = validate_bundle(payload)
21
+ print(json.dumps({"valid": ok, "reason": msg}))
22
+
23
+
24
+ if __name__ == "__main__":
25
+ main()
@@ -0,0 +1,16 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Dict, Iterable
4
+
5
+ import numpy as np
6
+
7
+
8
+ def summarize_confidence(confidences: Iterable[float]) -> Dict[str, float]:
9
+ arr = np.asarray(list(confidences), dtype=np.float32)
10
+ if arr.size == 0:
11
+ return {"mean": 0.0, "min": 0.0, "max": 0.0}
12
+ return {
13
+ "mean": float(np.mean(arr)),
14
+ "min": float(np.min(arr)),
15
+ "max": float(np.max(arr)),
16
+ }
@@ -0,0 +1,22 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, Dict, List, Tuple
4
+
5
+
6
+ def validate_bundle(bundle: Dict[str, Any], expected_nodes: int = 3, expected_subcarriers: int = 64) -> Tuple[bool, str]:
7
+ frames: List[Dict[str, Any]] = bundle.get("frames", [])
8
+ if not frames:
9
+ return False, "bundle has no frames"
10
+
11
+ nodes = set()
12
+ for frame in frames:
13
+ if "node_id" not in frame or "amplitudes" not in frame:
14
+ return False, "frame missing node_id or amplitudes"
15
+ amps = frame["amplitudes"]
16
+ if not isinstance(amps, list) or len(amps) != expected_subcarriers:
17
+ return False, "invalid amplitudes length"
18
+ nodes.add(frame["node_id"])
19
+
20
+ if len(nodes) > expected_nodes:
21
+ return False, "too many nodes for configured topology"
22
+ return True, "ok"
@@ -0,0 +1,35 @@
1
+ Metadata-Version: 2.4
2
+ Name: echopose-sdk
3
+ Version: 0.1.0
4
+ Summary: EchoPose utilities for WiFi CSI pose ingestion, quality scoring, and replay tooling
5
+ Author: EchoPose Contributors
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/shaz-in-dev/EchoPose
8
+ Project-URL: Issues, https://github.com/shaz-in-dev/EchoPose/issues
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.10
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: numpy>=1.26.4
15
+
16
+ # echopose-sdk
17
+
18
+ Installable Python package for EchoPose helper tools.
19
+
20
+ Initial features:
21
+ - Validate CSI bundle shape.
22
+ - Compute simple confidence summary statistics.
23
+ - CLI entrypoint for quick checks.
24
+
25
+ ## Development Install
26
+
27
+ ```bash
28
+ pip install -e .
29
+ ```
30
+
31
+ ## CLI
32
+
33
+ ```bash
34
+ echopose-sdk --help
35
+ ```
@@ -0,0 +1,12 @@
1
+ README.md
2
+ pyproject.toml
3
+ src/echopose_sdk/__init__.py
4
+ src/echopose_sdk/cli.py
5
+ src/echopose_sdk/quality.py
6
+ src/echopose_sdk/validation.py
7
+ src/echopose_sdk.egg-info/PKG-INFO
8
+ src/echopose_sdk.egg-info/SOURCES.txt
9
+ src/echopose_sdk.egg-info/dependency_links.txt
10
+ src/echopose_sdk.egg-info/entry_points.txt
11
+ src/echopose_sdk.egg-info/requires.txt
12
+ src/echopose_sdk.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ echopose-sdk = echopose_sdk.cli:main
@@ -0,0 +1 @@
1
+ numpy>=1.26.4
@@ -0,0 +1 @@
1
+ echopose_sdk