solax-py-library 1.0.0.2501__tar.gz → 1.0.0.2502__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 (71) hide show
  1. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/PKG-INFO +2 -1
  2. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/pyproject.toml +2 -1
  3. solax_py_library-1.0.0.2502/solax_py_library/test/test_utils/test_cloud_client.py +14 -0
  4. solax_py_library-1.0.0.2502/solax_py_library/upload/test/__init__.py +0 -0
  5. solax_py_library-1.0.0.2502/solax_py_library/utils/__init__.py +0 -0
  6. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/utils/cloud_client.py +9 -12
  7. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/README.md +0 -0
  8. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/__init__.py +0 -0
  9. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/__init__.py +0 -0
  10. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/constant/__init__.py +0 -0
  11. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/constant/inverter_model_info.py +0 -0
  12. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/core/__init__.py +0 -0
  13. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/core/interver/__init__.py +0 -0
  14. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/core/interver/base.py +0 -0
  15. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/types/__init__.py +0 -0
  16. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/types/inverter_config.py +0 -0
  17. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/device/types/modbus_point.py +0 -0
  18. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/exception.py +0 -0
  19. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/__init__.py +0 -0
  20. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/constant/__init__.py +0 -0
  21. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/constant/message_entry.py +0 -0
  22. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/__init__.py +0 -0
  23. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/action/__init__.py +0 -0
  24. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/condition/__init__.py +0 -0
  25. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/condition/base.py +0 -0
  26. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/condition/cabinet_condition.py +0 -0
  27. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/condition/date_condition.py +0 -0
  28. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/condition/price_condition.py +0 -0
  29. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/condition/system_condition.py +0 -0
  30. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/core/condition/weather_condition.py +0 -0
  31. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/exceptions/__init__.py +0 -0
  32. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/exceptions/price.py +0 -0
  33. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/exceptions/smart_scene.py +0 -0
  34. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/exceptions/weather.py +0 -0
  35. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/types/__init__.py +0 -0
  36. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/types/action.py +0 -0
  37. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/types/condition.py +0 -0
  38. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/smart_scene/types/smart_scene_content.py +0 -0
  39. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/__init__.py +0 -0
  40. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/constant/__init__.py +0 -0
  41. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/constant/crc_table.py +0 -0
  42. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/core/__init__.py +0 -0
  43. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/core/base_modbus.py +0 -0
  44. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/core/parser.py +0 -0
  45. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/core/snap_shot.py +0 -0
  46. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/exceptions/__init__.py +0 -0
  47. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/exceptions/snap_shot.py +0 -0
  48. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/test/__init__.py +0 -0
  49. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/types/__init__.py +0 -0
  50. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/snap_shot/types/address.py +0 -0
  51. {solax_py_library-1.0.0.2501/solax_py_library/upload → solax_py_library-1.0.0.2502/solax_py_library}/test/__init__.py +0 -0
  52. {solax_py_library-1.0.0.2501/solax_py_library/utils → solax_py_library-1.0.0.2502/solax_py_library/test/test_utils}/__init__.py +0 -0
  53. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/__init__.py +0 -0
  54. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/api/__init__.py +0 -0
  55. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/api/service.py +0 -0
  56. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/core/__init__.py +0 -0
  57. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/core/data_adapter/__init__.py +0 -0
  58. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/core/data_adapter/base.py +0 -0
  59. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/core/data_adapter/csv.py +0 -0
  60. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/core/upload_service/__init__.py +0 -0
  61. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/core/upload_service/base.py +0 -0
  62. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/core/upload_service/ftp.py +0 -0
  63. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/exceptions/__init__.py +0 -0
  64. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/exceptions/upload_error.py +0 -0
  65. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/test/test_ftp.py +0 -0
  66. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/types/__init__.py +0 -0
  67. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/types/client.py +0 -0
  68. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/upload/types/ftp.py +0 -0
  69. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/utils/common.py +0 -0
  70. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/solax_py_library/utils/struct_util.py +0 -0
  71. {solax_py_library-1.0.0.2501 → solax_py_library-1.0.0.2502}/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.2501
