kerykeion 5.0.0a12__py3-none-any.whl → 5.0.0b2__py3-none-any.whl

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.

Potentially problematic release.


This version of kerykeion might be problematic. Click here for more details.

Files changed (51) hide show
  1. kerykeion/__init__.py +30 -6
  2. kerykeion/aspects/aspects_factory.py +40 -24
  3. kerykeion/aspects/aspects_utils.py +75 -6
  4. kerykeion/astrological_subject_factory.py +377 -226
  5. kerykeion/backword.py +680 -0
  6. kerykeion/chart_data_factory.py +484 -0
  7. kerykeion/charts/{kerykeion_chart_svg.py → chart_drawer.py} +688 -440
  8. kerykeion/charts/charts_utils.py +157 -94
  9. kerykeion/charts/draw_planets.py +38 -28
  10. kerykeion/charts/templates/aspect_grid_only.xml +188 -17
  11. kerykeion/charts/templates/chart.xml +153 -47
  12. kerykeion/charts/templates/wheel_only.xml +195 -24
  13. kerykeion/charts/themes/classic.css +11 -0
  14. kerykeion/charts/themes/dark-high-contrast.css +11 -0
  15. kerykeion/charts/themes/dark.css +11 -0
  16. kerykeion/charts/themes/light.css +11 -0
  17. kerykeion/charts/themes/strawberry.css +10 -0
  18. kerykeion/composite_subject_factory.py +4 -4
  19. kerykeion/ephemeris_data_factory.py +12 -9
  20. kerykeion/house_comparison/__init__.py +0 -3
  21. kerykeion/house_comparison/house_comparison_factory.py +3 -3
  22. kerykeion/house_comparison/house_comparison_utils.py +3 -4
  23. kerykeion/planetary_return_factory.py +8 -4
  24. kerykeion/relationship_score_factory.py +3 -3
  25. kerykeion/report.py +748 -67
  26. kerykeion/{kr_types → schemas}/__init__.py +44 -4
  27. kerykeion/schemas/chart_template_model.py +367 -0
  28. kerykeion/{kr_types → schemas}/kr_literals.py +7 -3
  29. kerykeion/{kr_types → schemas}/kr_models.py +220 -11
  30. kerykeion/{kr_types → schemas}/settings_models.py +7 -7
  31. kerykeion/settings/config_constants.py +75 -8
  32. kerykeion/settings/kerykeion_settings.py +1 -1
  33. kerykeion/settings/kr.config.json +132 -42
  34. kerykeion/settings/legacy/legacy_celestial_points_settings.py +8 -8
  35. kerykeion/sweph/ast136/s136108s.se1 +0 -0
  36. kerykeion/sweph/ast136/s136199s.se1 +0 -0
  37. kerykeion/sweph/ast136/s136472s.se1 +0 -0
  38. kerykeion/sweph/ast28/se28978s.se1 +0 -0
  39. kerykeion/sweph/ast50/se50000s.se1 +0 -0
  40. kerykeion/sweph/ast90/se90377s.se1 +0 -0
  41. kerykeion/sweph/ast90/se90482s.se1 +0 -0
  42. kerykeion/transits_time_range_factory.py +7 -7
  43. kerykeion/utilities.py +61 -38
  44. {kerykeion-5.0.0a12.dist-info → kerykeion-5.0.0b2.dist-info}/METADATA +507 -120
  45. kerykeion-5.0.0b2.dist-info/RECORD +58 -0
  46. kerykeion/house_comparison/house_comparison_models.py +0 -76
  47. kerykeion/kr_types/chart_types.py +0 -106
  48. kerykeion-5.0.0a12.dist-info/RECORD +0 -50
  49. /kerykeion/{kr_types → schemas}/kerykeion_exception.py +0 -0
  50. {kerykeion-5.0.0a12.dist-info → kerykeion-5.0.0b2.dist-info}/WHEEL +0 -0
  51. {kerykeion-5.0.0a12.dist-info → kerykeion-5.0.0b2.dist-info}/licenses/LICENSE +0 -0
@@ -3,12 +3,12 @@
3
3
  This is part of Kerykeion (C) 2025 Giacomo Battaglia
