ramses-rf 0.53.3__tar.gz → 0.53.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 (387) hide show
  1. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.github/workflows/check-cov.yml +1 -1
  2. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.pre-commit-config.yaml +5 -1
  3. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/PKG-INFO +1 -1
  4. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/pyproject.toml +1 -1
  5. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_cli/client.py +15 -11
  6. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/gateway.py +14 -10
  7. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/version.py +1 -1
  8. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/gateway.py +20 -16
  9. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/transport.py +29 -15
  10. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/version.py +1 -1
  11. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/requirements/requirements_dev.txt +4 -2
  12. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_eavesdrop_schema.py +1 -1
  13. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_schemas.py +7 -13
  14. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_systems.py +69 -90
  15. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_cli/test_client.py +5 -4
  16. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  17. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.github/dependabot.yml +0 -0
  18. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.github/workflows/check-lint.yml +0 -0
  19. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.github/workflows/check-test.yml +0 -0
  20. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.github/workflows/check-type.yml +0 -0
  21. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.github/workflows/publish-hatch.yml +0 -0
  22. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/.gitignore +0 -0
  23. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/LICENSE +0 -0
  24. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/README-developers.md +0 -0
  25. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/README.md +0 -0
  26. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/client.py +0 -0
  27. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/Makefile +0 -0
  28. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/make.bat +0 -0
  29. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/_static/CC-BY-NC-SA-4.0.txt +0 -0
  30. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/_static/ramses_rf_logo.png +0 -0
  31. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/binding_process.md +0 -0
  32. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/conf.py +0 -0
  33. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/glossary.rst +0 -0
  34. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/index.rst +0 -0
  35. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/modules.rst +0 -0
  36. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/ramses_cli.rst +0 -0
  37. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/ramses_rf.device.rst +0 -0
  38. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/ramses_rf.rst +0 -0
  39. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/ramses_rf.system.rst +0 -0
  40. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/ramses_tx.rst +0 -0
  41. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/docs/source/usage.md +0 -0
  42. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/misc/2411_parser.py +0 -0
  43. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/misc/fingerprints.log +0 -0
  44. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/misc/ser2net.yaml +0 -0
  45. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/misc/ti_3410/notes.sh +0 -0
  46. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/misc/ti_3410/ti_3410.fw +0 -0
  47. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_cli/__init__.py +0 -0
  48. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_cli/debug.py +0 -0
  49. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_cli/discovery.py +0 -0
  50. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_cli/py.typed +0 -0
  51. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_cli/utils/cat_slow.py +0 -0
  52. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_cli/utils/convert.py +0 -0
  53. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/__init__.py +0 -0
  54. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/binding_fsm.py +0 -0
  55. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/const.py +0 -0
  56. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/database.py +0 -0
  57. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/device/__init__.py +0 -0
  58. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/device/base.py +0 -0
  59. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/device/heat.py +0 -0
  60. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/device/hvac.py +0 -0
  61. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/dispatcher.py +0 -0
  62. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/entity_base.py +0 -0
  63. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/exceptions.py +0 -0
  64. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/helpers.py +0 -0
  65. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/py.typed +0 -0
  66. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/schemas.py +0 -0
  67. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/storage.py +0 -0
  68. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/system/__init__.py +0 -0
  69. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/system/faultlog.py +0 -0
  70. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/system/heat.py +0 -0
  71. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/system/schedule.py +0 -0
  72. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_rf/system/zones.py +0 -0
  73. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/__init__.py +0 -0
  74. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/address.py +0 -0
  75. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/command.py +0 -0
  76. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/const.py +0 -0
  77. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/exceptions.py +0 -0
  78. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/fingerprints.py +0 -0
  79. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/frame.py +0 -0
  80. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/helpers.py +0 -0
  81. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/logger.py +0 -0
  82. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/message.py +0 -0
  83. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/opentherm.py +0 -0
  84. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/packet.py +0 -0
  85. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/parsers.py +0 -0
  86. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/protocol.py +0 -0
  87. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/protocol_fsm.py +0 -0
  88. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/py.typed +0 -0
  89. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/ramses.py +0 -0
  90. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/schemas.py +0 -0
  91. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/typed_dicts.py +0 -0
  92. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/ramses_tx/typing.py +0 -0
  93. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/requirements/requirements.txt +0 -0
  94. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/requirements/requirements_docs.txt +0 -0
  95. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/_test_apis_mock.py +0 -0
  96. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/_test_mock_faultlog.py +0 -0
  97. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/_test_mock_schedule.py +0 -0
  98. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/_test_packets_bad.py +0 -0
  99. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/_test_performance_WIP.py +0 -0
  100. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/_test_state_mgt.py +0 -0
  101. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/common.py +0 -0
  102. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/mocked_devices/__init__.py +0 -0
  103. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/mocked_devices/command.py +0 -0
  104. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/mocked_devices/const.py +0 -0
  105. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/mocked_devices/device_heat.py +0 -0
  106. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/mocked_devices/device_hvac.py +0 -0
  107. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/deprecated/mocked_devices/transport.py +0 -0
  108. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/test_HA_MQTT/test_transport_callback.py +0 -0
  109. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/__init__.py +0 -0
  110. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/heat/ctl_bdr_91t.log +0 -0
  111. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/heat/dts_ctl_sensor.log +0 -0
  112. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/heat/hcw_ctl_sensor.log +0 -0
  113. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/heat/rnd_ctl_sensor.log +0 -0
  114. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/heat/rnd_ctl_sensor.yaml +0 -0
  115. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/heat/trv_ctl.log +0 -0
  116. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/co2_fan_itho.json +0 -0
  117. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/co2_fan_itho.log +0 -0
  118. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/co2_fan_itho.yaml +0 -0
  119. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/dis_fan_orcon.json +0 -0
  120. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/dis_fan_orcon.log +0 -0
  121. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/rem_fan_climarad.log +0 -0
  122. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/rem_fan_nuaire.json +0 -0
  123. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/rem_fan_nuaire.log +0 -0
  124. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/rem_fan_nuaire.yaml +0 -0
  125. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/rem_fan_vasco.log +0 -0
  126. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/bindings/hvac/rem_fan_ventura.log +0 -0
  127. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/devices/device_02.log +0 -0
  128. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/devices/device_04.log +0 -0
  129. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/devices/device_10.log +0 -0
  130. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/devices/device_13.log +0 -0
  131. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/devices/device_22.log +0 -0
  132. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_off.json +0 -0
  133. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_dev_class/hvac/known_list_eavesdrop_on.json +0 -0
  134. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_dev_class/hvac/packet.log +0 -0
  135. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_trv_actuator_long/packet.log +0 -0
  136. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_off.json +0 -0
  137. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_trv_actuator_long/schema_eavesdrop_on.json +0 -0
  138. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/packet.log +0 -0
  139. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_off.json +0 -0
  140. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_trv_actuator_mixed/schema_eavesdrop_on.json +0 -0
  141. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_ufh_circuits/packet.log +0 -0
  142. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_off.json +0 -0
  143. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/_ufh_circuits/schema_eavesdrop_on.json +0 -0
  144. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/app_cntrl/packet.log +0 -0
  145. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_off.json +0 -0
  146. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/app_cntrl/schema_eavesdrop_on.json +0 -0
  147. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/trv_actuators/packet.log +0 -0
  148. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_off.json +0 -0
  149. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/trv_actuators/schema_eavesdrop_on.json +0 -0
  150. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_000/packet.log +0 -0
  151. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_off.json +0 -0
  152. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_000/schema_eavesdrop_on.json +0 -0
  153. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_001/packet.log +0 -0
  154. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_off.json +0 -0
  155. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_001/schema_eavesdrop_on.json +0 -0
  156. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_002/packet.log +0 -0
  157. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_off.json +0 -0
  158. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_002/schema_eavesdrop_on.json +0 -0
  159. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_003/packet.log +0 -0
  160. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_off.json +0 -0
  161. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_003/schema_eavesdrop_on.json +0 -0
  162. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_004/packet.log +0 -0
  163. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_off.json +0 -0
  164. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/eavesdrop_schema/zone_sensors_004/schema_eavesdrop_on.json +0 -0
  165. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/10e0_xxxx.log +0 -0
  166. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/_gather.sh +0 -0
  167. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/01_EvoTouch_Colour.log +0 -0
  168. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/01_Evo_Color.log +0 -0
  169. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/01_IONA_RAI_Prototype.log +0 -0
  170. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/02_HCE80_V3.10_061117..log +0 -0
  171. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/04_HR92 Radiator Ctrl_.log +0 -0
  172. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/08_Jasper_EIM.log +0 -0
  173. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/10_R8810A_Bridge.log +0 -0
  174. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/10_R8820.log +0 -0
  175. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/30_Internet_Gateway.log +0 -0
  176. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/31_Jasper_Stat_TXXX.log +0 -0
  177. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/heat/34_T87RF2025.log +0 -0
  178. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/18_BRDG-02A55.log +0 -0
  179. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/18_HRA82.log +0 -0
  180. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/20.log +0 -0
  181. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/21_CCU-12T20.log +0 -0
  182. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/29_VMC-07RP01.log +0 -0
  183. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/29_VMC-15RP01.log +0 -0
  184. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/29_VMC-17RP01.log +0 -0
  185. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/29_VMN-07LM01.log +0 -0
  186. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/29_VMN-15LF01.log +0 -0
  187. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/29_VMN-17LMP01.log +0 -0
  188. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/29_VMS-15C16.log +0 -0
  189. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/29_VMS-17HB01.log +0 -0
  190. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/30_BRDG-02EM23.log +0 -0
  191. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/30_BRDG-02JAS01.log +0 -0
  192. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMC-15RPS34.log +0 -0
  193. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMD-15RMS64.log +0 -0
  194. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMD-15RMS86.log +0 -0
  195. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMD-17RPS01.log +0 -0
  196. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMN-23LM33.log +0 -0
  197. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMN-23LMH23.log +0 -0
  198. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMS-15CM17.log +0 -0
  199. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMS-23C33.log +0 -0
  200. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMS-23HB33.log +0 -0
  201. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/32_VMZ-15V13.log +0 -0
  202. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/37_VMD-07RPS13.log +0 -0
  203. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/37_VMI-15MC01log +0 -0
  204. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/37_VMI-15WSJ53.log +0 -0
  205. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/37_VMS-02J52.log +0 -0
  206. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/37_VMS-12C39.log +0 -0
  207. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/99_CVE-RF.log +0 -0
  208. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/fingerprints/hvac/99_VMS-17C01.log +0 -0
  209. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/helpers.py +0 -0
  210. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/logger/packet_in.log +0 -0
  211. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/logger/packet_out.log +0 -0
  212. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/logs/pkts_bad_000.log +0 -0
  213. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/logs/pkts_tba_000.log +0 -0
  214. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/logs/system_cache.json +0 -0
  215. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parser_helpers/pkt_addr_set.log +0 -0
  216. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parser_helpers/pkt_dev_class.log +0 -0
  217. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_0001_wip.log +0 -0
  218. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_0002.log +0 -0
  219. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_0004_wip.log +0 -0
  220. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_0005.log +0 -0
  221. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_0006.log +0 -0
  222. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_0008.log +0 -0
  223. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_0009.log +0 -0
  224. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_000a.log +0 -0
  225. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_000c.log +0 -0
  226. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_000e.log +0 -0
  227. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_01ff_wip.log +0 -0
  228. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_0418.log +0 -0
  229. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_042f.log +0 -0
  230. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_1030.log +0 -0
  231. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_1060.log +0 -0
  232. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_10d0.log +0 -0
  233. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_10e0.log +0 -0
  234. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_1260.log +0 -0
  235. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_1298.log +0 -0
  236. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_12a0.log +0 -0
  237. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_12c0.log +0 -0
  238. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_1300.log +0 -0
  239. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_1f09.log +0 -0
  240. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_1fc9.log +0 -0
  241. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_1fd4.log +0 -0
  242. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_2210.log +0 -0
  243. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22c9.log +0 -0
  244. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22d0.log +0 -0
  245. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22d9.log +0 -0
  246. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22e0.log +0 -0
  247. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22e5.log +0 -0
  248. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22e9.log +0 -0
  249. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22f1.log +0 -0
  250. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22f2.log +0 -0
  251. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22f3.log +0 -0
  252. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22f4.log +0 -0
  253. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_22f7.log +0 -0
  254. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_2309.log +0 -0
  255. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_2349.log +0 -0
  256. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_2411_wip.log +0 -0
  257. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_2e04.log +0 -0
  258. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_2e10_wip.log +0 -0
  259. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_30c9.log +0 -0
  260. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3110_wip.log +0 -0
  261. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3120.log +0 -0
  262. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_313e_wip.log +0 -0
  263. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3150.log +0 -0
  264. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_31d9.log +0 -0
  265. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_31da.log +0 -0
  266. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3200.log +0 -0
  267. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3210.log +0 -0
  268. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3220.log +0 -0
  269. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3222.log +0 -0
  270. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3ef0_wip.log +0 -0
  271. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_3ef1_wip.log +0 -0
  272. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_4e01.log +0 -0
  273. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_4e02.log +0 -0
  274. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_4e04.log +0 -0
  275. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/parsers/code_4e15.log +0 -0
  276. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schedules/_sched_002/packet.log +0 -0
  277. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schedules/_sched_002/schedule.json +0 -0
  278. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schedules/sched_001/packet.log +0 -0
  279. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schedules/sched_001/schedule.json +0 -0
  280. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schedules/sched_dhw/packet.log +0 -0
  281. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schedules/sched_dhw/schedule.json +0 -0
  282. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/jsn_files/schema_100.json +0 -0
  283. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/jsn_files/schema_101.json +0 -0
  284. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/jsn_files/schema_102.json +0 -0
  285. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/jsn_files/schema_103.json +0 -0
  286. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/jsn_files/schema_104.json +0 -0
  287. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/jsn_files/schema_105.json +0 -0
  288. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/jsn_files/schema_108.json +0 -0
  289. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_000.json +0 -0
  290. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_000.log +0 -0
  291. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_001.json +0 -0
  292. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_001.log +0 -0
  293. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_002.json +0 -0
  294. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_002.log +0 -0
  295. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_010.json +0 -0
  296. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_010.log +0 -0
  297. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_011.json +0 -0
  298. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_011.log +0 -0
  299. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_012.json +0 -0
  300. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_012.log +0 -0
  301. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_013.json +0 -0
  302. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_013.log +0 -0
  303. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_014.json +0 -0
  304. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_014.log +0 -0
  305. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_300.json +0 -0
  306. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_300.log +0 -0
  307. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_301.json +0 -0
  308. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_301.log +0 -0
  309. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_302.json +0 -0
  310. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_302.log +0 -0
  311. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_303.json +0 -0
  312. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_303.log +0 -0
  313. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_304.json +0 -0
  314. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_304.log +0 -0
  315. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_310.json +0 -0
  316. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/schemas/log_files/schema_310.log +0 -0
  317. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/_heat_trv_00/config.json +0 -0
  318. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/_heat_trv_00/packet.log +0 -0
  319. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/_heat_trv_00/schema.json +0 -0
  320. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/_hvac_nuaire/config.json +0 -0
  321. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/_hvac_nuaire/known_list.json +0 -0
  322. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/_hvac_nuaire/packet.log +0 -0
  323. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/_hvac_nuaire/schema.json +0 -0
  324. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/_hvac_nuaire/status.json +0 -0
  325. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_otb_00/config.json +0 -0
  326. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_otb_00/packet.log +0 -0
  327. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_otb_00/schema.json +0 -0
  328. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_simple/packet.log +0 -0
  329. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_simple/schema.json +0 -0
  330. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_ufc_00/config.json +0 -0
  331. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_ufc_00/packet.log +0 -0
  332. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_ufc_01/packet.log +0 -0
  333. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_zxdavb/config.json +0 -0
  334. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_zxdavb/known_list.json +0 -0
  335. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_zxdavb/packet.log +0 -0
  336. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/systems/heat_zxdavb/schema.json +0 -0
  337. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_api_faultlog.py +0 -0
  338. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_api_schedule.py +0 -0
  339. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_apis_binding.py +0 -0
  340. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_apis_common.py +0 -0
  341. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_apis_heat.py +0 -0
  342. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_apis_hvac.py +0 -0
  343. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_cli_transport_factory.py +0 -0
  344. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_devices.py +0 -0
  345. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_eavesdrop_dev_class.py +0 -0
  346. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_helpers.py +0 -0
  347. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_parser_helpers.py +0 -0
  348. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_parsers.py +0 -0
  349. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_ramses_schema.py +0 -0
  350. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_schema_bits.py +0 -0
  351. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_storage.py +0 -0
  352. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests/test_vol_schemas.py +0 -0
  353. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_cli/test_cli_utility.py +0 -0
  354. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_cli/test_debug.py +0 -0
  355. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_cli/test_discovery.py +0 -0
  356. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/__init__.py +0 -0
  357. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/configs/config_heat.json +0 -0
  358. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/configs/config_hvac.json +0 -0
  359. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/conftest.py +0 -0
  360. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/device/__init__.py +0 -0
  361. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/device/test_hvac_ventilator.py +0 -0
  362. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/logs/test_api_faultlog.log +0 -0
  363. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_api_faultlog.py +0 -0
  364. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_api_schedule.py +0 -0
  365. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_binding_fsm.py +0 -0
  366. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_create_stack.py +0 -0
  367. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_database.py +0 -0
  368. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_dispatcher.py +0 -0
  369. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_entity_base.py +0 -0
  370. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_hgi_behaviors.py +0 -0
  371. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_protocol_fsm.py +0 -0
  372. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_use_regex.py +0 -0
  373. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_virt_network.py +0 -0
  374. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/test_virtual_rf.py +0 -0
  375. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/virtual_rf/__init__.py +0 -0
  376. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/virtual_rf/const.py +0 -0
  377. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/virtual_rf/helpers.py +0 -0
  378. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_rf/virtual_rf/virtual_rf.py +0 -0
  379. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_tx/__init__.py +0 -0
  380. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_tx/test_command.py +0 -0
  381. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/tests_tx/test_const.py +0 -0
  382. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/wip/_test_eavesdrop_dhw_sensor.py +0 -0
  383. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/wip/_test_eavesdrop_htg_control.py +0 -0
  384. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/wip/_test_eavesdrop_ufc_circuits.py +0 -0
  385. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/wip/_test_eavesdrop_zone_sensors.py +0 -0
  386. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/wip/_test_eavesdrop_zone_type.py +0 -0
  387. {ramses_rf-0.53.3 → ramses_rf-0.53.4}/tests/wip/test_wip_cli.sh +0 -0
