open-space-toolkit-astrodynamics 9.5.1__py310-none-manylinux2014_aarch64.whl → 11.1.0__py310-none-manylinux2014_aarch64.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: open-space-toolkit-astrodynamics
3
- Version: 9.5.1
3
+ Version: 11.1.0
4
4
  Summary: Orbit, attitude, access.
5
5
  Author: Open Space Collective
6
6
  Author-email: contact@open-space-collective.org
@@ -11,11 +11,10 @@ Classifier: Programming Language :: Python :: 3
11
11
  Classifier: License :: OSI Approved :: Apache Software License
12
12
  Classifier: Operating System :: POSIX :: Linux
13
13
  Description-Content-Type: text/markdown
14
- Requires-Dist: open-space-toolkit-core ~=3.1
15
- Requires-Dist: open-space-toolkit-io ~=3.0
16
- Requires-Dist: open-space-toolkit-mathematics ~=3.1
17
- Requires-Dist: open-space-toolkit-physics ~=7.1
18
- Requires-Dist: numpy ~=2.0
14
+ Requires-Dist: open-space-toolkit-core ~=4.0
15
+ Requires-Dist: open-space-toolkit-io ~=4.0
16
+ Requires-Dist: open-space-toolkit-mathematics ~=4.0
17
+ Requires-Dist: open-space-toolkit-physics ~=9.0
19
18
 
20
19
  # Open Space Toolkit ▸ Astrodynamics
21
20
 
@@ -1,18 +1,20 @@
1
1
  ostk/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
2
- ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-310-aarch64-linux-gnu.so,sha256=gNmkMzA8-FUedB6qqcVu4_Gmak1cKiI_to8LAkuX7J8,1951536
2
+ ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-310-aarch64-linux-gnu.so,sha256=XTBL-53HNHNT4Ldd6p_A77t06nBLoVvsUL8che8kwf8,2074368
3
3
  ostk/astrodynamics/__init__.py,sha256=3gWyqFIbhAfcdeMhmfBPQPlPQTmaOzm-6flkJe745Zk,251
4
- ostk/astrodynamics/converters.py,sha256=vsm7SHdlPIyIxW1h5ZGAizl284koGaRmyPCu--AQJfA,4670
4
+ ostk/astrodynamics/converters.py,sha256=xr1BDaY2od8IsNq-3isubaxainncgH8_yihZ6Mf38n4,2697
5
+ ostk/astrodynamics/dataframe.py,sha256=njimcfT2cvnSOp9eBR1Ej-LuYpXbVieAVEBk2tYW4Vg,18761
5
6
  ostk/astrodynamics/display.py,sha256=KiEGsjNftQfoUe-HfZeYpQQQ4TkaEnxtEl6p5_LX5f0,6303
6
- ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.9,sha256=Qhnp5xTxUOkdDa5gooVKSwDktMGrd94i-73Z83EDoIk,3228576
7
- ostk/astrodynamics/utilities.py,sha256=Jw-AT9CU-a2ERDDSNp7rEhZQKhbmZSCr2flGti9XysU,4813
7
+ ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.11,sha256=lO4WE4EJoDzV__SW13-X0bhe05T7eY--WJl1bbwzsOw,3350128
8
+ ostk/astrodynamics/utilities.py,sha256=Yu5Yydq22gNIHi6ylqeujDENcueb1JfUE6d93h1m9XE,4795
8
9
  ostk/astrodynamics/viewer.py,sha256=8UxqsvU5wui7gPUwxXaKcIB-509NJiih9Df3mQgXyXY,11776
9
10
  ostk/astrodynamics/pytrajectory/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
10
11
  ostk/astrodynamics/pytrajectory/pystate.py,sha256=ByOq8szit74xQ-pnLz0uGGxM6Jqfa17dFJyFB8qIXUg,1033
11
12
  ostk/astrodynamics/test/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
12
13
  ostk/astrodynamics/test/conftest.py,sha256=fsdUQnLxyfvBzfaSCkgipkPIhkPHchQqbeAro1pF648,2717
13
14
  ostk/astrodynamics/test/test_access.py,sha256=MCBsUPtuVm7NgHZR0z0DpWnPZ_qBu4aRhLI2PnRNUYs,3940
14
- ostk/astrodynamics/test/test_converters.py,sha256=hnvqOCtUGrzBvjv7GnmaRdl2mlKM3eWuJUspe305B-A,12114
15
- ostk/astrodynamics/test/test_display.py,sha256=YnwnqXh-a1OODN2YqHr-l5-q1DrgZ-P4pOY5gxJp4II,3732
15
+ ostk/astrodynamics/test/test_converters.py,sha256=ommyONkpTnhm3GHtCRe_NMtD-SBtb0vD4LGXK6nhNuU,9098
16
+ ostk/astrodynamics/test/test_dataframe.py,sha256=IJMOODzTVYtiPxekmltH6lOMArPXbHwSEAl-jg0Ab2g,28414
17
+ ostk/astrodynamics/test/test_display.py,sha256=Ykvw2rUWWw8jsX0Suy11X27bHjwm_ira__xj0ZyHHxw,3672
16
18
  ostk/astrodynamics/test/test_event_condition.py,sha256=mhMTH7wAoYFWRYt_8l2d1vjNPrFhVjMAEET4INLCVXY,1472
