DLMS-SPODES 0.87.1__tar.gz → 0.87.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 (173) hide show
  1. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/PKG-INFO +1 -1
  2. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/pyproject.toml +1 -1
  3. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/parameter.py +24 -22
  4. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/parameters.py +3 -1
  5. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES.egg-info/PKG-INFO +1 -1
  6. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/.gitignore +0 -0
  7. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/README.md +0 -0
  8. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/config.toml +0 -0
  9. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/setup.cfg +0 -0
  10. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/Values/EN/__init__.py +0 -0
  11. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/Values/EN/actors.py +0 -0
  12. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/Values/EN/relation_to_obis_names.py +0 -0
  13. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/Values/RU/__init__.py +0 -0
  14. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/Values/RU/actors.py +0 -0
  15. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/Values/RU/relation_to_obis_names.py +0 -0
  16. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/Values/__init__.py +0 -0
  17. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/__init__.py +0 -0
  18. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/configEN.ini +0 -0
  19. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/config_parser.py +0 -0
  20. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/__class_init__.py +0 -0
  21. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/__init__.py +0 -0
  22. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/a_parameter.py +0 -0
  23. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/activity_calendar.py +0 -0
  24. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/arbitrator.py +0 -0
  25. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/__init__.py +0 -0
  26. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/abstract.py +0 -0
  27. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/authentication_mechanism_name.py +0 -0
  28. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/mechanism_id.py +0 -0
  29. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/method.py +0 -0
  30. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/ver0.py +0 -0
  31. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/ver1.py +0 -0
  32. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/ver2.py +0 -0
  33. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_ln/ver3.py +0 -0
  34. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_sn/__init__.py +0 -0
  35. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/association_sn/ver0.py +0 -0
  36. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/attr_indexes.py +0 -0
  37. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/clock.py +0 -0
  38. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/collection.py +0 -0
  39. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/cosem_interface_class.py +0 -0
  40. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/data.py +0 -0
  41. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/demand_register/__init__.py +0 -0
  42. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/demand_register/ver0.py +0 -0
  43. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/disconnect_control.py +0 -0
  44. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/extended_register.py +0 -0
  45. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/gprs_modem_setup.py +0 -0
  46. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/__init__.py +0 -0
  47. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver0.py +0 -0
  48. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver1.py +0 -0
  49. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver2.py +0 -0
  50. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/__init__.py +0 -0
  51. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/ver0.py +0 -0
  52. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/ver1.py +0 -0
  53. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/iec_local_port_setup.py +0 -0
  54. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/image_transfer/__init__.py +0 -0
  55. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/image_transfer/image_transfer_status.py +0 -0
  56. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/image_transfer/ver0.py +0 -0
  57. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/implementations/__init__.py +0 -0
  58. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/implementations/arbitrator.py +0 -0
  59. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/implementations/data.py +0 -0
  60. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/implementations/profile_generic.py +0 -0
  61. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/ipv4_setup.py +0 -0
  62. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/limiter.py +0 -0
  63. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/ln_pattern.py +0 -0
  64. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/modem_configuration/__init__.py +0 -0
  65. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/modem_configuration/ver0.py +0 -0
  66. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/modem_configuration/ver1.py +0 -0
  67. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/ntp_setup/__init__.py +0 -0
  68. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/ntp_setup/ver0.py +0 -0
  69. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/obis.py +0 -0
  70. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/overview.py +0 -0
  71. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/profile_generic/__init__.py +0 -0
  72. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/profile_generic/ver0.py +0 -0
  73. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/profile_generic/ver1.py +0 -0
  74. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/push_setup/__init__.py +0 -0
  75. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/push_setup/ver0.py +0 -0
  76. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/push_setup/ver1.py +0 -0
  77. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/push_setup/ver2.py +0 -0
  78. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/register.py +0 -0
  79. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/register_activation/__init__.py +0 -0
  80. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/register_activation/ver0.py +0 -0
  81. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/register_monitor.py +0 -0
  82. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/reports.py +0 -0
  83. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/schedule.py +0 -0
  84. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/script_table.py +0 -0
  85. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/security_setup/__init__.py +0 -0
  86. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/security_setup/__pycache__/__init__.cpython-311.pyc +0 -0
  87. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/security_setup/ver0.py +0 -0
  88. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/security_setup/ver1.py +0 -0
  89. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/single_action_schedule.py +0 -0
  90. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/special_days_table.py +0 -0
  91. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_interface_classes/tcp_udp_setup.py +0 -0
  92. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/cosem_pdu.py +0 -0
  93. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/enums.py +0 -0
  94. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/exceptions.py +0 -0
  95. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/firmwares.py +0 -0
  96. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/hdlc/__init__.py +0 -0
  97. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/hdlc/frame.py +0 -0
  98. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/hdlc/sub_layer.py +0 -0
  99. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/literals.py +0 -0
  100. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/obis/__init__.py +0 -0
  101. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/obis/abstract_objects.py +0 -0
  102. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/obis/media_id.py +0 -0
  103. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/pardata.py +0 -0
  104. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/pdu_enums.py +0 -0
  105. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/py.typed +0 -0
  106. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/relation_to_OBIS.py +0 -0
  107. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/settings.py +0 -0
  108. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/__init__.py +0 -0
  109. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/choices.py +0 -0
  110. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/common_data_types.py +0 -0
  111. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/cosem_service_types.py +0 -0
  112. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/__init__.py +0 -0
  113. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/arrays.py +0 -0
  114. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/bitstrings.py +0 -0
  115. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/double_long_usingneds.py +0 -0
  116. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/enums.py +0 -0
  117. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/integers.py +0 -0
  118. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/long_unsigneds.py +0 -0
  119. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/octet_string.py +0 -0
  120. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/implementations/structs.py +0 -0
  121. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES/types/useful_types.py +0 -0
  122. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES.egg-info/SOURCES.txt +0 -0
  123. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES.egg-info/dependency_links.txt +0 -0
  124. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES.egg-info/requires.txt +0 -0
  125. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/DLMS_SPODES.egg-info/top_level.txt +0 -0
  126. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/src/__init__.py +0 -0
  127. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/__init__.py +0 -0
  128. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/collection_init.py +0 -0
  129. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/config.toml +0 -0
  130. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/config.zip +0 -0
  131. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/init_collection.py +0 -0
  132. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test.typ +0 -0
  133. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test.xml +0 -0
  134. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_ActivityCalendar.py +0 -0
  135. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_AssociationLN.py +0 -0
  136. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_COSEMInterfaceClass.py +0 -0
  137. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_Data.py +0 -0
  138. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_DemandRegister.py +0 -0
  139. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_DisconnectControl.py +0 -0
  140. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_DisplayReadoutProfile.py +0 -0
  141. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_GSMDiagnostic.py +0 -0
  142. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_IC.py +0 -0
  143. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_ImageTransfer.py +0 -0
  144. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_KPZ.py +0 -0
  145. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_LNPatterns.py +0 -0
  146. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_Limiter.py +0 -0
  147. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_NTPSetup.py +0 -0
  148. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_Parameter.py +0 -0
  149. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_ProfileGeneric.py +0 -0
  150. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_Register.py +0 -0
  151. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_RegisterActivation.py +0 -0
  152. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_RegisterMonitor.py +0 -0
  153. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_ScalerUnitType.py +0 -0
  154. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_Schedule.py +0 -0
  155. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_Structures.py +0 -0
  156. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_a_param.py +0 -0
  157. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_benchmark_create_obj.py +0 -0
  158. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_cdt.py +0 -0
  159. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_collection.py +0 -0
  160. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_config.py +0 -0
  161. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_electric_obj.py +0 -0
  162. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_enums.py +0 -0
  163. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_hdlc.py +0 -0
  164. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_overview.py +0 -0
  165. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_pars.py +0 -0
  166. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_report.py +0 -0
  167. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_save_type.typ +0 -0
  168. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_settings.py +0 -0
  169. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_to_xml.xml +0 -0
  170. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_to_xml2.xml +0 -0
  171. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_to_xml3.xml +0 -0
  172. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_to_xml4.xml +0 -0
  173. {dlms_spodes-0.87.1 → dlms_spodes-0.87.2}/test/test_userfulType.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DLMS_SPODES
