ltcodecs 4.4.0__tar.gz → 4.4.2__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 (69) hide show
  1. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/PKG-INFO +1 -1
  2. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/requirements.txt +1 -1
  3. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/optional_field_codec.py +1 -4
  4. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs.egg-info/PKG-INFO +1 -1
  5. ltcodecs-4.4.2/src/ltcodecs.egg-info/scm_version.json +8 -0
  6. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/tests/test_codecs.py +20 -0
  7. ltcodecs-4.4.0/src/ltcodecs.egg-info/scm_version.json +0 -8
  8. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/.gitignore +0 -0
  9. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/.gitlab/merge_request_templates/Default.md +0 -0
  10. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/.gitlab-ci.yml +0 -0
  11. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/CONTRIBUTING.md +0 -0
  12. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/LICENSE +0 -0
  13. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/README.md +0 -0
  14. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/Makefile +0 -0
  15. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/codec_configs.rst +0 -0
  16. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/conf.py +0 -0
  17. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/index.rst +0 -0
  18. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/quickstart.rst +0 -0
  19. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/reference/codec_aliases.rst +0 -0
  20. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/reference/codecs.rst +0 -0
  21. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/reference/config_schema.rst +0 -0
  22. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/reference/python_api.rst +0 -0
  23. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/requirements.txt +0 -0
  24. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/ros_messages.rst +0 -0
  25. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/docs/tests.rst +0 -0
  26. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/pyproject.toml +0 -0
  27. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/setup.cfg +0 -0
  28. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/__init__.py +0 -0
  29. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/_length_modes.py +0 -0
  30. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/bool_codec.py +0 -0
  31. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/bytes_codec.py +0 -0
  32. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/ccl_latlon_bcd_codec.py +0 -0
  33. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/ccl_latlon_codec.py +0 -0
  34. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/constant_codec.py +0 -0
  35. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/dict_codec.py +0 -0
  36. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/dict_field_codec.py +0 -0
  37. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/exceptions.py +0 -0
  38. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/exponentialgolomb_integer_codec.py +0 -0
  39. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/field_codec.py +0 -0
  40. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/fixed_len_array_codec.py +0 -0
  41. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/fixedint_codec.py +0 -0
  42. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/float_codec.py +0 -0
  43. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/ieee_float_codec.py +0 -0
  44. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/inspect_cli.py +0 -0
  45. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/inspection.py +0 -0
  46. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/linspace_float_codec.py +0 -0
  47. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/lzma_codec.py +0 -0
  48. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/metadata_field_codec.py +0 -0
  49. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/multiple_field_codec.py +0 -0
  50. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/padding_codec.py +0 -0
  51. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/ros_message_codec.py +0 -0
  52. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/ros_msg_field_codec.py +0 -0
  53. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/rostime_codec.py +0 -0
  54. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/string_codecs.py +0 -0
  55. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/string_enum_codec.py +0 -0
  56. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/variable_len_array_codec.py +0 -0
  57. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/variable_len_bit_array_codec.py +0 -0
  58. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs/varint_codec.py +0 -0
  59. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs.egg-info/SOURCES.txt +0 -0
  60. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs.egg-info/dependency_links.txt +0 -0
  61. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs.egg-info/entry_points.txt +0 -0
  62. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs.egg-info/requires.txt +0 -0
  63. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs.egg-info/scm_file_list.json +0 -0
  64. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/src/ltcodecs.egg-info/top_level.txt +0 -0
  65. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/tests/__init__.py +0 -0
  66. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/tests/dict_codec.yaml +0 -0
  67. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/tests/string_msg_codec.yaml +0 -0
  68. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/tests/test_dict_codec.py +0 -0
  69. {ltcodecs-4.4.0 → ltcodecs-4.4.2}/tests/test_inspection.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ltcodecs
3
- Version: 4.4.0
3
+ Version: 4.4.2
4
4
  Summary: LT Codecs: Lightweight codecs for use over low-throughput links
5
5
  Author: Woods Hole Oceanographic Institution, Acoustic Communications Group
6
6
  License: LGPL-3.0-or-later
@@ -1,4 +1,4 @@
1
- bitstring
1
+ bitstring>=4,<5
2
2
  msgpack
3
3
  crccheck
4
4
  rospy-yaml-include
@@ -110,10 +110,7 @@ class OptionalFieldCodec(MultipleFieldCodec):
110
110
  decoded_message = {}
111
111
  for field_name, field_params in self.target_fields.items():
112
112
  field_codec = self.field_codecs[field_name]
113
- if hasattr(field_codec, "decode_as_dict"):
114
- decoded_message[field_name] = field_codec.decode_as_dict(bits_to_decode)
115
- else:
116
- decoded_message[field_name] = field_codec.decode(bits_to_decode)
113
+ decoded_message[field_name] = field_codec.decode(bits_to_decode)
117
114
 
118
115
  return value, decoded_message
119
116
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ltcodecs
3
- Version: 4.4.0
3
+ Version: 4.4.2
4
4
  Summary: LT Codecs: Lightweight codecs for use over low-throughput links
5
5
  Author: Woods Hole Oceanographic Institution, Acoustic Communications Group
6
6
  License: LGPL-3.0-or-later
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "4.4.2",
3
+ "distance": 0,
4
+ "node": "ga9636d4658ff2656726da9b973e30356019e708d",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-13"
8
+ }
@@ -580,6 +580,26 @@ class TestCodecs:
580
580
 
581
581
  assert len(bit_stream) == 1, "Encoded message (when nulled) has wrong number of bits"
582
582
 
583
+ def test_optional_codec_decodes_nested_ros_message(self) -> None:
584
+ """Optional ROS message fields decode to their configured message type."""
585
+
586
+ msg = String(data="test")
587
+ codec = ltcodecs.OptionalFieldCodec(
588
+ target_fields={
589
+ "nested": {
590
+ "codec": "msg",
591
+ "ros_type": "std_msgs/String",
592
+ }
593
+ }
594
+ )
595
+
596
+ encoded_bits, _, _ = codec.encode_multiple(True, {"nested": msg})
597
+ present, decoded = codec.decode_multiple(ConstBitStream(encoded_bits))
598
+
599
+ assert present is True
600
+ assert isinstance(decoded["nested"], String)
601
+ assert decoded["nested"].data == msg.data
602
+
583
603
  def test_ros_message_field_codec(self) -> None:
584
604
  """test functionality of the ros message field codec"""
585
605
 
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "4.4.0",
3
- "distance": 0,
4
- "node": "g2883fb60c2b1a9a5f541c2efbe556606f564ac93",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-09-08"
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes