DLMS-SPODES 0.86.14__tar.gz → 0.86.15__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.86.14 → dlms_spodes-0.86.15}/PKG-INFO +3 -2
  2. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/pyproject.toml +3 -2
  3. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/collection.py +16 -13
  4. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/cosem_interface_class.py +3 -2
  5. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES.egg-info/PKG-INFO +3 -2
  6. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES.egg-info/requires.txt +2 -1
  7. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_KPZ.py +1 -1
  8. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_collection.py +1 -1
  9. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/.gitignore +0 -0
  10. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/README.md +0 -0
  11. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/config.toml +0 -0
  12. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/setup.cfg +0 -0
  13. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/Values/EN/__init__.py +0 -0
  14. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/Values/EN/actors.py +0 -0
  15. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/Values/EN/relation_to_obis_names.py +0 -0
  16. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/Values/RU/__init__.py +0 -0
  17. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/Values/RU/actors.py +0 -0
  18. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/Values/RU/relation_to_obis_names.py +0 -0
  19. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/Values/__init__.py +0 -0
  20. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/__init__.py +0 -0
  21. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/configEN.ini +0 -0
  22. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/config_parser.py +0 -0
  23. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/__class_init__.py +0 -0
  24. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/__init__.py +0 -0
  25. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/a_parameter.py +0 -0
  26. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/activity_calendar.py +0 -0
  27. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/arbitrator.py +0 -0
  28. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/__init__.py +0 -0
  29. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/abstract.py +0 -0
  30. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/authentication_mechanism_name.py +0 -0
  31. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/mechanism_id.py +0 -0
  32. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/method.py +0 -0
  33. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/ver0.py +0 -0
  34. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/ver1.py +0 -0
  35. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/ver2.py +0 -0
  36. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_ln/ver3.py +0 -0
  37. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_sn/__init__.py +0 -0
  38. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/association_sn/ver0.py +0 -0
  39. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/attr_indexes.py +0 -0
  40. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/clock.py +0 -0
  41. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/data.py +0 -0
  42. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/demand_register/__init__.py +0 -0
  43. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/demand_register/ver0.py +0 -0
  44. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/disconnect_control.py +0 -0
  45. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/extended_register.py +0 -0
  46. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/gprs_modem_setup.py +0 -0
  47. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/__init__.py +0 -0
  48. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver0.py +0 -0
  49. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver1.py +0 -0
  50. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver2.py +0 -0
  51. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/__init__.py +0 -0
  52. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/ver0.py +0 -0
  53. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/ver1.py +0 -0
  54. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/iec_local_port_setup.py +0 -0
  55. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/image_transfer/__init__.py +0 -0
  56. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/image_transfer/image_transfer_status.py +0 -0
  57. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/image_transfer/ver0.py +0 -0
  58. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/implementations/__init__.py +0 -0
  59. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/implementations/arbitrator.py +0 -0
  60. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/implementations/data.py +0 -0
  61. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/implementations/profile_generic.py +0 -0
  62. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/ipv4_setup.py +0 -0
  63. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/limiter.py +0 -0
  64. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/ln_pattern.py +0 -0
  65. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/modem_configuration/__init__.py +0 -0
  66. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/modem_configuration/ver0.py +0 -0
  67. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/modem_configuration/ver1.py +0 -0
  68. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/ntp_setup/__init__.py +0 -0
  69. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/ntp_setup/ver0.py +0 -0
  70. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/obis.py +0 -0
  71. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/overview.py +0 -0
  72. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/parameter.py +0 -0
  73. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/parameters.py +0 -0
  74. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/profile_generic/__init__.py +0 -0
  75. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/profile_generic/ver0.py +0 -0
  76. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/profile_generic/ver1.py +0 -0
  77. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/push_setup/__init__.py +0 -0
  78. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/push_setup/ver0.py +0 -0
  79. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/push_setup/ver1.py +0 -0
  80. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/push_setup/ver2.py +0 -0
  81. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/register.py +0 -0
  82. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/register_activation/__init__.py +0 -0
  83. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/register_activation/ver0.py +0 -0
  84. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/register_monitor.py +0 -0
  85. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/reports.py +0 -0
  86. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/schedule.py +0 -0
  87. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/script_table.py +0 -0
  88. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/security_setup/__init__.py +0 -0
  89. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/security_setup/__pycache__/__init__.cpython-311.pyc +0 -0
  90. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/security_setup/ver0.py +0 -0
  91. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/security_setup/ver1.py +0 -0
  92. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/single_action_schedule.py +0 -0
  93. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/special_days_table.py +0 -0
  94. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_interface_classes/tcp_udp_setup.py +0 -0
  95. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/cosem_pdu.py +0 -0
  96. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/enums.py +0 -0
  97. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/exceptions.py +0 -0
  98. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/firmwares.py +0 -0
  99. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/hdlc/__init__.py +0 -0
  100. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/hdlc/frame.py +0 -0
  101. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/hdlc/sub_layer.py +0 -0
  102. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/literals.py +0 -0
  103. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/obis/__init__.py +0 -0
  104. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/obis/abstract_objects.py +0 -0
  105. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/obis/media_id.py +0 -0
  106. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/pardata.py +0 -0
  107. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/pdu_enums.py +0 -0
  108. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/py.typed +0 -0
  109. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/relation_to_OBIS.py +0 -0
  110. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/settings.py +0 -0
  111. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/__init__.py +0 -0
  112. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/choices.py +0 -0
  113. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/common_data_types.py +0 -0
  114. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/cosem_service_types.py +0 -0
  115. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/__init__.py +0 -0
  116. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/arrays.py +0 -0
  117. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/bitstrings.py +0 -0
  118. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/double_long_usingneds.py +0 -0
  119. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/enums.py +0 -0
  120. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/integers.py +0 -0
  121. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/long_unsigneds.py +0 -0
  122. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/octet_string.py +0 -0
  123. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/implementations/structs.py +0 -0
  124. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES/types/useful_types.py +0 -0
  125. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES.egg-info/SOURCES.txt +0 -0
  126. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES.egg-info/dependency_links.txt +0 -0
  127. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/DLMS_SPODES.egg-info/top_level.txt +0 -0
  128. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/src/__init__.py +0 -0
  129. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/__init__.py +0 -0
  130. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/collection_init.py +0 -0
  131. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/config.toml +0 -0
  132. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/config.zip +0 -0
  133. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/init_collection.py +0 -0
  134. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test.typ +0 -0
  135. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test.xml +0 -0
  136. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_ActivityCalendar.py +0 -0
  137. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_AssociationLN.py +0 -0
  138. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_COSEMInterfaceClass.py +0 -0
  139. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_Data.py +0 -0
  140. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_DemandRegister.py +0 -0
  141. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_DisconnectControl.py +0 -0
  142. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_DisplayReadoutProfile.py +0 -0
  143. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_GSMDiagnostic.py +0 -0
  144. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_IC.py +0 -0
  145. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_ImageTransfer.py +0 -0
  146. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_LNPatterns.py +0 -0
  147. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_Limiter.py +0 -0
  148. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_NTPSetup.py +0 -0
  149. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_Parameter.py +0 -0
  150. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_ProfileGeneric.py +0 -0
  151. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_Register.py +0 -0
  152. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_RegisterActivation.py +0 -0
  153. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_RegisterMonitor.py +0 -0
  154. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_ScalerUnitType.py +0 -0
  155. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_Schedule.py +0 -0
  156. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_Structures.py +0 -0
  157. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_a_param.py +0 -0
  158. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_benchmark_create_obj.py +0 -0
  159. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_cdt.py +0 -0
  160. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_config.py +0 -0
  161. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_electric_obj.py +0 -0
  162. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_enums.py +0 -0
  163. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_hdlc.py +0 -0
  164. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_overview.py +0 -0
  165. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_pars.py +0 -0
  166. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_report.py +0 -0
  167. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_save_type.typ +0 -0
  168. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_settings.py +0 -0
  169. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_to_xml.xml +0 -0
  170. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_to_xml2.xml +0 -0
  171. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_to_xml3.xml +0 -0
  172. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_to_xml4.xml +0 -0
  173. {dlms_spodes-0.86.14 → dlms_spodes-0.86.15}/test/test_userfulType.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DLMS_SPODES
