1919
2020
2121class Angle :
22- def __init__ (self , angle : float , format : int = convert .FORMAT_DMS ) -> None :
22+ precision = {
23+ calc .DEGREE : convert .ROUND_DEGREE ,
24+ calc .MINUTE : convert .ROUND_MINUTE ,
25+ calc .SECOND : convert .ROUND_SECOND ,
26+ }
27+
28+ def __init__ (self , angle : float , format : int = convert .FORMAT_DMS , round_to : int = calc .SECOND ) -> None :
2329 self .raw = angle
24- self .formatted = convert .dec_to_string (angle , format )
30+ self .formatted = convert .dec_to_string (angle , format , Angle . precision [ round_to ] )
2531 self .direction = None
2632 self .degrees = None
2733 self .minutes = None
@@ -41,8 +47,8 @@ def __init__(self, aspect: dict, objects: dict) -> None:
4147 self .type = _ (names .ASPECTS [aspect ['aspect' ]])
4248 self .aspect = aspect ['aspect' ]
4349 self .orb = aspect ['orb' ]
44- self .distance = Angle (aspect ['distance' ])
45- self .difference = Angle (aspect ['difference' ])
50+ self .distance = Angle (aspect ['distance' ], round_to = settings . angle_precision )
51+ self .difference = Angle (aspect ['difference' ], round_to = settings . angle_precision )
4652 self .movement = AspectMovement (aspect )
4753 self .condition = AspectCondition (aspect )
4854
@@ -193,10 +199,10 @@ def __init__(self, object: dict, objects: dict = None, houses: dict = None, is_d
193199 self .date_time = DateTime (object ['date_time' ])
194200
195201 if 'lat' in object :
196- self .latitude = Angle (object ['lat' ])
202+ self .latitude = Angle (object ['lat' ], round_to = settings . angle_precision )
197203
198- self .longitude = Angle (object ['lon' ])
199- self .sign_longitude = Angle (position .sign_longitude (object ))
204+ self .longitude = Angle (object ['lon' ], round_to = settings . angle_precision )
205+ self .sign_longitude = Angle (position .sign_longitude (object ), round_to = settings . angle_precision )
200206 self .sign = Sign (position .sign (object ))
201207 self .decan = Decan (position .decan (object ))
202208
@@ -212,7 +218,7 @@ def __init__(self, object: dict, objects: dict = None, houses: dict = None, is_d
212218 self .movement = ObjectMovement (object )
213219
214220 if 'dec' in object :
215- self .declination = Angle (object ['dec' ])
221+ self .declination = Angle (object ['dec' ], round_to = settings . angle_precision )
216222
217223 if object ['type' ] not in (chart .HOUSE , chart .ANGLE , chart .FIXED_STAR ):
218224 self .out_of_bounds = calculate .is_out_of_bounds (object = object , obliquity = obliquity )
0 commit comments