ecmwf-datastores-client 0.1.0__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.

Potentially problematic release.


This version of ecmwf-datastores-client might be problematic. Click here for more details.

Files changed (51) hide show
  1. ecmwf_datastores_client-0.1.0/.cruft.json +20 -0
  2. ecmwf_datastores_client-0.1.0/.github/workflows/on-push.yml +250 -0
  3. ecmwf_datastores_client-0.1.0/.gitignore +475 -0
  4. ecmwf_datastores_client-0.1.0/.pre-commit-config-cruft.yaml +7 -0
  5. ecmwf_datastores_client-0.1.0/.pre-commit-config.yaml +39 -0
  6. ecmwf_datastores_client-0.1.0/Dockerfile +12 -0
  7. ecmwf_datastores_client-0.1.0/LICENSE +201 -0
  8. ecmwf_datastores_client-0.1.0/Makefile +45 -0
  9. ecmwf_datastores_client-0.1.0/PKG-INFO +531 -0
  10. ecmwf_datastores_client-0.1.0/README.md +298 -0
  11. ecmwf_datastores_client-0.1.0/ci/environment-ci.yml +21 -0
  12. ecmwf_datastores_client-0.1.0/ci/environment-integration.yml +9 -0
  13. ecmwf_datastores_client-0.1.0/docs/Makefile +20 -0
  14. ecmwf_datastores_client-0.1.0/docs/_static/.gitkeep +0 -0
  15. ecmwf_datastores_client-0.1.0/docs/_templates/.gitkeep +0 -0
  16. ecmwf_datastores_client-0.1.0/docs/conf.py +79 -0
  17. ecmwf_datastores_client-0.1.0/docs/index.md +21 -0
  18. ecmwf_datastores_client-0.1.0/docs/make.bat +35 -0
  19. ecmwf_datastores_client-0.1.0/ecmwf/datastores/__init__.py +39 -0
  20. ecmwf_datastores_client-0.1.0/ecmwf/datastores/catalogue.py +206 -0
  21. ecmwf_datastores_client-0.1.0/ecmwf/datastores/client.py +400 -0
  22. ecmwf_datastores_client-0.1.0/ecmwf/datastores/config.py +45 -0
  23. ecmwf_datastores_client-0.1.0/ecmwf/datastores/legacy_client.py +275 -0
  24. ecmwf_datastores_client-0.1.0/ecmwf/datastores/processing.py +793 -0
  25. ecmwf_datastores_client-0.1.0/ecmwf/datastores/profile.py +87 -0
  26. ecmwf_datastores_client-0.1.0/ecmwf/datastores/py.typed +0 -0
  27. ecmwf_datastores_client-0.1.0/ecmwf/datastores/utils.py +9 -0
  28. ecmwf_datastores_client-0.1.0/ecmwf/datastores/version.py +2 -0
  29. ecmwf_datastores_client-0.1.0/ecmwf_datastores_client.egg-info/PKG-INFO +531 -0
  30. ecmwf_datastores_client-0.1.0/ecmwf_datastores_client.egg-info/SOURCES.txt +49 -0
  31. ecmwf_datastores_client-0.1.0/ecmwf_datastores_client.egg-info/dependency_links.txt +1 -0
  32. ecmwf_datastores_client-0.1.0/ecmwf_datastores_client.egg-info/requires.txt +7 -0
  33. ecmwf_datastores_client-0.1.0/ecmwf_datastores_client.egg-info/top_level.txt +1 -0
  34. ecmwf_datastores_client-0.1.0/environment.yml +14 -0
  35. ecmwf_datastores_client-0.1.0/pyproject.toml +99 -0
  36. ecmwf_datastores_client-0.1.0/setup.cfg +4 -0
  37. ecmwf_datastores_client-0.1.0/tests/conftest.py +34 -0
  38. ecmwf_datastores_client-0.1.0/tests/integration_test_10_catalogue.py +131 -0
  39. ecmwf_datastores_client-0.1.0/tests/integration_test_20_processing.py +83 -0
  40. ecmwf_datastores_client-0.1.0/tests/integration_test_30_remote.py +114 -0
  41. ecmwf_datastores_client-0.1.0/tests/integration_test_40_results.py +98 -0
  42. ecmwf_datastores_client-0.1.0/tests/integration_test_50_profile.py +61 -0
  43. ecmwf_datastores_client-0.1.0/tests/integration_test_60_api_client.py +82 -0
  44. ecmwf_datastores_client-0.1.0/tests/integration_test_70_legacy_api_client.py +312 -0
  45. ecmwf_datastores_client-0.1.0/tests/integration_test_80_adaptors.py +124 -0
  46. ecmwf_datastores_client-0.1.0/tests/integration_test_90_features.py +79 -0
  47. ecmwf_datastores_client-0.1.0/tests/test_00_version.py +5 -0
  48. ecmwf_datastores_client-0.1.0/tests/test_01_config.py +66 -0
  49. ecmwf_datastores_client-0.1.0/tests/test_10_catalogue.py +87 -0
  50. ecmwf_datastores_client-0.1.0/tests/test_20_processing.py +531 -0
  51. ecmwf_datastores_client-0.1.0/tests/test_40_results.py +92 -0