3
- Version: 0.86.14
3
+ Version: 0.86.15
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,8 @@ Requires-Dist: pydantic>=2.11
14
14
  Requires-Dist: cryptography>=45.0
15
15
  Requires-Dist: semver>=3.0
16
16
  Requires-Dist: typing-extensions>=4.12.2
17
- Requires-Dist: StructResult>=0.8.0
17
+ Requires-Dist: StructResult>=0.8.2
18
+ Requires-Dist: numpy>=2.3.2
18
19
  Provides-Extra: dev
19
20
  Requires-Dist: mypy>=1.5.0; extra == "dev"
20
21
  Requires-Dist: ruff>=0.11; extra == "dev"
@@ -14,7 +14,7 @@ exclude = ["test","KPZ"]
14
14
 
15
15
  [project]
16
16
  name = "DLMS_SPODES"
17
- version = "0.86.14"
17
+ version = "0.86.15"
18
18
  authors = [
19
19
  {name="Serj Kotilevski", email="youserj@outlook.com"}
20
20
  ]
@@ -23,7 +23,8 @@ dependencies = [
23
23
  "cryptography>=45.0",
24
24
  "semver>=3.0",
25
25
  "typing-extensions>=4.12.2", # remove for 3.13(use for @deprecated)
26
- "StructResult>=0.8.0"
26
+ "StructResult>=0.8.2",
27
+ "numpy>=2.3.2"
27
28
  ]