3
+ Version: 1.0.0.2502
4
4
  Summary: some common tool
5
5
  Author: shenlvyu
6
6
  Author-email: 13296718439@163.com
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
15
  Requires-Dist: pydantic (>=1.10.0,<2.0.0)
16
+ Requires-Dist: requests (==2.32.3)
16
17
  Requires-Dist: typing-extensions (==4.7.1)
17
18
  Description-Content-Type: text/markdown
18
19
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "solax-py-library"
3
- version = "1.0.0.2501"
3
+ version = "1.0.0.2502"
4
4
  description = "some common tool"
5
5
  authors = ["shenlvyu <13296718439@163.com>", "x5m8944pjl <371630856@qq.com>"]
6
6
  readme = "README.md"
@@ -9,6 +9,7 @@ readme = "README.md"
9
9
  python = "^3.8"
10
10
  pydantic = "^1.10.0"
11
11
  typing-extensions = "==4.7.1"
12
+ requests = "==2.32.3"
12
13
 
13
14
  [build-system]
14
15
  requires = ["poetry-core"]
@@ -0,0 +1,14 @@
1
+ from unittest import TestCase
2
+
3
+ from solax_py_library.utils.cloud_client import CloudClient
4
+
5
+
6
+ class TestCloudClient(TestCase):
7
+ def test_get_weather(self):
8
+ client = CloudClient()
9
+ ret = client.get_weather_data_from_cloud(
10
+ "https://aliyun-sit.solaxtech.net:5050",
11
+ "XMG11A011L",
12
+ "b080a22827484db6bd509d496f9df90b"
13
+ )
14
+ print(ret)
@@ -8,8 +8,11 @@ from solax_py_library.utils.time_util import trans_str_time_to_index
8
8
 
9
9
 
10
10
  class CloudClient:
11
- def get_token(self, cloud_url, ems_sn, sn_secret):
12
- token_url = cloud_url + "/device/token/getByRegistrationSn"
11
+ def __init__(self, base_url):
12
+ self.base_url = base_url
13
+
14
+ def get_token(self, ems_sn, sn_secret):
15
+ token_url = self.base_url + "/device/token/getByRegistrationSn"
13
16
  try:
14
17
  response = requests.post(
15
18
  token_url,
@@ -28,13 +31,10 @@ class CloudClient:
28
31
  except Exception as e:
29
32
  print(f"访问token接口失败: {str(e)}")
30
33
 
31
- def get_weather_data_from_cloud(self, cloud_url, ems_sn, sn_secret):
34
+ def get_weather_data_from_cloud(self, ems_sn, token):
32
35
  """获取未来24小时天气数据"""
33
36
  try:
34
- token = self.get_token(cloud_url, ems_sn, sn_secret)
35
- if not token:
36
- return False
37
- weather_url = cloud_url + "/ess/web/v1/powerStation/station/solcast/get"
37
+ weather_url = self.base_url + "/ess/web/v1/powerStation/station/solcast/get"
38
38
  headers = {"token": token, "Content-Type": "application/json"}
39
39
  post_dict = {"registerNo": ems_sn, "day": 1}
40
40
  response = requests.post(
@@ -137,12 +137,9 @@ class CloudClient:
137
137
  print(f"获取天气数据失败 异常 {traceback.format_exc()}")
138
138
  return False
139
139
 
140
- def get_electrovalence_data_from_cloud(self, cloud_url, ems_sn, sn_secret):
140
+ def get_electrovalence_data_from_cloud(self, ems_sn, token):
141
141
  try:
142
- token = self.get_token(cloud_url, ems_sn, sn_secret)
143
- if not token:
144
- return False
145
- price_url = cloud_url + "/powerStation/station/getCurrentElectrovalence"
142
+ price_url = self.base_url + "/powerStation/station/getCurrentElectrovalence"
146
143
  response = requests.post(
147
144
  url=price_url,
148
145
  headers={"token": token, "Content-Type": "application/json"},