artesian-sdk 4.0.3.dev2__py3-none-any.whl → 4.0.3.dev14__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.
@@ -25,3 +25,5 @@ class Zone(Enum):
25
25
  XGRE = 20
26
26
  XSVI = 21
27
27
  BSP = 22
28
+ XAUS = 23
29
+ XFRA = 24
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
  from typing import List, Optional, cast, Dict
3
3
 
4
4
  from Artesian.MarketData._Dto import DeleteData
5
+ from ._Dto.DerivedCfg import DerivedCfg
5
6
  from .._ClientsExecutor.RequestExecutor import _RequestExecutor
6
7
  from .._ClientsExecutor.Client import _Client
7
8
  from ..ArtesianConfig import ArtesianConfig
@@ -388,10 +389,77 @@ class MarketDataService:
388
389
  Returns:
389
390
  MarketData Entity Output.
390
391
  """
392
+
393
+ entity._validateDerivedCfg()
394
+
391
395
  return _get_event_loop().run_until_complete(
392
396
  self.registerMarketDataAsync(entity)
393
397
  )
394
398
 
399
+ async def updateDerivedConfigurationAsync(
400
+ self: MarketDataService,
401
+ marketDataId: int,
402
+ derivedCfg: DerivedCfg,
403
+ force: bool = False
404
+ ) -> MarketDataEntityOutput:
405
+ """
406
+ Update Derived Configuration for marketData with id supplied in MarketDataId.
407
+ The update will trigger a Rebuild
408
+
409
+ Args:
410
+ marketDataId: The Market Data Id to be updated
411
+ derivedCfg: The Derived Configuration to be updated
412
+ force: Force the update of configuration also if another
413
+ rebuild process is running (Default=false)
414
+
415
+ Returns:
416
+ MarketData Entity Output (Async).
417
+ """
418
+
419
+ marketDataOutput = await self.readMarketDataRegistryByIdAsync(marketDataId)
420
+
421
+ marketDataOutput._validateUpdateDerivedCfg(derivedCfgUpdate=derivedCfg)
422
+
423
+ url = "/marketdata/entity/" + str(marketDataId) + "/updateDerivedConfiguration"
424
+ params = {"force": force}
425
+ with self.__client as c:
426
+ res = await asyncio.gather(
427
+ *[
428
+ self.__executor.exec(
429
+ c.exec,
430
+ "POST",
431
+ url,
432
+ derivedCfg,
433
+ retcls=MarketDataEntityOutput,
434
+ params=params,
435
+ )
436
+ ]
437
+ )
438
+ return cast(MarketDataEntityOutput, res[0])
439
+
440
+ def updateDerivedConfiguration(
441
+ self: MarketDataService,
442
+ marketDataId: int,
443
+ derivedCfg: DerivedCfg,
444
+ force: bool = False
445
+ ) -> MarketDataEntityOutput:
446
+ """
447
+ Update Derived Configuration for marketData with id supplied in MarketDataId.
448
+ The update will trigger a Rebuild
449
+
450
+ Args:
451
+ marketDataId: The Market Data Id to be updated
452
+ derivedCfg: The Derived Configuration to be updated
453
+ force: Force the update of configuration also if another
454
+ rebuild process is running (Default=false)
455
+
456
+ Returns:
457
+ MarketData Entity Output.
458
+ """
459
+ return _get_event_loop().run_until_complete(
460
+ self.updateDerivedConfigurationAsync(marketDataId, derivedCfg, force)
461
+ )
462
+
395
463
  async def upsertDataAsync(self: MarketDataService, data: UpsertData) -> None:
396
464
  url = "/marketdata/upsertdata"
397
465
  with self.__client as c:
@@ -0,0 +1,21 @@
1
+ from dataclasses import dataclass
2
+ from typing import List, Optional
3
+ from .._Enum import DerivedAlgorithm
4
+
5
+
6
+ @dataclass
7
+ class DerivedCfg:
8
+ """
9
+ Class for the Derived Configuration.
10
+
11
+ Attributes:
12
+ derivedAlgorithm: the derived configuration algorithm (MUV, Coalesce, Sum)
13
+ version: the derived configuration version
14
+ orderedReferencedMarketDataIds: the ordered reference MarketData Ids
15
+ used in the computation
16
+
17
+ """
18
+
19
+ derivedAlgorithm: DerivedAlgorithm
20
+ version: int
21
+ orderedReferencedMarketDataIds: Optional[List[int]]
@@ -1,5 +1,8 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Dict, List, Optional
3
+
4
+ from .DerivedCfg import DerivedCfg
5
+ from .._Enum.DerivedAlgorithm import DerivedAlgorithm
3
6
  from .._Enum import MarketDataType
4
7
  from .._Enum import AggregationRule
5
8
  from .._Enum import Granularity
@@ -22,6 +25,7 @@ class MarketDataEntityInput:
22
25
  transformID: the time transform ID for the market data entity input
23
26
  marketDataId: the market data ID for the market data entity input
24
27
  eTag: the market data Etag for the market data entity input
28
+ derivedCfg: the derived configuration for the market data entity input
25
29
 
26
30
  """
