keplemon 1.2.0__cp311-cp311-win_amd64.whl → 1.3.1__cp311-cp311-win_amd64.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.

Binary file
keplemon/bodies.pyi CHANGED
@@ -227,7 +227,9 @@ class Sensor:
227
227
  angular_noise: Angular noise in **_degrees_**
228
228
  """
229
229
 
230
- name: str
230
+ id: str
231
+ """Unique identifier for the sensor."""
232
+ name: str | None
231
233
  angular_noise: float
232
234
  range_noise: float | None
233
235
  """Range noise in **_kilometers_**"""
@@ -237,7 +239,7 @@ class Sensor:
237
239
 
238
240
  angular_rate_noise: float | None
239
241
  """Angular rate noise in **_degrees per second_**"""
240
- def __init__(self, name: str, angular_noise: float) -> None: ...
242
+ def __init__(self, angular_noise: float) -> None: ...
241
243
 
242
244
  class Observatory:
243
245
  """
keplemon/estimation.pyi CHANGED
@@ -17,6 +17,9 @@ class Observation:
17
17
  observer_teme_pos: Position of the observer in TEME coordinates
18
18
  """
19
19
 
20
+ id: str
21
+ """Unique identifier for the observation"""
22
+
20
23
  sensor: Sensor
21
24
  """Sensor which produced the observation"""
22
25
 
keplemon/time.py CHANGED
@@ -4,7 +4,7 @@ from keplemon._keplemon.time import ( # type: ignore
4
4
  Epoch,
5
5
  )
6
6
  import requests # type: ignore
7
- from datetime import datetime
7
+ from datetime import datetime, timezone
8
8
  from keplemon._keplemon.enums import TimeSystem # type: ignore
9
9
 
10
10
  __all__ = [
@@ -15,6 +15,22 @@ __all__ = [
15
15
  ]
16
16
 
17
17
 
18
+ def _from_datetime(dt: datetime) -> Epoch:
19
+ if dt.tzinfo is None:
20
+ dt = dt.replace(tzinfo=timezone.utc)
21
+ elif dt.tzinfo != timezone.utc:
22
+ dt = dt.astimezone(timezone.utc)
23
+ return Epoch.from_iso(dt.strftime("%Y-%m-%dT%H:%M:%S.%fZ"), TimeSystem.UTC)
24
+
25
+
26
+ def _now() -> Epoch:
27
+ return _from_datetime(datetime.now(timezone.utc))
28
+
29
+
30
+ Epoch.now = staticmethod(_now)
31
+ Epoch.from_datetime = staticmethod(_from_datetime)
32
+
33
+
18
34
  def request_time_constants_update(output_path: str) -> None:
19
35
  finals = requests.get("https://maia.usno.navy.mil/ser7/finals.all").text.splitlines()
20
36
 
keplemon/time.pyi CHANGED
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from pathlib import Path
4
4
  from keplemon.enums import TimeSystem
5
5
  from typing import overload, Any
6
+ from datetime import datetime
6
7
 
7
8
  def request_time_constants_update(output_path: str | Path) -> None:
8
9
  """
@@ -145,6 +146,22 @@ class Epoch:
145
146
  day_of_year: float
146
147
  """Decimal day of the year (1-365.999...)"""
147
148
 
149
+ @classmethod
150
+ def from_datetime(cls, dt: datetime) -> Epoch:
151
+ """
152
+ Args:
153
+ dt: Aware or naive datetime object (assumed to be UTC if naive)
154
+ """
155
+ ...
156
+
157
+ @classmethod
158
+ def now(cls) -> Epoch:
159
+ """
160
+ Returns:
161
+ Current epoch in UTC time system
162
+ """
163
+ ...
164
+
148
165
  @classmethod
149
166
  def from_days_since_1950(cls, days: float, time_system: TimeSystem) -> Epoch:
