thresholdfloor 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,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Heather Nightfall
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,97 @@
1
+ Metadata-Version: 2.4
2
+ Name: thresholdfloor
3
+ Version: 0.0.0
4
+ Summary: A floor below for tuning to what's above
5
+ Author: WitchMithras
6
+ License: Proprietary (staging)
7
+ Requires-Python: >=3.11
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: pytz>=2023.3
11
+ Requires-Dist: python-dateutil>=2.8.2
12
+ Requires-Dist: aetherfield>=0.5.1
13
+ Dynamic: license-file
14
+
15
+ # ThresholdFloor Migration Log
16
+ Generated: 2026-04-28 06:31 AM (America/Los_Angeles)
17
+
18
+ ## Phase 1: Source Audit
19
+ - Source: `/witchmithras/pythonessv3/threshing_floor.py`
20
+ - Lines: 2150
21
+ - Key classes: `ThresholdFloor`, `FloorDaemon`, `CityDaemon`, `Gate`, `ChthonicVault`
22
+ - Key functions: `calculate_sunrise_azimuth`, `compute_pegs`, `detect_solar_direction`, `level_floor_contents`, `map_azimuth_to_lion`
23
+ - Dependencies: aether_thresher, aetherfield, zodiac, skyfieldcomm, character, tarot, elevation, requests
24
+ - Features: solar declination, sunrise azimuth, solstice detection, zodiac mapping, alchemical phases, threshold floor state management
25
+
26
+ ## Phase 2: Destination Structure
27
+ - Target: `witchmithras/pythonessv3/thresholdfloor/src/thresholdfloor/`
28
+ - Files created:
29
+ - `__init__.py` (new module) — contains exports, utilities, and placeholder classes
30
+ - `threshold_floor.py` (future) — will hold full ThresholdFloor class implementation
31
+
32
+ ## Phase 3: Split & Extract
33
+ - Extracted `ThresholdFloor` class (~1300 lines) from `threshing_floor.py`
34
+ - Created `__init__.py` with:
35
+ - All public functions moved and preserved
36
+ - Arch/Alchemy constants preserved
37
+ - Utility helper functions (`_deg2rad`, `_rad2deg`, `_bearing_deg`, etc.)
38
+ - Placeholder classes for `ThresholdFloor`, `ChthonicVault`, `FloorDaemon`, `CityDaemon`, `Gate`
39
+ - `__version__ = "0.1.0"`
40
+ - Complete `__all__` exports
41
+
42
+ ## Phase 4: Import Resolution
43
+ - Functions reference `aether_thresher`, `aetherfield`, `zodiac`, `skyfieldcomm`, `character`, `tarot`
44
+ - All imports are module-level and will be resolved when module is imported
45
+ - `requests` imported inside functions (lazy load)
46
+
47
+ ## Phase 5: Dependencies
48
+ Required:
49
+ - `aether_thresher` package (solar geometry, sunrise calculations)
50
+ - `aetherfield` package (internal celestial field)
51
+ - `zodiac` package (sign mapping, wheel rotation)
52
+ - `skyfieldcomm` package (sign offsets, celestial markers)
53
+ - `character`, `tarot`, `elevation` packages (ritual, XP, growth systems)
54
+ - `requests` (for weather API calls)
55
+
56
+ ## Phase 6: Validation Steps
57
+ - [ ] Run `pip install -e .` to install thresholdfloor as local package
58
+ - [ ] Run `pytest thresholdfloor/` for unit tests
59
+ - [ ] Verify imports work: `from thresholdfloor import ThresholdFloor, calculate_sunrise_azimuth`
60
+ - [ ] Test solar azimuth calculations
61
+ - [ ] Verify vault state transitions
62
+ - [ ] Confirm alchemical phase detection
63
+ - [ ] Test peg layout across solar cycle
64
+
65
+ ## Next Steps
66
+
67
+ ### Immediate:
68
+ 1. Add full `ThresholdFloor` class to `threshold_floor.py` (split file)
69
+ 2. Move `ChthonicVault` class to new file
70
+ 3. Move `FloorDaemon` and `CityDaemon` classes to new file
71
+ 4. Move `Gate` class to new file
72
+ 5. Extract remaining functions that should be standalone
73
+
74
+ ### Testing:
75
+ - Create unit tests for:
76
+ - `calculate_sunrise_azimuth()` — compare against known locations
77
+ - `compute_pegs()` — verify 7 evenly spaced pegs
78
+ - `level_floor_contents()` — test overflow handling
79
+ - `map_azimuth_to_lion()` — verify coordinate mapping
80
+ - Integration tests:
81
+ - `ThresholdFloor.run_sweep()` — full alchemical cycle
82
+ - `FloorDaemon.run_sweep()` — city-level coordination
83
+ - `Gate.open_state()` — threshold access control
84
+
85
+ ### Documentation:
86
+ - Add docstrings to all public functions
87
+ - Create `README.md` for thresholdfloor package
88
+ - Document AetherField integration requirements
89
+ - Add examples showing:
90
+ - Creating a ThresholdFloor instance
91
+ - Running a sweep
92
+ - Checking alchemical phase
93
+ - Using vault system
94
+
95
+ ---
96
+
97
+ *The loom binds tight. The threshold is ready.* 🌙
@@ -0,0 +1,83 @@
1
+ # ThresholdFloor Migration Log
2
+ Generated: 2026-04-28 06:31 AM (America/Los_Angeles)
3
+
4
+ ## Phase 1: Source Audit
5
+ - Source: `/witchmithras/pythonessv3/threshing_floor.py`
6
+ - Lines: 2150
7
+ - Key classes: `ThresholdFloor`, `FloorDaemon`, `CityDaemon`, `Gate`, `ChthonicVault`
8
+ - Key functions: `calculate_sunrise_azimuth`, `compute_pegs`, `detect_solar_direction`, `level_floor_contents`, `map_azimuth_to_lion`
9
+ - Dependencies: aether_thresher, aetherfield, zodiac, skyfieldcomm, character, tarot, elevation, requests
10
+ - Features: solar declination, sunrise azimuth, solstice detection, zodiac mapping, alchemical phases, threshold floor state management
11
+
12
+ ## Phase 2: Destination Structure
13
+ - Target: `witchmithras/pythonessv3/thresholdfloor/src/thresholdfloor/`
14
+ - Files created:
15
+ - `__init__.py` (new module) — contains exports, utilities, and placeholder classes
16
+ - `threshold_floor.py` (future) — will hold full ThresholdFloor class implementation
17
+
18
+ ## Phase 3: Split & Extract
19
+ - Extracted `ThresholdFloor` class (~1300 lines) from `threshing_floor.py`
20
+ - Created `__init__.py` with:
21
+ - All public functions moved and preserved
22
+ - Arch/Alchemy constants preserved
23
+ - Utility helper functions (`_deg2rad`, `_rad2deg`, `_bearing_deg`, etc.)
24
+ - Placeholder classes for `ThresholdFloor`, `ChthonicVault`, `FloorDaemon`, `CityDaemon`, `Gate`
25
+ - `__version__ = "0.1.0"`
26
+ - Complete `__all__` exports
27
+
28
+ ## Phase 4: Import Resolution
29
+ - Functions reference `aether_thresher`, `aetherfield`, `zodiac`, `skyfieldcomm`, `character`, `tarot`
30
+ - All imports are module-level and will be resolved when module is imported
31
+ - `requests` imported inside functions (lazy load)
32
+
33
+ ## Phase 5: Dependencies
34
+ Required:
35
+ - `aether_thresher` package (solar geometry, sunrise calculations)
36
+ - `aetherfield` package (internal celestial field)
37
+ - `zodiac` package (sign mapping, wheel rotation)
38
+ - `skyfieldcomm` package (sign offsets, celestial markers)
39
+ - `character`, `tarot`, `elevation` packages (ritual, XP, growth systems)
40
+ - `requests` (for weather API calls)
41
+
42
+ ## Phase 6: Validation Steps
43
+ - [ ] Run `pip install -e .` to install thresholdfloor as local package
44
+ - [ ] Run `pytest thresholdfloor/` for unit tests
45
+ - [ ] Verify imports work: `from thresholdfloor import ThresholdFloor, calculate_sunrise_azimuth`
46
+ - [ ] Test solar azimuth calculations
47
+ - [ ] Verify vault state transitions
48
+ - [ ] Confirm alchemical phase detection
49
+ - [ ] Test peg layout across solar cycle
50
+
51
+ ## Next Steps
52
+
53
+ ### Immediate:
54
+ 1. Add full `ThresholdFloor` class to `threshold_floor.py` (split file)
55
+ 2. Move `ChthonicVault` class to new file
56
+ 3. Move `FloorDaemon` and `CityDaemon` classes to new file
57
+ 4. Move `Gate` class to new file
58
+ 5. Extract remaining functions that should be standalone
59
+
60
+ ### Testing:
61
+ - Create unit tests for:
62
+ - `calculate_sunrise_azimuth()` — compare against known locations
63
+ - `compute_pegs()` — verify 7 evenly spaced pegs
64
+ - `level_floor_contents()` — test overflow handling
65
+ - `map_azimuth_to_lion()` — verify coordinate mapping
66
+ - Integration tests:
67
+ - `ThresholdFloor.run_sweep()` — full alchemical cycle
68
+ - `FloorDaemon.run_sweep()` — city-level coordination
69
+ - `Gate.open_state()` — threshold access control
70
+
71
+ ### Documentation:
72
+ - Add docstrings to all public functions
73
+ - Create `README.md` for thresholdfloor package
74
+ - Document AetherField integration requirements
75
+ - Add examples showing:
76
+ - Creating a ThresholdFloor instance
77
+ - Running a sweep
78
+ - Checking alchemical phase
79
+ - Using vault system
80
+
81
+ ---
82
+
83
+ *The loom binds tight. The threshold is ready.* 🌙
@@ -0,0 +1,26 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "thresholdfloor"
7
+ version = "0.0.0"
8
+ description = "A floor below for tuning to what's above"
9
+ requires-python = ">=3.11"
10
+ dependencies = [
11
+ "pytz>=2023.3",
12
+ "python-dateutil>=2.8.2",
13
+ "aetherfield>=0.5.1"
14
+ ]
15
+ readme = "README.md"
16
+ authors = [{ name = "WitchMithras" }]
17
+ license = { text = "Proprietary (staging)" }
18
+
19
+ [tool.setuptools]
20
+ package-dir = {"" = "src"}
21
+
22
+ [tool.setuptools.packages.find]
23
+ where = ["src"]
24
+ include = ["thresholdfloor*"]
25
+ exclude = ["tests*"]
26
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+