27
31
 
@@ -30,9 +34,55 @@ class MarketDataEntityInput:
30
34
  originalGranularity: Granularity
31
35
  type: MarketDataType
32
36
  originalTimezone: str
37
+ derivedCfg: Optional[DerivedCfg] = None
33
38
  aggregationRule: AggregationRule = AggregationRule.Undefined
34
39
  tags: Optional[Dict[str, List[str]]] = None
35
40
  providerDescription: Optional[str] = None
36
41
  transformID: Optional[int] = None
37
42
  marketDataId: int = 0
38
43
  eTag: Optional[str] = None
44
+
45
+ def _validateDerivedCfg(
46
+ self: "MarketDataEntityInput") -> None:
47
+ if (
48
+ self.derivedCfg is not None
49
+ and self.derivedCfg.derivedAlgorithm == DerivedAlgorithm.MUV
50
+ and self.derivedCfg.orderedReferencedMarketDataIds is not None
51
+ ):
52
+ raise Exception(
53
+ "DerivedCfg with MUV algorithm cannot have "
54
+ "orderedReferencedMarketDataIds"
55
+ )
56
+
57
+ if (
58
+ self.derivedCfg is not None
59
+ and self.derivedCfg.derivedAlgorithm is not DerivedAlgorithm.MUV
60
+ and self.derivedCfg.orderedReferencedMarketDataIds is None
61
+ ):
62
+ raise Exception(
63
+ f"DerivedCfg with {self.derivedCfg.derivedAlgorithm} algorithm "
64
+ "must have orderedReferencedMarketDataIds valorized or empty []"
65
+ )
66
+
67
+ if (
68
+ self.derivedCfg is not None
69
+ and self.derivedCfg.derivedAlgorithm in {
70
+ DerivedAlgorithm.Coalesce,
71
+ DerivedAlgorithm.Sum
72
+ }
73
+ and self.type is not MarketDataType.ActualTimeSerie
74
+ ):
75
+ raise Exception(
76
+ f"DerivedCfg with {self.derivedCfg.derivedAlgorithm} algorithm "
77
+ "must be set to MarketData of type Actual only."
78
+ )
79
+
80
+ if (
81
+ self.derivedCfg is not None
82
+ and self.derivedCfg.derivedAlgorithm is DerivedAlgorithm.MUV
83
+ and self.type is not MarketDataType.VersionedTimeSerie
84
+ ):
85
+ raise Exception(
86
+ f"DerivedCfg with {self.derivedCfg.derivedAlgorithm} algorithm "
87
+ "must be set to MarketData of type Versioned only."
88
+ )
@@ -1,6 +1,8 @@
1
1
  from dataclasses import dataclass
2
2
  import datetime
3
3
  from typing import Optional
4
+
5
+ from .DerivedCfg import DerivedCfg
4
6
  from .MarketDataEntityInput import MarketDataEntityInput
5
7
 
6
8
 
@@ -34,3 +36,16 @@ class MarketDataEntityOutput(MarketDataEntityInput):
34
36
  dataRangeEnd: Optional[datetime.date] = None