150
167
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: keplemon
3
- Version: 1.2.0
3
+ Version: 1.3.1
4
4
  Requires-Dist: requests
5
5
  Requires-Dist: click
6
6
  Requires-Dist: maturin>=1.0,<2.0 ; extra == 'dev'
@@ -1,6 +1,6 @@
1
- keplemon-1.2.0.dist-info/METADATA,sha256=U0X9nUGwhoMBoT7kXFTgQ0dlhEvBysgJyZOCUwcE2b8,863
2
- keplemon-1.2.0.dist-info/WHEEL,sha256=bNaa2-XeaoMXnkzV391Sm2NgCjpJ3A2VmfN6ZUnNTZA,96
3
- keplemon-1.2.0.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
1
+ keplemon-1.3.1.dist-info/METADATA,sha256=fl7n1Iefcs9qhxB00Y617U8cbU94YAwmuswu_482oJc,863
2
+ keplemon-1.3.1.dist-info/WHEEL,sha256=bNaa2-XeaoMXnkzV391Sm2NgCjpJ3A2VmfN6ZUnNTZA,96
3
+ keplemon-1.3.1.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
4
4
  keplemon/AstroFunc.dll,sha256=RwDLeYGuSd3MxQ3O_Ljb0maS5KoDL8HZLpAvcQhDmnQ,357376
5
5
  keplemon/AstroFunc.lib,sha256=q0Ob5NGUgbywJg6XqH48QLNmFv8T5p8NVLSx2kKkL4A,56480
6
6
  keplemon/DllMain.dll,sha256=vYgOfGAUHn2z1MrVu9wV-k_LRdtuF8RuWrbuu2xk7jk,121344
@@ -30,7 +30,7 @@ keplemon/Vcm.lib,sha256=q2FPbH_DJXjIzNIzli2f1uV2faHHBjLbffZrL3Nagpw,19404
30
30
  keplemon/__init__.py,sha256=JymfGXbJ9UJDdwRW0CXS7j5j_LPk1_P_ViKbjoTdCFU,861
31
31
  keplemon/__init__.pyi,sha256=PgtL8CNupZCJibx07RLmFf56gMkCFx7voUIxBpeADO8,1349
32
32
  keplemon/__main__.py,sha256=Bbbzny3eE3NOikVCEVFAGJiSRGooAkLzPwoSz-rpaxc,689
33
- keplemon/_keplemon.cp311-win_amd64.pyd,sha256=qRMkqy9drD10hRltAsqKsl9FqpXoUhIf1jhbiRH0LnA,1671168
33
+ keplemon/_keplemon.cp311-win_amd64.pyd,sha256=NvqT2V5bWUbe8vdjr0-G1NHpnyHElXxeDk3gXFvZAq8,1672192
34
34
  keplemon/assets/EGM-2008.GEO,sha256=K2nG8HGLATIHZYMfw3GSClYOTCuZ7rq4RdCeUNgCw5A,148770
35
35
  keplemon/assets/EGM-96.GEO,sha256=VBkILuvEMwAPuWmUHy2PeyEfULOwJ4PEJLNf5hr84mU,148770
36
36
  keplemon/assets/GEM_5-22.GEO,sha256=stemYLn1ChXa-VdLGHYfa15AXZa_xxGZQ65p4c3gffI,6852
@@ -43,7 +43,7 @@ keplemon/assets/SGP4_Open_License.txt,sha256=ThQ87DpbbXt-9K0-0U13tcZqsndte_UkaG3
43
43
  keplemon/assets/WGS84-70.GEO,sha256=ARjEC_5s2SVd0Kh9udbTy1ztBwTeuBYPOhUVJgIqit8,148510
44
44
  keplemon/assets/time_constants.dat,sha256=3nsYjFgq0QnTUHPxuQPdtMG-AqxShVbvmG2zPcZfdcA,1246208
45
45
  keplemon/bodies.py,sha256=MjdAGL25eF5pA3KHo5ipjz0DDql5EEEbBqR735M254g,217