@@ -0,0 +1,20 @@
1
+ {
2
+ "template": "https://github.com/ecmwf-projects/cookiecutter-conda-package",
3
+ "commit": "18065cb3d40660d1b7d74ac1cbe285f08552e658",
4
+ "checkout": null,
5
+ "context": {
6
+ "cookiecutter": {
7
+ "project_name": "ecmwf-datastores-client",
8
+ "project_slug": "ecmwf.datastores",
9
+ "project_short_description": "ECMWF Data Stores Service (DSS) API Python client",
10
+ "copyright_holder": "European Union",
11
+ "copyright_year": "2022",
12
+ "mypy_strict": "True",
13
+ "integration_tests": "True",
14
+ "pypi": true,
15
+ "_template": "https://github.com/ecmwf-projects/cookiecutter-conda-package",
16
+ "_commit": "18065cb3d40660d1b7d74ac1cbe285f08552e658"
17
+ }
18
+ },
19
+ "directory": null
20
+ }
@@ -0,0 +1,250 @@
1
+ name: on-push
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - '*'
9
+ pull_request:
10
+ branches:
11
+ - main
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ defaults:
18
+ run:
19
+ shell: bash -l {0}
20
+
21
+ jobs:
22
+ pre-commit:
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: actions/setup-python@v5
27
+ with:
28
+ python-version: 3.x
29
+ - uses: pre-commit/action@v3.0.1
30
+
31
+ combine-environments:
32
+ runs-on: ubuntu-latest
33
+
34
+ steps:
35
+ - uses: actions/checkout@v4
36
+ - uses: actions/setup-python@v5
37
+ with:
38
+ python-version: 3.x
39
+ - name: Install conda-merge
40
+ run: |
41
+ python -m pip install conda-merge
42
+ - name: Combine environments
43
+ run: |
44
+ for SUFFIX in ci integration; do
45
+ conda-merge ci/environment-$SUFFIX.yml environment.yml > ci/combined-environment-$SUFFIX.yml || exit
46
+ done
47
+ - uses: actions/upload-artifact@v4
48
+ with:
49
+ name: combined-environments
50
+ path: ci/combined-environment-*.yml
51
+
52
+ unit-tests:
53
+ name: unit-tests
54
+ needs: combine-environments
55
+ runs-on: ${{ matrix.os }}
56
+ strategy:
57
+ matrix:
58
+ python-version: ['3.11']
59
+ os: [ubuntu-latest, windows-latest, macos-latest]
60
+
61
+ steps:
62
+ - uses: actions/checkout@v4
63
+ - uses: actions/download-artifact@v4
64
+ with:
65
+ name: combined-environments
66
+ path: ci
67
+ - name: Get current date
68
+ id: date
69
+ run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
70
+ - uses: mamba-org/setup-micromamba@v2
71
+ with:
72
+ environment-file: ci/combined-environment-ci.yml
73
+ environment-name: DEVELOP
74
+ cache-environment: true
75
+ cache-environment-key: environment-${{ steps.date.outputs.date }}
76
+ cache-downloads-key: downloads-${{ steps.date.outputs.date }}
77
+ create-args: >-
78
+ python=${{ matrix.python-version }}
79
+ - name: Install package
80
+ run: |
81
+ python -m pip install --no-deps -e .
82
+ - name: Run tests
83
+ run: |
84
+ make unit-tests COV_REPORT=xml
85
+
86
+ type-check:
87
+ needs: [combine-environments, unit-tests]
88
+ runs-on: ubuntu-latest
89
+
90
+ steps:
91
+ - uses: actions/checkout@v4
92
+ - uses: actions/download-artifact@v4
93
+ with:
94
+ name: combined-environments
95
+ path: ci
96
+ - name: Get current date
97
+ id: date
98
+ run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
99
+ - uses: mamba-org/setup-micromamba@v2
100
+ with:
101
+ environment-file: ci/combined-environment-ci.yml
102
+ environment-name: DEVELOP
103
+ cache-environment: true
104
+ cache-environment-key: environment-${{ steps.date.outputs.date }}
105
+ cache-downloads-key: downloads-${{ steps.date.outputs.date }}
106
+ create-args: >-
107
+ python=3.11
108
+ - name: Install package
109
+ run: |
110
+ python -m pip install --no-deps -e .
111
+ - name: Run code quality checks
112
+ run: |
113
+ make type-check
114
+
115
+ docs-build:
116
+ needs: [combine-environments, unit-tests]
117
+ runs-on: macos-latest
118
+ permissions:
119
+ contents: write
120
+
121
+ steps:
122
+ - uses: actions/checkout@v4
123
+ - uses: actions/download-artifact@v4
124
+ with:
125
+ name: combined-environments
126
+ path: ci
127
+ - name: Get current date
128
+ id: date
129
+ run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
130
+ - uses: mamba-org/setup-micromamba@v2
131
+ with:
132
+ environment-file: ci/combined-environment-ci.yml
133
+ environment-name: DEVELOP
134
+ cache-environment: true
135
+ cache-environment-key: environment-${{ steps.date.outputs.date }}
136
+ cache-downloads-key: downloads-${{ steps.date.outputs.date }}
137
+ create-args: >-
138
+ python=3.11
139
+ - name: Install package
140
+ run: |
141
+ python -m pip install --no-deps -e .
142
+ - name: Build documentation
143
+ run: |
144
+ make docs-build
145
+ - name: Deploy documentation
146
+ uses: peaceiris/actions-gh-pages@v4
147
+ if: |
148
+ github.event_name == 'push' &&
149
+ startsWith(github.ref, 'refs/tags')
150
+ with:
151
+ github_token: ${{ secrets.GITHUB_TOKEN }}
152
+ publish_dir: ./docs/_build/html/
153
+
154
+ integration-tests:
155
+ needs: [combine-environments, unit-tests]
156
+ if: |
157
+ success() && true
158
+ runs-on: ubuntu-latest
159
+
160
+ strategy:
161
+ matrix:
162
+ python-version: ['3.8', '3.13']
163
+ extra: ['-ci']
164
+
165
+ steps:
166
+ - uses: actions/checkout@v4
167
+ - uses: actions/download-artifact@v4
168
+ with:
169
+ name: combined-environments
170
+ path: ci
171
+ - name: Get current date
172
+ id: date
173
+ run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
174
+ - uses: mamba-org/setup-micromamba@v2
175
+ with:
176
+ environment-file: ci/combined-environment${{ matrix.extra }}.yml
177
+ environment-name: DEVELOP${{ matrix.extra }}
178
+ cache-environment: true
179
+ cache-environment-key: environment-${{ steps.date.outputs.date }}
180
+ cache-downloads-key: downloads-${{ steps.date.outputs.date }}
181
+ create-args: >-
182
+ python=${{ matrix.python-version }}
183
+ - name: Install package
184
+ run: |
185
+ python -m pip install --no-deps -e .
186
+ - name: Run tests
187
+ timeout-minutes: 10
188
+ env:
189
+ ECMWF_DATASTORES_URL: ${{ secrets.ECMWF_DATASTORES_URL }}
190
+ ECMWF_DATASTORES_KEY: ${{ secrets.ECMWF_DATASTORES_KEY }}
191
+ ECMWF_DATASTORES_ANON_KEY: ${{ secrets.ECMWF_DATASTORES_ANON_KEY }}
192
+ run: |
193
+ make ci-integration-tests COV_REPORT=xml
194
+
195
+ distribution:
196
+ runs-on: ubuntu-latest
197
+ needs: [unit-tests, type-check, docs-build, integration-tests]
198
+ if: |
199
+ always() &&
200
+ needs.unit-tests.result == 'success' &&
201
+ needs.type-check.result == 'success' &&
202
+ needs.docs-build.result == 'success' &&
203
+ (needs.integration-tests.result == 'success' || needs.integration-tests.result == 'skipped')
204
+
205
+ steps:
206
+ - uses: actions/checkout@v4
207
+ - uses: actions/setup-python@v5
208
+ with:
209
+ python-version: '3.11'
210
+ - name: Install package
211
+ run: |
212
+ python -m pip install --upgrade pip
213
+ python -m pip install build twine
214
+ - name: Build distribution
215
+ run: |
216
+ python -m build
217
+ - name: Check wheels
218
+ run: |
219
+ cd dist || exit
220
+ python -m pip install ecmwf_datastores_client*.whl || exit
221
+ python -m twine check --strict * || exit
222
+ python -c "import ecmwf.datastores" || exit
223
+ cd ..
224
+ - uses: actions/upload-artifact@v4
225
+ with:
226
+ name: distribution
227
+ path: dist
228
+
229
+ upload-to-pypi:
230
+ runs-on: ubuntu-latest
231
+ needs: distribution
232
+ if: |
233
+ always() && true &&
234
+ needs.distribution.result == 'success' &&
235
+ github.event_name == 'push' &&
236
+ startsWith(github.ref, 'refs/tags')
237
+ environment:
238
+ name: pypi
239
+ url: https://pypi.org/p/ecmwf-datastores-client
240
+ permissions:
241
+ id-token: write # IMPORTANT: this permission is mandatory for trusted publish
242
+
243
+ steps:
244
+ - uses: actions/download-artifact@v4
245
+ with:
246
+ name: distribution
247
+ path: dist
248
+ - uses: pypa/gh-action-pypi-publish@v1.12.4
249
+ with:
250
+ verbose: true