aetherfield 0.2.1__tar.gz → 0.2.2__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aetherfield
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: AetherField runtime ephemeris
5
5
  Author: WitchMithras
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "aetherfield"
7
- version = "0.2.1"
7
+ version = "0.2.2"
8
8
  description = "AetherField runtime ephemeris"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -29,6 +29,16 @@ bodies = ['sun','moon','mercury','venus','mars','jupiter','saturn']
29
29
  # Mean regression of lunar nodes (~18.6 year cycle)
30
30
  DRACONIC_RATE_DEG_PER_DAY = -360.0 / (18.612958 * 365.2422)
31
31
 
32
+ SIGNS = [
33
+ "Aries", "Taurus", "Gemini", "Cancer", "Leo",
34
+ "Virgo", "Libra", "Scorpio", "Sagittarius",
35
+ "Capricorn", "Aquarius", "Pisces"
36
+ ]
37
+
38
+ AGE_LENGTH = 2147.67
39
+
40
+ ANCHOR_YEAR = 1
41
+ ANCHOR_SIGN = "Pisces"
32
42
 
33
43
  def _wrap_deg(x: float) -> float:
34
44
  return x % 360.0
@@ -167,25 +177,18 @@ try:
167
177
  except Exception:
168
178
  SKYFIELD_OK = False
169
179
 
170
- AGES = [
171
- ("Taurus", -4300, -2150),
172
- ("Aries", -2150, 1),
173
- ("Pisces", 1, 2150),
174
- ("Aquarius", 2150, 4300),
175
- ]
180
+
176
181
 
177
182
  def get_age_sign(year: int) -> str:
178
- for sign, start, end in AGES:
179
- if start <= year < end:
180
- return sign
181
- return "Pisces" # fallback default
182
183
 
183
- SIGNS = [
184
- "Aries", "Taurus", "Gemini", "Cancer", "Leo",
185
- "Virgo", "Libra", "Scorpio", "Sagittarius",
186
- "Capricorn", "Aquarius", "Pisces"
187
- ]
188
-
184
+
185
+ offset_years = year - ANCHOR_YEAR
186
+ age_index_offset = offset_years // AGE_LENGTH
187
+
188
+ anchor_index = SIGNS.index(ANCHOR_SIGN)
189
+ sign_index = (anchor_index + age_index_offset) % 12
190
+
191
+ return SIGNS[sign_index]
189
192
 
190
193
  def rotated_zodiac(start_sign: str) -> list[str]:
191
194
  i = SIGNS.index(start_sign)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aetherfield
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: AetherField runtime ephemeris
5
5
  Author: WitchMithras
6
6
  License: MIT
File without changes
File without changes
File without changes