cantools 44.2.0__tar.gz → 44.2.1__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 (325) hide show
  1. {cantools-44.2.0 → cantools-44.2.1}/PKG-INFO +1 -1
  2. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/dbc/dbc_writer.py +27 -0
  3. {cantools-44.2.0 → cantools-44.2.1}/src/cantools.egg-info/PKG-INFO +1 -1
  4. cantools-44.2.1/src/cantools.egg-info/scm_version.json +8 -0
  5. {cantools-44.2.0 → cantools-44.2.1}/tests/test_database.py +20 -0
  6. cantools-44.2.0/src/cantools.egg-info/scm_version.json +0 -8
  7. {cantools-44.2.0 → cantools-44.2.1}/.gitattributes +0 -0
  8. {cantools-44.2.0 → cantools-44.2.1}/.github/FUNDING.yml +0 -0
  9. {cantools-44.2.0 → cantools-44.2.1}/.github/dependabot.yml +0 -0
  10. {cantools-44.2.0 → cantools-44.2.1}/.github/release.yml +0 -0
  11. {cantools-44.2.0 → cantools-44.2.1}/.github/workflows/pythonpackage.yml +0 -0
  12. {cantools-44.2.0 → cantools-44.2.1}/.gitignore +0 -0
  13. {cantools-44.2.0 → cantools-44.2.1}/.readthedocs.yml +0 -0
  14. {cantools-44.2.0 → cantools-44.2.1}/LICENSE +0 -0
  15. {cantools-44.2.0 → cantools-44.2.1}/MANIFEST.in +0 -0
  16. {cantools-44.2.0 → cantools-44.2.1}/README.rst +0 -0
  17. {cantools-44.2.0 → cantools-44.2.1}/docs/Makefile +0 -0
  18. {cantools-44.2.0 → cantools-44.2.1}/docs/conf.py +0 -0
  19. {cantools-44.2.0 → cantools-44.2.1}/docs/index.rst +0 -0
  20. {cantools-44.2.0 → cantools-44.2.1}/docs/make.bat +0 -0
  21. {cantools-44.2.0 → cantools-44.2.1}/docs/monitor.png +0 -0
  22. {cantools-44.2.0 → cantools-44.2.1}/docs/plot-1.png +0 -0
  23. {cantools-44.2.0 → cantools-44.2.1}/docs/plot-2-axes.png +0 -0
  24. {cantools-44.2.0 → cantools-44.2.1}/docs/plot-2-subplots.png +0 -0
  25. {cantools-44.2.0 → cantools-44.2.1}/docs/plot-seaborn.png +0 -0
  26. {cantools-44.2.0 → cantools-44.2.1}/docs/requirements.txt +0 -0
  27. {cantools-44.2.0 → cantools-44.2.1}/examples/dbc_io/dbc_input.dbc +0 -0
  28. {cantools-44.2.0 → cantools-44.2.1}/examples/dbc_io/main.py +0 -0
  29. {cantools-44.2.0 → cantools-44.2.1}/examples/diagnostics/did.py +0 -0
  30. {cantools-44.2.0 → cantools-44.2.1}/examples/hello_world.py +0 -0
  31. {cantools-44.2.0 → cantools-44.2.1}/examples/motor_tester/README.rst +0 -0
  32. {cantools-44.2.0 → cantools-44.2.1}/examples/motor_tester/main.py +0 -0
  33. {cantools-44.2.0 → cantools-44.2.1}/examples/motor_tester/motor.py +0 -0
  34. {cantools-44.2.0 → cantools-44.2.1}/examples/motor_tester/system.kcd +0 -0
  35. {cantools-44.2.0 → cantools-44.2.1}/pyproject.toml +0 -0
  36. {cantools-44.2.0 → cantools-44.2.1}/setup.cfg +0 -0
  37. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/__init__.py +0 -0
  38. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/__main__.py +0 -0
  39. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/autosar/__init__.py +0 -0
  40. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/autosar/end_to_end.py +0 -0
  41. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/autosar/secoc.py +0 -0
  42. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/autosar/snakeauth.py +0 -0
  43. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/__init__.py +0 -0
  44. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/__init__.py +0 -0
  45. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/bus.py +0 -0
  46. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/c_source.py +0 -0
  47. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/database.py +0 -0
  48. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/__init__.py +0 -0
  49. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/__init__.py +0 -0
  50. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/bus_specifics.py +0 -0
  51. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/database_specifics.py +0 -0
  52. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/ecu_extract_loader.py +0 -0
  53. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/end_to_end_properties.py +0 -0
  54. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/message_specifics.py +0 -0
  55. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/node_specifics.py +0 -0
  56. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/secoc_properties.py +0 -0
  57. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/system_loader.py +0 -0
  58. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/arxml/utils.py +0 -0
  59. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/dbc/__init__.py +0 -0
  60. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/dbc/dbc_attribute.py +0 -0
  61. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/dbc/dbc_attribute_definition.py +0 -0
  62. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/dbc/dbc_environment_variable.py +0 -0
  63. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/dbc/dbc_loader.py +0 -0
  64. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/dbc/dbc_specifics.py +0 -0
  65. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/kcd.py +0 -0
  66. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/sym.py +0 -0
  67. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/formats/utils.py +0 -0
  68. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/internal_database.py +0 -0
  69. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/message.py +0 -0
  70. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/node.py +0 -0
  71. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/signal.py +0 -0
  72. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/can/signal_group.py +0 -0
  73. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/conversion.py +0 -0
  74. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/diagnostics/__init__.py +0 -0
  75. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/diagnostics/data.py +0 -0
  76. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/diagnostics/database.py +0 -0
  77. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/diagnostics/did.py +0 -0
  78. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/diagnostics/formats/__init__.py +0 -0
  79. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/diagnostics/formats/cdd.py +0 -0
  80. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/diagnostics/internal_database.py +0 -0
  81. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/errors.py +0 -0
  82. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/namedsignalvalue.py +0 -0
  83. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/database/utils.py +0 -0
  84. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/errors.py +0 -0
  85. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/j1939.py +0 -0
  86. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/logreader.py +0 -0
  87. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/py.typed +0 -0
  88. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/__init__.py +0 -0
  89. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/__utils__.py +0 -0
  90. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/convert.py +0 -0
  91. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/decode.py +0 -0
  92. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/dump/__init__.py +0 -0
  93. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/dump/formatting.py +0 -0
  94. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/generate_c_source.py +0 -0
  95. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/list.py +0 -0
  96. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/monitor.py +0 -0
  97. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/subparsers/plot.py +0 -0
  98. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/tester.py +0 -0
  99. {cantools-44.2.0 → cantools-44.2.1}/src/cantools/typechecking.py +0 -0
  100. {cantools-44.2.0 → cantools-44.2.1}/src/cantools.egg-info/SOURCES.txt +0 -0
  101. {cantools-44.2.0 → cantools-44.2.1}/src/cantools.egg-info/dependency_links.txt +0 -0
  102. {cantools-44.2.0 → cantools-44.2.1}/src/cantools.egg-info/entry_points.txt +0 -0
  103. {cantools-44.2.0 → cantools-44.2.1}/src/cantools.egg-info/requires.txt +0 -0
  104. {cantools-44.2.0 → cantools-44.2.1}/src/cantools.egg-info/scm_file_list.json +0 -0
  105. {cantools-44.2.0 → cantools-44.2.1}/src/cantools.egg-info/top_level.txt +0 -0
  106. {cantools-44.2.0 → cantools-44.2.1}/tests/__init__.py +0 -0
  107. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/compu_method_no_category.arxml +0 -0
  108. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/ecu-extract-4.2.arxml +0 -0
  109. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-3.2.3.arxml +0 -0
  110. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-4.2.arxml +0 -0
  111. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-DAI-3.1.2.arxml +0 -0
  112. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-bad-root-tag-4.2.arxml +0 -0
  113. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-dangling-reference-4.2.arxml +0 -0
  114. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-float-limits-missing-compu-scale-4.2.arxml +0 -0
  115. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-float-values.arxml +0 -0
  116. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-illegal-namespace-4.2.arxml +0 -0
  117. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-illegal-root-4.2.arxml +0 -0
  118. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-illegal-version-4.2.2.1.0.arxml +0 -0
  119. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-missing-denominator-4.2.arxml +0 -0
  120. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-missing-factor-4.2.arxml +0 -0
  121. {cantools-44.2.0 → cantools-44.2.1}/tests/files/arxml/system-missing-rational-4.2.arxml +0 -0
  122. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/abs.c +0 -0
  123. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/abs.h +0 -0
  124. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/camel_case_empty.c +0 -0
  125. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/camel_case_empty.h +0 -0
  126. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/choices.c +0 -0
  127. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/choices.h +0 -0
  128. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/floating_point.c +0 -0
  129. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/floating_point.h +0 -0
  130. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/floating_point_bit_fields.c +0 -0
  131. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/floating_point_bit_fields.h +0 -0
  132. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/floating_point_use_float.c +0 -0
  133. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/floating_point_use_float.h +0 -0
  134. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/letter_terminated_can_id_6_0.c +0 -0
  135. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/letter_terminated_can_id_6_0.h +0 -0
  136. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/min_max_only_6_0.c +0 -0
  137. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/min_max_only_6_0.h +0 -0
  138. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk.c +0 -0
  139. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk.h +0 -0
  140. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_bit_fields.c +0 -0
  141. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_bit_fields.h +0 -0
  142. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_no_floating_point_numbers.c +0 -0
  143. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_no_floating_point_numbers.h +0 -0
  144. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_sender_node.c +0 -0
  145. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_sender_node.h +0 -0
  146. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_sender_node_no_floating_point_numbers.c +0 -0
  147. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_sender_node_no_floating_point_numbers.h +0 -0
  148. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_use_round.c +0 -0
  149. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/motohawk_use_round.h +0 -0
  150. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/multiplex.c +0 -0
  151. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/multiplex.h +0 -0
  152. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/multiplex_2.c +0 -0
  153. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/multiplex_2.h +0 -0
  154. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/multiplex_2_fuzzer.c +0 -0
  155. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/multiplex_2_fuzzer.h +0 -0
  156. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/multiplex_2_fuzzer.mk +0 -0
  157. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/my_database_name.c +0 -0
  158. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/my_database_name.h +0 -0
  159. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/no_signals.c +0 -0
  160. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/no_signals.h +0 -0
  161. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/open_actuator.c +0 -0
  162. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/open_actuator.h +0 -0
  163. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/open_actuator_no_floating_point_numbers.c +0 -0
  164. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/open_actuator_no_floating_point_numbers.h +0 -0
  165. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/open_actuator_sender_node.c +0 -0
  166. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/open_actuator_sender_node.h +0 -0
  167. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/open_actuator_sender_node_no_floating_point_numbers.c +0 -0
  168. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/open_actuator_sender_node_no_floating_point_numbers.h +0 -0
  169. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/padding_bit_order.c +0 -0
  170. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/padding_bit_order.h +0 -0
  171. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/signed.c +0 -0
  172. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/signed.h +0 -0
  173. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/signed_bit_fields.c +0 -0
  174. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/signed_bit_fields.h +0 -0
  175. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/vehicle.c +0 -0
  176. {cantools-44.2.0 → cantools-44.2.1}/tests/files/c_source/vehicle.h +0 -0
  177. {cantools-44.2.0 → cantools-44.2.1}/tests/files/cdd/example-diddatarefs.cdd +0 -0
  178. {cantools-44.2.0 → cantools-44.2.1}/tests/files/cdd/example.cdd +0 -0
  179. {cantools-44.2.0 → cantools-44.2.1}/tests/files/cdd/invalid-bo-example.cdd +0 -0
  180. {cantools-44.2.0 → cantools-44.2.1}/tests/files/cdd/le-example.cdd +0 -0
  181. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/BU_BO_REL_.dbc +0 -0
  182. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/BU_BO_REL_Message.dbc +0 -0
  183. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/BU_EV_REL_.dbc +0 -0
  184. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/CamelCaseEmpty.dbc +0 -0
  185. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/abs.dbc +0 -0
  186. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/add_two_dbc_files_1.dbc +0 -0
  187. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/add_two_dbc_files_2.dbc +0 -0
  188. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/attribute_Event.dbc +0 -0
  189. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/attributes.dbc +0 -0
  190. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/bad_message_length.dbc +0 -0
  191. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/big_numbers.dbc +0 -0
  192. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/bus_comment.dbc +0 -0
  193. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/bus_comment_bare.dbc +0 -0
  194. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/bus_comment_bare_out.dbc +0 -0
  195. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/choices.dbc +0 -0
  196. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/choices_issue_with_name.dbc +0 -0
  197. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/comments_hex_and_motorola_converted_from_sym.dbc +0 -0
  198. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/cp1252.dbc +0 -0
  199. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/dump_signal_choices.dbc +0 -0
  200. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/emc32.dbc +0 -0
  201. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/empty_choice.dbc +0 -0
  202. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/empty_ns.dbc +0 -0
  203. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/environment_variable_data.dbc +0 -0
  204. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/environment_variable_multiple_access_nodes.dbc +0 -0
  205. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/fd_test.dbc +0 -0
  206. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/fd_test_int.dbc +0 -0
  207. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/floating_point.dbc +0 -0
  208. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/floating_point_use_float.dbc +0 -0
  209. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/foobar.dbc +0 -0
  210. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/is_in_phys_range.dbc +0 -0
  211. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_163_newline.dbc +0 -0
  212. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_168.DBC +0 -0
  213. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_184_extended_mux_cascaded.dbc +0 -0
  214. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_184_extended_mux_cascaded_dumped.dbc +0 -0
  215. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_184_extended_mux_independent_multiplexors.dbc +0 -0
  216. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_184_extended_mux_independent_multiplexors_dumped.dbc +0 -0
  217. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_184_extended_mux_multiple_values.dbc +0 -0
  218. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_184_extended_mux_multiple_values_dumped.dbc +0 -0
  219. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_199.dbc +0 -0
  220. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_199_extended.dbc +0 -0
  221. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_207_sig_plus.dbc +0 -0
  222. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_228.dbc +0 -0
  223. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_62.dbc +0 -0
  224. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_63.dbc +0 -0
  225. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_636_negative_scaling.dbc +0 -0
  226. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_725.dbc +0 -0
  227. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/issue_784.dbc +0 -0
  228. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/j1939.dbc +0 -0
  229. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/long_names.dbc +0 -0
  230. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/long_names_multiple_relations.dbc +0 -0
  231. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/long_names_multiple_relations_dumped.dbc +0 -0
  232. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/message-dlc-zero.dbc +0 -0
  233. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/mod_name_len_dest.dbc +0 -0
  234. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/mod_name_len_src.dbc +0 -0
  235. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/motohawk.dbc +0 -0
  236. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/motohawk_fd.dbc +0 -0
  237. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/motohawk_use_round.dbc +0 -0
  238. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/motohawk_with_comments.dbc +0 -0
  239. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/msxii_system_can.dbc +0 -0
  240. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/multiple_senders.dbc +0 -0
  241. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/multiplex.dbc +0 -0
  242. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/multiplex_2.dbc +0 -0
  243. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/multiplex_2_dumped.dbc +0 -0
  244. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/multiplex_choices.dbc +0 -0
  245. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/multiplex_choices_dumped.dbc +0 -0
  246. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/multiplex_dumped.dbc +0 -0
  247. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/no_sender.dbc +0 -0
  248. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/no_signals.dbc +0 -0
  249. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/open_actuator.dbc +0 -0
  250. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/padding_bit_order.dbc +0 -0
  251. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/relation_attributes.dbc +0 -0
  252. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/sig_groups.dbc +0 -0
  253. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/sig_groups_del.dbc +0 -0
  254. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/sig_groups_out.dbc +0 -0
  255. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/signed.dbc +0 -0
  256. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/socialledge-written-by-cantools-with-default-sort-signals.dbc +0 -0
  257. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/socialledge-written-by-cantools-with-sort-signals-by-name.dbc +0 -0
  258. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/socialledge-written-by-cantools.dbc +0 -0
  259. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/socialledge.dbc +0 -0
  260. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/test_extended_id_dump.dbc +0 -0
  261. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/test_multiplex_dump.dbc +0 -0
  262. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/timing.dbc +0 -0
  263. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/val_table.dbc +0 -0
  264. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/variable_dlc.dbc +0 -0
  265. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/vehicle.dbc +0 -0
  266. {cantools-44.2.0 → cantools-44.2.1}/tests/files/dbc/vframeformat_int.dbc +0 -0
  267. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/auto_message_length.kcd +0 -0
  268. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/bad_message_length.kcd +0 -0
  269. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/dump.kcd +0 -0
  270. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/empty.kcd +0 -0
  271. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/message_layout.kcd +0 -0
  272. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/signal_range.kcd +0 -0
  273. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/tester.kcd +0 -0
  274. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/the_homer.kcd +0 -0
  275. {cantools-44.2.0 → cantools-44.2.1}/tests/files/kcd/vehicle.kcd +0 -0
  276. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/bad_message_length.sym +0 -0
  277. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/big-endian.sym +0 -0
  278. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/comments_hex_and_motorola.sym +0 -0
  279. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/empty-6.0.sym +0 -0
  280. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/empty-enum-6.0.sym +0 -0
  281. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/issue_138.sym +0 -0
  282. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/jopp-5.0.sym +0 -0
  283. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/jopp-6.0.sym +0 -0
  284. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/letter-terminated-can-id-6.0.sym +0 -0
  285. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/min-max-only-6.0.sym +0 -0
  286. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/multiplexed_variables.sym +0 -0
  287. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/receive-6.0.sym +0 -0
  288. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/send-6.0.sym +0 -0
  289. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/sendreceive-6.0.sym +0 -0
  290. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/signal-types-6.0.sym +0 -0
  291. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/special-chars-6.0.sym +0 -0
  292. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/test_extended_id_dump.sym +0 -0
  293. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/test_multiline_enum.sym +0 -0
  294. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/test_multiplex_dump.sym +0 -0
  295. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/type-extended-cycle-dash-p.sym +0 -0
  296. {cantools-44.2.0 → cantools-44.2.1}/tests/files/sym/variables-color-enum-6.0.sym +0 -0
  297. {cantools-44.2.0 → cantools-44.2.1}/tests/test_autosar.py +0 -0
  298. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/.gitignore +0 -0
  299. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/CMakeLists.txt +0 -0
  300. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_basic.c +0 -0
  301. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_basic.h +0 -0
  302. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_bit_fields.c +0 -0
  303. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_bit_fields.h +0 -0
  304. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_framework/CMakeLists.txt +0 -0
  305. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_framework/LICENSE.txt +0 -0
  306. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_framework/unity.c +0 -0
  307. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_framework/unity.h +0 -0
  308. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_framework/unity_internals.h +0 -0
  309. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_initial_values.c +0 -0
  310. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_initial_values.h +0 -0
  311. {cantools-44.2.0 → cantools-44.2.1}/tests/test_c_code/test_runner.c +0 -0
  312. {cantools-44.2.0 → cantools-44.2.1}/tests/test_command_line.py +0 -0
  313. {cantools-44.2.0 → cantools-44.2.1}/tests/test_conversion.py +0 -0
  314. {cantools-44.2.0 → cantools-44.2.1}/tests/test_convert.py +0 -0
  315. {cantools-44.2.0 → cantools-44.2.1}/tests/test_database_utils.py +0 -0
  316. {cantools-44.2.0 → cantools-44.2.1}/tests/test_diagnostics_database.py +0 -0
  317. {cantools-44.2.0 → cantools-44.2.1}/tests/test_dump.py +0 -0
  318. {cantools-44.2.0 → cantools-44.2.1}/tests/test_list.py +0 -0
  319. {cantools-44.2.0 → cantools-44.2.1}/tests/test_logreader.py +0 -0
  320. {cantools-44.2.0 → cantools-44.2.1}/tests/test_monitor.py +0 -0
  321. {cantools-44.2.0 → cantools-44.2.1}/tests/test_plot.py +0 -0
  322. {cantools-44.2.0 → cantools-44.2.1}/tests/test_plot_unittests.py +0 -0
  323. {cantools-44.2.0 → cantools-44.2.1}/tests/test_plot_without_mock.py +0 -0
  324. {cantools-44.2.0 → cantools-44.2.1}/tests/test_tester.py +0 -0
  325. {cantools-44.2.0 → cantools-44.2.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cantools
3
- Version: 44.2.0
3
+ Version: 44.2.1
4
4
  Summary: CAN BUS tools.
5
5
  Author-email: Erik Moqvist <erik.moqvist@gmail.com>
6
6
  License: MIT
@@ -156,6 +156,14 @@ ATTRIBUTE_DEFINITION_GENSIGSTARTVALUE = DbcAttributeDefinition[float](
156
156
  minimum=0,
157
157
  maximum=100000000000)
158
158
 
159
+ ATTRIBUTE_DEFINITION_SPN = DbcAttributeDefinition(
160
+ name='SPN',
161
+ default_value=0,
162
+ kind='SG_',
163
+ type_name='INT',
164
+ minimum=0,
165
+ maximum=524287)
166
+
159
167
 
160
168
  class LongNamesConverter:
161
169
  def __init__(self, long_names: list[str]) -> None:
@@ -549,6 +557,12 @@ def _need_startval_def(database: InternalDatabase) -> bool:
549
557
  for s in m.signals)