4
4
  """
5
5
 
6
- from typing import Union, Optional, List
6
+ from typing import Union, Optional, List, Literal
7
7
  from typing_extensions import TypedDict
8
8
  from pydantic import BaseModel, Field
9
- from kerykeion.kr_types.kr_literals import AspectName
9
+ from kerykeion.schemas.kr_literals import AspectName
10
10
 
11
- from kerykeion.kr_types import (
11
+ from kerykeion.schemas import (
12
12
  LunarPhaseEmoji,
13
13
  LunarPhaseName,
14
14
  AstrologicalPoint,
@@ -24,8 +24,9 @@ from kerykeion.kr_types import (
24
24
  SignsEmoji,
25
25
  RelationshipScoreDescription,
26
26
  PerspectiveType,
27
- ReturnType
27
+ AspectMovementType
28
28
  )
29
+ from kerykeion.schemas.kr_literals import ReturnType
29
30
 
30
31
 
31
32
  class SubscriptableBaseModel(BaseModel):
@@ -57,13 +58,11 @@ class LunarPhaseModel(SubscriptableBaseModel):
57
58
  Attributes:
58
59
  degrees_between_s_m: Angular separation between Sun and Moon in degrees.
59
60
  moon_phase: Numerical phase identifier for the Moon.
60
- sun_phase: Numerical phase identifier for the Sun.
61
61
  moon_emoji: Emoji representation of the lunar phase.
62
62
  moon_phase_name: Text name of the lunar phase.
63
63
  """
64
64
  degrees_between_s_m: Union[float, int]
65
65
  moon_phase: int
66
- sun_phase: int
67
66
  moon_emoji: LunarPhaseEmoji
68
67
  moon_phase_name: LunarPhaseName
69
68
 
@@ -101,6 +100,8 @@ class KerykeionPointModel(SubscriptableBaseModel):
101
100
  point_type: PointType
102
101
  house: Optional[Houses] = None
103
102
  retrograde: Optional[bool] = None
103
+ speed: Optional[float] = None
104
+ declination: Optional[float] = None
104
105
 
105
106
 
106
107
  class AstrologicalBaseModel(SubscriptableBaseModel):
@@ -223,11 +224,11 @@ class AstrologicalBaseModel(SubscriptableBaseModel):
223
224
  eleventh_house: KerykeionPointModel
224
225
  twelfth_house: KerykeionPointModel
225
226
 
226
- # Common nodes
227
- mean_node: Optional[KerykeionPointModel] = None
228
- true_node: Optional[KerykeionPointModel] = None
229
- mean_south_node: Optional[KerykeionPointModel] = None
230
- true_south_node: Optional[KerykeionPointModel] = None
227
+ # Lunar Nodes
228
+ mean_north_lunar_node: Optional[KerykeionPointModel] = None
229
+ true_north_lunar_node: Optional[KerykeionPointModel] = None
230
+ mean_south_lunar_node: Optional[KerykeionPointModel] = None
231
+ true_south_lunar_node: Optional[KerykeionPointModel] = None
231
232
 
232
233
  # Common lists and settings
233
234
  houses_names_list: List[Houses] = Field(description="Ordered list of houses names")
@@ -297,6 +298,10 @@ class AspectModel(SubscriptableBaseModel):
297
298
  diff: float
298
299
  p1: int
299
300
  p2: int
301
+ aspect_movement: AspectMovementType = Field(
302
+ description="Indicates whether the aspect is applying (planets moving toward exact aspect), "
303
+ "separating (planets moving away from exact aspect), or exact (within tight orb)."
304
+ )
300
305
 
301
306
 
302
307
  class ZodiacSignModel(SubscriptableBaseModel):
@@ -394,3 +399,207 @@ class TransitsTimeRangeModel(SubscriptableBaseModel):
394
399
  transits: List[TransitMomentModel] = Field(description="List of transit moments.")
395
400
  subject: Optional[AstrologicalSubjectModel] = Field(description="Astrological subject data.")
396
401
  dates: Optional[List[str]] = Field(description="ISO 8601 formatted dates of all transit moments.")