3
- Version: 0.87.1
3
+ Version: 0.87.2
4
4
  Summary: dlms-spodes
5
5
  Author-email: Serj Kotilevski <youserj@outlook.com>
6
6
  Project-URL: Source, https://github.com/youserj/DlmsSPODES-project
@@ -14,7 +14,7 @@ exclude = ["test","KPZ"]
14
14
 
15
15
  [project]
16
16
  name = "DLMS_SPODES"
17
- version = "0.87.1"
17
+ version = "0.87.2"
18
18
  authors = [
19
19
  {name="Serj Kotilevski", email="youserj@outlook.com"}
20
20
  ]
@@ -1,5 +1,5 @@
1
1
  from typing_extensions import deprecated
2
- from dataclasses import dataclass
2
+ from dataclasses import dataclass, field
3
3
  import numpy as np
4
4
  from struct import Struct, pack, unpack_from
5
5
  from typing import Optional, cast, Iterator, Self
@@ -64,7 +64,7 @@ class Parameter:
64
64
  def logical_name(self) -> "Parameter":
65
65
  return self.get_attr(2)
66
66
 
67
- def __eq__(self, other) -> bool:
67
+ def __eq__(self, other: object) -> bool:
68
68
  if isinstance(other, Parameter):
69
69
  return cast("bool", self._value==other._value)