@@ -89,7 +89,7 @@ jobs:
89
89
  hide_complexity: true
90
90
  indicators: true
91
91
  output: both
92
- thresholds: '80 90'
92
+ thresholds: '80 95'
93
93
 
94
94
  - name: Add Coverage PR Comment
95
95
  # from: https://github.com/marketplace/actions/comment-pull-request
@@ -14,7 +14,7 @@ repos:
14
14
  # Run `python-typing-update` hook manually from time to time
15
15
  # to update python typing syntax.
16
16
  # Will require manual work, before submitting changes!
17
- # pre-commit run --hook-stage manual python-typing-update --all-files
17
+ # prek run --hook-stage manual python-typing-update --all-files
18
18
  - id: python-typing-update
19
19
  stages: [manual]
20
20
  args:
@@ -39,6 +39,10 @@ repos:
39
39
  hooks:
40
40
  - id: check-executables-have-shebangs
41
41
  # id: check-json # don't enable this one
42
+ # - id: no-commit-to-branch
43
+ # args:
44
+ # - --branch=master
45
+ # - --branch=stable
42
46
  - id: check-toml
43
47
  - id: check-yaml
44
48
  - id: debug-statements
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ramses_rf
3
- Version: 0.53.3
3
+ Version: 0.53.4
4
4
  Summary: A stateful RAMSES-II protocol decoder & analyser.
5
5
  Project-URL: Homepage, https://github.com/ramses-rf/ramses_rf
6
6
  Project-URL: Bug Tracker, https://github.com/ramses-rf/ramses_rf/issues
@@ -116,7 +116,7 @@
116
116
  "raise NotImplementedError",
117
117
  ]
118
118
  format = "text"
119
- fail_under = 75
119
+ fail_under = 80 # total cov now 83%
120
120
  ignore_errors = true
121
121
 
122
122
  [tool.coverage.html]
@@ -471,13 +471,8 @@ def print_results(gwy: Gateway, **kwargs: Any) -> None:
471
471
  system_id, _ = kwargs[GET_SCHED]
472
472
 
473
473
 
474
- def _save_state(gwy: Gateway) -> None:
475
- """Save the gateway state to files.
476
-
477
- :param gwy: The gateway instance.
478
- """
479
- schema, msgs = gwy.get_state()
480
-
474
+ def _write_state(schema: dict[str, Any], msgs: dict[str, str]) -> None:
475
+ """Write the state to the file system (blocking)."""
481
476
  with open("state_msgs.log", "w") as f:
482
477
  [f.write(f"{dtm} {pkt}\r\n") for dtm, pkt in msgs.items()] # if not m._expired
483
478
 
@@ -485,13 +480,22 @@ def _save_state(gwy: Gateway) -> None:
485
480
  f.write(json.dumps(schema, indent=4))
