ccsds-ndm-py 0.0.2__tar.gz → 0.0.4__tar.gz

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 (103) hide show
  1. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/PKG-INFO +1 -3
  2. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/README.md +0 -2
  3. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/Cargo.lock +28 -8
  4. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/Cargo.toml +1 -1
  5. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/README.md +0 -2
  6. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/binding_mappings.py +16 -3
  7. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/ccsds_ndm/__init__.pyi +804 -169
  8. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/acm.rs +153 -19
  9. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/aem.rs +423 -115
  10. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/apm.rs +167 -56
  11. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/attitude.rs +261 -82
  12. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/cdm.rs +1089 -297
  13. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/common.rs +431 -76
  14. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/errors.rs +52 -9
  15. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/lib.rs +12 -8
  16. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/ndm.rs +71 -12
  17. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/ocm.rs +72 -10
  18. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/oem.rs +909 -297
  19. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/omm.rs +88 -12
  20. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/opm.rs +112 -14
  21. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/rdm.rs +87 -20
  22. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/tdm.rs +99 -32
  23. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_aem.py +8 -2
  24. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_cdm.py +2 -2
  25. ccsds_ndm_py-0.0.4/bindings/python/tests/test_cdm.xml +263 -0
  26. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_ndm.py +1 -1
  27. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_oem.py +29 -0
  28. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/Cargo.toml +2 -2
  29. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/benches/kvn_benches.rs +4 -2
  30. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/benches/xml_benches.rs +4 -2
  31. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/common.rs +452 -79
  32. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/detect.rs +60 -22
  33. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/acm.rs +28 -12
  34. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/aem.rs +28 -13
  35. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/apm.rs +27 -13
  36. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/cdm.rs +137 -116
  37. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/oem.rs +5 -4
  38. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/opm.rs +13 -6
  39. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/parser.rs +178 -1
  40. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/lib.rs +14 -0
  41. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/acm.rs +479 -82
  42. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/aem.rs +126 -38
  43. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/apm.rs +67 -32
  44. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/cdm.rs +341 -104
  45. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/ndm.rs +53 -55
  46. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/ocm.rs +1183 -216
  47. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/oem.rs +86 -80
  48. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/omm.rs +112 -23
  49. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/opm.rs +46 -9
  50. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/rdm.rs +230 -139
  51. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/tdm.rs +519 -86
  52. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/traits.rs +20 -0
  53. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/types.rs +923 -69
  54. ccsds_ndm_py-0.0.4/ccsds-ndm/src/utils.rs +273 -0
  55. ccsds_ndm_py-0.0.4/ccsds-ndm/src/validation.rs +94 -0
  56. ccsds_ndm_py-0.0.4/ccsds-ndm/src/versioning.rs +121 -0
  57. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/tests/auto_detection.rs +3 -3
  58. ccsds_ndm_py-0.0.4/ccsds-ndm/tests/case_matrix.json +2168 -0
  59. ccsds_ndm_py-0.0.4/ccsds-ndm/tests/case_matrix.rs +1026 -0
  60. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/tests/combined_ndm.rs +4 -4
  61. ccsds_ndm_py-0.0.4/ccsds-ndm/tests/integration_lib.rs +99 -0
  62. ccsds_ndm_py-0.0.4/ccsds-ndm/tests/integration_parsing.rs +592 -0
  63. ccsds_ndm_py-0.0.4/ccsds-ndm/tests/repro_kvn_empty.rs +75 -0
  64. ccsds_ndm_py-0.0.4/ccsds-ndm/tests/verify_cdm_optional.rs +191 -0
  65. ccsds_ndm_py-0.0.4/ccsds-ndm/tests/xml_wrappers.rs +167 -0
  66. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds_ndm/__init__.pyi +804 -169
  67. ccsds_ndm_py-0.0.2/ccsds-ndm/src/utils.rs +0 -171
  68. ccsds_ndm_py-0.0.2/ccsds-ndm/tests/integration_lib.rs +0 -262
  69. ccsds_ndm_py-0.0.2/ccsds-ndm/tests/integration_parsing.rs +0 -153
  70. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/.pre-commit-config.yaml +0 -0
  71. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/audit_bindings.py +0 -0
  72. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/ccsds_ndm/__init__.py +0 -0
  73. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/check_xml.py +0 -0
  74. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/src/types.rs +0 -0
  75. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/stubs.py +0 -0
  76. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/sync_docstrings.py +0 -0
  77. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_acm.py +0 -0
  78. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_apm.py +0 -0
  79. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_attitude_common.py +0 -0
  80. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_ocm.py +0 -0
  81. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_omm.py +0 -0
  82. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_opm.py +0 -0
  83. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_rdm.py +0 -0
  84. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_tdm.py +0 -0
  85. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/bindings/python/tests/test_user_defined.py +0 -0
  86. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/.pre-commit-config.yaml +0 -0
  87. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/README.md +0 -0
  88. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/examples/builder_demo.rs +0 -0
  89. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/examples/convert_format.rs +0 -0
  90. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/examples/simple_parse.rs +0 -0
  91. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/error.rs +0 -0
  92. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/mod.rs +0 -0
  93. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/ocm.rs +0 -0
  94. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/omm.rs +0 -0
  95. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/rdm.rs +0 -0
  96. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/ser.rs +0 -0
  97. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/kvn/tdm.rs +0 -0
  98. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/messages/mod.rs +0 -0
  99. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/src/xml.rs +0 -0
  100. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/tests/common/mod.rs +0 -0
  101. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds-ndm/tests/error_reporting.rs +0 -0
  102. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/ccsds_ndm/__init__.py +0 -0
  103. {ccsds_ndm_py-0.0.2 → ccsds_ndm_py-0.0.4}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ccsds-ndm-py
