artesian-sdk 3.1.3.dev5__tar.gz → 3.1.4.dev10__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 (111) hide show
  1. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/.github/workflows/python-tests.yml +8 -0
  2. artesian_sdk-3.1.4.dev10/.vscode/extensions.json +10 -0
  3. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/.vscode/settings.json +1 -3
  4. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/PKG-INFO +142 -21
  5. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/README.md +141 -20
  6. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/pyproject.toml +8 -1
  7. artesian_sdk-3.1.4.dev10/samples/TestWriteDataAndDeleteActual.py +70 -0
  8. artesian_sdk-3.1.4.dev10/samples/TestWriteDataAndDeleteAuction.py +82 -0
  9. artesian_sdk-3.1.4.dev10/samples/TestWriteDataAndDeleteBidAsk.py +82 -0
  10. artesian_sdk-3.1.4.dev10/samples/TestWriteDataAndDeleteMas.py +82 -0
  11. artesian_sdk-3.1.4.dev10/samples/TestWriteDataAndDeleteVersioned.py +77 -0
  12. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Exceptions.py +1 -1
  13. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/GMEPublicOfferQuery.py +8 -11
  14. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/Market.py +1 -0
  15. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/MarketDataService.py +12 -1
  16. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/ArtesianMetadataFacet.py +1 -1
  17. artesian_sdk-3.1.4.dev10/src/Artesian/MarketData/_Dto/DeleteData.py +34 -0
  18. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/__init__.py +2 -0
  19. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/__init__.py +2 -0
  20. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/DefaultPartitionStrategy.py +9 -4
  21. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_Query.py +1 -1
  22. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/QueryParameters.py +1 -1
  23. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/_ClientsExecutor/ArtesianJsonSerializer.py +1 -1
  24. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/_version.py +2 -2
  25. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/artesian_sdk.egg-info/PKG-INFO +142 -21
  26. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/artesian_sdk.egg-info/SOURCES.txt +8 -0
  27. artesian_sdk-3.1.4.dev10/tests/TestMarketDataDeleteData.py +118 -0
  28. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/.flake8 +0 -0
  29. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/.github/dependabot.yml +0 -0
  30. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/.github/workflows/dependency-review.yaml +0 -0
  31. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/.gitignore +0 -0
  32. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/.vscode/launch.json +0 -0
  33. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/CONTRIBUTING.md +0 -0
  34. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/LICENSE +0 -0
  35. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestActual.py +0 -0
  36. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestAuction.py +0 -0
  37. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestBidAsk.py +0 -0
  38. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestGMEOffers.py +0 -0
  39. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestMarketDataService.py +0 -0
  40. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestMas.py +0 -0
  41. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestSearchFacet.py +0 -0
  42. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestVersioned.py +0 -0
  43. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestWriteDataAndQueryActual.py +0 -0
  44. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestWriteDataAndQueryAuction.py +0 -0
  45. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestWriteDataAndQueryBidAsk.py +0 -0
  46. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/samples/TestWriteDataAndQueryMas.py +0 -0
  47. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/setup.cfg +0 -0
  48. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/.gitignore +0 -0
  49. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/ArtesianConfig.py +0 -0
  50. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/ArtesianPolicyConfig.py +0 -0
  51. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/ExtractionRangeConfig.py +0 -0
  52. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/GMEPublicOfferQueryParameters.py +0 -0
  53. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/GMEPublicOfferService.py +0 -0
  54. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/BaType.py +0 -0
  55. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/GenerationType.py +0 -0
  56. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/Purpose.py +0 -0
  57. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/Scope.py +0 -0
  58. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/Status.py +0 -0
  59. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/UnitType.py +0 -0
  60. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/Zone.py +0 -0
  61. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/_Enum/__init__.py +0 -0
  62. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/GMEPublicOffers/__init__.py +0 -0
  63. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Granularity.py +0 -0
  64. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/ArtesianSearchResults.py +0 -0
  65. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/CurveRangeEntity.py +0 -0
  66. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/MarketDataEntityInput.py +0 -0
  67. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/MarketDataEntityOutput.py +0 -0
  68. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/MarketDataIdentifier.py +0 -0
  69. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/PagedResult.py +0 -0
  70. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Dto/UpsertData.py +0 -0
  71. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Enum/AggregationRule.py +0 -0
  72. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Enum/ArtesianMetadataFacetType.py +0 -0
  73. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Enum/MarketDataType.py +0 -0
  74. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/MarketData/_Enum/__init__.py +0 -0
  75. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/ActualQuery.py +0 -0
  76. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/AuctionQuery.py +0 -0
  77. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/BidAskQuery.py +0 -0
  78. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/MasQuery.py +0 -0
  79. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/QueryService.py +0 -0
  80. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/RelativeInterval.py +0 -0
  81. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/VersionedQuery.py +0 -0
  82. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/ActualQueryParameters.py +0 -0
  83. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/AuctionQueryParameters.py +0 -0
  84. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/BidAskQueryParameters.py +0 -0
  85. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/ExtractionRangeConfig.py +0 -0
  86. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/ExtractionRangeType.py +0 -0
  87. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/MasQueryParameters.py +0 -0
  88. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/MostRecentSelectionConfig.py +0 -0
  89. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/VersionSelectionConfig.py +0 -0
  90. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/VersionSelectionType.py +0 -0
  91. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/VersionedQueryParameters.py +0 -0
  92. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/VersionsRangeSelectionConfig.py +0 -0
  93. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/_QueryParameters/__init__.py +0 -0
  94. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/Query/__init__.py +0 -0
  95. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/_ClientsExecutor/Client.py +0 -0
  96. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/_ClientsExecutor/RequestExecutor.py +0 -0
  97. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/_ClientsExecutor/__init__.py +0 -0
  98. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/Artesian/__init__.py +0 -0
  99. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/artesian_sdk.egg-info/dependency_links.txt +0 -0
  100. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/artesian_sdk.egg-info/requires.txt +0 -0
  101. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/src/artesian_sdk.egg-info/top_level.txt +0 -0
  102. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/TestActual.py +0 -0
  103. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/TestBidAsk.py +0 -0
  104. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/TestClientErrorHandling.py +0 -0
  105. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/TestGMEPO.py +0 -0
  106. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/TestMarketDataService.py +0 -0
  107. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/TestMarketDataUpsertData.py +0 -0
  108. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/TestMas.py +0 -0
  109. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/TestVersioned.py +0 -0
  110. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/__init__.py +0 -0
  111. {artesian-sdk-3.1.3.dev5 → artesian_sdk-3.1.4.dev10}/tests/helpers.py +0 -0