486
481
 
487
482
 
488
- def _print_engine_state(gwy: Gateway, **kwargs: Any) -> None:
483
+ async def _save_state(gwy: Gateway) -> None:
484
+ """Save the gateway state to files.
485
+
486
+ :param gwy: The gateway instance.
487
+ """
488
+ schema, msgs = await gwy.get_state()
489
+ await asyncio.to_thread(_write_state, schema, msgs)
490
+
491
+
492
+ async def _print_engine_state(gwy: Gateway, **kwargs: Any) -> None:
489
493
  """Print the current engine state (schema and packets).
490
494
 
491
495
  :param gwy: The gateway instance.
492
496
  :param kwargs: Command arguments to determine verbosity.
493
497
  """
494
- (schema, packets) = gwy.get_state(include_expired=True)
498
+ (schema, packets) = await gwy.get_state(include_expired=True)
495
499
 
496
500
  if kwargs["print_state"] > 0:
497
501
  print(f"schema: {json.dumps(schema, indent=4)}\r\n")
@@ -671,10 +675,10 @@ async def async_main(command: str, lib_kwargs: dict[str, Any], **kwargs: Any) ->
671
675
  print(f"\r\nclient.py: Engine stopped: {msg}")
672
676
 
673
677
  # if kwargs["save_state"]:
