keplemon 0.2.1__cp311-cp311-macosx_11_0_arm64.whl → 0.3.1__cp311-cp311-macosx_11_0_arm64.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 keplemon might be problematic. Click here for more details.

keplemon/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- from keplemon._keplemon.time import load_time_constants # type: ignore
1
+ from keplemon._keplemon.saal.time_func_interface import load_time_constants # type: ignore
2
2
  from keplemon._keplemon import ( # type: ignore
3
3
  get_thread_count,
4
4
  set_thread_count,
Binary file
keplemon/bodies.pyi CHANGED
@@ -1,8 +1,8 @@
1
1
  # flake8: noqa
2
- from keplemon.elements import TLE, CartesianState, Ephemeris
2
+ from keplemon.elements import TLE, CartesianState, Ephemeris, KeplerianState
3
3
  from keplemon.catalogs import TLECatalog
4
4
  from keplemon.time import Epoch, TimeSpan
5
- from keplemon.events import CloseApproach, CloseApproachReport
5
+ from keplemon.events import CloseApproach, CloseApproachReport, HorizonAccessReport
6
6
 
7
7
  class Earth:
8
8
  @staticmethod
@@ -27,6 +27,9 @@ class Satellite:
27
27
  name: str | None
28
28
  """Human-readable name of the satellite"""
29
29
 
30
+ keplerian_state: KeplerianState | None
31
+ """Keplerian state of the satellite at the epoch of the TLE, if available"""
32
+
30
33
  @classmethod
31
34
  def from_tle(cls, tle: TLE) -> Satellite:
32
35
  """
@@ -153,6 +156,28 @@ class Constellation:
153
156
  ...
154
157
 
155
158
  def __getitem__(self, satellite_id: int) -> Satellite: ...
159
+ def get_horizon_access_report(
160
+ self,
161
+ site: Observatory,
162
+ start: Epoch,
163
+ end: Epoch,
164
+ min_el: float,
165
+ min_duration: TimeSpan,
166
+ ) -> HorizonAccessReport:
167
+ """
168
+ Calculate horizon access to a given observatory.
169
+
170
+ Args:
171
+ site: Observatory to check for horizon access
172
+ start: UTC epoch of the start of the report
173
+ end: UTC epoch of the end of the report
174
+ min_el: Minimum elevation angle in **_degrees_**
175
+ min_duration: Minimum duration of access
176
+
177
+ Returns:
178
+ Horizon access report for the constellation from the observatory
179
+ """
180
+ ...
156
181
 
157
182
  class Sensor:
158
183
  """
@@ -204,3 +229,26 @@ class Observatory:
204
229
  TEME Cartesian state of the observatory in **_kilometers_** and **_kilometers per second_**
205
230
  """
206
231
  ...
232
+
233
+ def get_horizon_access_report(
234
+ self,
235
+ satellite: Satellite,
236
+ start: Epoch,
237
+ end: Epoch,
238
+ min_el: float,
239
+ min_duration: TimeSpan,
240
+ ) -> HorizonAccessReport:
241
+ """
242
+ Calculate horizon access for a satellite from the observatory.
243
+
244
+ Args:
245
+ satellite: Satellite to check for horizon access
246
+ start: UTC epoch of the start of the report
247
+ end: UTC epoch of the end of the report
248
+ min_el: Minimum elevation angle in **_degrees_**
249
+ min_duration: Minimum duration of access in **_seconds_**
250
+
251
+ Returns:
252
+ Horizon access report for the satellite from the observatory
253
+ """
254
+ ...
keplemon/elements.py CHANGED
@@ -7,6 +7,8 @@ from keplemon._keplemon.elements import ( # type: ignore
7
7
  Ephemeris,
8
8
  SphericalVector,
9
9
  TopocentricElements,
10
+ HorizonState,
11
+ HorizonElements,
10
12
  )
11
13
 
12
14
  __all__ = [
@@ -18,4 +20,6 @@ __all__ = [
18
20
  "Ephemeris",
19
21
  "SphericalVector",
20
22
  "TopocentricElements",
23
+ "HorizonState",
24
+ "HorizonElements",
21
25
  ]
keplemon/elements.pyi CHANGED
@@ -2,9 +2,65 @@
2
2
  from __future__ import annotations
3
3
  from keplemon.time import Epoch
4
4
  from keplemon.enums import Classification, KeplerianType, ReferenceFrame
5
- from keplemon.propagation import ForceProperties
6
5
  from keplemon.events import CloseApproach
7
6
 
7
+ class HorizonElements:
8
+ """
9
+ Args:
10
+ range: Range in **_kilometers_**
11
+ az: Azimuth in **_degrees_**
12
+ el: Elevation in **_degrees_**
13
+ range_rate: Range rate in **_kilometers per second_**
14
+ az_rate: Azimuth rate in **_degrees per second_**
15
+ el_rate: Elevation rate in **_degrees per second_**
16
+ """
17
+
18
+ range: float | None
19
+ azimuth: float
20
+ elevation: float
21
+ range_rate: float | None
22
+ azimuth_rate: float | None
23
+ elevation_rate: float | None
24
+
25
+ def __init__(
26
+ self,
27
+ azimuth: float,
28
+ elevation: float,
29
+ ) -> None: ...
30
+
31
+ class HorizonState:
32
+ """
33
+ Args:
34
+ epoch: UTC epoch of the state
35
+ elements: HorizonElements of the state
36
+ """
37
+
38
+ epoch: Epoch
39
+ """UTC epoch of the state"""
40
+
41
+ elements: HorizonElements
42
+ """Horizon elements of the state"""
43
+
44
+ range: float | None
45
+ """Range in **_kilometers_**"""
46
+
47
+ azimuth: float
48
+ """Azimuth in **_degrees_**"""
49
+
50
+ elevation: float
51
+ """Elevation in **_degrees_**"""
52
+
53
+ range_rate: float | None
54
+ """Range rate in **_kilometers per second_**"""
55
+
56
+ azimuth_rate: float | None
57
+ """Azimuth rate in **_degrees per second_**"""
58
+
59
+ elevation_rate: float | None
60
+ """Elevation rate in **_degrees per second_**"""
61
+
62
+ def __init__(self, epoch: Epoch, elements: HorizonElements) -> None: ...
63
+
8
64
  class KeplerianElements:
9
65
  """
10
66
  Args:
keplemon/events.py CHANGED
@@ -1,6 +1,8 @@
1
1
  from keplemon._keplemon.events import ( # type: ignore
2
2
  CloseApproach,
3
3
  CloseApproachReport,
4
+ HorizonAccess,
5
+ HorizonAccessReport,
4
6
  )
5
7
 
6
- __all__ = ["CloseApproach", "CloseApproachReport"]
8
+ __all__ = ["CloseApproach", "CloseApproachReport", "HorizonAccess", "HorizonAccessReport"]
keplemon/events.pyi CHANGED
@@ -1,5 +1,6 @@
1
1
  # flake8: noqa
2
- from keplemon.time import Epoch
2
+ from keplemon.time import Epoch, TimeSpan
3
+ from keplemon.elements import HorizonState
3
4
 
4
5
  class CloseApproach:
5
6
  epoch: Epoch
@@ -27,3 +28,46 @@ class CloseApproachReport:
27
28
 
28
29
  distance_threshold: float
29
30
  def __init__(self, start: Epoch, end: Epoch, distance_threshold: float) -> None: ...
31
+
32
+ class HorizonAccess:
33
+
34
+ satellite_id: int
35
+ """ID of the satellite for which the access is calculated"""
36
+
37
+ start: HorizonState
38
+ """State of the satellite at the start of the access period"""
39
+
40
+ end: HorizonState
41
+ """State of the satellite at the end of the access period"""
42
+
43
+ class HorizonAccessReport:
44
+ """
45
+ Args:
46
+ start: UTC epoch of the start of the access report
47
+ end: UTC epoch of the end of the access report
48
+ min_elevation: Minimum elevation angle for access in **_degrees_**
49
+ min_duration: Minimum duration of access
50
+ """
51
+
52
+ accesses: list[HorizonAccess]
53
+ """List of horizon accesses found during the screening"""
54
+
55
+ elevation_threshold: float
56
+ """Minimum elevation angle for access in **_degrees_**"""
57
+
58
+ start: Epoch
59
+ """UTC epoch of the start of the access report"""
60
+
61
+ end: Epoch
62
+ """UTC epoch of the end of the access report"""
63
+
64
+ duration_threshold: TimeSpan
65
+ """Minimum duration of a valid access"""
66
+
67
+ def __init__(
68
+ self,
69
+ start: Epoch,
70
+ end: Epoch,
71
+ min_elevation: float,
72
+ min_duration: TimeSpan,
73
+ ) -> None: ...
keplemon/exceptions.py ADDED
@@ -0,0 +1,5 @@
1
+ from keplemon._keplemon.exceptions import ( # type: ignore
2
+ SAALError,
3
+ )
4
+
5
+ __all__ = ["SAALError"]
@@ -0,0 +1,5 @@
1
+ # flake8: noqa
2
+ from keplemon.enums import SAALKeyMode
3
+
4
+ def get_key_mode() -> SAALKeyMode: ...
5
+ def set_key_mode(mode: SAALKeyMode) -> None: ...
@@ -0,0 +1,33 @@
1
+ from keplemon._keplemon.saal.astro_func_interface import ( # type: ignore
2
+ teme_to_topo,
3
+ ra_dec_to_az_el_time,
4
+ ra_dec_to_az_el,
5
+ XA_TOPO_RA,
6
+ XA_TOPO_DEC,
7
+ XA_TOPO_AZ,
8
+ XA_TOPO_EL,
9
+ XA_TOPO_RANGE,
10
+ XA_TOPO_RADOT,
11
+ XA_TOPO_DECDOT,
12
+ XA_TOPO_AZDOT,
13
+ XA_TOPO_ELDOT,
14
+ XA_TOPO_RANGEDOT,
15
+ XA_TOPO_SIZE,
16
+ )
17
+
18
+ __all__ = [
19
+ "teme_to_topo",
20
+ "ra_dec_to_az_el_time",
21
+ "ra_dec_to_az_el",
22
+ "XA_TOPO_RA",
23
+ "XA_TOPO_DEC",
24
+ "XA_TOPO_AZ",
25
+ "XA_TOPO_EL",
26
+ "XA_TOPO_RANGE",
27
+ "XA_TOPO_RADOT",
28
+ "XA_TOPO_DECDOT",
29
+ "XA_TOPO_AZDOT",
30
+ "XA_TOPO_ELDOT",
31
+ "XA_TOPO_RANGEDOT",
32
+ "XA_TOPO_SIZE",
33
+ ]
@@ -0,0 +1,100 @@
1
+ # flake8: noqa: F401
2
+
3
+ def ra_dec_to_az_el(
4
+ theta: float,
5
+ lat: float,
6
+ long: float,
7
+ ra: float,
8
+ dec: float,
9
+ ) -> tuple[float, float]:
10
+ """
11
+ Convert right ascension and declination to azimuth and elevation.
12
+
13
+ Args:
14
+ theta: Greenwich angle in radians.
15
+ lat: Sensor latitude in degrees.
16
+ long: Sensor longitude in degrees.
17
+ ra: TEME right ascension in degrees.
18
+ dec: TEME declination in degrees.
19
+
20
+ Returns:
21
+ A tuple containing azimuth and elevation in degrees.
22
+ """
23
+ ...
24
+
25
+ def ra_dec_to_az_el_time(
26
+ ds50_utc: float,
27
+ lat: float,
28
+ long: float,
29
+ ra: float,
30
+ dec: float,
31
+ ) -> tuple[float, float]:
32
+ """
33
+ Convert right ascension and declination to azimuth and elevation.
34
+
35
+ Args:
36
+ ds50_utc: Epoch in DS50 UTC format.
37
+ lat: Sensor latitude in degrees.
38
+ long: Sensor longitude in degrees.
39
+ ra: Right ascension in degrees.
40
+ dec: Declination in degrees.
41
+
42
+ Returns:
43
+ A tuple containing azimuth and elevation in degrees.
44
+ """
45
+ ...
46
+
47
+ def teme_to_topo(
48
+ theta: float,
49
+ lat: float,
50
+ sen_pos: list[float],
51
+ sat_pos: list[float],
52
+ sat_vel: list[float],
53
+ ) -> list[float]:
54
+ """
55
+ Convert TEME coordinates to topocentric coordinates.
56
+
57
+ Args:
58
+ theta: Greenwich angle plus the sensor longitude in radians.
59
+ lat: Latitude in degrees.
60
+ sen_pos: Sensor TEME position in kilometers.
61
+ sat_pos: Satellite TEME position in kilometers.
62
+ sat_vel: Satellite TEME velocity in kilometers/second.
63
+
64
+ Returns:
65
+ Topocentric coordinates as a list of floats.
66
+ """
67
+ ...
68
+
69
+ XA_TOPO_AZ: int
70
+ """Index for topocentric azimuth in degrees."""
71
+
72
+ XA_TOPO_EL: int
73
+ """Index for topocentric elevation in degrees."""
74
+
75
+ XA_TOPO_RANGE: int
76
+ """Index for topocentric range in kilometers."""
77
+
78
+ XA_TOPO_RADOT: int
79
+ """Index for topocentric right ascension dot in degrees/second."""
80
+
81
+ XA_TOPO_DECDOT: int
82
+ """Index for topocentric declination dot in degrees/second."""
83
+
84
+ XA_TOPO_AZDOT: int
85
+ """Index for topocentric azimuth dot in degrees/second."""
86
+
87
+ XA_TOPO_ELDOT: int
88
+ """Index for topocentric elevation dot in degrees/second."""
89
+
90
+ XA_TOPO_RANGEDOT: int
91
+ """Index for topocentric range dot in kilometers/second."""
92
+
93
+ XA_TOPO_RA: int
94
+ """Index for topocentric right ascension in degrees."""
95
+
96
+ XA_TOPO_DEC: int
97
+ """Index for topocentric declination in degrees."""
98
+
99
+ XA_TOPO_SIZE: int
100
+ """Size of XA_TOPO_ array"""
@@ -0,0 +1,7 @@
1
+ # flake8: noqa
2
+
3
+ def b3_to_csv() -> str: ...
4
+ def load_from_b3(b3_string: str) -> int: ...
5
+ def remove_ob_key(key: int) -> None: ...
6
+ def get_ob_field(key: int, field: str) -> str: ...
7
+ def get_ob_array(key: int) -> list[float]: ...
@@ -0,0 +1,17 @@
1
+ from keplemon._keplemon.saal.time_func_interface import ( # type: ignore
2
+ time_constants_loaded,
3
+ load_time_constants,
4
+ ds50_utc_to_ut1,
5
+ get_fk4_greenwich_angle,
6
+ get_fk5_greenwich_angle,
7
+ ymd_components_to_ds50,
8
+ )
9
+
10
+ __all__ = [
11
+ "time_constants_loaded",
12
+ "load_time_constants",
13
+ "ds50_utc_to_ut1",
14
+ "get_fk4_greenwich_angle",
15
+ "get_fk5_greenwich_angle",
16
+ "ymd_components_to_ds50",
17
+ ]
@@ -0,0 +1,70 @@
1
+ # flake8: noqa: F401
2
+
3
+ def ymd_components_to_ds50(year: int, month: int, day: int, hour: int, minute: int, second: float) -> float:
4
+ """
5
+ Convert year, month, day, hour, minute, and second components to a DS50 time.
6
+
7
+ Args:
8
+ year: Year component.
9
+ month: Month component (1-12).
10
+ day: Day component (1-31).
11
+ hour: Hour component (0-23).
12
+ minute: Minute component (0-59).
13
+ second: Second component (0.0-59.999...).
14
+
15
+ Returns:
16
+ DS50 time as a float.
17
+ """
18
+ ...
19
+
20
+ def time_constants_loaded() -> bool:
21
+ """
22
+ Returns:
23
+ True if time constants have been loaded to the SAAL binaries, False otherwise.
24
+ """
25
+ ...
26
+
27
+ def load_time_constants(file_path: str) -> None:
28
+ """
29
+ Load time constants into from a file for use by the SAAL binaries.
30
+
31
+ Args:
32
+ Path to the SAAL-formatted time constants file.
33
+ """
34
+ ...
35
+
36
+ def ds50_utc_to_ut1(ds50: float) -> float:
37
+ """
38
+ Convert a DS50 UTC time to UT1.
39
+
40
+ Args:
41
+ DS50 UTC time
42
+
43
+ Returns:
44
+ UT1 time
45
+ """
46
+ ...
47
+
48
+ def get_fk4_greenwich_angle(ds50_ut1: float) -> float:
49
+ """
50
+ Get the FK4 Greenwich angle.
51
+
52
+ Args:
53
+ ds50_ut1: Epoch in DS50 UT1 format
54
+
55
+ Returns:
56
+ FK4 Greenwich angle in radians.
57
+ """
58
+ ...
59
+
60
+ def get_fk5_greenwich_angle(ds50_ut1: float) -> float:
61
+ """
62
+ Get the FK5 Greenwich angle.
63
+
64
+ Args:
65
+ ds50_ut1: Epoch in DS50 UT1 format
66
+
67
+ Returns:
68
+ FK5 Greenwich angle in radians.
69
+ """
70
+ ...
keplemon/time.py CHANGED
@@ -1,5 +1,4 @@
1
1
  from keplemon._keplemon.time import ( # type: ignore
2
- load_time_constants,
3
2
  TimeSpan,
4
3
  TimeComponents,
5
4
  Epoch,
@@ -9,7 +8,6 @@ from datetime import datetime
9
8
  from keplemon._keplemon.enums import TimeSystem # type: ignore
10
9
 
11
10
  __all__ = [
12
- "load_time_constants",
13
11
  "TimeSpan",
14
12
  "TimeComponents",
15
13
  "Epoch",
@@ -18,13 +16,9 @@ __all__ = [
18
16
 
19
17
 
20
18
  def request_time_constants_update(output_path: str) -> None:
21
- finals = requests.get(
22
- "https://maia.usno.navy.mil/ser7/finals.all"
23
- ).text.splitlines()
19
+ finals = requests.get("https://maia.usno.navy.mil/ser7/finals.all").text.splitlines()
24
20
 
25
- leap_seconds = requests.get(
26
- "https://maia.usno.navy.mil/ser7/tai-utc.dat"
27
- ).text.splitlines()
21
+ leap_seconds = requests.get("https://maia.usno.navy.mil/ser7/tai-utc.dat").text.splitlines()
28
22
 
29
23
  month_map = {
30
24
  "JAN": 1,
keplemon/time.pyi CHANGED
@@ -164,7 +164,7 @@ class Epoch:
164
164
  ...
165
165
 
166
166
  @classmethod
167
- def from_components(cls, components: TimeComponents, time_system: TimeSystem) -> Epoch:
167
+ def from_time_components(cls, components: TimeComponents, time_system: TimeSystem) -> Epoch:
168
168
  """
169
169
  Args:
170
170
  components: Epoch represented as individual components
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: keplemon
3
- Version: 0.2.1
3
+ Version: 0.3.1
4
4
  Requires-Dist: requests
5
5
  Requires-Dist: click
6
6
  Requires-Dist: maturin>=1.0,<2.0 ; extra == 'dev'
@@ -1,10 +1,10 @@
1
- keplemon-0.2.1.dist-info/METADATA,sha256=bncXm0xVjRXq6_20nfZwVx5uc7ooEEukjfPa_Faj6Qw,3792
2
- keplemon-0.2.1.dist-info/WHEEL,sha256=uknsTnQ4D3qZvtLjoBwOrQ-H3LYkwihRUx6jxoJPLSU,104
3
- keplemon-0.2.1.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
4
- keplemon/__init__.py,sha256=WbSkCGu2zpYEemTr-QtRXWnH7amDTQ7OSVD59BxI9ig,812
1
+ keplemon-0.3.1.dist-info/METADATA,sha256=_O5mIQp231-M92HkXHJ4tgVz4ig-8M9olCGpWd7QZeo,3792
2
+ keplemon-0.3.1.dist-info/WHEEL,sha256=4POUqOUvk-fNEqEa1NBlmMsgWQGl6FnEg9vsbsvEmNM,104
3
+ keplemon-0.3.1.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
4
+ keplemon/__init__.py,sha256=M9q5lNYh_BE6l4xCGJ5IH5PQH9aNm4q_r67ljsNkKvM,832
5
5
  keplemon/__init__.pyi,sha256=uE60ln_KJgcfvKburVmbcKT0h_wLPgjBWuyNLgI8ETI,1295
6
6
  keplemon/__main__.py,sha256=-3GVkDOA0lV0MIqU9gPb4zbVimg2lA8HMkvdPDw1O28,669
7
- keplemon/_keplemon.cpython-311-darwin.so,sha256=vo2YiQPWR4YBlZ2bEfXESASY2m8CbW4LTD-LoUnXEIQ,1688272
7
+ keplemon/_keplemon.cpython-311-darwin.so,sha256=UCG3LQ5YgoZomygkeQb6dmLeiWGyng4fGqebVFPJ0z8,1823248
8
8
  keplemon/assets/EGM-2008.GEO,sha256=K2nG8HGLATIHZYMfw3GSClYOTCuZ7rq4RdCeUNgCw5A,148770
9
9
  keplemon/assets/EGM-96.GEO,sha256=VBkILuvEMwAPuWmUHy2PeyEfULOwJ4PEJLNf5hr84mU,148770
10
10
  keplemon/assets/GEM_5-22.GEO,sha256=stemYLn1ChXa-VdLGHYfa15AXZa_xxGZQ65p4c3gffI,6852
@@ -17,17 +17,18 @@ keplemon/assets/SGP4_Open_License.txt,sha256=0WofOXQb5YJqnYhXWXnBdCajiTJQAT60UAk
17
17
  keplemon/assets/WGS84-70.GEO,sha256=ARjEC_5s2SVd0Kh9udbTy1ztBwTeuBYPOhUVJgIqit8,148510
18
18
  keplemon/assets/time_constants.dat,sha256=qDpJ2UrQvIDfxsBc4P2AdLS-b2lyR7RCzjqmeG4Ypl8,1226736
19
19
  keplemon/bodies.py,sha256=XnaY6XTuj8CHM3XOwOSY3E8nSo0RWwCcAY0FGxAVWa8,208
20
- keplemon/bodies.pyi,sha256=9BNhUpAm2nQtaMLZkz0xF5T-4i5SkksERkOCRIm3sP8,5621
20
+ keplemon/bodies.pyi,sha256=2kxW_n6skCf_QuVUGM_CeZIwf1UOyXu1TKCp_Y_txDk,7189
21
21
  keplemon/catalogs.py,sha256=lw71NiXlVtb-z3pQR03afxtkLca4HJcnpZ6kDCcR-Lk,102
22
22
  keplemon/catalogs.pyi,sha256=NlWv2E7g5JH8LZyyPCDe9Lh_Me5Fmpv3sPinnbJpLf8,524
23
- keplemon/elements.py,sha256=Nijsj-qHNuLtc0wfX16eMcBGOsBPZamvTfl8DHTl9P4,399
24
- keplemon/elements.pyi,sha256=Ds3viksVpHARyXmhQx4_sR_pDznEApMWwIkbkQ43eJc,8056
23
+ keplemon/elements.py,sha256=QSSiUGN8cA8X85FR-CVfy8lwsNrBtrQbrw9HWr_cH3I,481
24
+ keplemon/elements.pyi,sha256=kkujHEbZykzdBLmhoJW9kWYBrjpI47m9X06vei7GudY,9373
25
25
  keplemon/enums.py,sha256=Jh0tFHg_rZXnOyLUXmHjSm3MSZFbvQKTBcP0BqHXeMY,308
26
26
  keplemon/enums.pyi,sha256=s9uqkm3Zrx6HLV4dQBScRiUy0CT4QoQwFjaCLOEMW1c,2330
27
27
  keplemon/estimation.py,sha256=2K87pFhOfaFohbAtBXv2SA6m_oIN-56toJOftu350fY,228
28
28
  keplemon/estimation.pyi,sha256=zb_llx8pCx9Iv95mXXpGnXPZeJsg9Oh5GRWDLyXrMFI,5521
29
- keplemon/events.py,sha256=Ep-X4WqhLtXue08swm6Whcc4VFzyWvqnjjAOov6M4bI,154
30
- keplemon/events.pyi,sha256=PrVNvvw1_BgUOIEPmxHE03-XTQcl3LTw8UeuRZOTha4,824
29
+ keplemon/events.py,sha256=lxSp5m5FhIyU2-1CrSlbRE15E5yh7sf_mTt9uYQwMKA,238
30
+ keplemon/events.pyi,sha256=_42vUSXOwlUkJHwo50uBXZglptLPZBUNJl375fnTnEE,2025
31
+ keplemon/exceptions.py,sha256=gTKSkN4yJ2VwR3_anpWqnIO9kQcJCO41_818NjgItiM,102
31
32
  keplemon/libastrofunc.dylib,sha256=Ai4kpLTexRPHUZ62auRCKiSzkBbTJT0lX73h_kBc1dM,241840
32
33
  keplemon/libdllmain.dylib,sha256=q_jLAMMLWr5-DSj-LieV0vGjZUBEO3-xuZjPyNEAJ7w,112144
33
34
  keplemon/libelops.dylib,sha256=33FjYs-4wfCW24xm-r_Kc0kvM39Laoky1Vui5mLFAVk,92736
@@ -49,7 +50,13 @@ keplemon/propagation.py,sha256=sFP4PYDkTFAuZ815J_XaLneLNKx0s_cW4yJBCJKpDxE,115
49
50
  keplemon/propagation.pyi,sha256=YSA3cBzgHLW3_dykrjMX4PbReYJmz5Z7bzfuibPaegc,464
50
51
  keplemon/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
52
  keplemon/saal/__init__.py,sha256=aoTB13q7IvXuQ80jgGCnwXA29yjpOqLiTdrtyjyRqLE,123
53
+ keplemon/saal/__init__.pyi,sha256=GPB5f0dcK7srvSDq2i5wvHMyi-OYZakMvlrstKdDwkk,143
54
+ keplemon/saal/astro_func_interface.py,sha256=gjXnmJuSmgxPEgLnqUZCP1_m0jHujPgmHt4YkERVcpk,652
55
+ keplemon/saal/astro_func_interface.pyi,sha256=bEystOU2WG3KYeq93SJygnf30QsouHQMRcWlV3Tc0VM,2457
52
56
  keplemon/saal/obs_interface.py,sha256=EtsaPKixjMWfCUpMd79SvhCs3f9sRcBaal6-ickj3Vs,248
53
- keplemon/time.py,sha256=rFefwGP2deAeyzMQcaK5D7dIpiQDklr9eBKT6yVK7Ac,2872
54
- keplemon/time.pyi,sha256=f6MxNpscs3jje0zo5yilyMBj8b0U7TVFnU6bt6NAJl0,6255
55
- keplemon-0.2.1.dist-info/RECORD,,
57
+ keplemon/saal/obs_interface.pyi,sha256=eIXbFnZSF3cX3MyXaCYLUAp0wUAbJiQ4rosqpXdf2I0,228
58
+ keplemon/saal/time_func_interface.py,sha256=cshqJ15p_gcenMdmVuXTIoLeij1gsgVi0tujRQ4O6kA,421
59
+ keplemon/saal/time_func_interface.pyi,sha256=GCj_EOmOceJorYQLGQQj1fE2cHxPvNrYml1DLvsaMy4,1508
60
+ keplemon/time.py,sha256=vvHcwWQ1JXPaQSvdBfXYZrk2_-ukDw0RnXDeN5wy3nU,2792
61
+ keplemon/time.pyi,sha256=S2Ul8fpuWnor9wKNFBxLwAiwrGrVN_LJH_xy6WSocv4,6260
62
+ keplemon-0.3.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: maturin (1.9.0)
2
+ Generator: maturin (1.9.1)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-macosx_11_0_arm64