solax-py-library 1.0.0.2515__tar.gz → 1.0.0.2516__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 (80) hide show
  1. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/PKG-INFO +1 -1
  2. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/pyproject.toml +1 -1
  3. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/utils/struct_util.py +16 -25
  4. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/README.md +0 -0
  5. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/__init__.py +0 -0
  6. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/__init__.py +0 -0
  7. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/constant/__init__.py +0 -0
  8. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/constant/cabinet.py +0 -0
  9. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/constant/inverter_model_info.py +0 -0
  10. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/core/__init__.py +0 -0
  11. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/core/interver/__init__.py +0 -0
  12. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/core/interver/base.py +0 -0
  13. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/types/__init__.py +0 -0
  14. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/types/alarm.py +0 -0
  15. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/types/inverter_config.py +0 -0
  16. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/device/types/modbus_point.py +0 -0
  17. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/exception.py +0 -0
  18. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/__init__.py +0 -0
  19. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/constant/__init__.py +0 -0
  20. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/constant/message_entry.py +0 -0
  21. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/__init__.py +0 -0
  22. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/action/__init__.py +0 -0
  23. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/action/base.py +0 -0
  24. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/action/ems_action.py +0 -0
  25. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/action/system_action.py +0 -0
  26. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/condition/__init__.py +0 -0
  27. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/condition/base.py +0 -0
  28. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/condition/cabinet_condition.py +0 -0
  29. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/condition/date_condition.py +0 -0
  30. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/condition/price_condition.py +0 -0
  31. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/condition/system_condition.py +0 -0
  32. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/condition/weather_condition.py +0 -0
  33. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/service/__init__.py +0 -0
  34. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/core/service/runner.py +0 -0
  35. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/exceptions/__init__.py +0 -0
  36. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/exceptions/price.py +0 -0
  37. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/exceptions/smart_scene.py +0 -0
  38. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/exceptions/weather.py +0 -0
  39. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/types/__init__.py +0 -0
  40. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/types/action.py +0 -0
  41. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/types/condition.py +0 -0
  42. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/smart_scene/types/smart_scene_content.py +0 -0
  43. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/__init__.py +0 -0
  44. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/constant/__init__.py +0 -0
  45. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/constant/crc_table.py +0 -0
  46. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/core/__init__.py +0 -0
  47. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/core/base_modbus.py +0 -0
  48. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/core/parser.py +0 -0
  49. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/core/snap_shot.py +0 -0
  50. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/exceptions/__init__.py +0 -0
  51. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/exceptions/snap_shot.py +0 -0
  52. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/test/__init__.py +0 -0
  53. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/types/__init__.py +0 -0
  54. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/snap_shot/types/address.py +0 -0
  55. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/test/__init__.py +0 -0
  56. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/test/test_smart_scene/__init__.py +0 -0
  57. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/test/test_smart_scene/test_condition.py +0 -0
  58. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/test/test_utils/__init__.py +0 -0
  59. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/test/test_utils/test_cloud_client.py +0 -0
  60. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/__init__.py +0 -0
  61. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/api/__init__.py +0 -0
  62. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/api/service.py +0 -0
  63. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/core/__init__.py +0 -0
  64. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/core/data_adapter/__init__.py +0 -0
  65. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/core/data_adapter/base.py +0 -0
  66. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/core/data_adapter/csv.py +0 -0
  67. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/core/upload_service/__init__.py +0 -0
  68. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/core/upload_service/base.py +0 -0
  69. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/core/upload_service/ftp.py +0 -0
  70. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/exceptions/__init__.py +0 -0
  71. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/exceptions/upload_error.py +0 -0
  72. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/test/__init__.py +0 -0
  73. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/test/test_ftp.py +0 -0
  74. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/types/__init__.py +0 -0
  75. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/types/client.py +0 -0
  76. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/upload/types/ftp.py +0 -0
  77. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/utils/__init__.py +0 -0
  78. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/utils/cloud_client.py +0 -0
  79. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/utils/common.py +0 -0
  80. {solax_py_library-1.0.0.2515 → solax_py_library-1.0.0.2516}/solax_py_library/utils/time_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: solax-py-library
3
- Version: 1.0.0.2515
3
+ Version: 1.0.0.2516
4
4
  Summary: some common tool
5
5
  Author: shenlvyu
6
6
  Author-email: 13296718439@163.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "solax-py-library"
3
- version = "1.0.0.2515"
3
+ version = "1.0.0.2516"
4
4
  description = "some common tool"
5
5
  authors = ["shenlvyu <13296718439@163.com>", "x5m8944pjl <371630856@qq.com>"]
6
6
  readme = "README.md"
@@ -3,15 +3,15 @@ import struct
3
3
  from typing import List
4
4
 
5
5
  format_map = {
6
- "int8": "bb",
7
- "uint8": "BB",
8
- "int16": "h",
9
- "uint16": "H",
10
- "int32": "i",
11
- "uint32": "I",
12
- "int64": "q",
13
- "uint64": "Q",
14
- "float": "f",
6
+ "int8": {"format_str": "bb", "length": 1},
7
+ "uint8": {"format_str": "BB", "length": 1},
8
+ "int16": {"format_str": "h", "length": 1},
9
+ "uint16": {"format_str": "H", "length": 1},
10
+ "int32": {"format_str": "i", "length": 2},
11
+ "uint32": {"format_str": "I", "length": 2},
12
+ "int64": {"format_str": "q", "length": 4},
13
+ "uint64": {"format_str": "Q", "length": 4},
14
+ "float": {"format_str": "f", "length": 1},
15
15
  }
16
16
 
17
17
 
@@ -27,25 +27,16 @@ def unpack(data: List, data_format, reversed=False):
27
27
  raise Exception("暂不支持")
28
28
  pack_str = ("<" if reversed else ">") + "H" * len(cur_data)
29
29
  to_pack_data = struct.pack(pack_str, *cur_data)
30
- struct_format = ("<" if reversed else ">") + format_map[data_format]
30
+ struct_format = ("<" if reversed else ">") + format_map[data_format]["format_str"]
31
31
  return struct.unpack(struct_format, to_pack_data)
32
32
 
33
33
 
34
- def struct_transform(value, fmt, order="big"):
34
+ def pack(value, fmt, order="big"):
35
35
  """将10进制的原始值转换为modbus协议需要的精度与类型的值"""
36
36
  opt = "<" if order == "little" else ">"
37
- try:
38
- value = int(value)
39
- if fmt in format_map:
40
- ret = struct.pack(f"{opt}{format_map[fmt]}", value)
41
- ret_list = struct.unpack(f"{opt}H", ret)
42
- else:
43
- ret_list = [0]
44
- except Exception:
45
- if "16" in fmt:
46
- ret_list = [0]
47
- elif "32" in fmt:
48
- ret_list = [0, 0]
49
- else:
50
- ret_list = [0, 0, 0, 0]
37
+ if fmt not in format_map:
38
+ raise Exception("暂不支持")
39
+ value = int(value)
40
+ ret = struct.pack(f'{opt}{format_map[fmt]["format_str"]}', value)
41
+ ret_list = struct.unpack(f'{opt}{"H" * format_map[fmt]["length"]}', ret)
51
42
  return list(ret_list)