674
- # _save_state(gwy)
678
+ # await _save_state(gwy)
675
679
 
676
680
  if kwargs["print_state"]:
677
- _print_engine_state(gwy, **kwargs)
681
+ await _print_engine_state(gwy, **kwargs)
678
682
 
679
683
  elif command == EXECUTE:
680
684
  print_results(gwy, **kwargs)
@@ -267,12 +267,14 @@ class Gateway(Engine):
267
267
  :returns: None
268
268
  :rtype: None
269
269
  """
270
+ # Stop the Engine first to ensure no tasks/callbacks try to write
271
+ # to the DB while we are closing it.
272
+ await super().stop()
270
273
 
271
274
  if self.msg_db:
272
275
  self.msg_db.stop()
273
- await super().stop()
274
276
 
275
- def _pause(self, *args: Any) -> None:
277
+ async def _pause(self, *args: Any) -> None:
276
278
  """Pause the (unpaused) gateway (disables sending/discovery).
277
279
 
278
280
  There is the option to save other objects, as `args`.
@@ -288,12 +290,12 @@ class Gateway(Engine):
288
290
  self.config.disable_discovery, disc_flag = True, self.config.disable_discovery
289
291
 
290
292
  try:
291
- super()._pause(disc_flag, *args)
293
+ await super()._pause(disc_flag, *args)
292
294
  except RuntimeError:
293
295
  self.config.disable_discovery = disc_flag
294
296
  raise
295
297
 
296
- def _resume(self) -> tuple[Any]:
298
+ async def _resume(self) -> tuple[Any]:
297
299
  """Resume the (paused) gateway (enables sending/discovery, if applicable).
298
300
 
299
301
  Will restore other objects, as `args`.
@@ -305,11 +307,13 @@ class Gateway(Engine):
305
307
 
306
308
  _LOGGER.debug("Gateway: Resuming engine...")
307
309
 
308
- self.config.disable_discovery, *args = super()._resume() # type: ignore[assignment]
310
+ # args_tuple = await super()._resume()
311
+ # self.config.disable_discovery, *args = args_tuple # type: ignore[assignment]
312
+ self.config.disable_discovery, *args = await super()._resume() # type: ignore[assignment]
309
313
 
310
314
  return args
311
315
 
312
- def get_state(
316
+ async def get_state(
313
317
  self, include_expired: bool = False
314
318
  ) -> tuple[dict[str, Any], dict[str, str]]:
315
319
  """Return the current schema & state (may include expired packets).
