wifi-densepose/archive/v1
rUv 50136c920d
fix(archive/v1/pose-service): call sanitize_phase, not sanitize (closes #612) (#614)
Reported by @bannned-bit. archive/v1/src/services/pose_service.py:223:

    sanitized_phase = self.phase_sanitizer.sanitize(phase_data)

PhaseSanitizer exposes the full-pipeline entry point as `sanitize_phase`
(unwrap_phase + remove_outliers + smooth_phase), not `sanitize`. The
shorter name doesn't exist on the class, so any path that reaches this
branch raises AttributeError mid-frame and crashes the pose service.

archive/v1/src/core/phase_sanitizer.py:266 is the canonical name:

    def sanitize_phase(self, phase_data: np.ndarray) -> np.ndarray:
        """Sanitize phase data through complete pipeline."""

One-line rename. No other call sites use the wrong name; verified with
grep -rn 'phase_sanitizer\.sanitize\b' archive/v1/src/.

This is v1 archived code, but the proof verify path still exercises it
(./verify reaches into archive/v1/src/), so the bug was a latent
regression risk for the trust-kill-switch flow.
2026-05-17 19:34:08 -04:00
..
data chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
docs chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
scripts chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
src fix(archive/v1/pose-service): call sanitize_phase, not sanitize (closes #612) (#614) 2026-05-17 19:34:08 -04:00
tests chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
README.md chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
__init__.py chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
requirements-lock.txt chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
setup.py chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
test_application.py chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
test_auth_rate_limit.py chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00

README.md

WiFi-DensePose v1 (Python Implementation)

This directory contains the original Python implementation of WiFi-DensePose.

Structure

v1/
├── src/                    # Python source code
│   ├── api/               # REST API endpoints
│   ├── config/            # Configuration management
│   ├── core/              # Core processing logic
│   ├── database/          # Database models and migrations
│   ├── hardware/          # Hardware interfaces
│   ├── middleware/        # API middleware
│   ├── models/            # Neural network models
│   ├── services/          # Business logic services
│   └── tasks/             # Background tasks
├── tests/                  # Test suite
├── docs/                   # Documentation
├── scripts/               # Utility scripts
├── data/                  # Data files
├── setup.py               # Package setup
├── test_application.py    # Application tests
└── test_auth_rate_limit.py # Auth/rate limit tests

Requirements

  • Python 3.10+
  • PyTorch 2.0+
  • FastAPI
  • PostgreSQL/SQLite

Installation

cd v1
pip install -e .

Usage

# Start API server
python -m src.main

# Run tests
pytest tests/

Note

This is the legacy Python implementation. For the new Rust implementation with improved performance, see /v2/.