artesian-sdk 4.3.1.dev2__py3-none-any.whl → 5.0.0.dev2__py3-none-any.whl
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.
- Artesian/Exceptions.py +17 -29
- Artesian/GMEPublicOffers/ExtractionRangeConfig.py +1 -2
- Artesian/GMEPublicOffers/GMEPublicOfferQuery.py +59 -86
- Artesian/GMEPublicOffers/GMEPublicOfferQueryParameters.py +15 -15
- Artesian/GMEPublicOffers/GMEPublicOfferService.py +4 -5
- Artesian/GMEPublicOffers/_Enum/Market.py +4 -0
- Artesian/GMEPublicOffers/_Enum/Status.py +1 -0
- Artesian/GMEPublicOffers/__init__.py +13 -13
- Artesian/MarketData/MarketDataService.py +72 -130
- Artesian/MarketData/_Dto/ArtesianMetadataFacet.py +5 -5
- Artesian/MarketData/_Dto/ArtesianSearchResults.py +4 -4
- Artesian/MarketData/_Dto/CheckConversionResult.py +2 -3
- Artesian/MarketData/_Dto/CurveRangeEntity.py +6 -6
- Artesian/MarketData/_Dto/DeleteData.py +5 -5
- Artesian/MarketData/_Dto/DerivedCfg.py +3 -3
- Artesian/MarketData/_Dto/DerivedTransformQueryValidation.py +2 -3
- Artesian/MarketData/_Dto/DerivedTransformQueryValidationResponse.py +3 -3
- Artesian/MarketData/_Dto/MarketDataEntityInput.py +19 -30
- Artesian/MarketData/_Dto/MarketDataEntityOutput.py +9 -16
- Artesian/MarketData/_Dto/PagedResult.py +3 -4
- Artesian/MarketData/_Dto/TimeSerieData.py +5 -4
- Artesian/MarketData/_Dto/UnitOfMeasure.py +1 -2
- Artesian/MarketData/_Dto/UpsertData.py +28 -26
- Artesian/MarketData/_Dto/__init__.py +29 -29
- Artesian/MarketData/_Enum/__init__.py +9 -9
- Artesian/MarketData/__init__.py +38 -39
- Artesian/Query/ActualQuery.py +28 -41
- Artesian/Query/AuctionQuery.py +14 -18
- Artesian/Query/BidAskQuery.py +18 -20
- Artesian/Query/DefaultPartitionStrategy.py +17 -19
- Artesian/Query/MasQuery.py +19 -22
- Artesian/Query/QueryService.py +9 -10
- Artesian/Query/VersionedQuery.py +45 -89
- Artesian/Query/_Query.py +40 -40
- Artesian/Query/_QueryParameters/ActualQueryParameters.py +15 -17
- Artesian/Query/_QueryParameters/AuctionQueryParameters.py +8 -10
- Artesian/Query/_QueryParameters/BidAskQueryParameters.py +9 -11
- Artesian/Query/_QueryParameters/ExtractionRangeConfig.py +7 -7
- Artesian/Query/_QueryParameters/MasQueryParameters.py +9 -11
- Artesian/Query/_QueryParameters/MostRecentSelectionConfig.py +10 -11
- Artesian/Query/_QueryParameters/QueryParameters.py +28 -33
- Artesian/Query/_QueryParameters/VersionSelectionConfig.py +3 -3
- Artesian/Query/_QueryParameters/VersionedQueryParameters.py +17 -19
- Artesian/Query/_QueryParameters/VersionsRangeSelectionConfig.py +5 -6
- Artesian/Query/__init__.py +11 -11
- Artesian/_ClientsExecutor/ArtesianJsonSerializer.py +211 -121
- Artesian/_ClientsExecutor/Client.py +34 -36
- Artesian/_ClientsExecutor/RequestExecutor.py +96 -115
- Artesian/__init__.py +15 -17
- Artesian/_version.py +2 -2
- {artesian_sdk-4.3.1.dev2.dist-info → artesian_sdk-5.0.0.dev2.dist-info}/METADATA +10 -17
- artesian_sdk-5.0.0.dev2.dist-info/RECORD +78 -0
- {artesian_sdk-4.3.1.dev2.dist-info → artesian_sdk-5.0.0.dev2.dist-info}/WHEEL +1 -1
- artesian_sdk-4.3.1.dev2.dist-info/RECORD +0 -78
- {artesian_sdk-4.3.1.dev2.dist-info → artesian_sdk-5.0.0.dev2.dist-info}/licenses/LICENSE +0 -0
- {artesian_sdk-4.3.1.dev2.dist-info → artesian_sdk-5.0.0.dev2.dist-info}/top_level.txt +0 -0
Artesian/Exceptions.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from typing import Optional
|
|
3
2
|
|
|
4
3
|
|
|
5
4
|
class ArtesianSdkException(Exception):
|
|
@@ -32,8 +31,8 @@ class ArtesianSdkRemoteException(ArtesianSdkException):
|
|
|
32
31
|
method: str,
|
|
33
32
|
url: str,
|
|
34
33
|
statusCode: int,
|
|
35
|
-
problemDetails:
|
|
36
|
-
errorText:
|
|
34
|
+
problemDetails: dict | None = None,
|
|
35
|
+
errorText: str | None = None,
|
|
37
36
|
) -> None:
|
|
38
37
|
"""
|
|
39
38
|
Inits the Artesian Sdk Remote Exception.
|
|
@@ -61,10 +60,7 @@ class ArtesianSdkRemoteException(ArtesianSdkException):
|
|
|
61
60
|
detail = errorText
|
|
62
61
|
|
|
63
62
|
params = {"method": method, "url": url, "statusCode": statusCode}
|
|
64
|
-
message = (
|
|
65
|
-
"Failed REST call to Artesian. "
|
|
66
|
-
+ "{method} {url} returned {statusCode}.".format(**params)
|
|
67
|
-
)
|
|
63
|
+
message = "Failed REST call to Artesian. " + "{method} {url} returned {statusCode}.".format(**params)
|
|
68
64
|
if detail is not None:
|
|
69
65
|
message = message + " " + detail
|
|
70
66
|
|
|
@@ -83,11 +79,11 @@ class ArtesianSdkRemoteException(ArtesianSdkException):
|
|
|
83
79
|
return self._statusCode
|
|
84
80
|
|
|
85
81
|
@property
|
|
86
|
-
def problemDetails(self: ArtesianSdkRemoteException) ->
|
|
82
|
+
def problemDetails(self: ArtesianSdkRemoteException) -> dict | None:
|
|
87
83
|
return self._problemDetails
|
|
88
84
|
|
|
89
85
|
@property
|
|
90
|
-
def errorText(self: ArtesianSdkRemoteException) ->
|
|
86
|
+
def errorText(self: ArtesianSdkRemoteException) -> str | None:
|
|
91
87
|
return self._errorText
|
|
92
88
|
|
|
93
89
|
|
|
@@ -101,8 +97,8 @@ class ArtesianSdkValidationException(ArtesianSdkRemoteException):
|
|
|
101
97
|
method: str,
|
|
102
98
|
url: str,
|
|
103
99
|
statusCode: int,
|
|
104
|
-
problemDetails:
|
|
105
|
-
errorText:
|
|
100
|
+
problemDetails: dict | None = None,
|
|
101
|
+
errorText: str | None = None,
|
|
106
102
|
) -> None:
|
|
107
103
|
"""
|
|
108
104
|
Inits the Artesian Sdk Validation Exception.
|
|
@@ -114,9 +110,7 @@ class ArtesianSdkValidationException(ArtesianSdkRemoteException):
|
|
|
114
110
|
problemDetails: the returned problemDetails object (if any)
|
|
115
111
|
errorText: the response as text if problem details are not provided
|
|
116
112
|
"""
|
|
117
|
-
ArtesianSdkRemoteException.__init__(
|
|
118
|
-
self, method, url, statusCode, problemDetails, errorText
|
|
119
|
-
)
|
|
113
|
+
ArtesianSdkRemoteException.__init__(self, method, url, statusCode, problemDetails, errorText)
|
|
120
114
|
|
|
121
115
|
|
|
122
116
|
class ArtesianSdkOptimisticConcurrencyException(ArtesianSdkRemoteException):
|
|
@@ -129,8 +123,8 @@ class ArtesianSdkOptimisticConcurrencyException(ArtesianSdkRemoteException):
|
|
|
129
123
|
method: str,
|
|
130
124
|
url: str,
|
|
131
125
|
statusCode: int,
|
|
132
|
-
problemDetails:
|
|
133
|
-
errorText:
|
|
126
|
+
problemDetails: dict | None = None,
|
|
127
|
+
errorText: str | None = None,
|
|
134
128
|
) -> None:
|
|
135
129
|
"""
|
|
136
130
|
Inits the Artesian Sdk Optimistic Concurrency Exception.
|
|
@@ -142,9 +136,7 @@ class ArtesianSdkOptimisticConcurrencyException(ArtesianSdkRemoteException):
|
|
|
142
136
|
problemDetails: the returned problemDetails object (if any)
|
|
143
137
|
errorText: the response as text if problem details are not provided
|
|
144
138
|
"""
|
|
145
|
-
ArtesianSdkRemoteException.__init__(
|
|
146
|
-
self, method, url, statusCode, problemDetails, errorText
|
|
147
|
-
)
|
|
139
|
+
ArtesianSdkRemoteException.__init__(self, method, url, statusCode, problemDetails, errorText)
|
|
148
140
|
|
|
149
141
|
|
|
150
142
|
class ArtesianSdkForbiddenException(ArtesianSdkRemoteException):
|
|
@@ -157,8 +149,8 @@ class ArtesianSdkForbiddenException(ArtesianSdkRemoteException):
|
|
|
157
149
|
method: str,
|
|
158
150
|
url: str,
|
|
159
151
|
statusCode: int,
|
|
160
|
-
problemDetails:
|
|
161
|
-
errorText:
|
|
152
|
+
problemDetails: dict | None = None,
|
|
153
|
+
errorText: str | None = None,
|
|
162
154
|
) -> None:
|
|
163
155
|
"""
|
|
164
156
|
Inits the Artesian Sdk Forbidden Exception.
|
|
@@ -170,9 +162,7 @@ class ArtesianSdkForbiddenException(ArtesianSdkRemoteException):
|
|
|
170
162
|
problemDetails: the returned problemDetails object (if any)
|
|
171
163
|
errorText: the response as text if problem details are not provided
|
|
172
164
|
"""
|
|
173
|
-
ArtesianSdkRemoteException.__init__(
|
|
174
|
-
self, method, url, statusCode, problemDetails, errorText
|
|
175
|
-
)
|
|
165
|
+
ArtesianSdkRemoteException.__init__(self, method, url, statusCode, problemDetails, errorText)
|
|
176
166
|
|
|
177
167
|
|
|
178
168
|
class ArtesianSdkServerException(ArtesianSdkRemoteException):
|
|
@@ -185,8 +175,8 @@ class ArtesianSdkServerException(ArtesianSdkRemoteException):
|
|
|
185
175
|
method: str,
|
|
186
176
|
url: str,
|
|
187
177
|
statusCode: int,
|
|
188
|
-
problemDetails:
|
|
189
|
-
errorText:
|
|
178
|
+
problemDetails: dict | None = None,
|
|
179
|
+
errorText: str | None = None,
|
|
190
180
|
) -> None:
|
|
191
181
|
"""
|
|
192
182
|
Inits the Artesian Sdk Server Exception.
|
|
@@ -198,9 +188,7 @@ class ArtesianSdkServerException(ArtesianSdkRemoteException):
|
|
|
198
188
|
problemDetails: the returned problemDetails object (if any)
|
|
199
189
|
errorText: the response as text if problem details are not provided
|
|
200
190
|
"""
|
|
201
|
-
ArtesianSdkRemoteException.__init__(
|
|
202
|
-
self, method, url, statusCode, problemDetails, errorText
|
|
203
|
-
)
|
|
191
|
+
ArtesianSdkRemoteException.__init__(self, method, url, statusCode, problemDetails, errorText)
|
|
204
192
|
|
|
205
193
|
|
|
206
194
|
class ArtesianSdkRequestException(ArtesianSdkException):
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from typing import Optional
|
|
3
2
|
|
|
4
3
|
|
|
5
4
|
class ExtractionRangeConfig:
|
|
@@ -10,6 +9,6 @@ class ExtractionRangeConfig:
|
|
|
10
9
|
date: Date for the Extraction Range configuration in (ISO) format
|
|
11
10
|
"""
|
|
12
11
|
|
|
13
|
-
def __init__(self: ExtractionRangeConfig, date:
|
|
12
|
+
def __init__(self: ExtractionRangeConfig, date: str | None = None) -> None:
|
|
14
13
|
"""Inits the Extraction Range Configuration."""
|
|
15
14
|
self.date = date
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
import asyncio
|
|
4
|
+
from urllib import parse
|
|
5
|
+
|
|
4
6
|
from Artesian._ClientsExecutor.Client import _Client
|
|
7
|
+
from Artesian._ClientsExecutor.RequestExecutor import _RequestExecutor
|
|
5
8
|
from Artesian.GMEPublicOffers.GMEPublicOfferQueryParameters import (
|
|
6
9
|
_GMEPublicOfferQueryParameters,
|
|
7
10
|
)
|
|
11
|
+
|
|
8
12
|
from ._Enum.BaType import BaType
|
|
9
13
|
from ._Enum.GenerationType import GenerationType
|
|
10
14
|
from ._Enum.Market import Market
|
|
@@ -13,16 +17,12 @@ from ._Enum.Scope import Scope
|
|
|
13
17
|
from ._Enum.Status import Status
|
|
14
18
|
from ._Enum.UnitType import UnitType
|
|
15
19
|
from ._Enum.Zone import Zone
|
|
16
|
-
import asyncio
|
|
17
|
-
from urllib import parse
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
class GMEPublicOfferQuery:
|
|
21
23
|
__routePrefix = "extract"
|
|
22
24
|
|
|
23
|
-
def __init__(
|
|
24
|
-
self: GMEPublicOfferQuery, client: _Client, requestExecutor: _RequestExecutor
|
|
25
|
-
) -> None:
|
|
25
|
+
def __init__(self: GMEPublicOfferQuery, client: _Client, requestExecutor: _RequestExecutor) -> None:
|
|
26
26
|
"""Inits _GME Public Offer Query"""
|
|
27
27
|
|
|
28
28
|
queryParameters = _GMEPublicOfferQueryParameters()
|
|
@@ -30,9 +30,7 @@ class GMEPublicOfferQuery:
|
|
|
30
30
|
self.__client = client
|
|
31
31
|
self.__executor = requestExecutor
|
|
32
32
|
|
|
33
|
-
def withPagination(
|
|
34
|
-
self: GMEPublicOfferQuery, pagenumber: int, pagesize: int
|
|
35
|
-
) -> GMEPublicOfferQuery:
|
|
33
|
+
def withPagination(self: GMEPublicOfferQuery, pagenumber: int, pagesize: int) -> GMEPublicOfferQuery:
|
|
36
34
|
"""
|
|
37
35
|
Set the request pagination.
|
|
38
36
|
|
|
@@ -48,7 +46,7 @@ class GMEPublicOfferQuery:
|
|
|
48
46
|
self._queryParameters.pageSize = pagesize
|
|
49
47
|
return self
|
|
50
48
|
|
|
51
|
-
def forScope(self: GMEPublicOfferQuery, scope:
|
|
49
|
+
def forScope(self: GMEPublicOfferQuery, scope: list[Scope]) -> GMEPublicOfferQuery:
|
|
52
50
|
"""
|
|
53
51
|
Set the scopes to be queried.
|
|
54
52
|
|
|
@@ -74,9 +72,7 @@ class GMEPublicOfferQuery:
|
|
|
74
72
|
self._queryParameters.status = status
|
|
75
73
|
return self
|
|
76
74
|
|
|
77
|
-
def forUnitType(
|
|
78
|
-
self: GMEPublicOfferQuery, unitType: List[UnitType]
|
|
79
|
-
) -> GMEPublicOfferQuery:
|
|
75
|
+
def forUnitType(self: GMEPublicOfferQuery, unitType: list[UnitType]) -> GMEPublicOfferQuery:
|
|
80
76
|
"""
|
|
81
77
|
Set the unit types to be queried.
|
|
82
78
|
|
|
@@ -102,7 +98,7 @@ class GMEPublicOfferQuery:
|
|
|
102
98
|
self._queryParameters.extractionRangeConfig.date = date
|
|
103
99
|
return self
|
|
104
100
|
|
|
105
|
-
def forUnit(self: GMEPublicOfferQuery, unit:
|
|
101
|
+
def forUnit(self: GMEPublicOfferQuery, unit: list[str]) -> GMEPublicOfferQuery:
|
|
106
102
|
"""
|
|
107
103
|
Set the units to be queried.
|
|
108
104
|
|
|
@@ -115,9 +111,7 @@ class GMEPublicOfferQuery:
|
|
|
115
111
|
self._queryParameters.unit = unit
|
|
116
112
|
return self
|
|
117
113
|
|
|
118
|
-
def forOperators(
|
|
119
|
-
self: GMEPublicOfferQuery, operators: List[str]
|
|
120
|
-
) -> GMEPublicOfferQuery:
|
|
114
|
+
def forOperators(self: GMEPublicOfferQuery, operators: list[str]) -> GMEPublicOfferQuery:
|
|
121
115
|
"""
|
|
122
116
|
Set the operators to be queried.
|
|
123
117
|
|
|
@@ -130,7 +124,7 @@ class GMEPublicOfferQuery:
|
|
|
130
124
|
self._queryParameters.operators = operators
|
|
131
125
|
return self
|
|
132
126
|
|
|
133
|
-
def forZone(self: GMEPublicOfferQuery, zone:
|
|
127
|
+
def forZone(self: GMEPublicOfferQuery, zone: list[Zone]) -> GMEPublicOfferQuery:
|
|
134
128
|
"""
|
|
135
129
|
Set the zones to be queried.
|
|
136
130
|
|
|
@@ -143,9 +137,7 @@ class GMEPublicOfferQuery:
|
|
|
143
137
|
self._queryParameters.zone = zone
|
|
144
138
|
return self
|
|
145
139
|
|
|
146
|
-
def forMarket(
|
|
147
|
-
self: GMEPublicOfferQuery, market: List[Market]
|
|
148
|
-
) -> GMEPublicOfferQuery:
|
|
140
|
+
def forMarket(self: GMEPublicOfferQuery, market: list[Market]) -> GMEPublicOfferQuery:
|
|
149
141
|
"""
|
|
150
142
|
Set the markets to be queried.
|
|
151
143
|
|
|
@@ -171,9 +163,7 @@ class GMEPublicOfferQuery:
|
|
|
171
163
|
self._queryParameters.purpose = purpose
|
|
172
164
|
return self
|
|
173
165
|
|
|
174
|
-
def forBAType(
|
|
175
|
-
self: GMEPublicOfferQuery, baType: List[BaType]
|
|
176
|
-
) -> GMEPublicOfferQuery:
|
|
166
|
+
def forBAType(self: GMEPublicOfferQuery, baType: list[BaType]) -> GMEPublicOfferQuery:
|
|
177
167
|
"""
|
|
178
168
|
Set the BATypes to be queried.
|
|
179
169
|
|
|
@@ -186,9 +176,7 @@ class GMEPublicOfferQuery:
|
|
|
186
176
|
self._queryParameters.baType = baType
|
|
187
177
|
return self
|
|
188
178
|
|
|
189
|
-
def forGenerationType(
|
|
190
|
-
self: GMEPublicOfferQuery, generationType: List[GenerationType]
|
|
191
|
-
) -> GMEPublicOfferQuery:
|
|
179
|
+
def forGenerationType(self: GMEPublicOfferQuery, generationType: list[GenerationType]) -> GMEPublicOfferQuery:
|
|
192
180
|
"""
|
|
193
181
|
Set the generation types to be queried.
|
|
194
182
|
|
|
@@ -201,7 +189,7 @@ class GMEPublicOfferQuery:
|
|
|
201
189
|
self._queryParameters.generationType = generationType
|
|
202
190
|
return self
|
|
203
191
|
|
|
204
|
-
def execute(self: GMEPublicOfferQuery) ->
|
|
192
|
+
def execute(self: GMEPublicOfferQuery) -> object:
|
|
205
193
|
"""
|
|
206
194
|
Execute GME Public Offer Query.
|
|
207
195
|
|
|
@@ -211,7 +199,7 @@ class GMEPublicOfferQuery:
|
|
|
211
199
|
url = self.__buildRequest()
|
|
212
200
|
return self._exec(url)
|
|
213
201
|
|
|
214
|
-
async def executeAsync(self: GMEPublicOfferQuery) ->
|
|
202
|
+
async def executeAsync(self: GMEPublicOfferQuery) -> object:
|
|
215
203
|
"""
|
|
216
204
|
Execute GME Public Offer Query.
|
|
217
205
|
|
|
@@ -225,57 +213,50 @@ class GMEPublicOfferQuery:
|
|
|
225
213
|
self._validateQuery()
|
|
226
214
|
qp = self._queryParameters
|
|
227
215
|
|
|
228
|
-
url = "/{
|
|
229
|
-
self.__routePrefix,
|
|
230
|
-
self._buildExtractionRangeRoute(qp),
|
|
231
|
-
self.__getPurpose(qp.purpose),
|
|
232
|
-
self.__getStatus(qp.status),
|
|
233
|
-
)
|
|
216
|
+
url = f"/{self.__routePrefix}/{self._buildExtractionRangeRoute(qp)}/{self.__getPurpose(qp.purpose)}/{self.__getStatus(qp.status)}?_=1"
|
|
234
217
|
|
|
235
|
-
if
|
|
218
|
+
if qp.page is not None:
|
|
236
219
|
url = url + "&page=" + str(qp.page)
|
|
237
|
-
if
|
|
220
|
+
if qp.pageSize is not None:
|
|
238
221
|
url = url + "&pageSize=" + str(qp.pageSize)
|
|
239
|
-
if
|
|
222
|
+
if qp.scope is not None:
|
|
240
223
|
sep = ","
|
|
241
|
-
scope = sep.join(map(
|
|
224
|
+
scope = sep.join(map(self.__getScope, qp.scope))
|
|
242
225
|
enc = parse.quote_plus(scope)
|
|
243
226
|
url = url + "&scope=" + enc
|
|
244
|
-
if
|
|
227
|
+
if qp.unitType is not None:
|
|
245
228
|
sep = ","
|
|
246
|
-
unitType = sep.join(map(
|
|
229
|
+
unitType = sep.join(map(self.__getUnitType, qp.unitType))
|
|
247
230
|
enc = parse.quote_plus(unitType)
|
|
248
231
|
url = url + "&unitType=" + enc
|
|
249
|
-
if
|
|
232
|
+
if qp.unit is not None:
|
|
250
233
|
sep = ","
|
|
251
234
|
unit = sep.join(map(str, qp.unit))
|
|
252
235
|
enc = parse.quote_plus(unit)
|
|
253
236
|
url = url + "&unit=" + enc
|
|
254
|
-
if
|
|
237
|
+
if qp.generationType is not None:
|
|
255
238
|
sep = ","
|
|
256
|
-
generationType = sep.join(
|
|
257
|
-
map(lambda x: self.__getGenerationType(x), qp.generationType)
|
|
258
|
-
)
|
|
239
|
+
generationType = sep.join(map(self.__getGenerationType, qp.generationType))
|
|
259
240
|
enc = parse.quote_plus(generationType)
|
|
260
241
|
url = url + "&generationType=" + enc
|
|
261
|
-
if
|
|
242
|
+
if qp.operators is not None:
|
|
262
243
|
sep = ","
|
|
263
244
|
operators = sep.join(map(str, qp.operators))
|
|
264
245
|
enc = parse.quote_plus(operators)
|
|
265
246
|
url = url + "&operators=" + enc
|
|
266
|
-
if
|
|
247
|
+
if qp.zone is not None:
|
|
267
248
|
sep = ","
|
|
268
|
-
zone = sep.join(map(
|
|
249
|
+
zone = sep.join(map(self.__getZone, qp.zone))
|
|
269
250
|
enc = parse.quote_plus(zone)
|
|
270
251
|
url = url + "&zone=" + enc
|
|
271
|
-
if
|
|
252
|
+
if qp.market is not None:
|
|
272
253
|
sep = ","
|
|
273
|
-
market = sep.join(map(
|
|
254
|
+
market = sep.join(map(self.__getMarket, qp.market))
|
|
274
255
|
enc = parse.quote_plus(market)
|
|
275
256
|
url = url + "&market=" + enc
|
|
276
|
-
if
|
|
257
|
+
if qp.baType is not None:
|
|
277
258
|
sep = ","
|
|
278
|
-
baType = sep.join(map(
|
|
259
|
+
baType = sep.join(map(self.__getBaType, qp.baType))
|
|
279
260
|
enc = parse.quote_plus(baType)
|
|
280
261
|
url = url + "&baType=" + enc
|
|
281
262
|
|
|
@@ -294,12 +275,10 @@ class GMEPublicOfferQuery:
|
|
|
294
275
|
}
|
|
295
276
|
vr = switcher.get(scope, "DefScope")
|
|
296
277
|
if vr == "DefScope":
|
|
297
|
-
raise
|
|
278
|
+
raise ValueError("Not supported Scope")
|
|
298
279
|
return vr
|
|
299
280
|
|
|
300
|
-
def __getGenerationType(
|
|
301
|
-
self: GMEPublicOfferQuery, generationType: GenerationType
|
|
302
|
-
) -> str:
|
|
281
|
+
def __getGenerationType(self: GMEPublicOfferQuery, generationType: GenerationType) -> str:
|
|
303
282
|
switcher = {
|
|
304
283
|
GenerationType.AUTOGENERATION: "AUTOGENERATION",
|
|
305
284
|
GenerationType.BIOMASS: "BIOMASS",
|
|
@@ -316,7 +295,7 @@ class GMEPublicOfferQuery:
|
|
|
316
295
|
}
|
|
317
296
|
vr = switcher.get(generationType, "DefGen")
|
|
318
297
|
if vr == "DefGen":
|
|
319
|
-
raise
|
|
298
|
+
raise ValueError("Not supported GeneratioType")
|
|
320
299
|
return vr
|
|
321
300
|
|
|
322
301
|
def __getMarket(self: GMEPublicOfferQuery, market: Market) -> str:
|
|
@@ -344,24 +323,28 @@ class GMEPublicOfferQuery:
|
|
|
344
323
|
Market.MIA3: "MIA3",
|
|
345
324
|
Market.MRR: "MRR",
|
|
346
325
|
Market.AFRR: "AFRR",
|
|
326
|
+
Market.GMP_ASTA: "GMP_ASTA",
|
|
327
|
+
Market.GMP_Cont: "GMP_Cont",
|
|
328
|
+
Market.MI_Cont: "MI_Cont",
|
|
329
|
+
Market.MGS: "MGS",
|
|
347
330
|
}
|
|
348
331
|
vr = switcher.get(market, "DefMarket")
|
|
349
332
|
if vr == "DefMarket":
|
|
350
|
-
raise
|
|
333
|
+
raise ValueError("Not supported Market")
|
|
351
334
|
return vr
|
|
352
335
|
|
|
353
336
|
def __getPurpose(self: GMEPublicOfferQuery, purpose: Purpose | None) -> str:
|
|
354
337
|
if purpose is None:
|
|
355
|
-
raise
|
|
338
|
+
raise ValueError("Not supported Purpose")
|
|
356
339
|
switcher = {Purpose.BID: "BID", Purpose.OFF: "OFF"}
|
|
357
340
|
vr = switcher.get(purpose, "Defpurp")
|
|
358
341
|
if vr == "Defpurp":
|
|
359
|
-
raise
|
|
342
|
+
raise ValueError("Not supported Purpose")
|
|
360
343
|
return vr
|
|
361
344
|
|
|
362
345
|
def __getStatus(self: GMEPublicOfferQuery, status: Status | None) -> str:
|
|
363
346
|
if status is None:
|
|
364
|
-
raise
|
|
347
|
+
raise ValueError("Not supported Status")
|
|
365
348
|
|
|
366
349
|
switcher = {
|
|
367
350
|
Status.ACC: "ACC",
|
|
@@ -372,10 +355,11 @@ class GMEPublicOfferQuery:
|
|
|
372
355
|
Status.SUB: "SUB",
|
|
373
356
|
Status.COM: "COM",
|
|
374
357
|
Status.PCOM: "PCOM",
|
|
358
|
+
Status.DIS: "DIS",
|
|
375
359
|
}
|
|
376
360
|
vr = switcher.get(status, "DefStatus")
|
|
377
361
|
if vr == "DefStatus":
|
|
378
|
-
raise
|
|
362
|
+
raise ValueError("Not supported Status")
|
|
379
363
|
return vr
|
|
380
364
|
|
|
381
365
|
def __getUnitType(self: GMEPublicOfferQuery, unitType: UnitType) -> str:
|
|
@@ -389,7 +373,7 @@ class GMEPublicOfferQuery:
|
|
|
389
373
|
}
|
|
390
374
|
vr = switcher.get(unitType, "DefunitType")
|
|
391
375
|
if vr == "DefunitType":
|
|
392
|
-
raise
|
|
376
|
+
raise ValueError("Not supported Unit Type")
|
|
393
377
|
return vr
|
|
394
378
|
|
|
395
379
|
def __getBaType(self: GMEPublicOfferQuery, baType: BaType) -> str:
|
|
@@ -401,7 +385,7 @@ class GMEPublicOfferQuery:
|
|
|
401
385
|
}
|
|
402
386
|
vr = switcher.get(baType, "DefbaType")
|
|
403
387
|
if vr == "DefbaType":
|
|
404
|
-
raise
|
|
388
|
+
raise ValueError("Not supported BaType")
|
|
405
389
|
return vr
|
|
406
390
|
|
|
407
391
|
def __getZone(self: GMEPublicOfferQuery, zone: Zone) -> str:
|
|
@@ -434,25 +418,21 @@ class GMEPublicOfferQuery:
|
|
|
434
418
|
}
|
|
435
419
|
vr = switcher.get(zone, "DefZone")
|
|
436
420
|
if vr == "DefZone":
|
|
437
|
-
raise
|
|
421
|
+
raise ValueError("Not supported Zone")
|
|
438
422
|
return vr
|
|
439
423
|
|
|
440
|
-
def _buildExtractionRangeRoute(
|
|
441
|
-
self: GMEPublicOfferQuery, queryParamaters: _GMEPublicOfferQueryParameters
|
|
442
|
-
) -> str:
|
|
424
|
+
def _buildExtractionRangeRoute(self: GMEPublicOfferQuery, queryParamaters: _GMEPublicOfferQueryParameters) -> str:
|
|
443
425
|
subPath = f"{self.__toUrlParam(queryParamaters.extractionRangeConfig.date)}"
|
|
444
426
|
return subPath
|
|
445
427
|
|
|
446
|
-
def _exec(self: GMEPublicOfferQuery, url: str) ->
|
|
428
|
+
def _exec(self: GMEPublicOfferQuery, url: str) -> object:
|
|
447
429
|
loop = get_event_loop()
|
|
448
430
|
rr = loop.run_until_complete(self._execAsync(url))
|
|
449
431
|
return rr
|
|
450
432
|
|
|
451
|
-
async def _execAsync(self: GMEPublicOfferQuery, url: str) ->
|
|
433
|
+
async def _execAsync(self: GMEPublicOfferQuery, url: str) -> object:
|
|
452
434
|
with self.__client as c:
|
|
453
|
-
res = await asyncio.gather(
|
|
454
|
-
*[self.__executor.exec(c.exec, "GET", url, None)]
|
|
455
|
-
)
|
|
435
|
+
res = await asyncio.gather(*[self.__executor.exec(c.exec, "GET", url, None)])
|
|
456
436
|
return res[0]
|
|
457
437
|
|
|
458
438
|
def __toUrlParam(self: GMEPublicOfferQuery, date: str | None) -> str:
|
|
@@ -460,20 +440,13 @@ class GMEPublicOfferQuery:
|
|
|
460
440
|
|
|
461
441
|
def _validateQuery(self: GMEPublicOfferQuery) -> None:
|
|
462
442
|
if self._queryParameters.purpose is None:
|
|
463
|
-
raise
|
|
464
|
-
"Extraction Purpose must be provided. Use .forScope()"
|
|
465
|
-
+ " argument takes a scope type"
|
|
466
|
-
)
|
|
443
|
+
raise ValueError("Extraction Purpose must be provided. Use .forPurpose(); argument takes a purpose type")
|
|
467
444
|
if self._queryParameters.extractionRangeConfig.date is None:
|
|
468
|
-
raise
|
|
469
|
-
"Extraction Date must be provided. Use .forDate() argument"
|
|
470
|
-
+ " takes a string formatted as YYYY-MM-DD"
|
|
445
|
+
raise ValueError(
|
|
446
|
+
"Extraction Date must be provided. Use .forDate() argument" + " takes a string formatted as YYYY-MM-DD"
|
|
471
447
|
)
|
|
472
448
|
if self._queryParameters.status is None:
|
|
473
|
-
raise
|
|
474
|
-
"Extraction Status must be provided. Use .forStatus() "
|
|
475
|
-
+ "argument takes a status type"
|
|
476
|
-
)
|
|
449
|
+
raise ValueError("Extraction Status must be provided. Use .forStatus() " + "argument takes a status type")
|
|
477
450
|
|
|
478
451
|
|
|
479
452
|
def get_event_loop() -> asyncio.AbstractEventLoop:
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from .ExtractionRangeConfig import ExtractionRangeConfig
|
|
2
|
+
|
|
4
3
|
from ._Enum.BaType import BaType
|
|
5
4
|
from ._Enum.GenerationType import GenerationType
|
|
6
5
|
from ._Enum.Market import Market
|
|
@@ -9,6 +8,7 @@ from ._Enum.Scope import Scope
|
|
|
9
8
|
from ._Enum.Status import Status
|
|
10
9
|
from ._Enum.UnitType import UnitType
|
|
11
10
|
from ._Enum.Zone import Zone
|
|
11
|
+
from .ExtractionRangeConfig import ExtractionRangeConfig
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class _GMEPublicOfferQueryParameters:
|
|
@@ -32,19 +32,19 @@ class _GMEPublicOfferQueryParameters:
|
|
|
32
32
|
|
|
33
33
|
def __init__(
|
|
34
34
|
self: _GMEPublicOfferQueryParameters,
|
|
35
|
-
page:
|
|
36
|
-
pageSize:
|
|
37
|
-
extractionRangeConfig:
|
|
38
|
-
scope:
|
|
39
|
-
status:
|
|
40
|
-
unitType:
|
|
41
|
-
generationType:
|
|
42
|
-
operators:
|
|
43
|
-
unit:
|
|
44
|
-
zone:
|
|
45
|
-
market:
|
|
46
|
-
purpose:
|
|
47
|
-
baType:
|
|
35
|
+
page: int | None = None,
|
|
36
|
+
pageSize: int | None = None,
|
|
37
|
+
extractionRangeConfig: ExtractionRangeConfig | None = None,
|
|
38
|
+
scope: list[Scope] | None = None,
|
|
39
|
+
status: Status | None = None,
|
|
40
|
+
unitType: list[UnitType] | None = None,
|
|
41
|
+
generationType: list[GenerationType] | None = None,
|
|
42
|
+
operators: list[str] | None = None,
|
|
43
|
+
unit: list[str] | None = None,
|
|
44
|
+
zone: list[Zone] | None = None,
|
|
45
|
+
market: list[Market] | None = None,
|
|
46
|
+
purpose: Purpose | None = None,
|
|
47
|
+
baType: list[BaType] | None = None,
|
|
48
48
|
) -> None:
|
|
49
49
|
"""
|
|
50
50
|
Inits the GME Public Offer Query Parameters with optional overrides.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from Artesian._ClientsExecutor.Client import _Client
|
|
4
|
+
from Artesian._ClientsExecutor.RequestExecutor import _RequestExecutor
|
|
2
5
|
from Artesian.ArtesianConfig import ArtesianConfig
|
|
3
6
|
from Artesian.ArtesianPolicyConfig import ArtesianPolicyConfig
|
|
4
|
-
from Artesian._ClientsExecutor.RequestExecutor import _RequestExecutor
|
|
5
|
-
from Artesian._ClientsExecutor.Client import _Client
|
|
6
7
|
|
|
7
8
|
from .GMEPublicOfferQuery import GMEPublicOfferQuery
|
|
8
9
|
|
|
@@ -27,9 +28,7 @@ class GMEPublicOfferService:
|
|
|
27
28
|
"""
|
|
28
29
|
self.__config = artesianConfig
|
|
29
30
|
self.__policy = ArtesianPolicyConfig()
|
|
30
|
-
self.__queryBaseurl =
|
|
31
|
-
self.__config.baseUrl + "/" + self.__offerstype + "/" + self.__version
|
|
32
|
-
)
|
|
31
|
+
self.__queryBaseurl = self.__config.baseUrl + "/" + self.__offerstype + "/" + self.__version
|
|
33
32
|
self.__executor = _RequestExecutor(self.__policy)
|
|
34
33
|
self.__client = _Client(self.__queryBaseurl, self.__config.apiKey)
|
|
35
34
|
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
from ._Enum.BaType import BaType
|
|
2
|
-
from ._Enum.Scope import Scope
|
|
3
2
|
from ._Enum.GenerationType import GenerationType
|
|
4
3
|
from ._Enum.Market import Market
|
|
5
4
|
from ._Enum.Purpose import Purpose
|
|
5
|
+
from ._Enum.Scope import Scope
|
|
6
6
|
from ._Enum.Status import Status
|
|
7
7
|
from ._Enum.UnitType import UnitType
|
|
8
8
|
from ._Enum.Zone import Zone
|
|
9
|
-
from .GMEPublicOfferService import GMEPublicOfferService
|
|
10
9
|
from .GMEPublicOfferQuery import GMEPublicOfferQuery
|
|
10
|
+
from .GMEPublicOfferService import GMEPublicOfferService
|
|
11
11
|
|
|
12
12
|
__all__ = [
|
|
13
|
-
|
|
14
|
-
GMEPublicOfferQuery
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Status
|
|
21
|
-
UnitType
|
|
22
|
-
Zone
|
|
23
|
-
]
|
|
13
|
+
"BaType",
|
|
14
|
+
"GMEPublicOfferQuery",
|
|
15
|
+
"GMEPublicOfferService",
|
|
16
|
+
"GenerationType",
|
|
17
|
+
"Market",
|
|
18
|
+
"Purpose",
|
|
19
|
+
"Scope",
|
|
20
|
+
"Status",
|
|
21
|
+
"UnitType",
|
|
22
|
+
"Zone",
|
|
23
|
+
]
|