artesian-sdk 4.0.0__tar.gz → 4.0.1.dev16__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 (112) hide show
  1. artesian_sdk-4.0.1.dev16/.github/workflows/python-tests.yml +89 -0
  2. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/PKG-INFO +2 -3
  3. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/README.md +1 -2
  4. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndDeleteActual.py +23 -2
  5. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndDeleteAuction.py +21 -2
  6. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndDeleteBidAsk.py +23 -2
  7. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndDeleteMas.py +23 -2
  8. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndDeleteVersioned.py +24 -2
  9. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/DeleteData.py +4 -3
  10. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/_version.py +2 -2
  11. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/artesian_sdk.egg-info/PKG-INFO +2 -3
  12. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestMarketDataDeleteData.py +91 -3
  13. artesian_sdk-4.0.0/.github/workflows/python-tests.yml +0 -87
  14. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/.flake8 +0 -0
  15. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/.github/dependabot.yml +0 -0
  16. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/.github/workflows/dependency-review.yaml +0 -0
  17. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/.gitignore +0 -0
  18. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/.vscode/extensions.json +0 -0
  19. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/.vscode/launch.json +0 -0
  20. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/.vscode/settings.json +0 -0
  21. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/CONTRIBUTING.md +0 -0
  22. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/LICENSE +0 -0
  23. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/pyproject.toml +0 -0
  24. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestActual.py +0 -0
  25. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestAuction.py +0 -0
  26. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestBidAsk.py +0 -0
  27. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestGMEOffers.py +0 -0
  28. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestMarketDataService.py +0 -0
  29. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestMas.py +0 -0
  30. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestSearchFacet.py +0 -0
  31. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestVersioned.py +0 -0
  32. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndQueryActual.py +0 -0
  33. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndQueryAuction.py +0 -0
  34. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndQueryBidAsk.py +0 -0
  35. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/samples/TestWriteDataAndQueryMas.py +0 -0
  36. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/setup.cfg +0 -0
  37. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/.gitignore +0 -0
  38. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/ArtesianConfig.py +0 -0
  39. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/ArtesianPolicyConfig.py +0 -0
  40. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Exceptions.py +0 -0
  41. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/ExtractionRangeConfig.py +0 -0
  42. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/GMEPublicOfferQuery.py +0 -0
  43. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/GMEPublicOfferQueryParameters.py +0 -0
  44. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/GMEPublicOfferService.py +0 -0
  45. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/BaType.py +0 -0
  46. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/GenerationType.py +0 -0
  47. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/Market.py +0 -0
  48. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/Purpose.py +0 -0
  49. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/Scope.py +0 -0
  50. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/Status.py +0 -0
  51. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/UnitType.py +0 -0
  52. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/Zone.py +0 -0
  53. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/_Enum/__init__.py +0 -0
  54. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/GMEPublicOffers/__init__.py +0 -0
  55. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Granularity.py +0 -0
  56. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/MarketDataService.py +0 -0
  57. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/ArtesianMetadataFacet.py +0 -0
  58. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/ArtesianSearchResults.py +0 -0
  59. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/CurveRangeEntity.py +0 -0
  60. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/MarketDataEntityInput.py +0 -0
  61. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/MarketDataEntityOutput.py +0 -0
  62. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/MarketDataIdentifier.py +0 -0
  63. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/PagedResult.py +0 -0
  64. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/UpsertData.py +0 -0
  65. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Dto/__init__.py +0 -0
  66. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Enum/AggregationRule.py +0 -0
  67. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Enum/ArtesianMetadataFacetType.py +0 -0
  68. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Enum/MarketDataType.py +0 -0
  69. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/_Enum/__init__.py +0 -0
  70. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/MarketData/__init__.py +0 -0
  71. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/ActualQuery.py +0 -0
  72. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/AuctionQuery.py +0 -0
  73. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/BidAskQuery.py +0 -0
  74. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/DefaultPartitionStrategy.py +0 -0
  75. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/MasQuery.py +0 -0
  76. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/QueryService.py +0 -0
  77. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/RelativeInterval.py +0 -0
  78. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/VersionedQuery.py +0 -0
  79. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_Query.py +0 -0
  80. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/ActualQueryParameters.py +0 -0
  81. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/AuctionQueryParameters.py +0 -0
  82. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/BidAskQueryParameters.py +0 -0
  83. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/ExtractionRangeConfig.py +0 -0
  84. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/ExtractionRangeType.py +0 -0
  85. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/MasQueryParameters.py +0 -0
  86. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/MostRecentSelectionConfig.py +0 -0
  87. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/QueryParameters.py +0 -0
  88. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/VersionSelectionConfig.py +0 -0
  89. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/VersionSelectionType.py +0 -0
  90. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/VersionedQueryParameters.py +0 -0
  91. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/VersionsRangeSelectionConfig.py +0 -0
  92. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/_QueryParameters/__init__.py +0 -0
  93. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/Query/__init__.py +0 -0
  94. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/_ClientsExecutor/ArtesianJsonSerializer.py +0 -0
  95. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/_ClientsExecutor/Client.py +0 -0
  96. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/_ClientsExecutor/RequestExecutor.py +0 -0
  97. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/_ClientsExecutor/__init__.py +0 -0
  98. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/Artesian/__init__.py +0 -0
  99. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/artesian_sdk.egg-info/SOURCES.txt +0 -0
  100. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/artesian_sdk.egg-info/dependency_links.txt +0 -0
  101. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/artesian_sdk.egg-info/requires.txt +0 -0
  102. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/src/artesian_sdk.egg-info/top_level.txt +0 -0
  103. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestActual.py +0 -0
  104. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestBidAsk.py +0 -0
  105. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestClientErrorHandling.py +0 -0
  106. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestGMEPO.py +0 -0
  107. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestMarketDataService.py +0 -0
  108. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestMarketDataUpsertData.py +0 -0
  109. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestMas.py +0 -0
  110. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/TestVersioned.py +0 -0
  111. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/__init__.py +0 -0
  112. {artesian_sdk-4.0.0 → artesian_sdk-4.0.1.dev16}/tests/helpers.py +0 -0