17
19
  ostk/astrodynamics/test/test_import.py,sha256=py_hALBR0IYuUzv9dfgQZzrrLHJIpnyKvt3Oi1XBqCg,1251
18
20
  ostk/astrodynamics/test/test_root_solver.py,sha256=hQ8O6g-WP49gZH_H3Rdufv0F0gQorpzJyIcjBGGUQ34,1831
@@ -43,7 +45,7 @@ ostk/astrodynamics/test/event_condition/test_logical_condition.py,sha256=09h5TYW
43
45
  ostk/astrodynamics/test/event_condition/test_real_condition.py,sha256=tle6HVzMFMIIkfRY7CuaA0mPtw3riJBG_JQkc1L0dpk,1374
44
46
  ostk/astrodynamics/test/flight/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
45
47
  ostk/astrodynamics/test/flight/test_maneuver.py,sha256=6LhnNhaiwId-IveUraHnhx8dYxeOgzntP_WPtv9GFjQ,6197
46
- ostk/astrodynamics/test/flight/test_profile.py,sha256=RULN-34ERmlZjgNQe6Kj797dklJBKAm-QYUIqitxvwA,5185
48
+ ostk/astrodynamics/test/flight/test_profile.py,sha256=FOYo-GXGTCtXhKQosXqX6hhrkXPrSyenPkM1lazyEEc,4819
47
49
  ostk/astrodynamics/test/flight/test_system.py,sha256=MVaE7lJYisH4vmJPD-G-Hw4wNj-Xe8yMksgu8IXCLvg,1322
48
50
  ostk/astrodynamics/test/flight/system/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
49
51
  ostk/astrodynamics/test/flight/system/test_propulsion_system.py,sha256=jLUC74YjIQz7APr-kQcdYRYiKm8lfequjosptG29kmI,1964
@@ -86,13 +88,13 @@ ostk/astrodynamics/test/trajectory/orbit/models/sgp4/__init__.py,sha256=epnVn2Pw
86
88
  ostk/astrodynamics/test/trajectory/orbit/models/sgp4/test_tle.py,sha256=jkyRr5NJQMaSpI3ey7cKcH0E-BlalaUlf_mZPYTSow8,11482
87
89
  ostk/astrodynamics/test/trajectory/state/test_coordinate_broker.py,sha256=ho5FBfB3IvIjfQl7EYoIN1KBuH9lu76IiNMuweq8cqg,2844
88
90
  ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py,sha256=KjltLEPbxMfyebwjG5mulyGCT5INtiItPq6ID6sP9jI,1289
89
- ostk/astrodynamics/test/trajectory/state/test_numerical_solver.py,sha256=_t4OKnYLzTjOhSkVTgT2307DQkz_DnGxqqLx8mmzLRA,9389
91
+ ostk/astrodynamics/test/trajectory/state/test_numerical_solver.py,sha256=PcLU8XTiDHZ-yplYvHZFX32yTUoua9MhKrMmQPINl9w,9386
90
92
  ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_angular_velocity.py,sha256=xjyGREKpxDuT8gjtBPkV4osfW-6UyWv9hgvBXZVb_wk,625
91
93
  ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_attitude_quaternion.py,sha256=UEu9ApzQLmT87eeISw6_gcHTlX-4b2scIvHz-uE1p_c,393
92
94
  ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_position.py,sha256=XvHdk1KjacTwtkgx2jUAc9I9N3nvjPDv03FAanpv8jQ,2702
93
95
  ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_velocity.py,sha256=-kd5TZO5TICihbkqDTew2i_tDpggdpe3Yf23046FATM,3057