70
70
  return NotImplemented
@@ -115,12 +115,12 @@ class Parameter:
115
115
  """attribute or method index"""
116
116
  return self._value[7]
117
117
 
118
- def get_attr(self, i: int) -> "Parameter":
118
+ def get_attr(self, i: int) -> Self:
119
119
  """get attribute"""
120
120
  val = Index.pack(0, i)
121
121
  return self.__class__(self._value[:6] + val)
122
122
 
123
- def get_meth(self, i: int) -> "Parameter":
123
+ def get_meth(self, i: int) -> Self:
124
124
  """get method"""
125
125
  val = Index.pack(1, i)
126
126
  return self.__class__(self._value[:6] + val)
@@ -130,9 +130,9 @@ class Parameter:
130
130
  if len(self._value) == 6:
131
131
  tmp = self._value + val
132
132
  else:
133
- tmp = bytearray(self._value)
134
- tmp[6:8] = val
135
- tmp = bytes(tmp)
133
+ tmp_ = bytearray(self._value)
134
+ tmp_[6:8] = val
135
+ tmp = bytes(tmp_)
136
136
  return self.__class__(tmp)
137
137
 
138
138
  def append_validate(self) -> None:
@@ -180,10 +180,12 @@ class Parameter:
180
180
  def piece(self) -> Optional[int]:
181
181
  if self.has_piece():
182
182
  return self._value[-1]
183
+ return None
183
184
 
184
185
  def clear_piece(self) -> "Parameter":
185
186
  if self.has_piece():
186
187
  return self.__class__(self._value[:-1])
188
+ return self
187
189
 
188
190
  def elements(self, start: int = 0) -> Iterator[int]:
189
191
  """return: index elements nested in attribute, started with"""
