Welcome to the auto-generated documentation for the Kefer Astrology function-wrapper project.
Documentation Structure
- Project Overview - Quickstart, runtime split, and high-level system view
- Installation and Venvs - Environment setup and multi-venv workflow
- Architecture - Backend responsibilities and storage model
- Ephemeris files - BSP catalog, date range overlaps, de440s upgrade, asteroid limitations
- FastAPI + React + Tauri - Recommended integration for the target desktop/web stack
- Models Overview - Mermaid class diagram showing all dataclasses and their relationships
- Enums Overview - Complete list of all enumerations and their members
- User Interfaces
- Streamlit UI - Web-based interface for interactive chart creation
- Kivy UI - Desktop application for native chart rendering
- Module Documentation - Detailed documentation for each module:
- Engineering Notes
Model Class Diagram
The following diagram shows the relationships between all dataclasses in the models module:
%%{init: {'theme':'default', 'classDiagram': {'direction':'TB'}}}%%
classDiagram
class Annotation {
str title
str content
datetime created
str author
}
class Aspect {
str type
str source_id
str target_id
float angle
float orb
}
class AspectDefinition {
str id
str glyph
float angle
float default_orb
Dict~str,str~ i18n
str color
int importance
str line_style
float line_width
bool show_label
List~AspectContext(Enum)~ valid_contexts
}
class AspectSettings {
str id
bool enabled
float orb
str color
int importance
str line_style
float line_width
bool show_label
}
class AstroModel {
str name
List~BodyDefinition~ body_definitions
List~AspectDefinition~ aspect_definitions
List~Sign~ signs
ModelSettings settings
EngineType(Enum) engine
ZodiacType(Enum) zodiac_type
Ayanamsa(Enum) ayanamsa
}
class Attachment {
str filename
str url
str type
}
class BodyDefinition {
str id
str glyph
str formula
Element(Enum) element
float avg_speed
float max_orb
Dict~str,str~ i18n
ObjectType(Enum) object_type
Dict~str,str~ computation_map
bool requires_location
bool requires_house_system
}
class CelestialBody {
str id
str definition_id
float degree
str sign
bool retrograde
float speed
}
class ChartConfig {
ChartMode(Enum) mode
HouseSystem(Enum) house_system
ZodiacType(Enum) zodiac_type
List~str~ included_points
Dict~str,float~ aspect_orbs
str display_style
str color_theme
str override_ephemeris
str model
EngineType(Enum) engine
Ayanamsa(Enum) ayanamsa
List~str~ observable_objects
TimeSystem(Enum) time_system
}
class ChartInstance {
str id
ChartSubject subject
ChartConfig config
Horoscope computed_chart
List~str~ tags
}
class ChartPreset {
str name
ChartConfig config
}
class ChartRelation {
RelationType(Enum) type
str source
str target
str method
DateRange time_span
}
class ChartSubject {
str id
str name
datetime event_time
Location location
}
class DateRange {
datetime start
datetime end
}
class ElementColorSettings {
str fire
str earth
str air
str water
}
class EphemerisSource {
str name
str backend
}
class Horoscope {
datetime for_time
Location location
List~CelestialBody~ bodies
List~House~ houses
List~Aspect~ aspects
}
class House {
int number
float cusp_degree
str sign
}
class Location {
str name
float latitude
float longitude
str timezone
}
class ModelOverrides {
List~OverrideEntry~ points
List~OverrideEntry~ aspects
Dict~str,float~ override_orbs
}
class ModelSettings {
HouseSystem(Enum) default_house_system
List~str~ default_aspects
List~str~ default_bodies
float standard_orb
List~str~ default_transit_aspects
List~str~ default_direction_aspects
List~str~ default_transit_bodies
List~str~ default_direction_bodies
float degrees_in_circle
float obliquity_j2000
float coordinate_tolerance
}
class OverrideEntry {
str id
str glyph
float angle
float default_orb
List~str~ only_for
Dict~str,str~ i18n
bool computed
}
class RadixPointColorSettings {
Dict~str,str~ colors
}
class Sign {
str name
str glyph
str abbreviation
Element(Enum) element
Dict~str,str~ i18n
}
class ViewLayout {
str name
LayoutStyle(Enum) layout_style
List~str~ chart_instances
List~ChartRelation~ relations
List~ViewModule~ modules
}
class ViewModule {
ViewModuleType(Enum) type
Dict~any,any~ config
}
class Workspace {
str owner
List~ChartSubject~ subjects
List~ChartInstance~ charts
List~ChartPreset~ chart_presets
List~ViewLayout~ layouts
List~Annotation~ annotations
str active_model
WorkspaceDefaults default
List~str~ aspects
List~str~ bodies
Dict~str,AstroModel~ models
ModelOverrides model_overrides
}
class WorkspaceDefaults {
HouseSystem(Enum) default_house_system
List~str~ default_bodies
List~str~ default_aspects
EngineType(Enum) ephemeris_engine
str ephemeris_backend
ElementColorSettings element_colors
RadixPointColorSettings radix_point_colors
Location default_location
str language
str theme
TimeSystem(Enum) time_system
}
AstroModel --> AspectDefinition
AstroModel --> BodyDefinition
AstroModel --> ModelSettings
AstroModel --> Sign
ChartInstance --> ChartConfig
ChartInstance --> ChartSubject
ChartInstance --> Horoscope
ChartPreset --> ChartConfig
ChartRelation --> DateRange
ChartSubject --> Location
Horoscope --> Aspect
Horoscope --> CelestialBody
Horoscope --> House
Horoscope --> Location
ModelOverrides --> OverrideEntry
ViewLayout --> ChartRelation
ViewLayout --> ViewModule
Workspace --> Annotation
Workspace --> AstroModel
Workspace --> ChartInstance
Workspace --> ChartPreset
Workspace --> ChartSubject
Workspace --> ModelOverrides
Workspace --> ViewLayout
Workspace --> WorkspaceDefaults
WorkspaceDefaults --> ElementColorSettings
WorkspaceDefaults --> Location
WorkspaceDefaults --> RadixPointColorSettings