402
+
403
+
404
+ class PointInHouseModel(SubscriptableBaseModel):
405
+ """
406
+ Represents an astrological point from one subject positioned within another subject's house.
407
+
408
+ Captures point characteristics and its placement within the target subject's house system
409
+ for house comparison analysis.
410
+
411
+ Attributes:
412
+ point_name: Name of the astrological point
413
+ point_degree: Degree position within its sign
414
+ point_sign: Zodiacal sign containing the point
415
+ point_owner_name: Name of the subject who owns this point
416
+ point_owner_house_number: House number in owner's chart
417
+ point_owner_house_name: House name in owner's chart
418
+ projected_house_number: House number in target subject's chart
419
+ projected_house_name: House name in target subject's chart
420
+ projected_house_owner_name: Name of the target subject
421
+ """
422
+
423
+ point_name: str
424
+ """Name of the astrological point"""
425
+ point_degree: float
426
+ """Degree position of the point within its zodiacal sign"""
427
+ point_sign: str
428
+ """Zodiacal sign containing the point"""
429
+ point_owner_name: str
430
+ """Name of the subject who owns this point"""
431
+ point_owner_house_number: Optional[int]
432
+ """House number in owner's chart"""
433
+ point_owner_house_name: Optional[str]
434
+ """House name in owner's chart"""
435
+ projected_house_number: int
436
+ """House number in target subject's chart"""
437
+ projected_house_name: str
438
+ """House name in target subject's chart"""
439
+ projected_house_owner_name: str
440
+ """Name of the target subject"""
441
+
442
+
443
+ class HouseComparisonModel(SubscriptableBaseModel):
444
+ """
445
+ Bidirectional house comparison analysis between two astrological subjects.
446
+
447
+ Contains results of how astrological points from each subject interact with
448
+ the house system of the other subject.
449
+
450
+ Attributes:
451
+ first_subject_name: Name of the first subject
452
+ second_subject_name: Name of the second subject
453
+ first_points_in_second_houses: First subject's points in second subject's houses
454
+ second_points_in_first_houses: Second subject's points in first subject's houses
455
+ """
456
+
457
+ first_subject_name: str
458
+ """Name of the first subject"""
459
+ second_subject_name: str
460
+ """Name of the second subject"""
461
+ first_points_in_second_houses: List[PointInHouseModel]
462
+ """First subject's points positioned in second subject's houses"""
463
+ second_points_in_first_houses: List[PointInHouseModel]
464
+ """Second subject's points positioned in first subject's houses"""
465
+
466
+
467
+ class ElementDistributionModel(SubscriptableBaseModel):
468
+ """
469
+ Model representing element distribution in a chart.
470
+
471
+ Attributes:
472
+ fire: Fire element points total
473
+ earth: Earth element points total
474
+ air: Air element points total
475
+ water: Water element points total
476
+ fire_percentage: Fire element percentage
477
+ earth_percentage: Earth element percentage
478
+ air_percentage: Air element percentage
479
+ water_percentage: Water element percentage
480
+ """
481
+ fire: float
482
+ earth: float
483
+ air: float
484
+ water: float
485
+ fire_percentage: int
486
+ earth_percentage: int
487
+ air_percentage: int
488
+ water_percentage: int
489
+
490
+
491
+ class QualityDistributionModel(SubscriptableBaseModel):
492
+ """
493
+ Model representing quality distribution in a chart.
494
+
495
+ Attributes:
496
+ cardinal: Cardinal quality points total
497
+ fixed: Fixed quality points total
498
+ mutable: Mutable quality points total
499
+ cardinal_percentage: Cardinal quality percentage
500
+ fixed_percentage: Fixed quality percentage
501
+ mutable_percentage: Mutable quality percentage
502
+ """
503
+ cardinal: float
504
+ fixed: float
505
+ mutable: float
506
+ cardinal_percentage: int
507
+ fixed_percentage: int
508
+ mutable_percentage: int
509
+
510
+
511
+ class SingleChartDataModel(SubscriptableBaseModel):
512
+ """
513
+ Chart data model for single-subject astrological charts.
514
+
515
+ This model contains all pure data from single-subject charts including planetary
516
+ positions, internal aspects, element/quality distributions, and location data.
517
+ Used for chart types that analyze a single astrological subject.
518
+
519
+ Supported chart types:
520
+ - Natal: Birth chart with internal planetary aspects
521
+ - Composite: Midpoint relationship chart with internal aspects
522
+ - SingleReturnChart: Single planetary return with internal aspects
523
+
524
+ Attributes:
525
+ chart_type: Type of single chart (Natal, Composite, SingleReturnChart)
526
+ subject: The astrological subject being analyzed
527
+ aspects: Internal aspects within the chart
528
+ element_distribution: Distribution of elemental energies
529
+ quality_distribution: Distribution of modal qualities
530
+ active_points: Celestial points included in calculations
531
+ active_aspects: Aspect types and orb settings used
532
+ """
533
+
534
+ # Chart identification
535
+ chart_type: Literal["Natal", "Composite", "SingleReturnChart"]
536
+
537
+ # Single chart subject
538
+ subject: Union["AstrologicalSubjectModel", "CompositeSubjectModel", "PlanetReturnModel"]
539
+
540
+ # Internal aspects analysis
541
+ aspects: "SingleChartAspectsModel"
542
+
543
+ # Element and quality distributions
544
+ element_distribution: "ElementDistributionModel"
545
+ quality_distribution: "QualityDistributionModel"
546
+
547
+ # Configuration and metadata
548
+ active_points: List[AstrologicalPoint]
549
+ active_aspects: List["ActiveAspect"]
550
+
551
+
552
+ class DualChartDataModel(SubscriptableBaseModel):
553
+ """
554
+ Chart data model for dual-subject astrological charts.
555
+
556
+ This model contains all pure data from dual-subject charts including both subjects,
557
+ inter-chart aspects, house comparisons, relationship analysis, and combined
558
+ element/quality distributions. Used for chart types that compare or overlay
559
+ two astrological subjects.
560
+
561
+ Supported chart types:
562
+ - Transit: Natal chart with current planetary transits
563
+ - Synastry: Relationship compatibility between two people
564
+ - Return: Natal chart with planetary return comparison
565
+
566
+ Attributes:
567
+ chart_type: Type of dual chart (Transit, Synastry, Return)
568
+ first_subject: Primary astrological subject (natal, base chart)
569
+ second_subject: Secondary astrological subject (transit, partner, return)
570
+ aspects: Inter-chart aspects between the two subjects
571
+ house_comparison: House overlay analysis between subjects
572
+ relationship_score: Compatibility scoring (synastry only)
573
+ element_distribution: Combined elemental distribution
574
+ quality_distribution: Combined modal distribution
575
+ active_points: Celestial points included in calculations
576
+ active_aspects: Aspect types and orb settings used
577
+ """
578
+
579
+ # Chart identification
580
+ chart_type: Literal["Transit", "Synastry", "DualReturnChart"]
581
+
582
+ # Dual chart subjects
583
+ first_subject: Union["AstrologicalSubjectModel", "CompositeSubjectModel", "PlanetReturnModel"]
584
+ second_subject: Union["AstrologicalSubjectModel", "PlanetReturnModel"]
585
+
586
+ # Inter-chart aspects analysis
587
+ aspects: "DualChartAspectsModel"
588
+
589
+ # House comparison analysis
590
+ house_comparison: Optional["HouseComparisonModel"] = None
591
+
592
+ # Relationship analysis (synastry only)
593
+ relationship_score: Optional["RelationshipScoreModel"] = None
594
+
595
+ # Combined element and quality distributions
596
+ element_distribution: "ElementDistributionModel"
597
+ quality_distribution: "QualityDistributionModel"
598
+
599
+ # Configuration and metadata
600
+ active_points: List[AstrologicalPoint]
601
+ active_aspects: List["ActiveAspect"]
602
+
603
+
604
+ # Union type for all chart data models
605
+ ChartDataModel = Union[SingleChartDataModel, DualChartDataModel]
@@ -6,7 +6,7 @@
6
6
 