550
558
 
551
559
 
560
+ def _need_spn_def(database: InternalDatabase) -> bool:
561
+ return any(s.spn is not None
562
+ for m in database.messages
563
+ for s in m.signals)
564
+
565
+
552
566
  def _need_cycletime_def(database: InternalDatabase) -> bool:
553
567
  # If the user has added cycle times to a database which didn't start with them,
554
568
  # we need to add the global attribute definition so the output DBC is valid
@@ -580,6 +594,8 @@ def _dump_attribute_definitions(database: InternalDatabase) -> list[str]:
580
594
  definitions['GenMsgCycleTime'] = ATTRIBUTE_DEFINITION_GENMSGCYCLETIME
581
595
  if 'GenSigStartValue' not in definitions and _need_startval_def(database):
582
596
  definitions['GenSigStartValue'] = ATTRIBUTE_DEFINITION_GENSIGSTARTVALUE
597
+ if 'SPN' not in definitions and _need_spn_def(database):
598
+ definitions['SPN'] = ATTRIBUTE_DEFINITION_SPN
583
599
 
584
600
  # create 'Baudrate' attribute definition
585
601
  if len(database.buses) == 1 and database.buses[0].baudrate is not None:
@@ -793,6 +809,17 @@ def _dump_attributes(database: InternalDatabase, sort_signals: type_sort_signals
793
809
  value=float(signal.raw_initial),
794
810
  definition=ATTRIBUTE_DEFINITION_GENSIGSTARTVALUE)
