ep-sdk-4pd 0.1.0__tar.gz → 0.1.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.
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/PKG-INFO +1 -1
- ep_sdk_4pd-0.1.2/ep_sdk_4pd/__init__.py +1 -0
- ep_sdk_4pd-0.1.2/ep_sdk_4pd/ep_data.py +108 -0
- ep_sdk_4pd-0.1.2/ep_sdk_4pd/ep_system.py +121 -0
- ep_sdk_4pd-0.1.2/ep_sdk_4pd/models.py +171 -0
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/ep_sdk_4pd.egg-info/PKG-INFO +1 -1
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/ep_sdk_4pd.egg-info/SOURCES.txt +7 -2
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/setup.py +1 -1
- ep_sdk_4pd-0.1.2/tests/test_get_run_strategy.py +14 -0
- ep_sdk_4pd-0.1.2/tests/test_get_system_date.py +13 -0
- ep_sdk_4pd-0.1.2/tests/test_history_data.py +13 -0
- ep_sdk_4pd-0.1.2/tests/test_model_output_dir.py +13 -0
- ep_sdk_4pd-0.1.2/tests/test_predict_data.py +13 -0
- ep_sdk_4pd-0.1.0/ep_sdk_4pd/__init__.py +0 -1
- ep_sdk_4pd-0.1.0/ep_sdk_4pd/client.py +0 -51
- ep_sdk_4pd-0.1.0/ep_sdk_4pd/models.py +0 -98
- ep_sdk_4pd-0.1.0/tests/test_history_data.py +0 -23
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/README.md +0 -0
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/ep_sdk_4pd.egg-info/dependency_links.txt +0 -0
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/ep_sdk_4pd.egg-info/requires.txt +0 -0
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/ep_sdk_4pd.egg-info/top_level.txt +0 -0
- {ep_sdk_4pd-0.1.0 → ep_sdk_4pd-0.1.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ep_sdk_4pd
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.2
|
4
4
|
Summary: 4paradigm Electricity Platform Service SDK Library for Python
|
5
5
|
Home-page: https://gitlab.4pd.io/electricityproject/electricity-platform-sdk
|
6
6
|
Author: 4paradigm Electricity Platform SDK
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = '0.1.2'
|
@@ -0,0 +1,108 @@
|
|
1
|
+
import json
|
2
|
+
|
3
|
+
import requests
|
4
|
+
|
5
|
+
from ep_sdk_4pd import models as ep_sdk_4pd_models
|
6
|
+
from ep_sdk_4pd.models import HistoryDataRequest, PredictDataRequest
|
7
|
+
|
8
|
+
# test 地址
|
9
|
+
endpoint = 'http://172.27.88.56:6001'
|
10
|
+
|
11
|
+
|
12
|
+
# prod 地址
|
13
|
+
# endpoint = 'http://82.157.231.254:6001'
|
14
|
+
|
15
|
+
class EpData:
|
16
|
+
|
17
|
+
@staticmethod
|
18
|
+
def get_history_data(
|
19
|
+
scope,
|
20
|
+
system_date,
|
21
|
+
days
|
22
|
+
):
|
23
|
+
request = HistoryDataRequest(
|
24
|
+
scope=scope,
|
25
|
+
system_date=system_date,
|
26
|
+
days=days,
|
27
|
+
)
|
28
|
+
response = EpData.history_data(request=request)
|
29
|
+
|
30
|
+
if response.code == 200:
|
31
|
+
return response.data
|
32
|
+
else:
|
33
|
+
return None
|
34
|
+
|
35
|
+
@staticmethod
|
36
|
+
def history_data(
|
37
|
+
request: ep_sdk_4pd_models.HistoryDataRequest = None,
|
38
|
+
) -> ep_sdk_4pd_models.HistoryDataResponse:
|
39
|
+
|
40
|
+
full_url = f'{endpoint}{request.api}'
|
41
|
+
headers = {
|
42
|
+
'content-type': request.content_type,
|
43
|
+
}
|
44
|
+
|
45
|
+
payload = {
|
46
|
+
'scope': request.scope,
|
47
|
+
'system_date': request.system_date,
|
48
|
+
'days': request.days
|
49
|
+
}
|
50
|
+
|
51
|
+
response = requests.request(
|
52
|
+
method=request.method,
|
53
|
+
url=full_url,
|
54
|
+
headers=headers,
|
55
|
+
data=json.dumps(payload),
|
56
|
+
)
|
57
|
+
|
58
|
+
base_resp = ep_sdk_4pd_models.BaseResponse(
|
59
|
+
code=response.json().get('code', None),
|
60
|
+
data=response.json().get('data', None),
|
61
|
+
message=response.json().get('message', None),
|
62
|
+
)
|
63
|
+
return ep_sdk_4pd_models.HistoryDataResponse(response=base_resp)
|
64
|
+
|
65
|
+
@staticmethod
|
66
|
+
def get_predict_data(
|
67
|
+
scope,
|
68
|
+
system_date
|
69
|
+
):
|
70
|
+
request = PredictDataRequest(
|
71
|
+
scope=scope,
|
72
|
+
system_date=system_date,
|
73
|
+
)
|
74
|
+
response = EpData.predict_data(request=request)
|
75
|
+
|
76
|
+
if response.code == 200:
|
77
|
+
return response.data
|
78
|
+
else:
|
79
|
+
return None
|
80
|
+
|
81
|
+
@staticmethod
|
82
|
+
def predict_data(
|
83
|
+
request: ep_sdk_4pd_models.PredictDataRequest = None,
|
84
|
+
) -> ep_sdk_4pd_models.PredictDataResponse:
|
85
|
+
|
86
|
+
full_url = f'{endpoint}{request.api}'
|
87
|
+
headers = {
|
88
|
+
'content-type': request.content_type,
|
89
|
+
}
|
90
|
+
|
91
|
+
payload = {
|
92
|
+
'scope': request.scope,
|
93
|
+
'system_date': request.system_date
|
94
|
+
}
|
95
|
+
|
96
|
+
response = requests.request(
|
97
|
+
method=request.method,
|
98
|
+
url=full_url,
|
99
|
+
headers=headers,
|
100
|
+
data=json.dumps(payload),
|
101
|
+
)
|
102
|
+
|
103
|
+
base_resp = ep_sdk_4pd_models.BaseResponse(
|
104
|
+
code=response.json().get('code', None),
|
105
|
+
data=response.json().get('data', None),
|
106
|
+
message=response.json().get('message', None),
|
107
|
+
)
|
108
|
+
return ep_sdk_4pd_models.PredictDataResponse(response=base_resp)
|
@@ -0,0 +1,121 @@
|
|
1
|
+
import json
|
2
|
+
import logging
|
3
|
+
import os
|
4
|
+
|
5
|
+
import requests
|
6
|
+
|
7
|
+
from ep_sdk_4pd import models as ep_sdk_4pd_models
|
8
|
+
from datetime import datetime
|
9
|
+
|
10
|
+
from ep_sdk_4pd.models import ModelOutputDirRequest, RunStrategyRequest
|
11
|
+
|
12
|
+
# test 地址
|
13
|
+
endpoint = 'http://172.27.88.56:6001'
|
14
|
+
|
15
|
+
|
16
|
+
# prod 地址
|
17
|
+
# endpoint = 'http://82.157.231.254:6001'
|
18
|
+
|
19
|
+
class EpSystem:
|
20
|
+
|
21
|
+
@staticmethod
|
22
|
+
def model_output_dir(is_online: bool = False):
|
23
|
+
if is_online:
|
24
|
+
# 从环境变量中获取策略id
|
25
|
+
strategy_id = os.getenv('STRATEGY_ID')
|
26
|
+
logging.info(f'strategy_id: {strategy_id}')
|
27
|
+
|
28
|
+
if strategy_id is None:
|
29
|
+
raise Exception('STRATEGY_ID is not set')
|
30
|
+
else:
|
31
|
+
# 线下环境,给固定的策略id
|
32
|
+
strategy_id = 63
|
33
|
+
request = ModelOutputDirRequest(strategy_id=strategy_id)
|
34
|
+
full_url = f'{endpoint}{request.api}'
|
35
|
+
headers = {
|
36
|
+
'content-type': request.content_type,
|
37
|
+
}
|
38
|
+
|
39
|
+
payload = {
|
40
|
+
'strategy_id': request.strategy_id
|
41
|
+
}
|
42
|
+
|
43
|
+
response = requests.request(
|
44
|
+
method=request.method,
|
45
|
+
url=full_url,
|
46
|
+
headers=headers,
|
47
|
+
data=json.dumps(payload),
|
48
|
+
)
|
49
|
+
|
50
|
+
base_resp = ep_sdk_4pd_models.BaseResponse(
|
51
|
+
code=response.json().get('code', None),
|
52
|
+
data=response.json().get('data', None),
|
53
|
+
message=response.json().get('message', None),
|
54
|
+
)
|
55
|
+
response = ep_sdk_4pd_models.ModelOutputDirResponse(response=base_resp)
|
56
|
+
|
57
|
+
if response.code == 200:
|
58
|
+
return response.data
|
59
|
+
else:
|
60
|
+
return None
|
61
|
+
|
62
|
+
@staticmethod
|
63
|
+
def get_system_date(is_online: bool = False):
|
64
|
+
"""
|
65
|
+
脚本每次预测的目标日,主要是拦截用户获取越界数据,用户不可修改
|
66
|
+
"""
|
67
|
+
if is_online:
|
68
|
+
# 线上环境,随着真实调用运行时间变化
|
69
|
+
system_date = datetime.now().strftime('%Y-%m-%d')
|
70
|
+
else:
|
71
|
+
# 线下环境
|
72
|
+
system_date = "2024-12-31"
|
73
|
+
|
74
|
+
return system_date
|
75
|
+
|
76
|
+
@staticmethod
|
77
|
+
def get_run_strategy(is_online: bool = False):
|
78
|
+
"""
|
79
|
+
获取此刻运行的策略模型基础信息
|
80
|
+
:param is_online:
|
81
|
+
:return:
|
82
|
+
"""
|
83
|
+
if is_online:
|
84
|
+
# 从环境变量中获取策略id
|
85
|
+
strategy_id = os.getenv('STRATEGY_ID')
|
86
|
+
logging.info(f'strategy_id: {strategy_id}')
|
87
|
+
|
88
|
+
if strategy_id is None:
|
89
|
+
raise Exception('STRATEGY_ID is not set')
|
90
|
+
else:
|
91
|
+
# 线下环境,给固定的策略id
|
92
|
+
strategy_id = 56
|
93
|
+
|
94
|
+
request = RunStrategyRequest(strategy_id=strategy_id)
|
95
|
+
full_url = f'{endpoint}{request.api}'
|
96
|
+
headers = {
|
97
|
+
'content-type': request.content_type,
|
98
|
+
}
|
99
|
+
|
100
|
+
payload = {
|
101
|
+
'strategy_id': request.strategy_id
|
102
|
+
}
|
103
|
+
|
104
|
+
response = requests.request(
|
105
|
+
method=request.method,
|
106
|
+
url=full_url,
|
107
|
+
headers=headers,
|
108
|
+
data=json.dumps(payload),
|
109
|
+
)
|
110
|
+
|
111
|
+
base_resp = ep_sdk_4pd_models.BaseResponse(
|
112
|
+
code=response.json().get('code', None),
|
113
|
+
data=response.json().get('data', None),
|
114
|
+
message=response.json().get('message', None),
|
115
|
+
)
|
116
|
+
response = ep_sdk_4pd_models.RunStrategyResponse(response=base_resp)
|
117
|
+
|
118
|
+
if response.code == 200:
|
119
|
+
return response.data
|
120
|
+
else:
|
121
|
+
return None
|
@@ -0,0 +1,171 @@
|
|
1
|
+
class BaseRequest:
|
2
|
+
"""
|
3
|
+
Model for BaseRequest
|
4
|
+
"""
|
5
|
+
|
6
|
+
def __init__(self):
|
7
|
+
self.api = None
|
8
|
+
self.method = None
|
9
|
+
self.content_type = None
|
10
|
+
self.payload = None
|
11
|
+
|
12
|
+
|
13
|
+
class BaseResponse:
|
14
|
+
"""
|
15
|
+
Model for BaseResponse
|
16
|
+
"""
|
17
|
+
|
18
|
+
def __init__(
|
19
|
+
self, code: int = None, data: dict = None, message: str = None, **kwargs
|
20
|
+
):
|
21
|
+
self.code = code
|
22
|
+
self.data = data
|
23
|
+
self.message = message
|
24
|
+
|
25
|
+
|
26
|
+
class HistoryDataRequest(BaseRequest):
|
27
|
+
"""
|
28
|
+
Model for HistoryDataRequest
|
29
|
+
|
30
|
+
获取具体系统时间往前x天的数据(最晚时间为系统时间 D-2)
|
31
|
+
特别注意:get_history_data 或 get_predict_data 会get_system_date进行检测,不可获取system_date以后得数据,避免数据穿越现象
|
32
|
+
"""
|
33
|
+
|
34
|
+
def __init__(self, scope: str = None, system_date: str = None, days: int = None):
|
35
|
+
"""
|
36
|
+
Args:
|
37
|
+
scope: "weather","plant","market"
|
38
|
+
system_date: 系统时间
|
39
|
+
days: 表示systemDate之前days的数据
|
40
|
+
"""
|
41
|
+
|
42
|
+
self.scope = scope
|
43
|
+
self.system_date = system_date
|
44
|
+
self.days = days
|
45
|
+
|
46
|
+
super().__init__()
|
47
|
+
self.api = f'/ep/api/sdk/get_history_data'
|
48
|
+
self.method = 'POST'
|
49
|
+
self.content_type = 'application/json'
|
50
|
+
|
51
|
+
|
52
|
+
class HistoryDataResponse(BaseResponse):
|
53
|
+
"""
|
54
|
+
Model for HistoryDataResponse
|
55
|
+
"""
|
56
|
+
|
57
|
+
def __init__(self, response: BaseResponse = None, **kwargs):
|
58
|
+
super().__init__(
|
59
|
+
code=response.code if response else None,
|
60
|
+
data=response.data if response else None,
|
61
|
+
message=response.message if response else None,
|
62
|
+
**kwargs,
|
63
|
+
)
|
64
|
+
|
65
|
+
class PredictDataRequest(BaseRequest):
|
66
|
+
"""
|
67
|
+
Model for PredictDataRequest
|
68
|
+
|
69
|
+
获取当前系统时间的预测数据(按照抓取时间,最晚时间为当前系统时间的d-1
|
70
|
+
"""
|
71
|
+
|
72
|
+
def __init__(self, scope: str = None, system_date: str = None):
|
73
|
+
"""
|
74
|
+
Args:
|
75
|
+
scope: "weather","market"
|
76
|
+
system_date: 系统时间
|
77
|
+
"""
|
78
|
+
|
79
|
+
self.scope = scope
|
80
|
+
self.system_date = system_date
|
81
|
+
|
82
|
+
super().__init__()
|
83
|
+
self.api = f'/ep/api/sdk/get_predict_data'
|
84
|
+
self.method = 'POST'
|
85
|
+
self.content_type = 'application/json'
|
86
|
+
|
87
|
+
|
88
|
+
class PredictDataResponse(BaseResponse):
|
89
|
+
"""
|
90
|
+
Model for PredictDataResponse
|
91
|
+
"""
|
92
|
+
|
93
|
+
def __init__(self, response: BaseResponse = None, **kwargs):
|
94
|
+
super().__init__(
|
95
|
+
code=response.code if response else None,
|
96
|
+
data=response.data if response else None,
|
97
|
+
message=response.message if response else None,
|
98
|
+
**kwargs,
|
99
|
+
)
|
100
|
+
|
101
|
+
class ModelOutputDirRequest(BaseRequest):
|
102
|
+
"""
|
103
|
+
Model for ModelOutputDirRequest
|
104
|
+
|
105
|
+
输出各策略的存放位置
|
106
|
+
输入:
|
107
|
+
线上环境:
|
108
|
+
${user.home}/strategyId/
|
109
|
+
|
110
|
+
本地测试:
|
111
|
+
${user.home}/test/
|
112
|
+
"""
|
113
|
+
|
114
|
+
def __init__(self, strategy_id: int = None):
|
115
|
+
"""
|
116
|
+
Args:
|
117
|
+
strategy_id: 是否线上环境
|
118
|
+
"""
|
119
|
+
self.strategy_id = strategy_id
|
120
|
+
|
121
|
+
super().__init__()
|
122
|
+
self.api = f'/ep/api/sdk/model_output_dir'
|
123
|
+
self.method = 'POST'
|
124
|
+
self.content_type = 'application/json'
|
125
|
+
|
126
|
+
|
127
|
+
class ModelOutputDirResponse(BaseResponse):
|
128
|
+
"""
|
129
|
+
Model for ModelOutputDirResponse
|
130
|
+
"""
|
131
|
+
|
132
|
+
def __init__(self, response: BaseResponse = None, **kwargs):
|
133
|
+
super().__init__(
|
134
|
+
code=response.code if response else None,
|
135
|
+
data=response.data if response else None,
|
136
|
+
message=response.message if response else None,
|
137
|
+
**kwargs,
|
138
|
+
)
|
139
|
+
|
140
|
+
class RunStrategyRequest(BaseRequest):
|
141
|
+
"""
|
142
|
+
Model for RunStrategyRequest
|
143
|
+
|
144
|
+
获取此刻运行的策略模型基础信息
|
145
|
+
"""
|
146
|
+
|
147
|
+
def __init__(self, strategy_id: int = None):
|
148
|
+
"""
|
149
|
+
Args:
|
150
|
+
strategy_id: 策略 id
|
151
|
+
"""
|
152
|
+
self.strategy_id = strategy_id
|
153
|
+
|
154
|
+
super().__init__()
|
155
|
+
self.api = f'/ep/api/sdk/get_run_strategy'
|
156
|
+
self.method = 'POST'
|
157
|
+
self.content_type = 'application/json'
|
158
|
+
|
159
|
+
|
160
|
+
class RunStrategyResponse(BaseResponse):
|
161
|
+
"""
|
162
|
+
Model for RunStrategyResponse
|
163
|
+
"""
|
164
|
+
|
165
|
+
def __init__(self, response: BaseResponse = None, **kwargs):
|
166
|
+
super().__init__(
|
167
|
+
code=response.code if response else None,
|
168
|
+
data=response.data if response else None,
|
169
|
+
message=response.message if response else None,
|
170
|
+
**kwargs,
|
171
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ep_sdk_4pd
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.2
|
4
4
|
Summary: 4paradigm Electricity Platform Service SDK Library for Python
|
5
5
|
Home-page: https://gitlab.4pd.io/electricityproject/electricity-platform-sdk
|
6
6
|
Author: 4paradigm Electricity Platform SDK
|
@@ -1,11 +1,16 @@
|
|
1
1
|
README.md
|
2
2
|
setup.py
|
3
3
|
ep_sdk_4pd/__init__.py
|
4
|
-
ep_sdk_4pd/
|
4
|
+
ep_sdk_4pd/ep_data.py
|
5
|
+
ep_sdk_4pd/ep_system.py
|
5
6
|
ep_sdk_4pd/models.py
|
6
7
|
ep_sdk_4pd.egg-info/PKG-INFO
|
7
8
|
ep_sdk_4pd.egg-info/SOURCES.txt
|
8
9
|
ep_sdk_4pd.egg-info/dependency_links.txt
|
9
10
|
ep_sdk_4pd.egg-info/requires.txt
|
10
11
|
ep_sdk_4pd.egg-info/top_level.txt
|
11
|
-
tests/
|
12
|
+
tests/test_get_run_strategy.py
|
13
|
+
tests/test_get_system_date.py
|
14
|
+
tests/test_history_data.py
|
15
|
+
tests/test_model_output_dir.py
|
16
|
+
tests/test_predict_data.py
|
@@ -8,7 +8,7 @@ DESCRIPTION = '4paradigm Electricity Platform Service SDK Library for Python'
|
|
8
8
|
AUTHOR = '4paradigm Electricity Platform SDK'
|
9
9
|
AUTHOR_EMAIL = ''
|
10
10
|
URL = 'https://gitlab.4pd.io/electricityproject/electricity-platform-sdk'
|
11
|
-
VERSION = '0.1.
|
11
|
+
VERSION = '0.1.2'
|
12
12
|
REQUIRES = ['requests']
|
13
13
|
|
14
14
|
LONG_DESCRIPTION = ''
|
@@ -0,0 +1,14 @@
|
|
1
|
+
from ep_sdk_4pd.ep_data import EpData
|
2
|
+
from ep_sdk_4pd.ep_system import EpSystem
|
3
|
+
|
4
|
+
|
5
|
+
def test_get_run_strategy():
|
6
|
+
print('-------------test_get_run_strategy-------------')
|
7
|
+
|
8
|
+
data = EpSystem.get_run_strategy(is_online=False)
|
9
|
+
print(data)
|
10
|
+
print('-------------------------------------')
|
11
|
+
|
12
|
+
|
13
|
+
if __name__ == '__main__':
|
14
|
+
test_get_run_strategy()
|
@@ -0,0 +1,13 @@
|
|
1
|
+
from ep_sdk_4pd.ep_system import EpSystem
|
2
|
+
|
3
|
+
|
4
|
+
def test_get_system_date():
|
5
|
+
print('-------------test_get_system_date-------------')
|
6
|
+
|
7
|
+
target_date = EpSystem.get_system_date(is_online=True)
|
8
|
+
print(target_date)
|
9
|
+
print('-------------------------------------')
|
10
|
+
|
11
|
+
|
12
|
+
if __name__ == '__main__':
|
13
|
+
test_get_system_date()
|
@@ -0,0 +1,13 @@
|
|
1
|
+
from ep_sdk_4pd.ep_data import EpData
|
2
|
+
|
3
|
+
|
4
|
+
def test_history_data():
|
5
|
+
print('-------------test_history_data-------------')
|
6
|
+
|
7
|
+
data = EpData.get_history_data(scope="weather", system_date="2025-04-17", days=2)
|
8
|
+
print(data)
|
9
|
+
print('-------------------------------------')
|
10
|
+
|
11
|
+
|
12
|
+
if __name__ == '__main__':
|
13
|
+
test_history_data()
|
@@ -0,0 +1,13 @@
|
|
1
|
+
from ep_sdk_4pd.ep_system import EpSystem
|
2
|
+
|
3
|
+
|
4
|
+
def test_model_output_dir():
|
5
|
+
print('-------------test_model_output_dir-------------')
|
6
|
+
|
7
|
+
data = EpSystem.model_output_dir(is_online=False)
|
8
|
+
print(data)
|
9
|
+
print('-------------------------------------')
|
10
|
+
|
11
|
+
|
12
|
+
if __name__ == '__main__':
|
13
|
+
test_model_output_dir()
|
@@ -0,0 +1,13 @@
|
|
1
|
+
from ep_sdk_4pd.ep_data import EpData
|
2
|
+
|
3
|
+
|
4
|
+
def test_predict_data():
|
5
|
+
print('-------------test_predict_data-------------')
|
6
|
+
|
7
|
+
data = EpData.get_predict_data(scope="weather", system_date="2025-04-15")
|
8
|
+
print(data)
|
9
|
+
print('-------------------------------------')
|
10
|
+
|
11
|
+
|
12
|
+
if __name__ == '__main__':
|
13
|
+
test_predict_data()
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = '0.1.0'
|
@@ -1,51 +0,0 @@
|
|
1
|
-
import json
|
2
|
-
|
3
|
-
import requests
|
4
|
-
|
5
|
-
from ep_sdk_4pd import models as ep_sdk_4pd_models
|
6
|
-
|
7
|
-
|
8
|
-
class Client:
|
9
|
-
def __init__(
|
10
|
-
self,
|
11
|
-
config: ep_sdk_4pd_models.Config,
|
12
|
-
):
|
13
|
-
self._endpoint = config.endpoint
|
14
|
-
|
15
|
-
|
16
|
-
# def __get_endpoint(self) -> None:
|
17
|
-
# # test 地址
|
18
|
-
# self._endpoint = 'http://172.27.88.56:6001'
|
19
|
-
# # prod 地址
|
20
|
-
# # self._endpoint = 'http://82.157.231.254:6001'
|
21
|
-
|
22
|
-
def history_data(
|
23
|
-
self,
|
24
|
-
request: ep_sdk_4pd_models.HistoryDataRequest = None,
|
25
|
-
) -> ep_sdk_4pd_models.HistoryDataResponse:
|
26
|
-
|
27
|
-
|
28
|
-
full_url = f'{self._endpoint}{request.api}'
|
29
|
-
headers = {
|
30
|
-
'content-type': request.content_type,
|
31
|
-
}
|
32
|
-
|
33
|
-
payload = {
|
34
|
-
'scope': request.scope,
|
35
|
-
'system_date': request.system_date,
|
36
|
-
'days': request.days
|
37
|
-
}
|
38
|
-
|
39
|
-
response = requests.request(
|
40
|
-
method=request.method,
|
41
|
-
url=full_url,
|
42
|
-
headers=headers,
|
43
|
-
data=json.dumps(payload),
|
44
|
-
)
|
45
|
-
|
46
|
-
base_resp = ep_sdk_4pd_models.BaseResponse(
|
47
|
-
code=response.json().get('code', None),
|
48
|
-
data=response.json().get('data', None),
|
49
|
-
message=response.json().get('message', None),
|
50
|
-
)
|
51
|
-
return ep_sdk_4pd_models.HistoryDataResponse(response=base_resp)
|
@@ -1,98 +0,0 @@
|
|
1
|
-
class Config:
|
2
|
-
"""
|
3
|
-
Model for initing client
|
4
|
-
"""
|
5
|
-
|
6
|
-
def __init__(
|
7
|
-
self,
|
8
|
-
):
|
9
|
-
# test 地址
|
10
|
-
self.endpoint = 'http://172.27.88.56:6001'
|
11
|
-
# prod 地址
|
12
|
-
# self.endpoint = 'http://82.157.231.254:6001'
|
13
|
-
|
14
|
-
|
15
|
-
class BaseRequest:
|
16
|
-
"""
|
17
|
-
Model for BaseRequest
|
18
|
-
"""
|
19
|
-
|
20
|
-
def __init__(self):
|
21
|
-
self.api = None
|
22
|
-
self.method = None
|
23
|
-
self.content_type = None
|
24
|
-
self.payload = None
|
25
|
-
|
26
|
-
|
27
|
-
class BaseResponse:
|
28
|
-
"""
|
29
|
-
Model for BaseResponse
|
30
|
-
"""
|
31
|
-
|
32
|
-
def __init__(
|
33
|
-
self, code: int = None, data: dict = None, message: str = None, **kwargs
|
34
|
-
):
|
35
|
-
self.code = code
|
36
|
-
self.data = data
|
37
|
-
self.message = message
|
38
|
-
|
39
|
-
|
40
|
-
class TestRequest(BaseRequest):
|
41
|
-
|
42
|
-
def __init__(self):
|
43
|
-
super().__init__()
|
44
|
-
self.api = '/ai/cpp/api/v1/audio-language-detection/test'
|
45
|
-
self.method = 'POST'
|
46
|
-
self.content_type = 'application/json'
|
47
|
-
self.payload = {}
|
48
|
-
|
49
|
-
|
50
|
-
class TestResponse(BaseResponse):
|
51
|
-
|
52
|
-
def __init__(self, response: BaseResponse = None, **kwargs):
|
53
|
-
super().__init__(
|
54
|
-
code=response.code if response else None,
|
55
|
-
data=response.data if response else None,
|
56
|
-
message=response.message if response else None,
|
57
|
-
**kwargs,
|
58
|
-
)
|
59
|
-
|
60
|
-
|
61
|
-
class HistoryDataRequest(BaseRequest):
|
62
|
-
"""
|
63
|
-
Model for HistoryDataRequest
|
64
|
-
|
65
|
-
获取具体系统时间往前x天的数据(最晚时间为系统时间 D-2)
|
66
|
-
特别注意:get_history_data 或 get_predict_data 会get_system_date进行检测,不可获取system_date以后得数据,避免数据穿越现象
|
67
|
-
"""
|
68
|
-
|
69
|
-
def __init__(self, scope: str = None, system_date: str = None, days: int = None):
|
70
|
-
"""
|
71
|
-
Args:
|
72
|
-
scope: "weather","plant","market"
|
73
|
-
system_date: 系统时间
|
74
|
-
days: 表示systemDate之前days的数据
|
75
|
-
"""
|
76
|
-
|
77
|
-
self.scope = scope
|
78
|
-
self.system_date = system_date
|
79
|
-
self.days = days
|
80
|
-
|
81
|
-
super().__init__()
|
82
|
-
self.api = f'/ep/api/sdk/get_history_data'
|
83
|
-
self.method = 'POST'
|
84
|
-
self.content_type = 'application/json'
|
85
|
-
|
86
|
-
|
87
|
-
class HistoryDataResponse(BaseResponse):
|
88
|
-
"""
|
89
|
-
Model for HistoryDataResponse
|
90
|
-
"""
|
91
|
-
|
92
|
-
def __init__(self, response: BaseResponse = None, **kwargs):
|
93
|
-
super().__init__(
|
94
|
-
code=response.code if response else None,
|
95
|
-
data=response.data if response else None,
|
96
|
-
message=response.message if response else None,
|
97
|
-
**kwargs,
|
98
|
-
)
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import ep_sdk_4pd.client as ep_sdk_4pd_client
|
2
|
-
import ep_sdk_4pd.models as ep_sdk_4pd_models
|
3
|
-
|
4
|
-
|
5
|
-
def test_history_data():
|
6
|
-
print('-------------test client-------------')
|
7
|
-
|
8
|
-
config = ep_sdk_4pd_models.Config()
|
9
|
-
client = ep_sdk_4pd_client.Client(config=config)
|
10
|
-
request = ep_sdk_4pd_models.HistoryDataRequest(
|
11
|
-
scope="weather",
|
12
|
-
system_date="2025-04-17",
|
13
|
-
days=2,
|
14
|
-
)
|
15
|
-
response = client.history_data(request=request)
|
16
|
-
print(response.code)
|
17
|
-
print(response.data)
|
18
|
-
print(response.message)
|
19
|
-
print('-------------------------------------')
|
20
|
-
|
21
|
-
|
22
|
-
if __name__ == '__main__':
|
23
|
-
test_history_data()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|