open-space-toolkit-astrodynamics 13.1.0__py311-none-manylinux2014_x86_64.whl → 14.0.0__py311-none-manylinux2014_x86_64.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.
Files changed (52) hide show
  1. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/METADATA +3 -3
  2. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/RECORD +52 -20
  3. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/WHEEL +1 -1
  4. ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-311-x86_64-linux-gnu.so +0 -0
  5. ostk/astrodynamics/__init__.pyi +785 -0
  6. ostk/astrodynamics/access.pyi +588 -0
  7. ostk/astrodynamics/conjunction/__init__.pyi +3 -0
  8. ostk/astrodynamics/conjunction/message/__init__.pyi +3 -0
  9. ostk/astrodynamics/conjunction/message/ccsds.pyi +723 -0
  10. ostk/astrodynamics/converters.pyi +58 -0
  11. ostk/astrodynamics/data/__init__.pyi +3 -0
  12. ostk/astrodynamics/data/provider.pyi +22 -0
  13. ostk/astrodynamics/dynamics.pyi +329 -0
  14. ostk/astrodynamics/event_condition.pyi +580 -0
  15. ostk/astrodynamics/flight/__init__.pyi +547 -0
  16. ostk/astrodynamics/flight/profile/__init__.pyi +102 -0
  17. ostk/astrodynamics/flight/profile/model.pyi +176 -0
  18. ostk/astrodynamics/flight/system.pyi +277 -0
  19. ostk/astrodynamics/guidance_law.pyi +282 -0
  20. ostk/astrodynamics/{libopen-space-toolkit-astrodynamics.so.13 → libopen-space-toolkit-astrodynamics.so.14} +0 -0
  21. ostk/astrodynamics/py.typed +0 -0
  22. ostk/astrodynamics/pytrajectory/__init__.pyi +3 -0
  23. ostk/astrodynamics/pytrajectory/pystate.py +2 -4
  24. ostk/astrodynamics/pytrajectory/pystate.pyi +65 -0
  25. ostk/astrodynamics/solver.pyi +232 -0
  26. ostk/astrodynamics/test/access/test_generator.py +130 -59
  27. ostk/astrodynamics/test/access/test_visibility_criterion.py +198 -0
  28. ostk/astrodynamics/test/data/provider/test_off_nadir.py +58 -0
  29. ostk/astrodynamics/test/flight/test_maneuver.py +49 -64
  30. ostk/astrodynamics/test/flight/test_profile.py +4 -2
  31. ostk/astrodynamics/test/solvers/test_finite_difference_solver.py +24 -11
  32. ostk/astrodynamics/test/solvers/test_temporal_condition_solver.py +9 -1
  33. ostk/astrodynamics/test/test_display.py +11 -5
  34. ostk/astrodynamics/test/test_viewer.py +70 -1
  35. ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_acceleration.py +136 -0
  36. ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py +9 -0
  37. ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py +21 -13
  38. ostk/astrodynamics/test/trajectory/test_propagator.py +21 -27
  39. ostk/astrodynamics/test/trajectory/test_segment.py +0 -1
  40. ostk/astrodynamics/trajectory/__init__.pyi +1796 -0
  41. ostk/astrodynamics/trajectory/orbit/__init__.pyi +361 -0
  42. ostk/astrodynamics/trajectory/orbit/message/__init__.pyi +3 -0
  43. ostk/astrodynamics/trajectory/orbit/message/spacex.pyi +273 -0
  44. ostk/astrodynamics/trajectory/orbit/model/__init__.pyi +517 -0
  45. ostk/astrodynamics/trajectory/orbit/model/brouwerLyddaneMean.pyi +127 -0
  46. ostk/astrodynamics/trajectory/orbit/model/kepler.pyi +581 -0
  47. ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi +333 -0
  48. ostk/astrodynamics/trajectory/state/__init__.pyi +406 -0
  49. ostk/astrodynamics/trajectory/state/coordinate_subset.pyi +223 -0
  50. ostk/astrodynamics/viewer.py +32 -0
  51. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/top_level.txt +0 -0
  52. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/zip-safe +0 -0