@@ -320,7 +324,7 @@ class Gateway(Engine):
320
324
  :rtype: tuple[dict[str, Any], dict[str, str]]
321
325
  """
322
326
 
323
- self._pause()
327
+ await self._pause()
324
328
 
325
329
  def wanted_msg(msg: Message, include_expired: bool = False) -> bool:
326
330
  if msg.code == Code._313F:
@@ -357,7 +361,7 @@ class Gateway(Engine):
357
361
  }
358
362
  # _LOGGER.warning("Missing MessageIndex")
359
363
 
360
- self._resume()
364
+ await self._resume()
361
365
 
362
366
  return self.schema, dict(sorted(pkts.items()))
363
367
 
@@ -392,7 +396,7 @@ class Gateway(Engine):
392
396
  tmp_transport: RamsesTransportT # mypy hint
393
397
 
394
398
  _LOGGER.debug("Gateway: Restoring a cached packet log...")
395
- self._pause()
399
+ await self._pause()
396
400
 
397
401
  if _clear_state: # only intended for test suite use
398
402
  clear_state()
@@ -428,7 +432,7 @@ class Gateway(Engine):
428
432
  await tmp_transport.get_extra_info(SZ_READER_TASK)
429
433
 
430
434
  _LOGGER.debug("Gateway: Restored, resuming")
431
- self._resume()
435
+ await self._resume()
432
436
 
433
437
  def _add_device(self, dev: Device) -> None: # TODO: also: _add_system()
434
438
  """Add a device to the gateway (called by devices during instantiation).
@@ -1,4 +1,4 @@
1
1
  """RAMSES RF - a RAMSES-II protocol decoder & analyser (application layer)."""
2
2
 
3
- __version__ = "0.53.3"
3
+ __version__ = "0.53.4"
4
4
  VERSION = __version__
@@ -12,7 +12,6 @@ import asyncio
12
12
  import logging
13
13
  from collections.abc import Callable
14
14
  from datetime import datetime as dt
15
- from threading import Lock
16
15
  from typing import TYPE_CHECKING, Any, Never
17
16
 
18
17
  from .address import ALL_DEV_ADDR, HGI_DEV_ADDR, NON_DEV_ADDR
@@ -120,7 +119,7 @@ class Engine:
120
119
  self._log_all_mqtt = kwargs.pop(SZ_LOG_ALL_MQTT, False)
121
120
  self._kwargs: dict[str, Any] = kwargs # HACK
122
121
 
123
- self._engine_lock = Lock() # FIXME: threading lock, or asyncio lock?
122
+ self._engine_lock = asyncio.Lock()
124
123
  self._engine_state: (
125
124
  tuple[_MsgHandlerT | None, bool | None, *tuple[Any, ...]] | None
126
125
  ) = None
@@ -217,15 +216,13 @@ class Engine:
217
216
  async def stop(self) -> None:
218
217
  """Close the transport (will stop the protocol)."""
219
218
 
220
- async def cancel_all_tasks() -> None: # TODO: needs a lock?
221
- _ = [t.cancel() for t in self._tasks if not t.done()]
222
- try: # FIXME: this is broken
223
- if tasks := (t for t in self._tasks if not t.done()):
224
- await asyncio.gather(*tasks)
225
- except asyncio.CancelledError:
226
- pass
219
+ # Shutdown Safety - wait for tasks to clean up
220
+ tasks = [t for t in self._tasks if not t.done()]
221
+ for t in tasks:
222
+ t.cancel()
227
223
 
228
- await cancel_all_tasks()
224
+ if tasks:
225
+ await asyncio.wait(tasks)
229
226
 
230
227
  if self._transport:
231
228
  self._transport.close()
@@ -233,12 +230,14 @@ class Engine:
233
230
 
234
231
  return None
235
232
 
236
- def _pause(self, *args: Any) -> None:
233
+ async def _pause(self, *args: Any) -> None:
237
234
  """Pause the (active) engine or raise a RuntimeError."""
238
-
239
- if not self._engine_lock.acquire(blocking=False):
235
+ # Async lock handling
236
+ if self._engine_lock.locked():
240
237
  raise RuntimeError("Unable to pause engine, failed to acquire lock")
241
238
 
239
+ await self._engine_lock.acquire()
240
+
242
241
  if self._engine_state is not None:
243
242
  self._engine_lock.release()
244
243
  raise RuntimeError("Unable to pause engine, it is already paused")
@@ -255,13 +254,18 @@ class Engine:
255
254
 
256
255
  self._engine_state = (handler, read_only, *args)
257
256
 
258
- def _resume(self) -> tuple[Any]: # FIXME: not atomic
257
+ async def _resume(self) -> tuple[Any]: # FIXME: not atomic
259
258
  """Resume the (paused) engine or raise a RuntimeError."""
260
259
 
261
260
  args: tuple[Any] # mypy
262
261
 