28
29
  description="dlms-spodes"
29
30
  readme = "README.md"
@@ -669,7 +669,7 @@ class Collection:
669
669
  spec_map: str
670
670
 
671
671
  def __init__(self,
672
- id_: ID = None,
672
+ id_: ID,
673
673
  dlms_ver: int = 6,
674
674
  country: CountrySpecificIdentifiers = None,
675
675
  cntr_ver: ParameterValue = None):
@@ -867,19 +867,22 @@ class Collection:
867
867
  """ get object, return None if it absence """
868
868
  return self.__objs.get(obis, None)
869
869
 
870
- def par2obj(self, par: Parameter) -> InterfaceClass:
870
+ def par2obj(self, par: Parameter) -> result.Simple[InterfaceClass] | result.Error:
871
871
  """return: DLMSObject"""
872
- if ret := self.__objs.get(par.obis):
873
- return ret
874
- raise exc.NoObject(f"with {par=}")
872
+ if obj := self.__objs.get(par.obis):
873
+ return result.Simple(obj)
874
+ return result.Error.from_e(exc.NoObject(f"with {par=}"))
875
875
 
876
- def par2data(self, par: Parameter) -> Optional[cdt.CommonDataType]:
876
+ def par2data(self, par: Parameter) -> result.Option[cdt.CommonDataType] | result.Error:
877
877
  """:return CDT by Parameter, return None if data wasn't setting"""
878
- if (a_data := self.par2obj(par).get_attr(par.i)) is None:
879
- return None
878
+ if isinstance((res1 := self.par2obj(par)), result.Error):
879
+ return res1
880
+ res = result.Option(res1.value.get_attr(par.i))
881
+ if res.value is None:
882
+ return res
880
883
  for el in par.elements():
881
- a_data = a_data[el]
882
- return a_data
884
+ res.value = res.value.a_data[el]
885
+ return res
883
886
 
884
887
  def values(self) -> tuple[InterfaceClass]:
885
888
  return tuple(self.__objs.values())
@@ -1009,7 +1012,7 @@ class Collection:
1009
1012
  else:
1010
1013
  rep.log = cdt.Log(logging.ERROR, F"absent script with ID: {data.script_selector}")
1011
1014
  else:
1012
- obj = self.par2obj(par)
1015
+ obj = self.par2obj(par).unwrap()
1013
1016
  elements = tuple(par.elements())
1014
1017
  if unit := get_unit(obj.CLASS_ID, elements):
1015
1018
  rep.unit = cdt.Unit(unit).get_name()
@@ -1070,7 +1073,7 @@ class Collection:
1070
1073
  def par2su(self, par: Parameter) -> Optional[cdt.ScalUnitType]:
1071
1074
  """convert Parameter -> Optional[ScalerUnit],
1072
1075
  raise: NoObject, EmptyAttribute"""