94
- open_space_toolkit_astrodynamics-9.5.1.dist-info/METADATA,sha256=SnSApapQCvGrDtsRxuvNDEMnBLFIKveAo7veASPUWyQ,1942
95
- open_space_toolkit_astrodynamics-9.5.1.dist-info/WHEEL,sha256=uB5vyLu5FjXBtaffidQd32CfRXuOj_Nofldz4r8m62s,112
96
- open_space_toolkit_astrodynamics-9.5.1.dist-info/top_level.txt,sha256=zOR18699uDYnafgarhL8WU_LmTZY_5NVqutv-flp_x4,5
97
- open_space_toolkit_astrodynamics-9.5.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
98
- open_space_toolkit_astrodynamics-9.5.1.dist-info/RECORD,,
96
+ open_space_toolkit_astrodynamics-11.1.0.dist-info/METADATA,sha256=yYiRpTugeOyvQWU2cK_8raeWP7cLw3GtemFlFxudmqU,1916
97
+ open_space_toolkit_astrodynamics-11.1.0.dist-info/WHEEL,sha256=qqN5URp-VURm8LPVcwSxCMMwBbCqD2CU32siGCKjjV0,111
98
+ open_space_toolkit_astrodynamics-11.1.0.dist-info/top_level.txt,sha256=zOR18699uDYnafgarhL8WU_LmTZY_5NVqutv-flp_x4,5
99
+ open_space_toolkit_astrodynamics-11.1.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
100
+ open_space_toolkit_astrodynamics-11.1.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (71.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py310-none-manylinux2014_aarch64
5
5
 
@@ -1,18 +1,10 @@
1
1
  # Apache License 2.0
2
2
 
3
- from datetime import datetime, timedelta, timezone
4
-
5
- import numpy as np
6
-
7
- from ostk.mathematics.geometry.d3.transformation.rotation import Quaternion
3
+ from datetime import datetime, timezone
8
4
 
9
5
  from ostk.physics.time import Instant
10
6
  from ostk.physics.time import Interval
11
- from ostk.physics.time import Duration
12
7
  from ostk.physics.time import Scale
13
- from ostk.physics.coordinate import Position
14
- from ostk.physics.coordinate import Velocity
15
- from ostk.physics.coordinate import Frame
16
8
 
17
9
 
18
10
  def coerce_to_datetime(value: Instant | datetime | str) -> datetime:
@@ -33,6 +25,9 @@ def coerce_to_datetime(value: Instant | datetime | str) -> datetime:
33
25
  return value.get_date_time(Scale.UTC).replace(tzinfo=timezone.utc)
34
26
 
35
27
  if isinstance(value, str):
28
+ if value.endswith("Z"):
29
+ value = value.replace("Z", "+00:00")
30
+
36
31
  return datetime.fromisoformat(value)
37
32
 
38
33
  raise TypeError("Argument must be a datetime, an Instant, or a str.")
@@ -86,13 +81,15 @@ def coerce_to_iso(value: Instant | datetime | str, timespec: str = "microseconds
86
81
 
87
82
 
88
83
  def coerce_to_interval(
89
- value: Interval | tuple[Instant, Instant] | tuple[datetime, datetime],
84
+ value: (
85
+ Interval | tuple[Instant, Instant] | tuple[datetime, datetime] | tuple[str, str]
86
+ ),
90
87
  ) -> Interval:
91
88
  """
92
89
  Return Interval from value.
93
90
 
94
91
  Args:
95
- value (Interval | tuple[Instant, Instant] | tuple[datetime, datetime]): A value to coerce.
92
+ value (Interval | tuple[Instant, Instant] | tuple[datetime, datetime] | tuple[str, str]): A value to coerce.
96
93
 
97
94
  Returns:
98
95
  Interval: The coerced Interval.
@@ -105,81 +102,3 @@ def coerce_to_interval(
105
102
  start_instant=coerce_to_instant(value[0]),
106
103
  end_instant=coerce_to_instant(value[1]),
107
104
  )
108
-
109
-
110
- def coerce_to_duration(value: Duration | timedelta) -> Duration:
111
- """
112
- Return Duration from value.
113
-
114
- Args:
115
- value (Duration | datetime): A value to coerce.
116
-
117
- Returns:
118
- Duration: The coerced Duration.
119
- """
120
-
121
- if isinstance(value, Duration):
122
- return value
123
-
124
- return Duration.seconds(value.total_seconds())
125
-
126
-
127
- def coerce_to_position(
128
- value: Position | tuple[float, float, float] | list[float] | np.ndarray,
129
- frame: Frame,
130
- ) -> Position:
131
- """
132
- Return Position from value.
133
-
134
- Args:
135
- value (Position | tuple[float, float, float] | list[float] | np.ndarray): A value to coerce.
136
- frame (Frame): A reference frame.
137
-
138
- Returns:
139
- Position: The coerced Position.
140
- """
141
-
142
- if isinstance(value, Position):
143
- return value
144
-
145
- return Position.meters(value, frame)
146
-
147
-
148
- def coerce_to_velocity(
149
- value: Velocity | tuple[float, float, float] | list[float] | np.ndarray,
150
- frame: Frame,
151
- ) -> Velocity:
152
- """
153
- Return Velocity from value.
154
-
155
- Args:
156
- value (Velocity | tuple[float, float, float] | list[float] | np.ndarray): A value to coerce.
157
- frame (Frame): A reference frame.
158
-
159
- Returns:
160
- Velocity: The coerced Velocity.
161
- """
162
-
163
- if isinstance(value, Velocity):
164
- return value
165
-
166
- return Velocity.meters_per_second(value, frame)
167
-
168
-
169
- def coerce_to_quaternion(
170
- value: Quaternion | tuple[float, float, float, float] | list[float] | np.ndarray
171
- ) -> Quaternion:
172
- """
173
- Return quaternion from value.
174
-
175
- Args:
176
- value (Quaternion | tuple[float, float, float, float] | list[float] | np.ndarray): A value to coerce.
177
-
178
- Returns:
179
- Quaternion: The coerced Quaternion.
180
- """
181
-
182
- if isinstance(value, Quaternion):
183
- return value
184
-
185
- return Quaternion(vector=value, format=Quaternion.Format.XYZS)