263
- if not self._engine_lock.acquire(timeout=0.1):
264
- raise RuntimeError("Unable to resume engine, failed to acquire lock")
262
+ # Async lock with timeout
263
+ try:
264
+ await asyncio.wait_for(self._engine_lock.acquire(), timeout=0.1)
265
+ except TimeoutError as err:
266
+ raise RuntimeError(
267
+ "Unable to resume engine, failed to acquire lock"
268
+ ) from err
265
269
 
266
270
  if self._engine_state is None:
267
271
  self._engine_lock.release()
@@ -49,7 +49,6 @@ import logging
49
49
  import os
50
50
  import re
51
51
  import sys
52
- import time
53
52
  from collections import deque
54
53
  from collections.abc import Awaitable, Callable, Iterable
55
54
  from datetime import datetime as dt, timedelta as td
@@ -979,18 +978,21 @@ class FileTransport(_ReadTransport, _FileTransportAbstractor):
979
978
  if bool(disable_sending) is False:
980
979
  raise exc.TransportSourceInvalid("This Transport cannot send packets")
981
980
 
981
+ self._evt_reading = asyncio.Event()
982
+
982
983
  self._extra[SZ_READER_TASK] = self._reader_task = self._loop.create_task(
983
984
  self._start_reader(), name="FileTransport._start_reader()"
984
985
  )
985
986
 
986
987
  self._make_connection(None)
987
988
 
988
- async def _start_reader(self) -> None: # TODO
989
+ async def _start_reader(self) -> None:
989
990
  """Start the reader task."""
990
991
  self._reading = True
992
+ self._evt_reading.set() # Start in reading state
993
+
991
994
  try:
992
- # await self._reader()
993
- await self.loop.run_in_executor(None, self._blocking_reader)
995
+ await self._producer_loop()
994
996
  except Exception as err:
995
997
  self.loop.call_soon_threadsafe(
996
998
  functools.partial(self._protocol.connection_lost, err) # type: ignore[arg-type]
@@ -1000,47 +1002,59 @@ class FileTransport(_ReadTransport, _FileTransportAbstractor):
1000
1002
  functools.partial(self._protocol.connection_lost, None)
1001
1003
  )
1002
1004
 
1003
- def _blocking_reader(self) -> None:
1005
+ def pause_reading(self) -> None:
1006
+ """Pause the receiving end (no data to protocol.pkt_received())."""
1007
+ self._reading = False
1008
+ self._evt_reading.clear() # Puts the loop to sleep efficiently
1009
+
1010
+ def resume_reading(self) -> None:
1011
+ """Resume the receiving end."""
1012
+ self._reading = True
1013
+ self._evt_reading.set() # Wakes the loop immediately
1014
+
1015
+ async def _producer_loop(self) -> None:
1004
1016
  """Loop through the packet source for Frames and process them."""
1017
+ # NOTE: fileinput interaction remains synchronous-blocking for simplicity,
1018
+ # but the PAUSE mechanism is now async-non-blocking.
1005
1019
 
1006
1020
  if isinstance(self._pkt_source, dict):
1007
1021
  for dtm_str, pkt_line in self._pkt_source.items(): # assume dtm_str is OK
1008
- self._process_line(dtm_str, pkt_line)
1022
+ await self._process_line(dtm_str, pkt_line)
1009
1023
 
1010
1024
  elif isinstance(self._pkt_source, str): # file_name, used in client parse
1011
1025
  # open file file_name before reading
1012
1026
  try:
1013
1027
  with fileinput.input(files=self._pkt_source, encoding="utf-8") as file:
1014
1028
  for dtm_pkt_line in file: # self._pkt_source:
1015
- self._process_line_from_raw(dtm_pkt_line)
1029
+ await self._process_line_from_raw(dtm_pkt_line)
1016
1030
  except FileNotFoundError as err:
1017
1031
  _LOGGER.warning(f"Correct the packet file name; {err}")
1018
1032
 
1019
1033
  elif isinstance(self._pkt_source, TextIOWrapper): # used by client monitor
1020
1034
  for dtm_pkt_line in self._pkt_source: # should check dtm_str is OK
1021
- self._process_line_from_raw(dtm_pkt_line)
1035
+ await self._process_line_from_raw(dtm_pkt_line)
1022
1036
 
1023
1037
  else:
1024
1038
  raise exc.TransportSourceInvalid(
1025
1039
  f"Packet source is not dict, TextIOWrapper or str: {self._pkt_source:!r}"
1026
1040
  )
1027
1041
 
1028
- def _process_line_from_raw(self, line: str) -> None:
1042
+ async def _process_line_from_raw(self, line: str) -> None:
1029
1043
  """Helper to process raw lines."""
1030
1044
  # there may be blank lines in annotated log files
1031
1045
  if (line := line.strip()) and line[:1] != "#":
1032
- self._process_line(line[:26], line[27:])
1046
+ await self._process_line(line[:26], line[27:])
1033
1047
  # this is where the parsing magic happens!
1034
1048
 
1035
- def _process_line(self, dtm_str: str, frame: str) -> None:
1049
+ async def _process_line(self, dtm_str: str, frame: str) -> None:
1036
1050
  """Push frame to protocol in a thread-safe way."""