35
37
  created: Optional[datetime.datetime] = None
36
38
  # tranform: missing due to handling class hierarchies deserializations
39
+
40
+ def _validateUpdateDerivedCfg(
41
+ self: "MarketDataEntityOutput",
42
+ derivedCfgUpdate: DerivedCfg) -> None:
43
+ if self.derivedCfg is None:
44
+ raise Exception(
45
+ "DerivedCfg cannot be added to a MarketData that has not"
46
+ )
47
+
48
+ if self.derivedCfg.derivedAlgorithm != derivedCfgUpdate.derivedAlgorithm:
49
+ raise Exception(
50
+ "Derived Algorithm cannot be update"
51
+ )
@@ -13,6 +13,7 @@ from .UpsertData import (
13
13
  UpsertData,
14
14
  )
15
15
  from .DeleteData import DeleteData
16
+ from .DerivedCfg import DerivedCfg
16
17
 
17
18
  __all__ = [
18
19
  MarketDataEntityOutput.__name__,
@@ -29,4 +30,5 @@ __all__ = [
29
30
  ArtesianSearchResults.__name__,
30
31
  ArtesianMetadataFacet.__name__,
31
32
  ArtesianMetadataFacetCount.__name__,
33
+ DerivedCfg.__name__,
32
34
  ] # type: ignore
@@ -0,0 +1,7 @@
1
+ from enum import Enum
2
+
3
+
4
+ class DerivedAlgorithm(Enum):
5
+ MUV = 0
6
+ Sum = 1
7
+ Coalesce = 2
@@ -2,10 +2,12 @@ from .AggregationRule import AggregationRule
2
2
  from ...Granularity import Granularity
3
3
  from .MarketDataType import MarketDataType
4
4
  from .ArtesianMetadataFacetType import ArtesianMetadataFacetType
5
+ from .DerivedAlgorithm import DerivedAlgorithm
5
6
 
6
7
  __all__ = [
7
8
  AggregationRule.__name__,
8
9
  Granularity.__name__,
9
10
  MarketDataType.__name__,
10
11
  ArtesianMetadataFacetType.__name__,
12
+ DerivedAlgorithm.__name__,
11
13
  ] # type: ignore
@@ -1,3 +1,4 @@
1
+ from ._Enum.DerivedAlgorithm import DerivedAlgorithm
1
2
  from .MarketDataService import MarketDataService
2
3
  from ._Enum.AggregationRule import AggregationRule
3
4
  from ..Granularity import Granularity
@@ -19,6 +20,7 @@ from ._Dto import (
19
20
  ArtesianSearchResults,
20
21
  ArtesianMetadataFacet,
21
22
  ArtesianMetadataFacetCount,
23
+ DerivedCfg,
22
24
  )
23
25
 
24
26
  __all__ = [
@@ -41,4 +43,6 @@ __all__ = [
41
43
  ArtesianMetadataFacet.__name__,
42
44
  ArtesianMetadataFacetCount.__name__,
43
45
  ArtesianMetadataFacetType.__name__,
46
+ DerivedCfg.__name__,
47
+ DerivedAlgorithm.__name__,
44
48
  ] # type: ignore
@@ -4,6 +4,7 @@ from dateutil import parser
4
4
  import jsons
5
5
  from typing import Any, Callable, Dict, Optional, get_args
6
6
 
7
+
7
8
  __commonFmt = "%Y-%m-%dT%H:%M:%S.%f"
8
9
  if system() == "Linux":
9
10
  __commonFmt = "%04Y-%m-%dT%H:%M:%S.%f"
@@ -63,6 +64,7 @@ def __artesianDictDeserializer(
63
64
  )
64
65
  for item in obj
65
66
  }
67
+
66
68
  return result
67
69
 
68
70
 
Artesian/__init__.py CHANGED
@@ -33,5 +33,5 @@ __all__ = [
33
33
  ArtesianSdkRemoteException.__name__,
34
34
  Query.__name__,
35
35
  MarketData.__name__,
36
- GMEPublicOffers.__name__,
36
+ GMEPublicOffers.__name__
37
37
  ] # type: ignore
Artesian/_version.py CHANGED
@@ -1,8 +1,13 @@
1
- # file generated by setuptools_scm
1
+ # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
+
4
+ __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
5
+
3
6
  TYPE_CHECKING = False
4
7
  if TYPE_CHECKING:
5
- from typing import Tuple, Union
8
+ from typing import Tuple
9
+ from typing import Union
10
+
6
11
  VERSION_TUPLE = Tuple[Union[int, str], ...]
7
12
  else:
8
13
  VERSION_TUPLE = object
@@ -12,5 +17,5 @@ __version__: str
12
17
  __version_tuple__: VERSION_TUPLE
13
18
  version_tuple: VERSION_TUPLE
14
19
 
15
- __version__ = version = '4.0.3.dev2'
16
- __version_tuple__ = version_tuple = (4, 0, 3, 'dev2')
20
+ __version__ = version = '4.0.3.dev14'
21
+ __version_tuple__ = version_tuple = (4, 0, 3, 'dev14')
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: artesian-sdk
3
- Version: 4.0.3.dev2
3
+ Version: 4.0.3.dev14
4
4
  Summary: Library provides read access to the Artesian API
5
5
  Author-email: ARK Lab <arklab@ark-energy.eu>
6
6
  Maintainer-email: ARK Lab <arklab@ark-energy.eu>
@@ -38,19 +38,19 @@ Classifier: Programming Language :: Python :: 3.11
38
38
  Requires-Python: >=3.8
39
39
  Description-Content-Type: text/markdown
40
40
  License-File: LICENSE
41
- Requires-Dist: requests ~=2.27
42
- Requires-Dist: six ~=1.16
43
- Requires-Dist: jsons >=1.6.1,~=1.6
44
- Requires-Dist: python-dateutil >=2.8.2,~=2.8
41
+ Requires-Dist: requests~=2.27
42
+ Requires-Dist: six~=1.16
43
+ Requires-Dist: jsons>=1.6.1,~=1.6
44
+ Requires-Dist: python-dateutil>=2.8.2,~=2.8
45
45
  Provides-Extra: dev
46
- Requires-Dist: responses ~=0.22 ; extra == 'dev'
47
- Requires-Dist: flake8 ; extra == 'dev'
48
- Requires-Dist: flake8-annotations ; extra == 'dev'
49
- Requires-Dist: pytest ; extra == 'dev'
50
- Requires-Dist: pytest-cov ; extra == 'dev'
51
- Requires-Dist: twine ; extra == 'dev'
52
- Requires-Dist: build ; extra == 'dev'
53
- Requires-Dist: black ; extra == 'dev'
46
+ Requires-Dist: responses~=0.22; extra == "dev"
47
+ Requires-Dist: flake8; extra == "dev"
48
+ Requires-Dist: flake8-annotations; extra == "dev"
49
+ Requires-Dist: pytest; extra == "dev"
50
+ Requires-Dist: pytest-cov; extra == "dev"
51
+ Requires-Dist: twine; extra == "dev"
52
+ Requires-Dist: build; extra == "dev"
53
+ Requires-Dist: black; extra == "dev"
54
54
 
55
55
  # Artesian.SDK
56
56
 
@@ -600,7 +600,12 @@ mkd = MarketData.MarketDataEntityInput(
600
600
  aggregationRule=AggregationRule.AverageAndReplicate,
601
601
  tags={
602
602
  'TestSDKPython': ['PythonValue2']
603
- }
603
+ },
604
+ derivedCfg=DerivedCfg(
605
+ version=1,
606
+ derivedAlgorithm=DerivedAlgorithm.Coalesce,
607
+ orderedReferencedMarketDataIds=[10000, 10001, 10002],
608
+ ),
604
609
  )