@@ -36,6 +36,14 @@ jobs:
36
36
  run: |
37
37
  flake8 .
38
38
 
39
+ - uses: jordemort/action-pyright@v1
40
+ with:
41
+ github_token: ${{ secrets.GITHUB_TOKEN }}
42
+ reporter: github-check
43
+ lib:
44
+ level: warning
45
+ filter_mode: file
46
+
39
47
  - name: Test Pytest
40
48
  run: |
41
49
  pytest --junitxml=junit/test-results-${{ matrix.python-version }}.xml
@@ -0,0 +1,10 @@
1
+ {
2
+ "recommendations": [
3
+ "ms-python.flake8",
4
+ "github.vscode-github-actions",
5
+ "ms-python.vscode-pylance",
6
+ "ms-python.python",
7
+ "ms-python.debugpy",
8
+ "ms-python.black-formatter"
9
+ ]
10
+ }
@@ -2,11 +2,9 @@
2
2
  "python.testing.pytestEnabled": true,
3
3
  "python.testing.unittestEnabled": false,
4
4
  "editor.fontSize": 16,
5
- "python.formatting.provider": "none",
6
- "python.linting.flake8Enabled": true,
7
5
  "editor.formatOnPaste": true,
8
6
  "editor.formatOnSave": true,
9
7
  "[python]": {
10
8
  "editor.defaultFormatter": "ms-python.black-formatter"
11
9
  }
12
- }
10
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: artesian-sdk
3
- Version: 3.1.3.dev5
3
+ Version: 3.1.4.dev10
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>
@@ -419,6 +419,48 @@ Latest Value to propagate the latest value, not older than a certain threshold e
419
419
  .withFillLatestValue("P5D", "True")