795
811
 
812
+ # synchronize the attribute for the J1939 suspect parameter
813
+ # number with the SPN specified by the signal object
814
+ spn_def = database.dbc.attribute_definitions.get('SPN')
815
+ if signal.spn is None:
816
+ sig_attributes.pop('SPN', None)
817
+ elif spn_def is not None and ('SPN' in sig_attributes
818
+ or signal.spn != spn_def.default_value):
819
+ sig_attributes['SPN'] = DbcAttribute(
820
+ value=signal.spn,
821
+ definition=dbc_assert_type(spn_def, DbcAttributeDefinition))
822
+
796
823
  # output all signal attributes
797
824
  for attribute in sig_attributes.values():
798
825
  attributes.append(('signal', attribute, None, message, signal, None))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cantools
3
- Version: 44.2.0
3
+ Version: 44.2.1
4
4
  Summary: CAN BUS tools.
5
5
  Author-email: Erik Moqvist <erik.moqvist@gmail.com>
6
6
  License: MIT
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "44.2.1",
3
+ "distance": 0,
4
+ "node": "g29bc44be34029f319dc9f31473860f11da51e59a",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-07"
8
+ }
@@ -154,6 +154,26 @@ class CanToolsDatabaseTest(unittest.TestCase):
154
154
  actual_db.get_message_by_name('m').get_signal_by_name('s').raw_initial,
