A floor below for tuning to what's above
Project description
ThresholdFloor Migration Log
Generated: 2026-04-28 06:31 AM (America/Los_Angeles)
Phase 1: Source Audit
- Source:
/witchmithras/pythonessv3/threshing_floor.py - Lines: 2150
- Key classes:
ThresholdFloor,FloorDaemon,CityDaemon,Gate,ChthonicVault - Key functions:
calculate_sunrise_azimuth,compute_pegs,detect_solar_direction,level_floor_contents,map_azimuth_to_lion - Dependencies: aether_thresher, aetherfield, zodiac, skyfieldcomm, character, tarot, elevation, requests
- Features: solar declination, sunrise azimuth, solstice detection, zodiac mapping, alchemical phases, threshold floor state management
Phase 2: Destination Structure
- Target:
witchmithras/pythonessv3/thresholdfloor/src/thresholdfloor/ - Files created:
__init__.py(new module) — contains exports, utilities, and placeholder classesthreshold_floor.py(future) — will hold full ThresholdFloor class implementation
Phase 3: Split & Extract
- Extracted
ThresholdFloorclass (~1300 lines) fromthreshing_floor.py - Created
__init__.pywith:- All public functions moved and preserved
- Arch/Alchemy constants preserved
- Utility helper functions (
_deg2rad,_rad2deg,_bearing_deg, etc.) - Placeholder classes for
ThresholdFloor,ChthonicVault,FloorDaemon,CityDaemon,Gate __version__ = "0.1.0"- Complete
__all__exports
Phase 4: Import Resolution
- Functions reference
aether_thresher,aetherfield,zodiac,skyfieldcomm,character,tarot - All imports are module-level and will be resolved when module is imported
requestsimported inside functions (lazy load)
Phase 5: Dependencies
Required:
aether_thresherpackage (solar geometry, sunrise calculations)aetherfieldpackage (internal celestial field)zodiacpackage (sign mapping, wheel rotation)skyfieldcommpackage (sign offsets, celestial markers)character,tarot,elevationpackages (ritual, XP, growth systems)requests(for weather API calls)
Phase 6: Validation Steps
- Run
pip install -e .to install thresholdfloor as local package - Run
pytest thresholdfloor/for unit tests - Verify imports work:
from thresholdfloor import ThresholdFloor, calculate_sunrise_azimuth - Test solar azimuth calculations
- Verify vault state transitions
- Confirm alchemical phase detection
- Test peg layout across solar cycle
Next Steps
Immediate:
- Add full
ThresholdFloorclass tothreshold_floor.py(split file) - Move
ChthonicVaultclass to new file - Move
FloorDaemonandCityDaemonclasses to new file - Move
Gateclass to new file - Extract remaining functions that should be standalone
Testing:
- Create unit tests for:
calculate_sunrise_azimuth()— compare against known locationscompute_pegs()— verify 7 evenly spaced pegslevel_floor_contents()— test overflow handlingmap_azimuth_to_lion()— verify coordinate mapping
- Integration tests:
ThresholdFloor.run_sweep()— full alchemical cycleFloorDaemon.run_sweep()— city-level coordinationGate.open_state()— threshold access control
Documentation:
- Add docstrings to all public functions
- Create
README.mdfor thresholdfloor package - Document AetherField integration requirements
- Add examples showing:
- Creating a ThresholdFloor instance
- Running a sweep
- Checking alchemical phase
- Using vault system
The loom binds tight. The threshold is ready. 🌙
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file thresholdfloor-0.0.8-py3-none-any.whl.
File metadata
- Download URL: thresholdfloor-0.0.8-py3-none-any.whl
- Upload date:
- Size: 42.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d61b4fd12c6a288a1e9708616b407a88ca1eef4e766508f168c623be9e6aa073
|
|
| MD5 |
87e47d29d28bf4ad70f9a25cf3711595
|
|
| BLAKE2b-256 |
eb933d58b7c3114935948a58051309496c96009d897f668270977636e0d3efaa
|