420
420
  ```
421
421
 
422
+ ### Query written Versions or Products
423
+
424
+ Using MarketDataService is possible to query all the Versions and all the Products curves which has been written in a MarketData.
425
+
426
+ ```Python
427
+ from Artesian.MarketData import MarketDataService
428
+
429
+ mds = MarketDataService(cfg)
430
+
431
+ ```
432
+
433
+ To list MarketData curves
434
+
435
+ ```Python
436
+ page = 1
437
+ pageSize = 100
438
+ res = mds.readCurveRange(100042422, page, pageSize, versionFrom="2016-12-20" , versionTo="2019-03-12")
439
+ ```
440
+
441
+ ### Search the MarketData collection with faceted results
442
+
443
+ Using MarketDataService is possible to query and search the MarketData collection with faceted results. Supports paging, filtering and free text.
444
+
445
+ ```Python
446
+ from Artesian.MarketData import MarketDataService
447
+
448
+ mds = MarketDataService(cfg)
449
+
450
+ ```
451
+
452
+ To list MarketData curves
453
+
454
+ ```Python
455
+ page = 1
456
+ pageSize = 100
457
+ searchText = "Riconsegnato_"
458
+ filters = {"ProviderName": ["SNAM", "France"]}
459
+ sorts=["MarketDataId asc"]
460
+ doNotLoadAdditionalInfo=True
461
+ res = mds.searchFacet(page, pageSize, searchText, filters, sorts, doNotLoadAdditionalInfo)
462
+ ```
463
+
422
464
  ## GME Public Offer
423
465
 
424
466
  Artesian support Query over GME Public Offers which comes in a custom and dedicated format.
@@ -799,6 +841,11 @@ auctionRows = MarketData.UpsertData(MarketData.MarketDataIdentifier('PROVIDER',
799
841
 
800
842
  ```
801
843
 
844
+
845
+ ## Delete Data in Artesian
846
+
847
+ Using the MarketDataService is possible to delete MarketData and its curves.
848
+
802
849
  ### Delete MarketData in Artesian
803
850
 
804
851
  Using the MarketDataService is possible to delete MarketData and its curves.
@@ -815,46 +862,120 @@ mkservice.deleteMarketData(100042422)
815
862
 
816
863
  ```
817
864
 
818
- ### Query written Versions or Products
865
+ Depending on the Type of the MarketData, the DeletData should be composed as per example below.
819
866
 
820
- Using MarketDataService is possible to query all the Versions and all the Products curves which has been written in a MarketData.
867
+ ### Delete Data in an Actual Time Series
821
868
 
822
869
  ```Python
823
- from Artesian.MarketData import MarketDataService
870
+ from Artesian import ArtesianConfig, Granularity, MarketData
871
+ from Artesian.MarketData import AggregationRule
872
+ from datetime import datetime
873
+ from dateutil import tz
824
874
 
825
- mds = MarketDataService(cfg)
875
+ cfg = ArtesianConfg()
826
876
 
877
+ mkservice = MarketData.MarketDataService(cfg)
878
+
879
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
880
+ deleteData = MarketData.DeleteData(
881
+ ID=mkdid,
882
+ timezone='CET',
883
+ rangeStart=datetime(2020, 1, 1, 6),
884
+ rangeEnd=datetime(2020, 1, 1, 18),
885
+ )
886
+
887
+ mkdservice.deleteData(deleteData)
827
888
  ```
828
889
 
829
- To list MarketData curves
890
+ ### Delete Data in an Versioned Time Series
830
891
 
831
892
  ```Python
832
- page = 1
833
- pageSize = 100
834
- res = mds.readCurveRange(100042422, page, pageSize, versionFrom="2016-12-20" , versionTo="2019-03-12")
893
+ from Artesian import ArtesianConfig, Granularity, MarketData
894
+ from Artesian.MarketData import AggregationRule
895
+ from datetime import datetime
896
+ from dateutil import tz
897
+
898
+ cfg = ArtesianConfg()
899
+
900
+ mkservice = MarketData.MarketDataService(cfg)
901
+
902
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
903
+ deleteData = MarketData.DeleteData(
904
+ ID=mkdid,
905
+ timezone='CET',
906
+ rangeStart=datetime(2020, 1, 1, 0),
907
+ rangeEnd=datetime(2020, 1, 7, 0),
908
+ version=datetime(2020, 1, 1, 0)
909
+ )
910
+
911
+ mkdservice.deleteData(deleteData)
835
912
  ```
836
913
 
837
- ### Search the MarketData collection with faceted results
914
+ ### Delte Data in a Market Assessment Time Series
838
915
 
839
- Using MarketDataService is possible to query and search the MarketData collection with faceted results. Supports paging, filtering and free text.
916
+ ```Python
917
+ from Artesian import ArtesianConfig, Granularity, MarketData
918
+ from datetime import datetime
919
+ from dateutil import tz
920
+
921
+ cfg = ArtesianConfg()
922
+ mkservice = MarketData.MarketDataService(cfg)
923
+
924
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
925
+ deleteData = MarketData.DeleteData(
926
+ ID= mkdid,
927
+ timezone='CET',
928
+ rangeStart=datetime(2020, 1, 1, 0),
929
+ rangeEnd=datetime(2020, 1, 3, 0),
930
+ product=["Feb-20"]
931
+ )
932
+
933
+ mkdservice.deleteData(deleteData)
934
+ ```
935
+
936
+ ### Delte Data in a Bid Ask Time Series
840
937
 
841
938
  ```Python