46
- keplemon/bodies.pyi,sha256=JuoeU8bTJh1glkTpeHLvrjUnJZS5K0wcmPs0CkNUsMY,10380
46
+ keplemon/bodies.pyi,sha256=wTgjk63L5_GNBIotvvZCCjrJ8ZIHHJG-6kOH5dEPjjk,10434
47
47
  keplemon/catalogs.py,sha256=AKONH7zWBOnUZI0ty0lYiYZtrdILfKivoUgk1nU3PZ8,107
48
48
  keplemon/catalogs.pyi,sha256=UxwRVMfuySXNYOQ7KuCXtwHcu3zL3Fgo1sBP77qUKaU,606
49
49
  keplemon/elements.py,sha256=Z0zzwjbOnqi4lXO4Iw5Nio2eZcdrlObzAJ2oLRDzyJY,640
@@ -51,7 +51,7 @@ keplemon/elements.pyi,sha256=EQEqEduwsMqhKjLPbbVS3eyGxNRQitLfzM8KhuxPDLs,10647
51
51
  keplemon/enums.py,sha256=5MejXeSwXPtfpIYeNuFQH3LSIRf4aTFZTK2Q1AYyaEg,325
52
52
  keplemon/enums.pyi,sha256=OSS71WesYTgzWGUSjpxaYtzj6XmoyLBXq_Zd13IBwyQ,2418
53
53
  keplemon/estimation.py,sha256=Of0rHiapW4s1wRipBCZrp4oOiIzs794w1nhqM7AVrGs,236
54
- keplemon/estimation.pyi,sha256=kH-erT5qhxKVpHm9NehHsZbHbe96FP3aDX6GgwdntAs,5693
54
+ keplemon/estimation.pyi,sha256=SdjAbSmSvdSoeyO_GU0jWdRY319laCbNRa6LJQXe6As,5757
55
55
  keplemon/events.py,sha256=gl2eqYWkTtMxLPstZziIbNbeVHJzEiMPyhrFaC-gcmA,376
56
56
  keplemon/events.pyi,sha256=TBE_hK4iummmhL0ERaJu9uzHz4LV4rZAF5LQZmFbD0U,3146
57
57
  keplemon/exceptions.py,sha256=kdFwToNBHfbpzj311wHfTDztdgwRg2-OM3sHYhmd3AI,107
@@ -71,6 +71,6 @@ keplemon/saal/sgp4_prop_interface.py,sha256=biuhXWIsauR4BO8chsWILfb8-E8OdRNWT5cS
71
71
  keplemon/saal/sgp4_prop_interface.pyi,sha256=9NpOUhf03VQYVEyq1Kutqp6J6bZ3x0NCFSBlVY-Nb9s,244
72
72
  keplemon/saal/time_func_interface.py,sha256=C18Q_PIMUFBcB0pHN6wlVj35Vrt83VQNKOEmHDHvZSA,438
73
73
  keplemon/saal/time_func_interface.pyi,sha256=3QKtsuxMoTgG--bDvbVNcJyD8vfcAUlw2n69g1m0kNM,1578
74
- keplemon/time.py,sha256=fa6AKPPU18lX44emrAy5ZZ5TRam-Vhm8ecsauvQ_wdg,2888
75
- keplemon/time.pyi,sha256=bS5UrY2loeT2mzONRFl2LTG5ZLaC3EnCXKB8fZRks4Q,6529
76
- keplemon-1.2.0.dist-info/RECORD,,
74
+ keplemon/time.py,sha256=21gJUjG6ijI34j6Q5NwDisFZN3jXLcBIxoXeQ48D9Ak,3348
75
+ keplemon/time.pyi,sha256=TD60TgcCnAbgo0hnQlD5iMhOmQR57kKs05fGv32oVNY,6914
76
+ keplemon-1.3.1.dist-info/RECORD,,