artesian-sdk 4.2.3.dev2__tar.gz → 4.2.3.dev6__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 (120) hide show
  1. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/.github/workflows/python-tests.yml +1 -1
  2. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/PKG-INFO +35 -5
  3. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/README.md +34 -4
  4. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/_version.py +3 -3
  5. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/artesian_sdk.egg-info/PKG-INFO +35 -5
  6. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/.flake8 +0 -0
  7. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/.github/dependabot.yml +0 -0
  8. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/.github/workflows/dependency-review.yaml +0 -0
  9. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/.gitignore +0 -0
  10. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/.vscode/extensions.json +0 -0
  11. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/.vscode/launch.json +0 -0
  12. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/.vscode/settings.json +0 -0
  13. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/CODEOWNERS +0 -0
  14. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/CONTRIBUTING.md +0 -0
  15. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/LICENSE +0 -0
  16. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/pyproject.toml +0 -0
  17. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/renovate.json +0 -0
  18. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestActual.py +0 -0
  19. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestAuction.py +0 -0
  20. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestBidAsk.py +0 -0
  21. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestDerivedCfg.py +0 -0
  22. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestGMEOffers.py +0 -0
  23. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestMarketDataService.py +0 -0
  24. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestMas.py +0 -0
  25. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestSearchFacet.py +0 -0
  26. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestVersioned.py +0 -0
  27. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndDeleteActual.py +0 -0
  28. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndDeleteAuction.py +0 -0
  29. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndDeleteBidAsk.py +0 -0
  30. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndDeleteMas.py +0 -0
  31. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndDeleteVersioned.py +0 -0
  32. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndQueryActual.py +0 -0
  33. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndQueryAuction.py +0 -0
  34. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndQueryBidAsk.py +0 -0
  35. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/samples/TestWriteDataAndQueryMas.py +0 -0
  36. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/setup.cfg +0 -0
  37. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/.gitignore +0 -0
  38. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/ArtesianConfig.py +0 -0
  39. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/ArtesianPolicyConfig.py +0 -0
  40. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Exceptions.py +0 -0
  41. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/ExtractionRangeConfig.py +0 -0
  42. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/GMEPublicOfferQuery.py +0 -0
  43. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/GMEPublicOfferQueryParameters.py +0 -0
  44. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/GMEPublicOfferService.py +0 -0
  45. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/BaType.py +0 -0
  46. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/GenerationType.py +0 -0
  47. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/Market.py +0 -0
  48. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/Purpose.py +0 -0
  49. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/Scope.py +0 -0
  50. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/Status.py +0 -0
  51. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/UnitType.py +0 -0
  52. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/Zone.py +0 -0
  53. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/_Enum/__init__.py +0 -0
  54. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/GMEPublicOffers/__init__.py +0 -0
  55. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Granularity.py +0 -0
  56. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/CommonUnitOfMeasure.py +0 -0
  57. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/MarketDataService.py +0 -0
  58. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/ArtesianMetadataFacet.py +0 -0
  59. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/ArtesianSearchResults.py +0 -0
  60. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/CheckConversionResult.py +0 -0
  61. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/CurveRangeEntity.py +0 -0
  62. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/DeleteData.py +0 -0
  63. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/DerivedCfg.py +0 -0
  64. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/MarketDataEntityInput.py +0 -0
  65. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/MarketDataEntityOutput.py +0 -0
  66. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/MarketDataIdentifier.py +0 -0
  67. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/PagedResult.py +0 -0
  68. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/UnitOfMeasure.py +0 -0
  69. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/UpsertData.py +0 -0
  70. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Dto/__init__.py +0 -0
  71. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Enum/AggregationRule.py +0 -0
  72. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Enum/ArtesianMetadataFacetType.py +0 -0
  73. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Enum/DerivedAlgorithm.py +0 -0
  74. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Enum/MarketDataType.py +0 -0
  75. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Enum/UpsertMode.py +0 -0
  76. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/_Enum/__init__.py +0 -0
  77. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/MarketData/__init__.py +0 -0
  78. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/ActualQuery.py +0 -0
  79. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/AuctionQuery.py +0 -0
  80. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/BidAskQuery.py +0 -0
  81. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/DefaultPartitionStrategy.py +0 -0
  82. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/MasQuery.py +0 -0
  83. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/QueryService.py +0 -0
  84. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/RelativeInterval.py +0 -0
  85. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/VersionedQuery.py +0 -0
  86. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_Query.py +0 -0
  87. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/ActualQueryParameters.py +0 -0
  88. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/AuctionQueryParameters.py +0 -0
  89. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/BidAskQueryParameters.py +0 -0
  90. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/ExtractionRangeConfig.py +0 -0
  91. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/ExtractionRangeType.py +0 -0
  92. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/MasQueryParameters.py +0 -0
  93. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/MostRecentSelectionConfig.py +0 -0
  94. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/QueryParameters.py +0 -0
  95. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/VersionSelectionConfig.py +0 -0
  96. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/VersionSelectionType.py +0 -0
  97. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/VersionedQueryParameters.py +0 -0
  98. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/VersionsRangeSelectionConfig.py +0 -0
  99. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/_QueryParameters/__init__.py +0 -0
  100. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/Query/__init__.py +0 -0
  101. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/_ClientsExecutor/ArtesianJsonSerializer.py +0 -0
  102. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/_ClientsExecutor/Client.py +0 -0
  103. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/_ClientsExecutor/RequestExecutor.py +0 -0
  104. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/_ClientsExecutor/__init__.py +0 -0
  105. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/Artesian/__init__.py +0 -0
  106. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/artesian_sdk.egg-info/SOURCES.txt +0 -0
  107. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/artesian_sdk.egg-info/dependency_links.txt +0 -0
  108. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/artesian_sdk.egg-info/requires.txt +0 -0
  109. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/src/artesian_sdk.egg-info/top_level.txt +0 -0
  110. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestActual.py +0 -0
  111. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestBidAsk.py +0 -0
  112. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestClientErrorHandling.py +0 -0
  113. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestGMEPO.py +0 -0
  114. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestMarketDataDeleteData.py +0 -0
  115. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestMarketDataService.py +0 -0
  116. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestMarketDataUpsertData.py +0 -0
  117. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestMas.py +0 -0
  118. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/TestVersioned.py +0 -0
  119. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/__init__.py +0 -0
  120. {artesian_sdk-4.2.3.dev2 → artesian_sdk-4.2.3.dev6}/tests/helpers.py +0 -0