842
- from Artesian.MarketData import MarketDataService
939
+ from Artesian import ArtesianConfig, Granularity, MarketData
940
+ from datetime import datetime
941
+ from dateutil import tz
843
942
 
844
- mds = MarketDataService(cfg)
943
+ cfg = ArtesianConfg()
944
+ mkservice = MarketData.MarketDataService(cfg)
945
+
946
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
947
+ deleteData = MarketData.DeleteData(
948
+ ID= mkdid,
949
+ timezone='CET',
950
+ rangeStart=datetime(2020, 1, 1, 0),
951
+ rangeEnd=datetime(2020, 1, 3, 0),
952
+ product=["Feb-20"]
953
+ )
845
954
 
955
+ mkdservice.deleteData(deleteData)
846
956
  ```
847
957
 
848
- To list MarketData curves
958
+ ### Delete Data in an Auction Time Series
849
959
 
850
960
  ```Python
851
- page = 1
852
- pageSize = 100
853
- searchText = "Riconsegnato_"
854
- filters = {"ProviderName": ["SNAM", "France"]}
855
- sorts=["MarketDataId asc"]
856
- doNotLoadAdditionalInfo=True
857
- res = mds.searchFacet(page, pageSize, searchText, filters, sorts, doNotLoadAdditionalInfo)
961
+ from Artesian import ArtesianConfig, Granularity, MarketData
962
+ from Artesian.MarketData import AggregationRule
963
+ from datetime import datetime
964
+ from dateutil import tz
965
+
966
+ cfg = ArtesianConfg()
967
+
968
+ mkservice = MarketData.MarketDataService(cfg)
969
+
970
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
971
+ deleteData = MarketData.DeleteData(
972
+ ID=mkdid,
973
+ timezone='CET',
974
+ rangeStart=datetime(2020, 1, 1, 6),
975
+ rangeEnd=datetime(2020, 1, 1, 18),
976
+ )
977
+
978
+ mkdservice.deleteData(deleteData)
858
979
  ```
859
980
 
860
981
  ## Jupyter Support
@@ -365,6 +365,48 @@ Latest Value to propagate the latest value, not older than a certain threshold e
365
365
  .withFillLatestValue("P5D", "True")
366
366
  ```
367
367
 
368
+ ### Query written Versions or Products
369
+
370
+ Using MarketDataService is possible to query all the Versions and all the Products curves which has been written in a MarketData.
371
+
372
+ ```Python
373
+ from Artesian.MarketData import MarketDataService
374
+
375
+ mds = MarketDataService(cfg)
376
+
377
+ ```
378
+
379
+ To list MarketData curves
380
+
381
+ ```Python
382
+ page = 1
383
+ pageSize = 100
384
+ res = mds.readCurveRange(100042422, page, pageSize, versionFrom="2016-12-20" , versionTo="2019-03-12")
385
+ ```
386
+
387
+ ### Search the MarketData collection with faceted results
388
+
389
+ Using MarketDataService is possible to query and search the MarketData collection with faceted results. Supports paging, filtering and free text.
390
+
391
+ ```Python
392
+ from Artesian.MarketData import MarketDataService
393
+
394
+ mds = MarketDataService(cfg)
395
+
396
+ ```
397
+
398
+ To list MarketData curves
399
+
400
+ ```Python
401
+ page = 1
402
+ pageSize = 100
403
+ searchText = "Riconsegnato_"
404
+ filters = {"ProviderName": ["SNAM", "France"]}
405
+ sorts=["MarketDataId asc"]
406
+ doNotLoadAdditionalInfo=True
407
+ res = mds.searchFacet(page, pageSize, searchText, filters, sorts, doNotLoadAdditionalInfo)
408
+ ```
409
+
368
410
  ## GME Public Offer