3
- Version: 0.0.2
3
+ Version: 0.0.4
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Science/Research
6
6
  Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
@@ -29,10 +29,8 @@ Project-URL: Repository, https://github.com/JochimMaene/ccsds-ndm
29
29
  # CCSDS NDM
30
30
 
31
31
  [![Python](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/python.yml/badge.svg)](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/python.yml)
32
- [![Rust](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/rust.yml/badge.svg)](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/rust.yml)
33
32
  [![codecov](https://codecov.io/gh/JochimMaene/ccsds-ndm/branch/main/graph/badge.svg)](https://codecov.io/gh/JochimMaene/ccsds-ndm)
34
33
  [![PyPI](https://img.shields.io/pypi/v/ccsds-ndm-py)](https://pypi.org/project/ccsds-ndm-py/)
35
- [![crates.io](https://img.shields.io/crates/v/ccsds-ndm)](https://crates.io/crates/ccsds-ndm)
36
34
  [![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
37
35
 
38
36
  A Rust library with Python bindings for parsing and generating [CCSDS Navigation Data Messages (NDM)](https://public.ccsds.org/Pubs/500x0g4.pdf) in both KVN (Key-Value Notation) and XML formats.
@@ -1,10 +1,8 @@
1
1
  # CCSDS NDM
2
2
 
3
3
  [![Python](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/python.yml/badge.svg)](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/python.yml)
4
- [![Rust](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/rust.yml/badge.svg)](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/rust.yml)
5
4
  [![codecov](https://codecov.io/gh/JochimMaene/ccsds-ndm/branch/main/graph/badge.svg)](https://codecov.io/gh/JochimMaene/ccsds-ndm)
6
5
  [![PyPI](https://img.shields.io/pypi/v/ccsds-ndm-py)](https://pypi.org/project/ccsds-ndm-py/)
7
- [![crates.io](https://img.shields.io/crates/v/ccsds-ndm)](https://crates.io/crates/ccsds-ndm)
8
6
  [![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
9
7
 
10
8
  A Rust library with Python bindings for parsing and generating [CCSDS Navigation Data Messages (NDM)](https://public.ccsds.org/Pubs/500x0g4.pdf) in both KVN (Key-Value Notation) and XML formats.
@@ -35,12 +35,13 @@ dependencies = [
35
35
 
36
36
  [[package]]
37
37
  name = "ccsds-ndm"
38
- version = "0.0.2"
38
+ version = "0.0.4"
39
39
  dependencies = [
40
40
  "bon",
41
41
  "fast-float",
42
42
  "quick-xml",
43
43
  "serde",
44
+ "serde_json",
44
45
  "thiserror",
45
46
  "winnow",
46
47
  "zmij",
@@ -48,7 +49,7 @@ dependencies = [
48
49
 
49
50
  [[package]]
50
51
  name = "ccsds-ndm-py"
51
- version = "0.0.2"
52
+ version = "0.0.4"
52
53
  dependencies = [
53
54
  "ccsds-ndm",
54
55
  "numpy",
@@ -116,6 +117,12 @@ dependencies = [
116
117
  "rustversion",
117
118
  ]
118
119
 
120
+ [[package]]
121
+ name = "itoa"
122
+ version = "1.0.17"
123
+ source = "registry+https://github.com/rust-lang/crates.io-index"
124
+ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
125
+
119
126
  [[package]]
120
127
  name = "libc"
121
128
  version = "0.2.180"
@@ -213,15 +220,15 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
213
220
 
214
221
  [[package]]
215
222
  name = "portable-atomic"
216
- version = "1.13.0"
223
+ version = "1.13.1"
217
224
  source = "registry+https://github.com/rust-lang/crates.io-index"
218
- checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
225
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
219
226
 
220
227
  [[package]]
221
228
  name = "portable-atomic-util"
222
- version = "0.2.4"
229
+ version = "0.2.5"
223
230
  source = "registry+https://github.com/rust-lang/crates.io-index"
224
- checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
231
+ checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5"
225
232
  dependencies = [
226
233
  "portable-atomic",
227
234
  ]
@@ -373,6 +380,19 @@ dependencies = [
373
380
  "syn",
374
381
  ]
375
382
 
383
+ [[package]]
384
+ name = "serde_json"
385
+ version = "1.0.149"
386
+ source = "registry+https://github.com/rust-lang/crates.io-index"
387
+ checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
388
+ dependencies = [
389
+ "itoa",
390
+ "memchr",
391
+ "serde",
392
+ "serde_core",
393
+ "zmij",
394
+ ]
395
+
376
396
  [[package]]
377
397
  name = "strsim"
378
398
  version = "0.11.1"
@@ -439,6 +459,6 @@ dependencies = [
439
459
 
440
460
  [[package]]
441
461
  name = "zmij"
442
- version = "1.0.17"
462
+ version = "1.0.19"
443
463
  source = "registry+https://github.com/rust-lang/crates.io-index"
444
- checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439"
464
+ checksum = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445"
@@ -4,7 +4,7 @@
4
4
 
5
5
  [package]
6
6
  name = "ccsds-ndm-py"
7
- version = "0.0.2"
7
+ version = "0.0.4"
8
8
  authors = ["Jochim Maene <jochim.maene+github@gmail.com>"]
9
9
  edition = "2021"
10
10
  description = "Python bindings for ccsds-ndm"
@@ -1,10 +1,8 @@
1
1
  # CCSDS NDM
2
2
 
3
3
  [![Python](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/python.yml/badge.svg)](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/python.yml)
4
- [![Rust](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/rust.yml/badge.svg)](https://github.com/JochimMaene/ccsds-ndm/actions/workflows/rust.yml)
5
4
  [![codecov](https://codecov.io/gh/JochimMaene/ccsds-ndm/branch/main/graph/badge.svg)](https://codecov.io/gh/JochimMaene/ccsds-ndm)
6
5
  [![PyPI](https://img.shields.io/pypi/v/ccsds-ndm-py)](https://pypi.org/project/ccsds-ndm-py/)
7
- [![crates.io](https://img.shields.io/crates/v/ccsds-ndm)](https://crates.io/crates/ccsds-ndm)
8
6
  [![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
9
7
 
10
8
  A Rust library with Python bindings for parsing and generating [CCSDS Navigation Data Messages (NDM)](https://public.ccsds.org/Pubs/500x0g4.pdf) in both KVN (Key-Value Notation) and XML formats.
@@ -54,8 +54,7 @@ FIELD_MAPPINGS: dict[str, dict[str, str]] = {
54
54
  "segment": "body.segment",
55
55
  },
56
56
  "RelativeMetadataData": {
57
- "relative_position": "relative_state_vector",
58
- "relative_velocity": "relative_state_vector",
57
+ "relative_state_vector": "relative_state_vector",
59
58
  },
60
59
  "ManeuverParameters": {
61
60
  "man_epoch_start": "man_epoch_ignition",
@@ -96,7 +95,10 @@ PYTHON_ONLY_FIELDS: dict[str, list[str]] = {
96
95
  # OEM NumPy accessors
97
96
  "OemData": [
98
97
  "state_vector_numpy",
98
+ "state_vector_epochs",
99
99
  "covariance_matrix_numpy",
100
+ "covariance_matrix_epochs",
101
+ "from_numpy",
100
102
  ],
101
103
  # OCM NumPy accessors
102
104
  "OcmTrajectoryStateHistory": [
@@ -108,9 +110,21 @@ PYTHON_ONLY_FIELDS: dict[str, list[str]] = {
108
110
  # CDM NumPy accessors
109
111
  "CdmCovarianceMatrix": [
110
112
  "to_numpy",
113
+ "from_numpy",
114
+ ],
115
+ "CdmStateVector": [
116
+ "from_numpy",
117
+ ],
118
+ "CdmData": [
119
+ "state_vector_numpy",
120
+ "covariance_matrix_numpy",
121
+ "from_numpy",
111
122
  ],
112
123
  "AemData": [
113
124
  "attitude_states",
125
+ "attitude_states_numpy",
126
+ "attitude_states_epochs",
127
+ "from_numpy",
114
128
  ],
115
129
  # Add other NumPy accessors as needed
116
130
  }
@@ -158,7 +172,6 @@ RUST_SKIP_FIELDS: dict[str, list[str]] = {
158
172
  "AcmMetadata": ["*"],
159
173
  "AcmPhysicalDescription": ["*"],
160
174
  "AcmSegment": ["*"],
161
- "OdmHeader": ["*"],
162
175
  "QuaternionState": ["quaternion_dot"],
163
176
  }
164
177