7
7
  from pydantic import Field
8
8
  from typing import Optional
9
- from kerykeion.kr_types.kr_models import SubscriptableBaseModel
9
+ from kerykeion.schemas.kr_models import SubscriptableBaseModel
10
10
 
11
11
 
12
12
  class KerykeionSettingsCelestialPointModel(SubscriptableBaseModel):
@@ -39,16 +39,16 @@ class KerykeionLanguageCelestialPointModel(SubscriptableBaseModel):
39
39
  Uranus: str = Field(title="Uranus", description="The name of Uranus in the chart, in the language")
40
40
  Neptune: str = Field(title="Neptune", description="The name of Neptune in the chart, in the language")
41
41
  Pluto: str = Field(title="Pluto", description="The name of Pluto in the chart, in the language")
42
- True_Node: str = Field(title="True Node", description="The name of True Node in the chart, in the language")
43
- Mean_Node: str = Field(title="Mean Node", description="The name of Mean Node in the chart, in the language")
42
+ True_North_Lunar_Node: str = Field(title="True North Lunar Node", description="The name of True North Lunar Node in the chart, in the language")
43
+ Mean_North_Lunar_Node: str = Field(title="Mean North Lunar Node", description="The name of Mean North Lunar Node in the chart, in the language")
44
44
  Chiron: str = Field(title="Chiron", description="The name of Chiron in the chart, in the language")