369
411
 
370
412
  Artesian support Query over GME Public Offers which comes in a custom and dedicated format.
@@ -745,6 +787,11 @@ auctionRows = MarketData.UpsertData(MarketData.MarketDataIdentifier('PROVIDER',
745
787
 
746
788
  ```
747
789
 
790
+
791
+ ## Delete Data in Artesian
792
+
793
+ Using the MarketDataService is possible to delete MarketData and its curves.
794
+
748
795
  ### Delete MarketData in Artesian
749
796
 
750
797
  Using the MarketDataService is possible to delete MarketData and its curves.
@@ -761,46 +808,120 @@ mkservice.deleteMarketData(100042422)
761
808
 
762
809
  ```
763
810
 
764
- ### Query written Versions or Products
811
+ Depending on the Type of the MarketData, the DeletData should be composed as per example below.
765
812
 
766
- Using MarketDataService is possible to query all the Versions and all the Products curves which has been written in a MarketData.
813
+ ### Delete Data in an Actual Time Series
767
814
 
768
815
  ```Python
769
- from Artesian.MarketData import MarketDataService
816
+ from Artesian import ArtesianConfig, Granularity, MarketData
817
+ from Artesian.MarketData import AggregationRule
818
+ from datetime import datetime
819
+ from dateutil import tz
770
820
 
771
- mds = MarketDataService(cfg)
821
+ cfg = ArtesianConfg()
772
822
 
823
+ mkservice = MarketData.MarketDataService(cfg)
824
+
825
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
826
+ deleteData = MarketData.DeleteData(
827
+ ID=mkdid,
828
+ timezone='CET',
829
+ rangeStart=datetime(2020, 1, 1, 6),
830
+ rangeEnd=datetime(2020, 1, 1, 18),
831
+ )
832
+
833
+ mkdservice.deleteData(deleteData)
773
834
  ```
774
835
 
775
- To list MarketData curves
836
+ ### Delete Data in an Versioned Time Series
776
837
 
777
838
  ```Python
778
- page = 1
779
- pageSize = 100
780
- res = mds.readCurveRange(100042422, page, pageSize, versionFrom="2016-12-20" , versionTo="2019-03-12")
839
+ from Artesian import ArtesianConfig, Granularity, MarketData
840
+ from Artesian.MarketData import AggregationRule
841
+ from datetime import datetime
842
+ from dateutil import tz
843
+
844
+ cfg = ArtesianConfg()
845
+
846
+ mkservice = MarketData.MarketDataService(cfg)
847
+
848
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
849
+ deleteData = MarketData.DeleteData(
850
+ ID=mkdid,
851
+ timezone='CET',
852
+ rangeStart=datetime(2020, 1, 1, 0),
853
+ rangeEnd=datetime(2020, 1, 7, 0),
854
+ version=datetime(2020, 1, 1, 0)
855
+ )
856
+
857
+ mkdservice.deleteData(deleteData)
781
858
  ```
782
859
 
783
- ### Search the MarketData collection with faceted results
860
+ ### Delte Data in a Market Assessment Time Series
784
861
 
785
- Using MarketDataService is possible to query and search the MarketData collection with faceted results. Supports paging, filtering and free text.
862
+ ```Python
863
+ from Artesian import ArtesianConfig, Granularity, MarketData
864
+ from datetime import datetime
865
+ from dateutil import tz
866
+
867
+ cfg = ArtesianConfg()
868
+ mkservice = MarketData.MarketDataService(cfg)
869
+
870
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
871
+ deleteData = MarketData.DeleteData(
872
+ ID= mkdid,
873
+ timezone='CET',
874
+ rangeStart=datetime(2020, 1, 1, 0),
875
+ rangeEnd=datetime(2020, 1, 3, 0),
876
+ product=["Feb-20"]
877
+ )
878
+
879
+ mkdservice.deleteData(deleteData)
880
+ ```
881
+
882
+ ### Delte Data in a Bid Ask Time Series
786
883
 
787
884
  ```Python
788
- from Artesian.MarketData import MarketDataService
885
+ from Artesian import ArtesianConfig, Granularity, MarketData
886
+ from datetime import datetime
887
+ from dateutil import tz
789
888
 
790
- mds = MarketDataService(cfg)
889
+ cfg = ArtesianConfg()
890
+ mkservice = MarketData.MarketDataService(cfg)
891
+
892
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
893
+ deleteData = MarketData.DeleteData(
894
+ ID= mkdid,
895
+ timezone='CET',
896
+ rangeStart=datetime(2020, 1, 1, 0),
897
+ rangeEnd=datetime(2020, 1, 3, 0),
898
+ product=["Feb-20"]
899
+ )
791
900
 
901
+ mkdservice.deleteData(deleteData)
792
902
  ```
793
903
 
794
- To list MarketData curves
904
+ ### Delete Data in an Auction Time Series
795
905
 
796
906
  ```Python
797
- page = 1
798
- pageSize = 100
799
- searchText = "Riconsegnato_"
800
- filters = {"ProviderName": ["SNAM", "France"]}
801
- sorts=["MarketDataId asc"]
802
- doNotLoadAdditionalInfo=True
803
- res = mds.searchFacet(page, pageSize, searchText, filters, sorts, doNotLoadAdditionalInfo)
907
+ from Artesian import ArtesianConfig, Granularity, MarketData
908
+ from Artesian.MarketData import AggregationRule
909
+ from datetime import datetime
910
+ from dateutil import tz
911
+
912
+ cfg = ArtesianConfg()
913
+
914
+ mkservice = MarketData.MarketDataService(cfg)
915
+
916
+ mkdid = MarketData.MarketDataIdentifier('PROVIDER', 'MARKETDATANAME')
917
+ deleteData = MarketData.DeleteData(
918
+ ID=mkdid,
919
+ timezone='CET',
920
+ rangeStart=datetime(2020, 1, 1, 6),
921
+ rangeEnd=datetime(2020, 1, 1, 18),
922
+ )
923
+
924
+ mkdservice.deleteData(deleteData)
804
925
  ```
805
926
 
806
927
  ## Jupyter Support
@@ -155,4 +155,11 @@ python_files = "Test*.py"
155
155
  testpaths = [
156
156
  "tests"
157
157
  ]
158
- addopts = "--doctest-modules --junitxml=junit/test-results.xml --cov=src --cov-report=xml --cov-report=html"
158
+ addopts = "--doctest-modules --junitxml=junit/test-results.xml --cov=src --cov-report=xml --cov-report=html"
159
+
160
+ [tool.pyright]
161
+ include = ["src"]
162
+ exclude = [
163
+ "**/node_modules",
164
+ "**/__pycache__"
165
+ ]
@@ -0,0 +1,70 @@
1
+ from datetime import datetime
2
+ import Artesian
3
+ from Artesian import Query
4
+ from Artesian.Granularity import Granularity
5
+ from Artesian.MarketData._Enum.MarketDataType import MarketDataType
6
+
7
+ cfg = Artesian.ArtesianConfig("https://arkive.artesian.cloud/tenantName/", "APIKey")
8
+ mkdservice = Artesian.MarketData.MarketDataService(cfg)
9
+
10
+ actual = Artesian.MarketData.MarketDataEntityInput(
11
+ "PythonSDK",
12
+ "TestActualWriteAndDelete",
13
+ Granularity.Hour,
14
+ MarketDataType.ActualTimeSerie,
15
+ "CET",
16
+ tags={"TestSDKPython": ["PythonValue2"]},
17
+ )
18
+
19
+ registered = mkdservice.readMarketDataRegistryByName(
20
+ actual.providerName, actual.marketDataName
21
+ )
22
+ if registered is None:
23
+ registered = mkdservice.registerMarketData(actual)
24
+
25
+ data = Artesian.MarketData.UpsertData(
26
+ Artesian.MarketData.MarketDataIdentifier(
27
+ actual.providerName, actual.marketDataName
28
+ ),
29
+ "UTC",
30
+ rows={datetime(2020, 1, 1, h): 42.0 + h / 24.0 for h in range(0, 23)},
31
+ )
32
+
33
+ mkdservice.upsertData(data)
34
+
35
+ query = Query.QueryService(cfg)
36
+
37
+ res = (
38
+ query.createActual()
39
+ .forMarketData([registered.marketDataId])
40
+ .inAbsoluteDateRange("2020-01-01", "2020-01-02")
41
+ .inTimeZone("CET")
42
+ .inGranularity(Granularity.Hour)
43
+ .execute()
44
+ )
45
+
46
+ print(res)
47
+
48
+ #Delete data between 2020-01-01 06:00 and 2020-01-01 18:00
49
+ deleteData = Artesian.MarketData.DeleteData(
50
+ ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
51
+ timezone="CET",
52
+ rangeStart=datetime(2020, 1, 1, 6),
53
+ rangeEnd=datetime(2020, 1, 1, 18),
54
+ )
55
+
56
+ mkdservice.deleteData(deleteData)
57
+
58
+ res = (
59
+ query.createActual()
60
+ .forMarketData([registered.marketDataId])
61
+ .inAbsoluteDateRange("2020-01-01", "2020-01-02")
62
+ .inTimeZone("CET")
63
+ .inGranularity(Granularity.Hour)
64
+ .execute()
65
+ )
66
+
67
+ print(res)
68
+
69
+ #Delete the curve completely
70
+ mkdservice.deleteMarketData(registered.marketDataId)
@@ -0,0 +1,82 @@
1
+ from datetime import datetime
2
+ import Artesian
3
+ from Artesian import Query
4
+ from dateutil import tz
5
+ from Artesian import MarketData
6
+ from Artesian.Granularity import Granularity
7
+
8
+ cfg = Artesian.ArtesianConfig("https://arkive.artesian.cloud/tenantName/", "APIKey")
9
+ mkdservice = Artesian.MarketData.MarketDataService(cfg)
10
+
11
+ auction = Artesian.MarketData.MarketDataEntityInput(
12
+ "PythonSDK",
13
+ "TestAuctionWriteAndDelete",
14
+ Granularity.Hour,
15
+ MarketData.MarketDataType.Auction,
16
+ "CET",
17
+ tags={"TestSDKPython": ["PythonValue2"]},
18
+ )
19
+
20
+ registered = mkdservice.readMarketDataRegistryByName(
21
+ auction.providerName, auction.marketDataName
22
+ )
23
+ if registered is None:
24
+ registered = mkdservice.registerMarketData(auction)
25
+
26
+ auctionRowData={datetime(2020, 1, 1, h): MarketData.AuctionBids(
27
+ datetime(2020, 1, 1),
28
+ bid=[
29
+ MarketData.AuctionBidValue(11.0, 12.0),
30
+ MarketData.AuctionBidValue(13.0, 14.0),
31
+ ],
32
+ offer=[
33
+ MarketData.AuctionBidValue(21.0, 22.0),
34
+ MarketData.AuctionBidValue(23.0, 24.0),
35
+ ],
36
+ ) for h in range(0, 23)}
37
+
38
+ auctionRows = MarketData.UpsertData(
39
+ Artesian.MarketData.MarketDataIdentifier(
40
+ auction.providerName, auction.marketDataName
41
+ ),
42
+ "UTC",
43
+ auctionRows=auctionRowData,
44
+ downloadedAt=datetime(2020, 1, 3).replace(tzinfo=tz.UTC),
45
+ )
46
+
47
+ mkdservice.upsertData(auctionRows)
48
+
49
+ query = Query.QueryService(cfg)
50
+
51
+ res = (
52
+ query.createAuction()
53
+ .forMarketData([registered.marketDataId])
54
+ .inAbsoluteDateRange("2020-01-01", "2020-01-02")
55
+ .inTimeZone("CET")
56
+ .execute()
57
+ )
58
+
59
+ print(res)
60
+
61
+ #Delete data between 2020-01-01 06:00 and 2020-01-01 18:00
62
+ deleteData = Artesian.MarketData.DeleteData(
63
+ ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
64
+ timezone="CET",
65
+ rangeStart=datetime(2020, 1, 1, 6),
66
+ rangeEnd=datetime(2020, 1, 1, 18),
67
+ )
68
+
69
+ mkdservice.deleteData(deleteData)
70
+
71
+ res = (
72
+ query.createAuction()
73
+ .forMarketData([registered.marketDataId])
74
+ .inAbsoluteDateRange("2020-01-01", "2020-01-02")
75
+ .inTimeZone("CET")
76
+ .execute()
77
+ )
78
+
79
+ print(res)
80
+
81
+ #Delete the curve completely
82
+ mkdservice.deleteMarketData(registered.marketDataId)