605
610
 
606
611
  registered = mkservice.readMarketDataRegistryByName(mkdid.provider, mkdid.name)
@@ -620,6 +625,23 @@ mkservice.upsertData(data)
620
625
 
621
626
  ```
622
627
 
628
+ DerivedCfg can be of algorithm type: Coalesce, Sum, Muv.
629
+
630
+ Updating the DerivedCfg can be performed with `updateDerivedConfiguration` on MarketDataService. A validation will be done on the existing DerivedCfg of the MarketData, that should be not null and with same type as the one used for the update.
631
+
632
+ ```csharp
633
+ derivedCfgUpdate = DerivedCfg(
634
+ version=1,
635
+ derivedAlgorithm=DerivedAlgorithm.Coalesce,
636
+ orderedReferencedMarketDataIds=[10002, 10001, 10000],
637
+ )
638
+
639
+ marketDataUpdated = mkdservice.updateDerivedConfiguration(
640
+ registeredDerived.marketDataId,
641
+ derivedCfgUpdate,
642
+ False)
643
+ ```
644
+
623
645
  In case we want to write an hourly (or lower) time series the timezone for the upsert data must be UTC:
624
646
 
625
647
  ```Python
@@ -3,8 +3,8 @@ Artesian/ArtesianConfig.py,sha256=J0GDyRqH_DuuI-nLWn-0-K-rH3KQ-FS5J7QpdAXvqxs,84
3
3
  Artesian/ArtesianPolicyConfig.py,sha256=ULLngwH1762K8Kre08_JZ7aNYs4LZOxocTYLPJjXMRQ,1501