45
45
  Ascendant: str = Field(title="Ascendant", description="The name of Ascendant in the chart, in the language")
46
46
  Descendant: str = Field(title="Descendant", description="The name of Descendant in the chart, in the language")
47
47
  Medium_Coeli: str = Field(title="Medium Coeli", description="The name of Medium Coeli in the chart, in the language")
48
48
  Imum_Coeli: str = Field(title="Imum Coeli", description="The name of Imum Coeli in the chart, in the language")
49
49
  Mean_Lilith: str = Field(title="Mean Lilith", description="The name of Mean Lilith in the chart, in the language")
50
- True_South_Node: str = Field(title="True South Node", description="The name of True South Node in the chart, in the language")
51
- Mean_South_Node: str = Field(title="Mean South Node", description="The name of Mean South Node in the chart, in the language")
50
+ True_South_Lunar_Node: str = Field(title="True South Lunar Node", description="The name of True South Lunar Node in the chart, in the language")
51
+ Mean_South_Lunar_Node: str = Field(title="Mean South Lunar Node", description="The name of Mean South Lunar Node in the chart, in the language")
52
52
  True_Lilith: str = Field(title="True Lilith", description="The name of True Lilith in the chart, in the language")
53
53
  Earth: str = Field(title="Earth", description="The name of Earth in the chart, in the language")
54
54
  Pholus: str = Field(title="Pholus", description="The name of Pholus in the chart, in the language")
@@ -149,11 +149,10 @@ class KerykeionLanguageModel(SubscriptableBaseModel):
149
149
  houses_system_X: str = Field(title="Houses System X", description="The houses system X label in the chart, in the language")
150
150
  houses_system_Y: str = Field(title="Houses System Y", description="The houses system Y label in the chart, in the language")
151
151
  Natal: str = Field(title="Natal", description="The natal chart label in the chart, in the language")
152
- ExternalNatal: str = Field(title="External Natal", description="The external natal chart label in the chart, in the language")
153
152
  Synastry: str = Field(title="Synastry", description="The synastry chart label in the chart, in the language")
154
153
  Transit: str = Field(title="Transit", description="The transit chart label in the chart, in the language")
155
154
  Composite: str = Field(title="Composite", description="The composite chart label in the chart, in the language")
156
- Return: str = Field(title="Return", description="The return chart label in the chart, in the language")
155
+ Return: str = Field(title="DualReturnChart", description="The return chart label in the chart, in the language")
157
156
  return_aspects: str = Field(title="Return Aspects", description="The return aspects label in the chart, in the language")
158
157
  solar_return: str = Field(title="Solar Return", description="The solar return label in the chart, in the language")
159
158
  lunar_return: str = Field(title="Lunar Return", description="The lunar return label in the chart, in the language")
@@ -171,6 +170,7 @@ class KerykeionLanguageModel(SubscriptableBaseModel):
171
170
  fixed: str = Field(title="Fixed", description="The fixed quality label in the chart, in the language")
172
171
  mutable: str = Field(title="Mutable", description="The mutable quality label in the chart, in the language")
173
172
  birth_chart: str = Field(title="Birth Chart", description="The birth chart label in the chart, in the language")
173
+ weekdays: Optional[dict[str, str]] = Field(default=None, title="Weekdays", description="Mapping of English weekday names to localized names")
174
174
 
175
175
  # Settings Model
176
176
  class KerykeionSettingsModel(SubscriptableBaseModel):
@@ -1,5 +1,5 @@
1
- from kerykeion.kr_types.kr_literals import AstrologicalPoint
2
- from kerykeion.kr_types.kr_models import ActiveAspect
1
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
2
+ from kerykeion.schemas.kr_models import ActiveAspect
3
3
  from typing import List
4
4
 
5
5
 
