Tracking listings at Gables Queen Anne
- Python 98%
- Shell 2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .claude/tsc-cache | ||
| .omc | ||
| data | ||
| .gitignore | ||
| db.py | ||
| fetch.py | ||
| gables.db | ||
| main.py | ||
| models.py | ||
| parser.py | ||
| README.md | ||
| run.sh | ||
gables_goggles
Tracks unit availability at a Gables apartment property over time by polling the Knock Rentals public API and snapshotting observations into a local SQLite database.
What it does
Each run:
- Fetches the current units listing from the property API.
- Upserts layouts and a dated unit observation into
gables.db. - Computes per-unit lifecycles (first seen, last seen, active today).
- Prints a JSON report of available units, units introduced today, and units that fell off the listing.
Usage
./run.sh
The script creates a .venv/ on first run and executes main.py. The project uses only the Python 3 standard library — no dependencies.
Files
fetch.py— HTTP client for the property units endpoint.parser.py— Maps raw JSON into typed dataclasses.models.py—Layout,Unit,UnitsDatadataclasses.db.py— SQLite schema, upserts, and lifecycle query.main.py— Entry point: fetch → ingest → report.gables.db— SQLite store (created on first run).