@@ -49,7 +49,7 @@ jobs:
49
49
  pytest --junitxml=junit/test-results-${{ matrix.python-version }}-${{ matrix.os }}.xml
50
50
 
51
51
  - name: Upload pytest test results
52
- uses: actions/upload-artifact@v5
52
+ uses: actions/upload-artifact@v6
53
53
  with:
54
54
  name: pytest-results-${{ matrix.python-version }}-${{ matrix.os }}
55
55
  path: junit/test-results-${{ matrix.python-version }}-${{ matrix.os }}.xml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: artesian-sdk
3
- Version: 4.2.3.dev2
3
+ Version: 4.2.3.dev6
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>
@@ -466,23 +466,53 @@ res = mds.searchFacet(page, pageSize, searchText, filters, sorts, doNotLoadAddit
466
466
 
467
467
  Artesian support Query over GME Public Offers which comes in a custom and dedicated format.
468
468
 
469
+ Note (performance):
470
+ GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same data to be fetched multiple times.
471
+ For this reason, the examples below:
472
+ • Use a large page size so that all data for a given (date, market, filters) is typically returned in a single page.
473
+ • Loop over markets explicitly to cover all required markets without redundant fetches.
474
+
469
475
  ### Extract GME Public Offer
470
476
 
471
477
  ```Python
472
478
  from Artesian.GMEPublicOffers import GMEPublicOfferService, Market, Purpose, Status, Zone, Scope, UnitType, GenerationType, BAType
473
479
 
474
- qs = GMEPublicOfferService(cfg)
480
+ /* your Artesian configuration */;
481
+
482
+ var _cfg = new ArtesianServiceConfig(
483
+ new Uri("https://arkive.artesian.cloud/{TENANT_NAME}/"),
484
+ your_API_Key);
485
+
486
+ qs = GMEPublicOfferService(_cfg)
487
+
488
+ # Large page size: goal is to get all data for the given filters in one page
489
+ PAGE_SIZE = 250000
475
490
 
476
- data = qs.createQuery() \
491
+ # List of markets to cover. Extend as needed for your use case.
492
+ markets = [
493
+ Market.MGP,
494
+ # Market.MSD,
495
+ # Market.MIT,
496
+ ]
497
+
498
+ all_data = []
499
+
500
+ for market in markets:
501
+
502
+ data = (
503
+ qs.createQuery() \
477
504
  .forDate("2020-04-01") \
478
505
  .forMarket([Market.MGP]) \
479
506
  .forStatus(Status.ACC) \
480
507
  .forPurpose(Purpose.BID) \
481
508
  .forZone([Zone.NORD]) \
482
- .withPagination(1,100) \
509
+ .withPagination(1,PAGE_SIZE) \
483
510
  .execute()
511
+ )
512
+ print(f"Fetched {len(data)} offers for market {market}")
513
+ all_data.extend(data)
484
514
 
485
- print(data)
515
+ print(f"Total offers fetched: {len(all_data)}")
486
516
  ```
487
517
 
488
518
  To construct a GME Public Offer Extraction the following must be provided.
@@ -411,23 +411,53 @@ res = mds.searchFacet(page, pageSize, searchText, filters, sorts, doNotLoadAddit
411
411
 
412
412
  Artesian support Query over GME Public Offers which comes in a custom and dedicated format.
413
413
 
414
+ Note (performance):
415
+ GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same data to be fetched multiple times.
416
+ For this reason, the examples below:
417
+ • Use a large page size so that all data for a given (date, market, filters) is typically returned in a single page.
418
+ • Loop over markets explicitly to cover all required markets without redundant fetches.
419
+
414
420
  ### Extract GME Public Offer
415
421
 
416
422
  ```Python
417
423
  from Artesian.GMEPublicOffers import GMEPublicOfferService, Market, Purpose, Status, Zone, Scope, UnitType, GenerationType, BAType
418
424
 
419
- qs = GMEPublicOfferService(cfg)
425
+ /* your Artesian configuration */;
426
+
427
+ var _cfg = new ArtesianServiceConfig(
428
+ new Uri("https://arkive.artesian.cloud/{TENANT_NAME}/"),
429
+ your_API_Key);
430
+
431
+ qs = GMEPublicOfferService(_cfg)
432
+
433
+ # Large page size: goal is to get all data for the given filters in one page
434
+ PAGE_SIZE = 250000
420
435
 
421
- data = qs.createQuery() \
436
+ # List of markets to cover. Extend as needed for your use case.
437
+ markets = [
438
+ Market.MGP,
439
+ # Market.MSD,
440
+ # Market.MIT,
441
+ ]
442
+
443
+ all_data = []
444
+
445
+ for market in markets:
446
+
447
+ data = (
448
+ qs.createQuery() \
422
449
  .forDate("2020-04-01") \
423
450
  .forMarket([Market.MGP]) \
424
451
  .forStatus(Status.ACC) \
425
452
  .forPurpose(Purpose.BID) \
426
453
  .forZone([Zone.NORD]) \
427
- .withPagination(1,100) \
454
+ .withPagination(1,PAGE_SIZE) \
428
455
  .execute()
456
+ )
457
+ print(f"Fetched {len(data)} offers for market {market}")
458
+ all_data.extend(data)
429
459
 
430
- print(data)
460
+ print(f"Total offers fetched: {len(all_data)}")
431
461
  ```
432
462
 
433
463
  To construct a GME Public Offer Extraction the following must be provided.
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '4.2.3.dev2'
32
- __version_tuple__ = version_tuple = (4, 2, 3, 'dev2')
31
+ __version__ = version = '4.2.3.dev6'
32
+ __version_tuple__ = version_tuple = (4, 2, 3, 'dev6')
33
33
 
34
- __commit_id__ = commit_id = 'g764c5f131'
34
+ __commit_id__ = commit_id = 'g4f5a4251f'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: artesian-sdk
3
- Version: 4.2.3.dev2
3
+ Version: 4.2.3.dev6
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>
@@ -466,23 +466,53 @@ res = mds.searchFacet(page, pageSize, searchText, filters, sorts, doNotLoadAddit
466
466
 
467
467
  Artesian support Query over GME Public Offers which comes in a custom and dedicated format.
468
468
 
469
+ Note (performance):
470
+ GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same data to be fetched multiple times.
471
+ For this reason, the examples below:
472
+ • Use a large page size so that all data for a given (date, market, filters) is typically returned in a single page.
473
+ • Loop over markets explicitly to cover all required markets without redundant fetches.
474
+
469
475
  ### Extract GME Public Offer
470
476
 
471
477
  ```Python
472
478
  from Artesian.GMEPublicOffers import GMEPublicOfferService, Market, Purpose, Status, Zone, Scope, UnitType, GenerationType, BAType
473
479
 
474
- qs = GMEPublicOfferService(cfg)
480
+ /* your Artesian configuration */;
481
+
482
+ var _cfg = new ArtesianServiceConfig(
483
+ new Uri("https://arkive.artesian.cloud/{TENANT_NAME}/"),
484
+ your_API_Key);
485
+
486
+ qs = GMEPublicOfferService(_cfg)
487
+
488
+ # Large page size: goal is to get all data for the given filters in one page
489
+ PAGE_SIZE = 250000
475
490
 
476
- data = qs.createQuery() \
491
+ # List of markets to cover. Extend as needed for your use case.
492
+ markets = [
493
+ Market.MGP,
494
+ # Market.MSD,
495
+ # Market.MIT,
496
+ ]
497
+
498
+ all_data = []
499
+
500
+ for market in markets:
501
+
502
+ data = (
503
+ qs.createQuery() \
477
504
  .forDate("2020-04-01") \
478
505
  .forMarket([Market.MGP]) \
479
506
  .forStatus(Status.ACC) \
480
507
  .forPurpose(Purpose.BID) \
481
508
  .forZone([Zone.NORD]) \
482
- .withPagination(1,100) \
509
+ .withPagination(1,PAGE_SIZE) \
483
510
  .execute()
511
+ )
512
+ print(f"Fetched {len(data)} offers for market {market}")
513
+ all_data.extend(data)
484
514
 
485
- print(data)
515
+ print(f"Total offers fetched: {len(all_data)}")
486
516
  ```
487
517
 
488
518
  To construct a GME Public Offer Extraction the following must be provided.