@@ -0,0 +1,89 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a single version of Python
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
+
4
+ name: Artesian SDK Python
5
+
6
+ on:
7
+ push:
8
+ branches: [master]
9
+ tags:
10
+ - 'v[0-9]+\.[0-9]+\.[0-9]+'
11
+ pull_request:
12
+ branches: [master]
13
+
14
+ jobs:
15
+ build:
16
+ runs-on: ${{ matrix.os }}
17
+
18
+ strategy:
19
+ matrix:
20
+ python-version: ["3.8", "3.9", "3.10", "3.11"]
21
+ os: ["ubuntu-latest", "windows-latest", "macos-latest"]
22
+
23
+ steps:
24
+ - uses: actions/checkout@v3
25
+ - name: Set up Python ${{ matrix.python-version }}
26
+ uses: actions/setup-python@v2
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+ - name: Install dependencies
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install -e ".[dev]"
33
+
34
+ - name: Run flake8
35
+ run: |
36
+ flake8 .
37
+
38
+ # Execute jordemort/action-pyright only into Ubuntu and macOS.
39
+ # windows started to fail for reviewdog not found. issue opened
40
+ # https://github.com/jordemort/action-pyright/issues/51
41
+ - name: Run Pyright
42
+ if: matrix.os != 'windows-latest'
43
+ uses: jordemort/action-pyright@v1
44
+ with:
45
+ github_token: ${{ secrets.GITHUB_TOKEN }}
46
+ reporter: github-check
47
+ lib:
48
+ level: warning
49
+ filter_mode: file
50
+
51
+ - name: Test Pytest
52
+ run: |
53
+ pytest --junitxml=junit/test-results-${{ matrix.python-version }}.xml
54
+
55
+ - name: Upload pytest test results
56
+ uses: actions/upload-artifact@v3
57
+ with:
58
+ name: pytest-results-${{ matrix.python-version }}
59
+ path: junit/test-results-${{ matrix.python-version }}.xml
60
+ # Use always() to always run this step to publish test results when there are test failures
61
+ if: ${{ always() }}
62
+
63
+ publish:
64
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v'))
65
+ runs-on: ubuntu-latest
66
+ needs: build
67
+ env:
68
+ python-version: "3.11"
69
+
70
+ steps:
71
+ - uses: actions/checkout@v3
72
+ with:
73
+ fetch-depth: 0
74
+ - name: Set up Python ${{ env.python-version }}
75
+ uses: actions/setup-python@v2
76
+ with:
77
+ python-version: ${{ env.python-version }}
78
+ - name: Install dependencies
79
+ run: |
80
+ python -m pip install --upgrade pip
81
+ python -m pip install build
82
+ - name: Build package
83
+ run: |
84
+ python -m build
85
+ - name: Publish package
86
+ uses: pypa/gh-action-pypi-publish@release/v1
87
+ with:
88
+ user: __token__
89
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: artesian-sdk
3
- Version: 4.0.0
3
+ Version: 4.0.1.dev16
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>
@@ -841,7 +841,6 @@ auctionRows = MarketData.UpsertData(MarketData.MarketDataIdentifier('PROVIDER',
841
841
 
842
842
  ```
843
843
 
844
-
845
844
  ## Delete Data in Artesian
846
845
 
847
846
  Using the MarketDataService is possible to delete MarketData and its curves.
@@ -862,7 +861,7 @@ mkservice.deleteMarketData(100042422)
862
861
 
863
862
  ```
864
863
 
865
- Depending on the Type of the MarketData, the DeletData should be composed as per example below.
864
+ Depending on the Type of the MarketData, the DeletData should be composed as per example below. The timezone is optional: for DateSeries if provided must be equal to MarketData OriginalTimezone Default:MarketData OriginalTimezone. For TimeSeries Default:CET
866
865
 
867
866
  ### Delete Data in an Actual Time Series
868
867
 
@@ -787,7 +787,6 @@ auctionRows = MarketData.UpsertData(MarketData.MarketDataIdentifier('PROVIDER',
787
787
 
788
788
  ```
789
789
 
790
-
791
790
  ## Delete Data in Artesian
792
791
 
793
792
  Using the MarketDataService is possible to delete MarketData and its curves.
@@ -808,7 +807,7 @@ mkservice.deleteMarketData(100042422)
808
807
 
809
808
  ```
810
809
 
811
- Depending on the Type of the MarketData, the DeletData should be composed as per example below.
810
+ Depending on the Type of the MarketData, the DeletData should be composed as per example below. The timezone is optional: for DateSeries if provided must be equal to MarketData OriginalTimezone Default:MarketData OriginalTimezone. For TimeSeries Default:CET
812
811
 
813
812
  ### Delete Data in an Actual Time Series
814
813
 
@@ -45,7 +45,7 @@ res = (
45
45
 
46
46
  print(res)
47
47
 
48
- #Delete data between 2020-01-01 06:00 and 2020-01-01 18:00
48
+ # Delete data between 2020-01-01 06:00 and 2020-01-01 18:00
49
49
  deleteData = Artesian.MarketData.DeleteData(
50
50
  ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
51
51
  timezone="CET",
@@ -66,5 +66,26 @@ res = (
66
66
 
67
67
  print(res)
68
68
 
69
- #Delete the curve completely
69
+
70
+ # Delete data between 2020-01-01 06:00 and 2020-01-01 18:00 without Timezone
71
+ deleteData = Artesian.MarketData.DeleteData(
72
+ ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
73
+ rangeStart=datetime(2020, 1, 1, 6),
74
+ rangeEnd=datetime(2020, 1, 1, 18),
75
+ )
76
+
77
+ mkdservice.deleteData(deleteData)
78
+
79
+ res = (
80
+ query.createActual()
81
+ .forMarketData([registered.marketDataId])
82
+ .inAbsoluteDateRange("2020-01-01", "2020-01-02")
83
+ .inTimeZone("CET")
84
+ .inGranularity(Granularity.Hour)
85
+ .execute()
86
+ )
87
+
88
+ print(res)
89
+
90
+ # Delete the curve completely
70
91
  mkdservice.deleteMarketData(registered.marketDataId)
@@ -58,7 +58,7 @@ res = (
58
58
 
59
59
  print(res)
60
60
 
61
- #Delete data between 2020-01-01 06:00 and 2020-01-01 18:00
61
+ # Delete data between 2020-01-01 06:00 and 2020-01-01 18:00
62
62
  deleteData = Artesian.MarketData.DeleteData(
63
63
  ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
64
64
  timezone="CET",
@@ -78,5 +78,24 @@ res = (
78
78
 
79
79
  print(res)
80
80
 
81
- #Delete the curve completely
81
+ # Delete data between 2020-01-01 06:00 and 2020-01-01 18:00 without Timezone
82
+ deleteData = Artesian.MarketData.DeleteData(
83
+ ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
84
+ rangeStart=datetime(2020, 1, 1, 6),
85
+ rangeEnd=datetime(2020, 1, 1, 18),
86
+ )
87
+
88
+ mkdservice.deleteData(deleteData)
89
+
90
+ res = (
91
+ query.createAuction()
92
+ .forMarketData([registered.marketDataId])
93
+ .inAbsoluteDateRange("2020-01-01", "2020-01-02")
94
+ .inTimeZone("CET")
95
+ .execute()
96
+ )
97
+
98
+ print(res)
99
+
100
+ # Delete the curve completely
82
101
  mkdservice.deleteMarketData(registered.marketDataId)
@@ -56,7 +56,7 @@ res = (
56
56
 
57
57
  print(res)
58
58
 
59
- #Delete data between 2020-01-01 6am and 2020-01-01 6pm for product Feb-18
59
+ # Delete data between 2020-01-01 6am and 2020-01-01 6pm for product Feb-18
60
60
  deleteData = Artesian.MarketData.DeleteData(
61
61
  ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
62
62
  timezone="CET",
@@ -78,5 +78,26 @@ res = (
78
78
 
79
79
  print(res)
80
80
 
81
- #Delete the curve completely
81
+ # Delete data between 2020-01-01 6am and 2020-01-01 6pm for product Feb-18 without Timezone
82
+ deleteData = Artesian.MarketData.DeleteData(
83
+ ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
84
+ rangeStart=datetime(2020, 1, 1, 6),
85
+ rangeEnd=datetime(2020, 1, 1, 18),
86
+ product=["Feb-20"]
87
+ )
88
+
89
+ mkdservice.deleteData(deleteData)
90
+
91
+ res = (
92
+ query.createBidAsk()
93
+ .forMarketData([registered.marketDataId])
94
+ .inAbsoluteDateRange("2020-01-01", "2020-01-31")
95
+ .forProducts(["Feb-20", "Mar-20"])
96
+ .inTimeZone("CET")
97
+ .execute()
98
+ )
99
+
100
+ print(res)
101
+
102
+ # Delete the curve completely
82
103
  mkdservice.deleteMarketData(registered.marketDataId)
@@ -56,7 +56,7 @@ res = (
56
56
 
57
57
  print(res)
58
58
 
59
- #Delete data with product Feb-20 between 2020-01-01 and 2020-01-03
59
+ # Delete data with product Feb-20 between 2020-01-01 and 2020-01-03
60
60
  deleteData = Artesian.MarketData.DeleteData(
61
61
  ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
62
62
  timezone="CET",
@@ -78,5 +78,26 @@ res = (
78
78
 
79
79
  print(res)
80
80
 
81
- #Delete the curve completely
81
+ # Delete data with product Feb-20 between 2020-01-01 and 2020-01-03 without Timezone
82
+ deleteData = Artesian.MarketData.DeleteData(
83
+ ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
84
+ rangeStart=datetime(2020, 1, 1, 0),
85
+ rangeEnd=datetime(2020, 1, 3, 0),
86
+ product=["Feb-20"]
87
+ )
88
+
89
+ mkdservice.deleteData(deleteData)
90
+
91
+ res = (
92
+ query.createMarketAssessment()
93
+ .forMarketData([registered.marketDataId])
94
+ .inAbsoluteDateRange("2020-01-01", "2020-01-02")
95
+ .forProducts(["Feb-20", "Mar-20"])
96
+ .inTimeZone("CET")
97
+ .execute()
98
+ )
99
+
100
+ print(res)
101
+
102
+ # Delete the curve completely
82
103
  mkdservice.deleteMarketData(registered.marketDataId)
@@ -50,7 +50,7 @@ res = (
50
50
 
51
51
  print(res)
52
52
 
53
- #Delete data between 2020-01-01 06:00 and 2020-01-01 18:00
53
+ # Delete data between 2020-01-01 06:00 and 2020-01-01 18:00
54
54
  deleteData = Artesian.MarketData.DeleteData(
55
55
  ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
56
56
  timezone="CET",
@@ -73,5 +73,27 @@ res = (
73
73
 
74
74
  print(res)
75
75
 
76
- #Delete the curve completely
76
+ # Delete data between 2020-01-01 06:00 and 2020-01-01 18:00 without Timezone
77
+ deleteData = Artesian.MarketData.DeleteData(
78
+ ID=Artesian.MarketData.MarketDataIdentifier(registered.providerName, registered.marketDataName),
79
+ rangeStart=datetime(2020, 1, 1, 6),
80
+ rangeEnd=datetime(2020, 1, 1, 18),
81
+ version=testVersion
82
+ )
83
+
84
+ mkdservice.deleteData(deleteData)
85
+
86
+ res = (
87
+ query.createVersioned()
88
+ .forMarketData([registered.marketDataId])
89
+ .inAbsoluteDateRange("2020-01-01", "2020-01-02")
90
+ .inTimeZone("CET")
91
+ .inGranularity(Granularity.Hour)
92
+ .forVersion("2020-01-01T12:00:00")
93
+ .execute()
94
+ )
95
+
96
+ print(res)
97
+
98
+ # Delete the curve completely
77
99
  mkdservice.deleteMarketData(registered.marketDataId)
@@ -11,10 +11,11 @@ class DeleteData:
11
11
 
12
12
  Attributes:
13
13
  ID: the MarketDataIdentifier
14
- timezone: the Timezone of the rows. Must be the OriginalTimezone
15
- when writing Dates or must be ""UTC"" when writing Times
16
14
  rangeStart: LocalDateTime start of the range to be deleted
17
15
  rangeEnd: LocalDateTime end of the range to be deleted
16
+ timezone: For DateSeries if provided must be equal to MarketData
17
+ OriginalTimezone Default:MarketData OriginalTimezone.
18
+ For TimeSeries Default:CET
18
19
  product: The list of Product. Only *,
19
20
  is special character for 'delete all products in the range'
20
21
  version: the Version to operate on
@@ -25,9 +26,9 @@ class DeleteData:
25
26
  """
26
27
 
27
28
  ID: MarketDataIdentifier
28
- timezone: str
29
29
  rangeStart: datetime
30
30
  rangeEnd: datetime
31
+ timezone: Optional[str] = None
31
32
  product: Optional[List[str]] = None
32
33
  version: Optional[datetime] = None
33
34
  deferCommandExecution: bool = False
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '4.0.0'
16
- __version_tuple__ = version_tuple = (4, 0, 0)
15
+ __version__ = version = '4.0.1.dev16'
16
+ __version_tuple__ = version_tuple = (4, 0, 1, 'dev16')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: artesian-sdk
3
- Version: 4.0.0
3
+ Version: 4.0.1.dev16
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>
@@ -841,7 +841,6 @@ auctionRows = MarketData.UpsertData(MarketData.MarketDataIdentifier('PROVIDER',
841
841
 
842
842
  ```
843
843
 
844
-
845
844
  ## Delete Data in Artesian
846
845
 
847
846
  Using the MarketDataService is possible to delete MarketData and its curves.
@@ -862,7 +861,7 @@ mkservice.deleteMarketData(100042422)
862
861
 
863
862
  ```
864
863
 
865
- Depending on the Type of the MarketData, the DeletData should be composed as per example below.
864
+ Depending on the Type of the MarketData, the DeletData should be composed as per example below. The timezone is optional: for DateSeries if provided must be equal to MarketData OriginalTimezone Default:MarketData OriginalTimezone. For TimeSeries Default:CET
866
865
 
867
866
  ### Delete Data in an Actual Time Series
868
867
 
@@ -34,7 +34,35 @@ class TestMarketDataServiceDeleteData(unittest.IsolatedAsyncioTestCase):
34
34
  }
35
35
  delete = DeleteData(
36
36
  MarketDataIdentifier("PROVIDER", "CURVENAME"),
37
- "CET",
37
+ timezone="CET",
38
+ rangeStart=datetime(2020, 1, 1, 1),
39
+ rangeEnd=datetime(2020, 1, 3, 1),
40
+ )
41
+ ser = artesianJsonSerialize(delete)
42
+ self.assertEqual(ser, expectedJson)
43
+
44
+ with responses.RequestsMock() as rsps:
45
+ rsps.add(
46
+ "POST",
47
+ self.__baseurl + "/marketdata/deletedata",
48
+ match=[responses.matchers.json_params_matcher(expectedJson)],
49
+ status=200,
50
+ )
51
+
52
+ await self.__service.deleteDataAsync(delete)
53
+
54
+ self.assertEqual(len(rsps.calls), 1)
55
+
56
+ async def test_deleteDateSerieWithoutTimezone(self):
57
+ expectedJson = {
58
+ "ID": {"Provider": "PROVIDER", "Name": "CURVENAME"},
59
+ "RangeStart": "2020-01-01T01:00:00.000000",
60
+ "RangeEnd": "2020-01-03T01:00:00.000000",
61
+ "DeferCommandExecution": False,
62
+ "DeferDataGeneration": True,
63
+ }
64
+ delete = DeleteData(
65
+ MarketDataIdentifier("PROVIDER", "CURVENAME"),
38
66
  rangeStart=datetime(2020, 1, 1, 1),
39
67
  rangeEnd=datetime(2020, 1, 3, 1),
40
68
  )
@@ -65,7 +93,37 @@ class TestMarketDataServiceDeleteData(unittest.IsolatedAsyncioTestCase):
65
93
  }
66
94
  delete = DeleteData(
67
95
  MarketDataIdentifier("PROVIDER", "CURVENAME"),
68
- "CET",
96
+ timezone="CET",
97
+ product=["Jan-15"],
98
+ rangeStart=datetime(2020, 1, 1, 1),
99
+ rangeEnd=datetime(2020, 1, 3, 1),
100
+ )
101
+ ser = artesianJsonSerialize(delete)
102
+ self.assertEqual(ser, expectedJson)
103
+
104
+ with responses.RequestsMock() as rsps:
105
+ rsps.add(
106
+ "POST",
107
+ self.__baseurl + "/marketdata/deletedata",
108
+ match=[responses.matchers.json_params_matcher(expectedJson)],
109
+ status=200,
110
+ )
111
+
112
+ await self.__service.deleteDataAsync(delete)
113
+
114
+ self.assertEqual(len(rsps.calls), 1)
115
+
116
+ async def test_deleteDateSerieWithProductWithoutTimezone(self):
117
+ expectedJson = {
118
+ "ID": {"Provider": "PROVIDER", "Name": "CURVENAME"},
119
+ "Product": ["Jan-15"],
120
+ "RangeStart": "2020-01-01T01:00:00.000000",
121
+ "RangeEnd": "2020-01-03T01:00:00.000000",
122
+ "DeferCommandExecution": False,
123
+ "DeferDataGeneration": True,
124
+ }
125
+ delete = DeleteData(
126
+ MarketDataIdentifier("PROVIDER", "CURVENAME"),
69
127
  product=["Jan-15"],
70
128
  rangeStart=datetime(2020, 1, 1, 1),
71
129
  rangeEnd=datetime(2020, 1, 3, 1),
@@ -97,7 +155,37 @@ class TestMarketDataServiceDeleteData(unittest.IsolatedAsyncioTestCase):
97
155
  }
98
156
  delete = DeleteData(
99
157
  MarketDataIdentifier("PROVIDER", "CURVENAME"),
100
- "CET",
158
+ timezone="CET",
159
+ rangeStart=datetime(2020, 1, 1, 1),
160
+ rangeEnd=datetime(2020, 1, 3, 1),
161
+ version=datetime(2020, 1, 1, 1)
162
+ )
163
+ ser = artesianJsonSerialize(delete)
164
+ self.assertEqual(ser, expectedJson)
165
+
166
+ with responses.RequestsMock() as rsps:
167
+ rsps.add(
168
+ "POST",
169
+ self.__baseurl + "/marketdata/deletedata",
170
+ match=[responses.matchers.json_params_matcher(expectedJson)],
171
+ status=200,
172
+ )
173
+
174
+ await self.__service.deleteDataAsync(delete)
175
+
176
+ self.assertEqual(len(rsps.calls), 1)
177
+
178
+ async def test_deleteVersionedSerieWithoutTimezone(self):
179
+ expectedJson = {
180
+ "ID": {"Provider": "PROVIDER", "Name": "CURVENAME"},
181
+ "Version": "2020-01-01T01:00:00.000000",
182
+ "RangeStart": "2020-01-01T01:00:00.000000",
183
+ "RangeEnd": "2020-01-03T01:00:00.000000",
184
+ "DeferCommandExecution": False,
185
+ "DeferDataGeneration": True,
186
+ }
187
+ delete = DeleteData(
188
+ MarketDataIdentifier("PROVIDER", "CURVENAME"),
101
189
  rangeStart=datetime(2020, 1, 1, 1),
102
190
  rangeEnd=datetime(2020, 1, 3, 1),
103
191
  version=datetime(2020, 1, 1, 1)
@@ -1,87 +0,0 @@
1
- # This workflow will install Python dependencies, run tests and lint with a single version of Python
2
- # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
-
4
- name: Artesian SDK Python
5
-
6
- on:
7
- push:
8
- branches: [ master ]
9
- tags:
10
- - 'v[0-9]+\.[0-9]+\.[0-9]+'
11
- pull_request:
12
- branches: [ master ]
13
-
14
- jobs:
15
- build:
16
-
17
- runs-on: ${{ matrix.os }}
18
-
19
- strategy:
20
- matrix:
21
- python-version: ['3.8', '3.9', '3.10', '3.11']
22
- os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
23
-
24
- steps:
25
- - uses: actions/checkout@v3
26
- - name: Set up Python ${{ matrix.python-version }}
27
- uses: actions/setup-python@v2
28
- with:
29
- python-version: ${{ matrix.python-version }}
30
- - name: Install dependencies
31
- run: |
32
- python -m pip install --upgrade pip
33
- pip install -e ".[dev]"
34
-
35
- - name: Run flake8
36
- run: |
37
- flake8 .
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
-
47
- - name: Test Pytest
48
- run: |
49
- pytest --junitxml=junit/test-results-${{ matrix.python-version }}.xml
50
-
51
- - name: Upload pytest test results
52
- uses: actions/upload-artifact@v3
53
- with:
54
- name: pytest-results-${{ matrix.python-version }}
55
- path: junit/test-results-${{ matrix.python-version }}.xml
56
- # Use always() to always run this step to publish test results when there are test failures
57
- if: ${{ always() }}
58
-
59
- publish:
60
- if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v'))
61
- runs-on: ubuntu-latest
62
- needs: build
63
- env:
64
- python-version: '3.11'
65
-
66
- steps:
67
- - uses: actions/checkout@v3
68
- with:
69
- fetch-depth: 0
70
- - name: Set up Python ${{ env.python-version }}
71
- uses: actions/setup-python@v2
72
- with:
73
- python-version: ${{ env.python-version }}
74
- - name: Install dependencies
75
- run: |
76
- python -m pip install --upgrade pip
77
- python -m pip install build
78
- - name: Build package
79
- run: |
80
- python -m build
81
- - name: Publish package
82
- uses: pypa/gh-action-pypi-publish@release/v1
83
- with:
84
- user: __token__
85
- password: ${{ secrets.PYPI_API_TOKEN }}
86
-
87
-
File without changes
File without changes