4
4
  Artesian/Exceptions.py,sha256=asPwxz8TaIpjZV4GJmWchGen_04Ib3Rdd7_Btud4X9E,6141
5
5
  Artesian/Granularity.py,sha256=EOeBP9Wz-tAhdm3rVVJBXx9jAkiMH9OIMJUsrNawsNU,206
6
- Artesian/__init__.py,sha256=iptHA43Sm3XKYvast5wUH1lrWs5sDfQEo4niZNuONaQ,1120
7
- Artesian/_version.py,sha256=l7iacKFDjwDQeNyZD0tMi18lpk8MW9sm0fUwjl5D4DU,424
6
+ Artesian/__init__.py,sha256=c-Fu4VGOuvQCGRefF5C4CY9OxoGTDce7CgjipZN8lIo,1119
7
+ Artesian/_version.py,sha256=t4p5eQO8sRpE4nBc3Pc-67ZtAx3fMAIeP-vfccs6e2w,526
8
8
  Artesian/GMEPublicOffers/ExtractionRangeConfig.py,sha256=pXVFdLpLqFvgzu2Y5UTckDWysFiJDKc0ZaXjuv46iJU,415
9
9
  Artesian/GMEPublicOffers/GMEPublicOfferQuery.py,sha256=IECU7nk6wN7alLIxiUQmPUWaeXWsoSDC1R9qv5JMjYI,15367
10
10
  Artesian/GMEPublicOffers/GMEPublicOfferQueryParameters.py,sha256=gs5SVNEYJTpwV9whZFw07jm5cIsion6TvgRDAeHj1Kw,3330
@@ -17,24 +17,26 @@ Artesian/GMEPublicOffers/_Enum/Purpose.py,sha256=vE5TMsXFlvKS_gP13tU-UULEp6xo75V
17
17
  Artesian/GMEPublicOffers/_Enum/Scope.py,sha256=TnULjRZq-ptv8o8iHJDfcJXxEylUyPiKnRczsLBSSEE,149
18
18
  Artesian/GMEPublicOffers/_Enum/Status.py,sha256=wJ6d7Lbr30EbPRUnnhCkCXeF1-d3MSYwNxhCcXz4-fA,141
19
19
  Artesian/GMEPublicOffers/_Enum/UnitType.py,sha256=PukftC_s7BTYQmHa-LNgz7G-QliPci7mod8DX0dWTDQ,109
20
- Artesian/GMEPublicOffers/_Enum/Zone.py,sha256=-Wd_QmOIDsg1NPeb8dr3GfqjnKGquiQxPP0P7t724fk,352
20
+ Artesian/GMEPublicOffers/_Enum/Zone.py,sha256=dl_3io_JZ1F9R7t1iEjexLKeNY1HWvV-CMVgh8XlVnw,380
21
21
  Artesian/GMEPublicOffers/_Enum/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- Artesian/MarketData/MarketDataService.py,sha256=SV4TQQ-vE-uIRRkHesP9Mqb6Z6LxgUtRCdRV4Ozq6jc,14186