155
155
  sig.raw_initial)
156
156
 
157
+ def test_dbc_dump_spn(self):
158
+ sig = Signal(name='s', start=0, length=8, spn=190)
159
+ msg = Message(frame_id=0x42, name='m', length=8, signals=[sig])
160
+ expected_db = cantools.database.Database(messages=[msg])
161
+
162
+ actual_db = cantools.database.Database()
163
+ actual_db.add_dbc_string(expected_db.as_dbc_string())
164
+
165
+ self.assertEqual(
166
+ actual_db.get_message_by_name('m').get_signal_by_name('s').spn,
167
+ sig.spn)
168
+
169
+ # changed SPNs of a loaded database are dumped as well
170
+ db = cantools.database.load_file('tests/files/dbc/j1939.dbc')
171
+ db.messages[0].signals[0].spn = 1234
172
+ db.messages[1].signals[0].spn = 4321
173
+ db = cantools.database.load_string(db.as_dbc_string(), 'dbc')
174
+ self.assertEqual(db.messages[0].signals[0].spn, 1234)
175
+ self.assertEqual(db.messages[1].signals[0].spn, 4321)
176
+
157
177
  def test_motohawk(self):
158
178
  filename = 'tests/files/dbc/motohawk.dbc'
159
179
 
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "44.2.0",
3
- "distance": 0,
4
- "node": "g10cf2e3bce84268f93e36c7d0ca79b54db63efa5",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-10-06"
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
File without changes