@@ -14,10 +14,10 @@ DEFAULT_ACTIVE_POINTS: List[AstrologicalPoint] = [
14
14
  "Uranus",
15
15
  "Neptune",
16
16
  "Pluto",
17
- # "Mean_Node",
18
- "True_Node",
19
- # "Mean_South_Node",
20
- "True_South_Node",
17
+ # "Mean_North_Lunar_Node",
18
+ "True_North_Lunar_Node",
19
+ # "Mean_South_Lunar_Node",
20
+ "True_South_Lunar_Node",
21
21
  "Chiron",
22
22
  "Mean_Lilith",
23
23
  # "True_Lilith",
@@ -49,7 +49,56 @@ DEFAULT_ACTIVE_POINTS: List[AstrologicalPoint] = [
49
49
  ]
50
50
  """
51
51
  Default list of active points in the charts or aspects calculations.
52
- The full list of points is available in the `kr_types.kr_literals.AstrologicalPoint` literal.
52
+ The full list of points is available in the `schemas.kr_literals.AstrologicalPoint` literal.
53
+ """
54
+
55
+ ALL_ACTIVE_POINTS: List[AstrologicalPoint] = [
56
+ "Sun",
57
+ "Moon",
58
+ "Mercury",
59
+ "Venus",
60
+ "Mars",
61
+ "Jupiter",
62
+ "Saturn",
63
+ "Uranus",
64
+ "Neptune",
65
+ "Pluto",
66
+ "Mean_North_Lunar_Node",
67
+ "True_North_Lunar_Node",
68
+ "Mean_South_Lunar_Node",
69
+ "True_South_Lunar_Node",
70
+ "Chiron",
71
+ "Mean_Lilith",
72
+ "True_Lilith",
73
+ "Earth",
74
+ "Pholus",
75
+ "Ceres",
76
+ "Pallas",
77
+ "Juno",
78
+ "Vesta",
79
+ "Eris",
80
+ "Sedna",
81
+ "Haumea",
82
+ "Makemake",
83
+ "Ixion",
84
+ "Orcus",
85
+ "Quaoar",
86
+ "Regulus",
87
+ "Spica",
88
+ "Ascendant",
89
+ "Medium_Coeli",
90
+ "Descendant",
91
+ "Imum_Coeli",
92
+ "Vertex",
93
+ "Anti_Vertex",
94
+ "Pars_Fortunae",
95
+ "Pars_Spiritus",
96
+ "Pars_Amoris",
97
+ "Pars_Fidei"
98
+ ]
99
+ """
100
+ Full list of active points in the charts or aspects calculations.
101
+ The full list of points is available in the `schemas.kr_literals.AstrologicalPoint` literal.
53
102
  """
54
103
 
55
104
  DEFAULT_ACTIVE_ASPECTS: List[ActiveAspect] = [
@@ -67,7 +116,25 @@ DEFAULT_ACTIVE_ASPECTS: List[ActiveAspect] = [
67
116
  ]
68
117
  """
69
118
  Default list of active aspects in the aspects calculations.
70
- The full list of aspects is available in the `kr_types.kr_literals.AspectName` literal.
119
+ The full list of aspects is available in the `schemas.kr_literals.AspectName` literal.
120
+ """
121
+
122
+ ALL_ACTIVE_ASPECTS: List[ActiveAspect] = [
123
+ {"name": "conjunction", "orb": 10},
124
+ {"name": "opposition", "orb": 10},
125
+ {"name": "trine", "orb": 8},
126
+ {"name": "sextile", "orb": 6},
127
+ {"name": "square", "orb": 5},
128
+ {"name": "quintile", "orb": 1},
129
+ {"name": "semi-sextile", "orb": 1},
130
+ {"name": "semi-square", "orb": 1},
131
+ {"name": "sesquiquadrate", "orb": 1},
132
+ {"name": "biquintile", "orb": 1},
133
+ {"name": "quincunx", "orb": 1},
134
+ ]
135
+ """
136
+ Full list of active aspects in the charts or aspects calculations.
137
+ The full list of aspects is available in the `schemas.kr_literals.AspectName` literal.
71
138
  """
72
139
 
73
140
  DISCEPOLO_SCORE_ACTIVE_ASPECTS: List[ActiveAspect] = [
@@ -8,7 +8,7 @@ from json import load
8
8
  import logging
9
9
  from pathlib import Path
10
10
  from typing import Dict, Union
11
- from kerykeion.kr_types import KerykeionSettingsModel
11
+ from kerykeion.schemas import KerykeionSettingsModel
12
12
  import functools
13
13
 
14
14