23
- Artesian/MarketData/__init__.py,sha256=mm42mCexlAz9XPKSBvfDAqw8laeBpHhuXaT9qEp8wqo,1267
22
+ Artesian/MarketData/MarketDataService.py,sha256=5MeWGJjyKDBWhNKRsEUSjAEVQwHCYQtEZuFlMCX4rMI,16519
23
+ Artesian/MarketData/__init__.py,sha256=i66zOBnqbaO4_lR5MxDTExt1pFlSjIb-Hy92ArlQf6E,1392
24
24
  Artesian/MarketData/_Dto/ArtesianMetadataFacet.py,sha256=Ib9YYpGp1_6LdHy2WjL5pUlUVNNGQiyXfCUeh6t5ky4,800
25
25
  Artesian/MarketData/_Dto/ArtesianSearchResults.py,sha256=nazdj1G4jpOUhn1irML3Duafp4I0kNhyfnZZzL4496k,581
26
26
  Artesian/MarketData/_Dto/CurveRangeEntity.py,sha256=_zjXxuueNoIG4Xg1K-5TeJQBF0ejcDpFkvW5R9siby8,891
27
27
  Artesian/MarketData/_Dto/DeleteData.py,sha256=0hLz28pdnNdUG82DGtPgW6NcsCNBOxIhGBD_dc8HLTA,1307
28
- Artesian/MarketData/_Dto/MarketDataEntityInput.py,sha256=sgHyJFOPy8n3atQOvVOHHRsIbP1NkrEbD85WKvuYwkM,1522
29
- Artesian/MarketData/_Dto/MarketDataEntityOutput.py,sha256=qYOyj6GJ9Lnbb6zT27ulkEW3sVmRTZKKKf0owOBGxX4,1755
28
+ Artesian/MarketData/_Dto/DerivedCfg.py,sha256=XrXVJXhenhpxl3Jtp9x0UcE9pOMOqIpvK6IE1Mfg0f4,567
29
+ Artesian/MarketData/_Dto/MarketDataEntityInput.py,sha256=ZwDhPNGh0EadpGi_0c_lJbjb8F8U5YT85ewiI8WtcSA,3467
30
+ Artesian/MarketData/_Dto/MarketDataEntityOutput.py,sha256=TKV4n0aBZzInFVY_yI8UASIyYnnHGqs7N18nUrfCfGM,2254
30
31
  Artesian/MarketData/_Dto/MarketDataIdentifier.py,sha256=egNOuOI3qugbFl8_w3IUSV9mOdBj-akq7M4Gj0X4Ig8,289
31
32
  Artesian/MarketData/_Dto/PagedResult.py,sha256=-o0zKOLTbLg2wdz8K4K4qQJTkarEl-4SYppS6cf6j2o,736
32
33
  Artesian/MarketData/_Dto/UpsertData.py,sha256=qMEULDYcXG4s44P8jrBLFExPF4Ad4sVCgsKz6oMbO9U,3829
33
- Artesian/MarketData/_Dto/__init__.py,sha256=3XiJ8kDLdspfsFbQlq9KmLMai5D-poXWJI36d-UKvWE,1067
34
+ Artesian/MarketData/_Dto/__init__.py,sha256=eA9Ve5mSxp0731sCG_4ChgTRc_tinbAFDwBaj8iTIeI,1127
34
35
  Artesian/MarketData/_Enum/AggregationRule.py,sha256=fkYmouBQwC68rFMyG_j-D_0IQA5JVrJRfSA7KxsCF-4,120
35
36
  Artesian/MarketData/_Enum/ArtesianMetadataFacetType.py,sha256=1wE9VOzZ4gHk5oBjwpJd_kCgrUIfyNQmxuOZevj4f28,92