1073
- match (obj := self.par2obj(par)).CLASS_ID, par.i:
1076
+ match (obj := self.par2obj(par).unwrap()).CLASS_ID, par.i:
1074
1077
  case (exc.NoObject, _):
1075
1078
  raise obj
1076
1079
  case (ClassID.REGISTER | ClassID.EXT_REGISTER, 2) | (ClassID.DEMAND_REGISTER, 2 | 3):
@@ -1099,7 +1102,7 @@ class Collection:
1099
1102
 
1100
1103
  def par2float(self, par: Parameter) -> float:
1101
1104
  """try convert CDT value according with Parameter to build-in float"""
1102
- data = self.par2data(par)
1105
+ data = self.par2data(par).unwrap()
1103
1106
  if hasattr(data, "__int__"):
1104
1107
  value = float(int(data))
1105
1108
  elif hasattr(data, "__float__"):
@@ -6,6 +6,7 @@ from functools import lru_cache
6
6
  from typing_extensions import deprecated
7
7
  from typing import Iterator, Type, TypeAlias, Callable, Any, Self, Literal, Optional, Protocol
8
8
  from ..types import cdt, ut, cst
9
+ from StructResult import result
9
10
  from ..relation_to_OBIS import get_name
10
11
  import logging
11
12
  from enum import IntEnum
@@ -374,10 +375,10 @@ class COSEMInterfaceClasses(Protocol):
374
375
  # print(cls.__name__)
375
376
 
376
377
  @classmethod
377
- def get_attr_element(cls, i: int) -> ICAElement:
378
+ def getAElement(cls, i: int) -> result.Simple[ICAElement] | result.Error:
378
379
  """return element by order index. Override in each new class"""
379
380
  if i == 1:
380
- return _LN_ELEMENT
381
+ return result.Simple(_LN_ELEMENT)
381
382
  elif i > len(cls.A_ELEMENTS) + 1:
382
383
  raise exc.DLMSException(F"got attribute index: {i}, expected 1..{len(cls.A_ELEMENTS) + 1}")
383
384
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DLMS_SPODES
3
- Version: 0.86.14
3
+ Version: 0.86.15
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,8 @@ Requires-Dist: pydantic>=2.11
14
14
  Requires-Dist: cryptography>=45.0
15
15
  Requires-Dist: semver>=3.0
16
16
  Requires-Dist: typing-extensions>=4.12.2
17
- Requires-Dist: StructResult>=0.8.0
17
+ Requires-Dist: StructResult>=0.8.2
18
+ Requires-Dist: numpy>=2.3.2
18
19
  Provides-Extra: dev
19
20
  Requires-Dist: mypy>=1.5.0; extra == "dev"
20
21
  Requires-Dist: ruff>=0.11; extra == "dev"
@@ -2,7 +2,8 @@ pydantic>=2.11
2
2
  cryptography>=45.0
3
3
  semver>=3.0
4
4
  typing-extensions>=4.12.2
5
- StructResult>=0.8.0
5
+ StructResult>=0.8.2
6
+ numpy>=2.3.2
6
7
 
7
8
  [dev]
8
9
  mypy>=1.5.0
@@ -594,7 +594,7 @@ class TestType(unittest.TestCase):
594
594
  def test_par2rep(self):
595
595
  col = self.create_collection()
596
596
  par = Parameter.parse("0.0.13.0.0.255:9").extend(0, 0)
597
- data = col.par2data(par)
597
+ data = col.par2data(par).unwrap()
598
598
  rep1 = col.par2rep(par, data)
599
599
  print(str(col[par.obis].get_attr_element(1)))
600
600
  print(rep1)
@@ -589,7 +589,7 @@ class TestType(unittest.TestCase):
589
589
  def test_par2rep(self):
590
590
  col = self.create_collection()
591
591
  par = Parameter.parse("0.0.13.0.0.255:9").extend(0, 0)
592
- data = col.par2data(par)
592
+ data = col.par2data(par).unwrap()
593
593
  rep1 = col.par2rep(par, data)
594
594
  print(str(col[par.obis].get_attr_element(1)))
595
595
  print(rep1)
File without changes
File without changes
File without changes
File without changes