@@ -0,0 +1,361 @@
1
+ from __future__ import annotations
2
+ import ostk.astrodynamics.trajectory
3
+ import ostk.core.type
4
+ import ostk.physics.time
5
+ import typing
6
+ from . import message
7
+ from . import model
8
+ __all__ = ['OrbitModel', 'Pass', 'message', 'model']
9
+ class OrbitModel:
10
+ """
11
+
12
+ Base class for orbit models.
13
+
14
+ Provides the interface for orbit models.
15
+
16
+
17
+ """
18
+ __hash__: typing.ClassVar[None] = None
19
+ @staticmethod
20
+ def _pybind11_conduit_v1_(*args, **kwargs):
21
+ ...
22
+ def __eq__(self, arg0: OrbitModel) -> bool:
23
+ ...
24
+ def __ne__(self, arg0: OrbitModel) -> bool:
25
+ ...
26
+ def __str__(self) -> str:
27
+ ...
28
+ def as_kepler(self) -> ...:
29
+ """
30
+ Cast the orbit model to a Kepler model.
31
+
32
+ Returns:
33
+ Kepler: The Kepler model.
34
+ """
35
+ def as_propagated(self) -> ...:
36
+ """
37
+ Cast the orbit model to a propagated model.
38
+
39
+ Returns:
40
+ Propagated: The propagated model.
41
+ """
42
+ def as_sgp4(self) -> ...:
43
+ """
44
+ Cast the orbit model to an SGP4 model.
45
+
46
+ Returns:
47
+ SGP4: The SGP4 model.
48
+ """
49
+ def calculate_revolution_number_at(self, instant: ostk.physics.time.Instant) -> ostk.core.type.Integer:
50
+ """
51
+ Calculate the revolution number of the orbit model at a given instant.
52
+
53
+ Args:
54
+ instant (Instant): The instant at which to calculate the revolution number.
55
+
56
+ Returns:
57
+ int: The revolution number of the orbit model at the given instant.
58
+ """
59
+ def calculate_state_at(self, instant: ostk.physics.time.Instant) -> ostk.astrodynamics.trajectory.State:
60
+ """
61
+ Calculate the state of the orbit model at a given instant.
62
+
63
+ Args:
64
+ instant (Instant): The instant at which to calculate the state.
65
+
66
+ Returns:
67
+ State: The state of the orbit model at the given instant.
68
+ """
69
+ def get_epoch(self) -> ostk.physics.time.Instant:
70
+ """
71
+ Get the epoch of the orbit model.
72
+
73
+ Returns:
74
+ Instant: The epoch of the orbit model.
75
+ """
76
+ def get_revolution_number_at_epoch(self) -> ostk.core.type.Integer:
77
+ """
78
+ Get the revolution number at the epoch of the orbit model.
79
+
80
+ Returns:
81
+ int: The revolution number at the epoch of the orbit model.
82
+ """
83
+ def is_defined(self) -> bool:
84
+ """
85
+ Check if the orbit model is defined.
86
+
87
+ Returns:
88
+ bool: True if the orbit model is defined, False otherwise.
89
+ """
90
+ def is_kepler(self) -> bool:
91
+ """
92
+ Check if the orbit model is a Kepler model.
93
+
94
+ Returns:
95
+ bool: True if the orbit model is a Kepler model, False otherwise.
96
+ """
97
+ def is_propagated(self) -> bool:
98
+ """
99
+ Check if the orbit model is a propagated model.
100
+
101
+ Returns:
102
+ bool: True if the orbit model is a propagated model, False otherwise.
103
+ """
104
+ def is_sgp4(self) -> bool:
105
+ """
106
+ Check if the orbit model is an SGP4 model.
107
+
108
+ Returns:
109
+ bool: True if the orbit model is an SGP4 model, False otherwise.
110
+ """
111
+ class Pass:
112
+ """
113
+
114
+ A revolution of an orbiting object.
115
+
116
+
117
+ """
118
+ class Phase:
119
+ """
120
+
121
+ The phase of the `Pass`.
122
+
123
+
124
+ Members:
125
+
126
+ Undefined : Undefined
127
+
128
+ Ascending : Ascending
129
+
130
+ Descending : Descending
131
+ """
132
+ Ascending: typing.ClassVar[Pass.Phase] # value = <Phase.Ascending: 1>
133
+ Descending: typing.ClassVar[Pass.Phase] # value = <Phase.Descending: 2>
134
+ Undefined: typing.ClassVar[Pass.Phase] # value = <Phase.Undefined: 0>
135
+ __members__: typing.ClassVar[dict[str, Pass.Phase]] # value = {'Undefined': <Phase.Undefined: 0>, 'Ascending': <Phase.Ascending: 1>, 'Descending': <Phase.Descending: 2>}
136
+ @staticmethod
137
+ def _pybind11_conduit_v1_(*args, **kwargs):
138
+ ...
139
+ def __eq__(self, other: typing.Any) -> bool:
140
+ ...
141
+ def __getstate__(self) -> int:
142
+ ...
143
+ def __hash__(self) -> int:
144
+ ...
145
+ def __index__(self) -> int:
146
+ ...
147
+ def __init__(self, value: int) -> None:
148
+ ...
149
+ def __int__(self) -> int:
150
+ ...
151
+ def __ne__(self, other: typing.Any) -> bool:
152
+ ...
153
+ def __repr__(self) -> str:
154
+ ...
155
+ def __setstate__(self, state: int) -> None:
156
+ ...
157
+ def __str__(self) -> str:
158
+ ...
159
+ @property
160
+ def name(self) -> str:
161
+ ...
162
+ @property
163
+ def value(self) -> int:
164
+ ...
165
+ class Type:
166
+ """
167
+
168
+ The type of `Pass`.
169
+
170
+
171
+ Members:
172
+
173
+ Undefined : Undefined
174
+
175
+ Complete : Complete
176
+
177
+ Partial : Partial
178
+ """
179
+ Complete: typing.ClassVar[Pass.Type] # value = <Type.Complete: 1>
180
+ Partial: typing.ClassVar[Pass.Type] # value = <Type.Partial: 2>
181
+ Undefined: typing.ClassVar[Pass.Type] # value = <Type.Undefined: 0>
182
+ __members__: typing.ClassVar[dict[str, Pass.Type]] # value = {'Undefined': <Type.Undefined: 0>, 'Complete': <Type.Complete: 1>, 'Partial': <Type.Partial: 2>}
183
+ @staticmethod
184
+ def _pybind11_conduit_v1_(*args, **kwargs):
185
+ ...
186
+ def __eq__(self, other: typing.Any) -> bool:
187
+ ...
188
+ def __getstate__(self) -> int:
189
+ ...
190
+ def __hash__(self) -> int:
191
+ ...
192
+ def __index__(self) -> int:
193
+ ...
194
+ def __init__(self, value: int) -> None:
195
+ ...
196
+ def __int__(self) -> int:
197
+ ...
198
+ def __ne__(self, other: typing.Any) -> bool:
199
+ ...
200
+ def __repr__(self) -> str:
201
+ ...
202
+ def __setstate__(self, state: int) -> None:
203
+ ...
204
+ def __str__(self) -> str:
205
+ ...
206
+ @property
207
+ def name(self) -> str:
208
+ ...
209
+ @property
210
+ def value(self) -> int:
211
+ ...
212
+ __hash__: typing.ClassVar[None] = None
213
+ @staticmethod
214
+ def _pybind11_conduit_v1_(*args, **kwargs):
215
+ ...
216
+ @staticmethod
217
+ def string_from_phase(phase: Pass.Phase) -> ostk.core.type.String:
218
+ """
219
+ Get the string representation of a pass phase.
220
+
221
+ Args:
222
+ phase (Pass.Phase): The pass phase.
223
+
224
+ Returns:
225
+ str: The string representation of the pass phase.
226
+ """
227
+ @staticmethod
228
+ def string_from_type(type: Pass.Type) -> ostk.core.type.String:
229
+ """
230
+ Get the string representation of a pass type.
231
+
232
+ Args:
233
+ type (Pass.Type): The pass type.
234
+
235
+ Returns:
236
+ str: The string representation of the pass type.
237
+ """
238
+ @staticmethod
239
+ def undefined() -> Pass:
240
+ """
241
+ Get an undefined pass.
242
+
243
+ Returns:
244
+ Pass: The undefined pass.
245
+ """
246
+ def __eq__(self, arg0: Pass) -> bool:
247
+ ...
248
+ def __init__(self, revolution_number: ostk.core.type.Integer, instant_at_ascending_node: ostk.physics.time.Instant, instant_at_north_point: ostk.physics.time.Instant, instant_at_descending_node: ostk.physics.time.Instant, instant_at_south_point: ostk.physics.time.Instant, instant_at_pass_break: ostk.physics.time.Instant) -> None:
249
+ """
250
+ Constructor.
251
+
252
+ Args:
253
+ revolution_number (int): The revolution number of the pass.
254
+ instant_at_ascending_node (Instant): The instant at the ascending node of the pass.
255
+ instant_at_north_point (Instant): The instant at the north point of the pass.
256
+ instant_at_descending_node (Instant): The instant at the descending node of the pass.
257
+ instant_at_south_point (Instant): The instant at the south point of the pass.
258
+ instant_at_pass_break (Instant): The instant at break of the pass.
259
+ """
260
+ def __ne__(self, arg0: Pass) -> bool:
261
+ ...
262
+ def __repr__(self) -> str:
263
+ ...
264
+ def __str__(self) -> str:
265
+ ...
266
+ def get_duration(self) -> ostk.physics.time.Duration:
267
+ """
268
+ Get the duration of the pass. Undefined if the pass is not complete.
269
+
270
+ Returns:
271
+ Duration: The duration of the pass.
272
+ """
273
+ def get_end_instant(self) -> ostk.physics.time.Instant:
274
+ """
275
+ Get the end instant of the pass. For partial passes, this is the maximum defined instant.
276
+
277
+ Returns:
278
+ Instant: The end instant of the pass.
279
+ """
280
+ def get_instant_at_ascending_node(self) -> ostk.physics.time.Instant:
281
+ """
282
+ Get the instant at the ascending node of the pass.
283
+ i.e. z = 0 & vz > 0 in an ECI frame.
284
+
285
+ Returns:
286
+ Instant: The instant at the ascending node of the pass.
287
+ """
288
+ def get_instant_at_descending_node(self) -> ostk.physics.time.Instant:
289
+ """
290
+ Get the instant at the descending node of the pass.
291
+ i.e. z = 0 and vz < 0 in an ECI frame.
292
+
293
+ Returns:
294
+ Instant: The instant at the descending node of the pass.
295
+ """
296
+ def get_instant_at_north_point(self) -> ostk.physics.time.Instant:
297
+ """
298
+ Get the instant at the north point of the pass.
299
+ i.e. z = maximum and vz = 0 in an ECI frame.
300
+
301
+ Returns:
302
+ Instant: The instant at the north point of the pass.
303
+ """
304
+ def get_instant_at_pass_break(self) -> ostk.physics.time.Instant:
305
+ """
306
+ Get the instant at the break of the pass,
307
+ i.e. the ascending node of the next pass.
308
+
309
+ Returns:
310
+ Instant: The instant at the break of the pass.
311
+ """
312
+ def get_instant_at_south_point(self) -> ostk.physics.time.Instant:
313
+ """
314
+ Get the instant at the south point of the pass.
315
+ i.e. z = minimum and vz = 0 in an ECI frame.
316
+
317
+ Returns:
318
+ Instant: The instant at the south point of the pass.
319
+ """
320
+ def get_interval(self) -> ostk.physics.time.Interval:
321
+ """
322
+ Get the interval of the pass. Undefined if the pass is not complete.
323
+
324
+ Returns:
325
+ Interval: The interval of the pass.
326
+ """
327
+ def get_revolution_number(self) -> ostk.core.type.Integer:
328
+ """
329
+ Get the revolution number of the pass.
330
+
331
+ Returns:
332
+ int: The revolution number of the pass.
333
+ """
334
+ def get_start_instant(self) -> ostk.physics.time.Instant:
335
+ """
336
+ Get the start instant of the pass. For partial passes, this is the minimum defined instant.
337
+
338
+ Returns:
339
+ Instant: The start instant of the pass.
340
+ """
341
+ def get_type(self) -> Pass.Type:
342
+ """
343
+ Get the type of the pass.
344
+
345
+ Returns:
346
+ Pass.Type: The type of the pass.
347
+ """
348
+ def is_complete(self) -> bool:
349
+ """
350
+ Check if the pass is complete.
351
+
352
+ Returns:
353
+ bool: True if the pass is complete, False otherwise.
354
+ """
355
+ def is_defined(self) -> bool:
356
+ """
357
+ Check if the pass is defined.
358
+
359
+ Returns:
360
+ bool: True if the pass is defined, False otherwise.
361
+ """
@@ -0,0 +1,3 @@
1
+ from __future__ import annotations
2
+ from . import spacex
3
+ __all__ = ['spacex']
@@ -0,0 +1,273 @@
1
+ from __future__ import annotations
2
+ import ostk.astrodynamics.trajectory
3
+ import ostk.core.container
4
+ import ostk.core.filesystem
5
+ import ostk.core.type
6
+ import ostk.physics.coordinate
7
+ import ostk.physics.time
8
+ import ostk.physics.unit
9
+ __all__ = ['OPM']
10
+ class OPM:
11
+ """
12
+
13
+ The SpaceX OPM message.
14
+
15
+ See Also:
16
+ `SpaceX OPM <https://public.ccsds.org/Pubs/502x0b3e1.pdf>`_.
17
+
18
+
19
+ """
20
+ class Deployment:
21
+ """
22
+
23
+ The deployment of the SpaceX OPM message.
24
+
25
+
26
+ """
27
+ @staticmethod
28
+ def _pybind11_conduit_v1_(*args, **kwargs):
29
+ ...
30
+ def __init__(self, name: ostk.core.type.String, sequence_number: ostk.core.type.Integer, mission_time: ostk.physics.time.Duration, date: ostk.physics.time.Instant, position: ostk.physics.coordinate.Position, velocity: ostk.physics.coordinate.Velocity, mean_perigee_altitude: ostk.physics.unit.Length, mean_apogee_altitude: ostk.physics.unit.Length, mean_inclination: ostk.physics.unit.Angle, mean_argument_of_perigee: ostk.physics.unit.Angle, mean_longitude_ascending_node: ostk.physics.unit.Angle, mean_mean_anomaly: ostk.physics.unit.Angle, ballistic_coefficient: ostk.core.type.Real) -> None:
31
+ """
32
+ Constructor.
33
+
34
+ Args:
35
+ name (str): The name of the deployment.
36
+ sequence_number (int): The sequence number of the deployment.
37
+ mission_time (Duration): The mission time of the deployment.
38
+ date (Instant): The date of the deployment.
39
+ position (Position): The position of the deployment.
40
+ velocity (Velocity): The velocity of the deployment.
41
+ mean_perigee_altitude (Length): The mean perigee altitude of the deployment.
42
+ mean_apogee_altitude (Length): The mean apogee altitude of the deployment.
43
+ mean_inclination (Angle): The mean inclination of the deployment.
44
+ mean_argument_of_perigee (Angle): The mean argument of perigee of the deployment.
45
+ mean_longitude_ascending_node (Angle): The mean longitude of the ascending node of the deployment.
46
+ mean_mean_anomaly (Angle): The mean mean anomaly of the deployment.
47
+ ballistic_coefficient (float): The ballistic coefficient of the deployment.
48
+ """
49
+ def to_state(self) -> ostk.astrodynamics.trajectory.State:
50
+ """
51
+ Convert the deployment to a state.
52
+
53
+ Returns:
54
+ state (State): The state of the deployment.
55
+ """
56
+ @property
57
+ def ballistic_coefficient(self) -> ostk.core.type.Real:
58
+ """
59
+ Get the ballistic coefficient of the deployment.
60
+
61
+ :type: float
62
+ """
63
+ @property
64
+ def date(self) -> ostk.physics.time.Instant:
65
+ """
66
+ Get the date of the deployment.
67
+
68
+ :type: Instant
69
+ """
70
+ @property
71
+ def mean_apogee_altitude(self) -> ostk.physics.unit.Length:
72
+ """
73
+ Get the mean apogee altitude of the deployment.
74
+
75
+ :type: Length
76
+ """
77
+ @property
78
+ def mean_argument_of_perigee(self) -> ostk.physics.unit.Angle:
79
+ """
80
+ Get the mean argument of perigee of the deployment.
81
+
82
+ :type: Angle
83
+ """
84
+ @property
85
+ def mean_inclination(self) -> ostk.physics.unit.Angle:
86
+ """
87
+ Get the mean inclination of the deployment.
88
+
89
+ :type: Angle
90
+ """
91
+ @property
92
+ def mean_longitude_ascending_node(self) -> ostk.physics.unit.Angle:
93
+ """
94
+ Get the mean longitude of the ascending node of the deployment.
95
+
96
+ :type: Angle
97
+ """
98
+ @property
99
+ def mean_mean_anomaly(self) -> ostk.physics.unit.Angle:
100
+ """
101
+ Get the mean mean anomaly of the deployment.
102
+
103
+ :type: Angle
104
+ """
105
+ @property
106
+ def mean_perigee_altitude(self) -> ostk.physics.unit.Length:
107
+ """
108
+ Get the mean perigee altitude of the deployment.
109
+
110
+ :type: Length
111
+ """
112
+ @property
113
+ def mission_time(self) -> ostk.physics.time.Duration:
114
+ """
115
+ Get the mission time of the deployment.
116
+
117
+ :type: Duration
118
+ """
119
+ @property
120
+ def name(self) -> ostk.core.type.String:
121
+ """
122
+ Get the name of the deployment.
123
+
124
+ :type: str
125
+ """
126
+ @property
127
+ def position(self) -> ostk.physics.coordinate.Position:
128
+ """
129
+ Get the position of the deployment.
130
+
131
+ :type: Position
132
+ """
133
+ @property
134
+ def sequence_number(self) -> ostk.core.type.Integer:
135
+ """
136
+ Get the sequence number of the deployment.
137
+
138
+ :type: int
139
+ """
140
+ @property
141
+ def velocity(self) -> ostk.physics.coordinate.Velocity:
142
+ """
143
+ Get the velocity of the deployment.
144
+
145
+ :type: Velocity
146
+ """
147
+ class Header:
148
+ """
149
+
150
+ The header of the SpaceX OPM message.
151
+
152
+
153
+ """
154
+ @staticmethod
155
+ def _pybind11_conduit_v1_(*args, **kwargs):
156
+ ...
157
+ def __init__(self, generation_date: ostk.physics.time.Instant, launch_date: ostk.physics.time.Instant) -> None:
158
+ """
159
+ Constructor.
160
+
161
+ Args:
162
+ generation_date (Instant): The date at which the OPM message was generated.
163
+ launch_date (Instant): The date at which the spacecraft was launched.
164
+ """
165
+ @property
166
+ def generation_date(self) -> ostk.physics.time.Instant:
167
+ """
168
+ Get the date at which the OPM message was generated.
169
+
170
+ Returns:
171
+ instant (Instant): The date at which the OPM message was generated.
172
+ """
173
+ @property
174
+ def launch_date(self) -> ostk.physics.time.Instant:
175
+ """
176
+ Get the date at which the spacecraft was launched.
177
+
178
+ Returns:
179
+ instant (Instant): The date at which the spacecraft was launched.
180
+ """
181
+ @staticmethod
182
+ def _pybind11_conduit_v1_(*args, **kwargs):
183
+ ...
184
+ @staticmethod
185
+ def dictionary(dictionary: ostk.core.container.Dictionary) -> OPM:
186
+ """
187
+ Build an OPM message from a dictionary.
188
+
189
+ Args:
190
+ dictionary (dict): The dictionary containing the OPM message information.
191
+
192
+ Returns:
193
+ opm (OPM): The OPM message.
194
+ """
195
+ @staticmethod
196
+ def load(file: ostk.core.filesystem.File) -> OPM:
197
+ """
198
+ Load an OPM message from a file.
199
+
200
+ Args:
201
+ file (str): The path to the file containing the OPM message.
202
+
203
+ Returns:
204
+ opm (OPM): The OPM message.
205
+ """
206
+ @staticmethod
207
+ def parse(string: ostk.core.type.String) -> OPM:
208
+ """
209
+ Parse an OPM message from a string.
210
+
211
+ Args:
212
+ string (str): The string containing the OPM message.
213
+
214
+ Returns:
215
+ opm (OPM): The OPM message.
216
+ """
217
+ @staticmethod
218
+ def undefined() -> OPM:
219
+ """
220
+ Return an undefined OPM message.
221
+
222
+ Returns:
223
+ opm (OPM): An undefined OPM message.
224
+ """
225
+ def __init__(self, header: ..., deployments: list[...]) -> None:
226
+ """
227
+ Constructor.
228
+
229
+ Args:
230
+ header (Header): The header of the OPM message.
231
+ deployments (list[Deployment]): The deployments of the OPM message.
232
+ """
233
+ def get_deployment_at(self, index: int) -> ...:
234
+ """
235
+ Get the deployment at a given index.
236
+
237
+ Args:
238
+ index (int): The index of the deployment.
239
+
240
+ Returns:
241
+ deployment (Deployment): The deployment at the given index.
242
+ """
243
+ def get_deployment_with_name(self, name: ostk.core.type.String) -> ...:
244
+ """
245
+ Get the deployment with a given name.
246
+
247
+ Args:
248
+ name (str): The name of the deployment.
249
+
250
+ Returns:
251
+ deployment (Deployment): The deployment with the given name.
252
+ """
253
+ def get_deployments(self) -> list[...]:
254
+ """
255
+ Get the deployments of the OPM message.
256
+
257
+ Returns:
258
+ deployments (list[Deployment]): The deployments of the OPM message.
259
+ """
260
+ def get_header(self) -> ...:
261
+ """
262
+ Get the header of the OPM message.
263
+
264
+ Returns:
265
+ header (Header): The header of the OPM message.
266
+ """
267
+ def is_defined(self) -> bool:
268
+ """
269
+ Check if the OPM message is defined.
270
+
271
+ Returns:
272
+ is_defined (bool): True if the OPM message is defined, False otherwise.
273
+ """