37
+ Artesian/MarketData/_Enum/DerivedAlgorithm.py,sha256=m64IQxmlyGPghLuTKaBAE6Y5afYBJdYofp8z0FQbASw,95
36
38
  Artesian/MarketData/_Enum/MarketDataType.py,sha256=lIXV21b1wNWEah0q76OD4bMV1n_dtsUHQNSr8SbTBcE,159
37
- Artesian/MarketData/_Enum/__init__.py,sha256=cqKdXwG5r-DiUl64lyjghyuL6YqQGcptj6PUnaJaLqA,348
39
+ Artesian/MarketData/_Enum/__init__.py,sha256=wdXoxKaDXNiMqeNAQg8UZH8EGp2I8Bea9PiYHrbjVNg,426
38
40
  Artesian/Query/ActualQuery.py,sha256=iDk4smbDLIhaNDNy1GS1stZgWWGppHWwSnAMN0MUEjw,9397
39
41
  Artesian/Query/AuctionQuery.py,sha256=Ns9e1YhY-Gaj35pMIOtVPhMmFYn0fnh_LufKIOnM27E,5087
40
42
  Artesian/Query/BidAskQuery.py,sha256=0KOeEX5C-GAlIMpEzpWguqW4zpFr7tyryWyGmUFU-lI,8125
@@ -58,12 +60,12 @@ Artesian/Query/_QueryParameters/VersionSelectionType.py,sha256=rjGy6-1v6I9q8zveI
58
60
  Artesian/Query/_QueryParameters/VersionedQueryParameters.py,sha256=ZFZWA0B2_tNlwG_3KycPDb4Go2U3k5od6rLpJF5hRg8,2794
59
61
  Artesian/Query/_QueryParameters/VersionsRangeSelectionConfig.py,sha256=OP6dTHiBbCLcL9eCtgoWh50UEP0muNwM3bw-AqbvbW4,1508
60
62
  Artesian/Query/_QueryParameters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- Artesian/_ClientsExecutor/ArtesianJsonSerializer.py,sha256=ACYTfCF1orE9j3BEureiOjIMnSWajHBYcByNO8vYA1s,3561
63
+ Artesian/_ClientsExecutor/ArtesianJsonSerializer.py,sha256=CDnq1sgKLvxSampykFtF9iZHZjgV6BPZvED6MU3K74Y,3563
62
64
  Artesian/_ClientsExecutor/Client.py,sha256=AYVMOj9mf3QmCY1vmWzHQA4WRL2zqCB-yhE5XRfk8RE,3833
63
65
  Artesian/_ClientsExecutor/RequestExecutor.py,sha256=KKq31g8GFS-Mdp3S1QXFm5tZhacjnIeWs1YFc3f8NkY,10613
64
66
  Artesian/_ClientsExecutor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- artesian_sdk-4.0.3.dev2.dist-info/LICENSE,sha256=Y27w-dSf1pHlXO4yNy70OCCO4VuYYVxUdDOQ-sLdXds,1074
66
- artesian_sdk-4.0.3.dev2.dist-info/METADATA,sha256=bXl-yyjrPwJ2f2Qbp3vIKcVHKDaW46m1qS7o5_EPPuw,26923
67
- artesian_sdk-4.0.3.dev2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
68
- artesian_sdk-4.0.3.dev2.dist-info/top_level.txt,sha256=1Fv89OOnRKHLMmQEBRXPaNuPMoZytK4dnfrOFDdGGYI,9
69
- artesian_sdk-4.0.3.dev2.dist-info/RECORD,,
67
+ artesian_sdk-4.0.3.dev14.dist-info/LICENSE,sha256=Y27w-dSf1pHlXO4yNy70OCCO4VuYYVxUdDOQ-sLdXds,1074
68
+ artesian_sdk-4.0.3.dev14.dist-info/METADATA,sha256=ziLBMl-QPTo1Y-C_b0YLt25XYdHdrbttAUmvFJ_KybU,27774
69
+ artesian_sdk-4.0.3.dev14.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
70
+ artesian_sdk-4.0.3.dev14.dist-info/top_level.txt,sha256=1Fv89OOnRKHLMmQEBRXPaNuPMoZytK4dnfrOFDdGGYI,9
71
+ artesian_sdk-4.0.3.dev14.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (76.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5