1037
- while not self._reading:
1038
- time.sleep(0.001)
1051
+ # Efficient wait - 0% CPU usage while paused
1052
+ await self._evt_reading.wait()
1039
1053
 
1040
1054
  self._frame_read(dtm_str, frame)
1041
1055
 
1042
- # NOTE: instable without, big performance penalty if delay >0
1043
- time.sleep(0)
1056
+ # Yield control to the event loop to prevent starvation during large file reads
1057
+ await asyncio.sleep(0)
1044
1058
 
1045
1059
  def _close(self, exc: exc.RamsesException | None = None) -> None:
1046
1060
  """Close the transport (cancel any outstanding tasks).
@@ -1,4 +1,4 @@
1
1
  """RAMSES RF - a RAMSES-II protocol decoder & analyser (transport layer)."""
2
2
 
3
- __version__ = "0.53.3"
3
+ __version__ = "0.53.4"
4
4
  VERSION = __version__
@@ -1,5 +1,5 @@
1
1
  # Requirements to dev/test the source code
2
- # - last checked/updated: 2026-01-11 (c.f. HA 2026.1.0)
2
+ # - last checked/updated: 2026-01-22 (c.f. 0.53.4 / HA 2026.1.2)
3
3
  # - HA core reqs: https://github.com/home-assistant/core/blob/dev/requirements.txt
4
4
 
5
5
  # for using the ramses_rf library with CLI
@@ -10,7 +10,8 @@
10
10
  # - pip list | grep -E 'pre-commit|ruff|mypy|types-|voluptuous|pytest|hatch'
11
11
 
12
12
  # used for development (linting)
13
- pre-commit >= 4.2.0 # HA (core) uses 4.2.0
13
+ prek == 0.2.28 # same as ramses_cc and HA core 2026.1.2
14
+ # pre-commit >= 4.3.0 # replaced by prek since 2026.1
14
15
  ruff >= 0.13.0 # HA uses 0.13.0 ! also in: pre-commit-config.yaml
15
16
 
16
17
  # used for development (typing)
@@ -25,6 +26,7 @@
25
26
  pytest-cov >= 7.0.0 # HA uses 6.2.1, includes coverage.py as dep
26
27
  pytest-sugar >= 1.0.0 # HA uses 1.0.0
27
28
  pytest-xdist >= 3.8.0 # HA uses 3.8.0
29
+ PyYAML # required for tests/tests/test_vol_schema import
28
30
  # syrupy >= 4.8.1 # HA uses 4.9.1
29
31
 
30
32
  # used for build/deploy
@@ -25,7 +25,7 @@ def pytest_generate_tests(metafunc: pytest.Metafunc) -> None:
25
25
  async def assert_schemas_equal(gwy: Gateway, expected_schema: dict) -> None:
26
26
  """Check the gwy schema, then shuffle and test again."""
27
27
 
28
- schema, packets = gwy.get_state(include_expired=True)
28
+ schema, packets = await gwy.get_state(include_expired=True)
29
29
  assert_expected(schema, expected_schema)
30
30
 
31
31
  packets = shuffle_dict(packets)
@@ -8,7 +8,6 @@ import pytest
8
8
 
9
9
  from ramses_rf import Gateway
10
10
  from ramses_rf.helpers import shrink
11
- from ramses_rf.schemas import load_schema
12
11
 
13
12
  from .helpers import (
14
13
  TEST_DIR,
@@ -33,7 +32,7 @@ async def test_schema_discover_from_log(f_name: Path) -> None:
33
32
  assert shrink(gwy.schema) == shrink(schema)
34
33
 
35
34
  gwy.ser_name = "/dev/null" # HACK: needed to pause engine
36
- schema, packets = gwy.get_state(include_expired=True)
35
+ schema, packets = await gwy.get_state(include_expired=True)
37
36
  packets = shuffle_dict(packets)
38
37
  await gwy._restore_cached_packets(packets)
39
38
 
@@ -42,16 +41,11 @@ async def test_schema_discover_from_log(f_name: Path) -> None:
42
41
  await gwy.stop()
43
42
 
44
43
 
45
- @pytest.mark.parametrize(
46
- "f_name", [f.stem for f in Path(f"{WORK_DIR}/jsn_files").glob("*.json")]
47
- )
48
- async def test_schema_load_from_json(gwy: Gateway, f_name: Path) -> None: # noqa: F811
49
- with open(f"{WORK_DIR}/jsn_files/{f_name}.json") as f:
50
- schema = json.load(f)
51
-
52
- load_schema(gwy, **schema)
44
+ # def test_schema_load_from_json(f_name: Path) -> None:
45
+ # path = f"{WORK_DIR}/jsn_files/{f_name}.json"
46
+ # gwy = Gateway(None, input_file=path, config={}) # noqa: F811
53
47
 
54
- # print(json.dumps(schema, indent=4))
55
- # print(json.dumps(self.gwy.schema, indent=4))
48
+ # with open(f"{WORK_DIR}/jsn_files/{f_name}.json") as f:
49
+ # schema = json.load(f)
56
50
 
57
- assert shrink(gwy.schema) == shrink(schema)
51
+ # load_schema(gwy, schema)