@@ -216,12 +218,12 @@ class Parameter:
216
218
  return max(0, (len(self._value) - 8) // 2)
217
219
 
218
220
  def set(self,
219
- a: int = None,
220
- b: int = None,
221
- c: int = None,
222
- d: int = None,
223
- e: int = None,
224
- f: int = None
221
+ a: Optional[int] = None,
222
+ b: Optional[int] = None,
223
+ c: Optional[int] = None,
224
+ d: Optional[int] = None,
225
+ e: Optional[int] = None,
226
+ f: Optional[int] = None
225
227
  ) -> "Parameter":
226
228
  val = bytearray(self._value)
227
229
  if a is not None:
@@ -238,12 +240,12 @@ class Parameter:
238
240
  val[5] = f
239
241
  return self.__class__(bytes(val))
240
242
 
241
- def __contains__(self, item: "Parameter"):
243
+ def __contains__(self, item: "Parameter") -> bool:
242
244
  return item._value in self._value
243
245
 
244
- def __getitem__(self, item) -> Optional[int]:
246
+ def __getitem__(self, item: int) -> Optional[int]:
245
247
  if self.n_elements > 0:
246
- return unpack_from(">H", self._value, item * 2 + 8)[0]
248
+ return cast(int, unpack_from(">H", self._value, item * 2 + 8)[0])
247
249
  else:
248
250
  return None
249
251
 
@@ -296,12 +298,12 @@ class ParPattern:
296
298
  positions: tuple[int, ...]
297
299
  "7 elements , -1 is SKIP, last element is attribute index if positive and method index else negative"
298
300
 
299
- def __post_init__(self):
301
+ def __post_init__(self) -> None:
300
302
  if 6 > len(self.positions) > 7:
301
303
  raise ValueError(f"positions must have exactly 6 elements, got {len(self.positions)}")
302
304
 
303
305
  @classmethod
304
- def parse(cls, pattern: str) -> 'LNPattern':
306
+ def parse(cls, pattern: str) -> "ParPattern":
305
307
  """Парсинг строк вида:
306
308
  - "a.0.(1,2,3).(0-64).0.f" (6 элементов)
307
309
  - "a.0.1.0.0.f:2" (6 элементов + индекс через :)
@@ -379,7 +381,7 @@ class ParPattern:
379
381
  @staticmethod
380
382
  def _parse_group(group_str: str) -> set[int]:
381
383
  """Парсинг групп вида '1,2,3' или '10-20'"""
382
- elements = set()
384
+ elements: set[int] = set()
383
385
  for item in group_str.split(','):
384
386
  item = item.strip()
385
387
  if '-' in item:
@@ -392,7 +394,7 @@ class ParPattern:
392
394
  # @functools.cache
393
395
  def __hash__(self) -> int:
394
396
  print("hash")
395
- hash_parts = []
397
+ hash_parts: list[Optional[bytes]] = []
396
398
  for pos in self.positions:
397
399
  if pos == -1:
398
400
  hash_parts.append(None)
@@ -475,9 +477,9 @@ class ParPattern:
475
477
  class PatternMatcher:
476
478
  """Класс для быстрого сопоставления Parameter с ParPattern"""
477
479
  patterns: dict['ParPattern', str]
478
- _masks: list[tuple[tuple[np.ndarray, ...], str]] = None
480
+ _masks: list[tuple[tuple[np.ndarray, ...], str]] = field(init=False)
479
481
 
480
- def __post_init__(self):
482
+ def __post_init__(self) -> None:
481
483
  # Предварительная обработка шаблонов
482
484
  masks = []
483
485
  for pattern, value in self.patterns.items():
@@ -12,7 +12,9 @@ class Data(Parameter):
12
12
 
13
13
 
14
14
  class ActiveFirmwareIdentifier(Data):
15
- def from_b(self, b: int) -> "ActiveFirmwareIdentifier":
15
+
16
+ @classmethod
17
+ def from_b(cls, b: int) -> "ActiveFirmwareIdentifier":
16
18
  return cls.parse(f"0.{b}.0.2.0.255")
17
19
 
18
20
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DLMS_SPODES
3
- Version: 0.87.1
3
+ Version: 0.87.2
4
4
  Summary: dlms-spodes
5
5
  Author-email: Serj Kotilevski <youserj@outlook.com>
6
6
  Project-URL: Source, https://github.com/youserj/DlmsSPODES-project
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes