earthkit-transforms 0.3.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.
Files changed (49) hide show
  1. earthkit_transforms-0.3.0/.github/workflows/on-push.yml +147 -0
  2. earthkit_transforms-0.3.0/.github/workflows/on-release.yml +82 -0
  3. earthkit_transforms-0.3.0/.gitignore +352 -0
  4. earthkit_transforms-0.3.0/.pre-commit-config.yaml +39 -0
  5. earthkit_transforms-0.3.0/.readthedocs.yaml +32 -0
  6. earthkit_transforms-0.3.0/Dockerfile +12 -0
  7. earthkit_transforms-0.3.0/LICENSE +201 -0
  8. earthkit_transforms-0.3.0/Makefile +33 -0
  9. earthkit_transforms-0.3.0/PKG-INFO +284 -0
  10. earthkit_transforms-0.3.0/README.md +62 -0
  11. earthkit_transforms-0.3.0/ci/environment-ci.yml +19 -0
  12. earthkit_transforms-0.3.0/ci/environment-integration.yml +11 -0
  13. earthkit_transforms-0.3.0/docs/Makefile +20 -0
  14. earthkit_transforms-0.3.0/docs/_static/.gitkeep +0 -0
  15. earthkit_transforms-0.3.0/docs/_templates/.gitkeep +0 -0
  16. earthkit_transforms-0.3.0/docs/conf.py +84 -0
  17. earthkit_transforms-0.3.0/docs/examples.md +16 -0
  18. earthkit_transforms-0.3.0/docs/index.md +39 -0
  19. earthkit_transforms-0.3.0/docs/make.bat +35 -0
  20. earthkit_transforms-0.3.0/docs/notebooks/aggregate/aggregate-spatial.ipynb +4723 -0
  21. earthkit_transforms-0.3.0/docs/notebooks/aggregate/climatology/01-era5-climatology.ipynb +2548 -0
  22. earthkit_transforms-0.3.0/docs/notebooks/aggregate/climatology/02-era5-anomaly.ipynb +2003 -0
  23. earthkit_transforms-0.3.0/docs/notebooks/aggregate/temporal/01-era5-general-methods.ipynb +1758 -0
  24. earthkit_transforms-0.3.0/docs/notebooks/aggregate/temporal/02-era5-daily-monthly-statistics.ipynb +2334 -0
  25. earthkit_transforms-0.3.0/docs/notebooks/aggregate/temporal/03-seas5-daily-statistics.ipynb +1720 -0
  26. earthkit_transforms-0.3.0/docs/notebooks/requirements-for-notebooks.sh +5 -0
  27. earthkit_transforms-0.3.0/docs/requirements.txt +14 -0
  28. earthkit_transforms-0.3.0/earthkit/transforms/__init__.py +25 -0
  29. earthkit_transforms-0.3.0/earthkit/transforms/aggregate/__init__.py +34 -0
  30. earthkit_transforms-0.3.0/earthkit/transforms/aggregate/climatology.py +877 -0
  31. earthkit_transforms-0.3.0/earthkit/transforms/aggregate/general.py +300 -0
  32. earthkit_transforms-0.3.0/earthkit/transforms/aggregate/spatial.py +564 -0
  33. earthkit_transforms-0.3.0/earthkit/transforms/aggregate/temporal.py +890 -0
  34. earthkit_transforms-0.3.0/earthkit/transforms/tools.py +414 -0
  35. earthkit_transforms-0.3.0/earthkit/transforms/version.py +2 -0
  36. earthkit_transforms-0.3.0/earthkit_transforms.egg-info/PKG-INFO +284 -0
  37. earthkit_transforms-0.3.0/earthkit_transforms.egg-info/SOURCES.txt +47 -0
  38. earthkit_transforms-0.3.0/earthkit_transforms.egg-info/dependency_links.txt +1 -0
  39. earthkit_transforms-0.3.0/earthkit_transforms.egg-info/requires.txt +5 -0
  40. earthkit_transforms-0.3.0/earthkit_transforms.egg-info/top_level.txt +1 -0
  41. earthkit_transforms-0.3.0/environment.yml +24 -0
  42. earthkit_transforms-0.3.0/pyproject.toml +71 -0
  43. earthkit_transforms-0.3.0/setup.cfg +4 -0
  44. earthkit_transforms-0.3.0/tests/test_00_version.py +5 -0
  45. earthkit_transforms-0.3.0/tests/test_10_tools.py +203 -0
  46. earthkit_transforms-0.3.0/tests/test_20_general.py +173 -0
  47. earthkit_transforms-0.3.0/tests/test_30_spatial.py +93 -0
  48. earthkit_transforms-0.3.0/tests/test_30_temporal.py +201 -0
  49. earthkit_transforms-0.3.0/tests/test_40_climatology.py +138 -0
@@ -0,0 +1,147 @@
1
+ name: on-push
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+
11
+ concurrency:
12
+ group: ${{ github.workflow }}-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ defaults:
16
+ run:
17
+ shell: bash -l {0}
18
+
19
+ jobs:
20
+ pre-commit:
21
+ runs-on: ubuntu-latest
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+ - uses: actions/setup-python@v5
25
+ with:
26
+ python-version: 3.x
27
+ - uses: pre-commit/action@v3.0.1
28
+
29
+ combine-environments:
30
+ runs-on: ubuntu-latest
31
+
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: actions/setup-python@v5
35
+ with:
36
+ python-version: 3.x
37
+ - name: Install conda-merge
38
+ run: |
39
+ python -m pip install conda-merge
40
+ - name: Combine environments
41
+ run: |
42
+ for SUFFIX in ci integration; do
43
+ conda-merge ci/environment-$SUFFIX.yml environment.yml > ci/combined-environment-$SUFFIX.yml || exit
44
+ done
45
+ - uses: actions/upload-artifact@v4
46
+ with:
47
+ name: combined-environments
48
+ path: ci/combined-environment-*.yml
49
+
50
+ unit-tests:
51
+ name: unit-tests
52
+ needs: combine-environments
53
+ runs-on: ubuntu-latest
54
+ strategy:
55
+ matrix:
56
+ python-version: ['3.11']
57
+
58
+ steps:
59
+ - uses: actions/checkout@v4
60
+ - uses: actions/download-artifact@v4
61
+ with:
62
+ name: combined-environments
63
+ path: ci
64
+ - name: Get current date
65
+ id: date
66
+ run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
67
+ - uses: mamba-org/setup-micromamba@v1
68
+ with:
69
+ environment-file: ci/combined-environment-ci.yml
70
+ environment-name: DEVELOP
71
+ cache-environment: true
72
+ cache-environment-key: environment-${{ steps.date.outputs.date }}
73
+ cache-downloads-key: downloads-${{ steps.date.outputs.date }}
74
+ create-args: >-
75
+ python=${{ matrix.python-version }}
76
+ - name: Install package
77
+ run: |
78
+ python -m pip install --no-deps -e .
79
+ - name: Run tests
80
+ run: |
81
+ make unit-tests COV_REPORT=xml
82
+
83
+ docs-build:
84
+ needs: [combine-environments, unit-tests]
85
+ runs-on: ubuntu-latest
86
+
87
+ steps:
88
+ - uses: actions/checkout@v4
89
+ - uses: actions/download-artifact@v4
90
+ with:
91
+ name: combined-environments
92
+ path: ci
93
+ - name: Get current date
94
+ id: date
95
+ run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
96
+ - uses: mamba-org/setup-micromamba@v1
97
+ with:
98
+ environment-file: ci/combined-environment-ci.yml
99
+ environment-name: DEVELOP
100
+ cache-environment: true
101
+ cache-environment-key: environment-${{ steps.date.outputs.date }}
102
+ cache-downloads-key: downloads-${{ steps.date.outputs.date }}
103
+ create-args: >-
104
+ python=3.11
105
+ - name: Install package
106
+ run: |
107
+ python -m pip install --no-deps -e .
108
+ - name: Build documentation
109
+ run: |
110
+ make docs-build
111
+
112
+ integration-tests:
113
+ needs: [combine-environments, unit-tests]
114
+ if: |
115
+ success() && false
116
+ runs-on: ubuntu-latest
117
+
118
+ strategy:
119
+ matrix:
120
+ include:
121
+ - python-version: '3.11'
122
+ extra: -integration
123
+
124
+ steps:
125
+ - uses: actions/checkout@v4
126
+ - uses: actions/download-artifact@v4
127
+ with:
128
+ name: combined-environments
129
+ path: ci
130
+ - name: Get current date
131
+ id: date
132
+ run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
133
+ - uses: mamba-org/setup-micromamba@v1
134
+ with:
135
+ environment-file: ci/combined-environment${{ matrix.extra }}.yml
136
+ environment-name: DEVELOP${{ matrix.extra }}
137
+ cache-environment: true
138
+ cache-environment-key: environment-${{ steps.date.outputs.date }}
139
+ cache-downloads-key: downloads-${{ steps.date.outputs.date }}
140
+ create-args: >-
141
+ python=${{ matrix.python-version }}
142
+ - name: Install package
143
+ run: |
144
+ python -m pip install --no-deps -e .
145
+ - name: Run tests
146
+ run: |
147
+ make unit-tests COV_REPORT=xml
@@ -0,0 +1,82 @@
1
+ name: on-release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "*"
7
+
8
+ concurrency:
9
+ group: ${{ github.workflow }}-${{ github.ref }}
10
+ cancel-in-progress: true
11
+
12
+ defaults:
13
+ run:
14
+ shell: bash -l {0}
15
+
16
+ jobs:
17
+ combine-environments:
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ - uses: actions/checkout@v3
22
+ - name: Install conda-merge
23
+ run: |
24
+ $CONDA/bin/python -m pip install conda-merge
25
+ - name: Combine environments
26
+ run: |
27
+ for SUFFIX in ci integration; do
28
+ $CONDA/bin/conda-merge ci/environment-$SUFFIX.yml environment.yml > ci/combined-environment-$SUFFIX.yml || exit
29
+ done
30
+ - name: Archive combined environments
31
+ uses: actions/upload-artifact@v3
32
+ with:
33
+ name: combined-environments
34
+ path: ci/combined-environment-*.yml
35
+
36
+ docs-build:
37
+ needs: [combine-environments]
38
+ runs-on: ubuntu-latest
39
+
40
+ steps:
41
+ - uses: actions/checkout@v4
42
+ - uses: actions/download-artifact@v4
43
+ with:
44
+ name: combined-environments
45
+ path: ci
46
+ - name: Get current date
47
+ id: date
48
+ run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
49
+ - uses: mamba-org/setup-micromamba@v1
50
+ with:
51
+ environment-file: ci/combined-environment-ci.yml
52
+ environment-name: DEVELOP
53
+ cache-environment: true
54
+ cache-environment-key: environment-${{ steps.date.outputs.date }}
55
+ cache-downloads-key: downloads-${{ steps.date.outputs.date }}
56
+ create-args: >-
57
+ python=3.11
58
+ - name: Install package
59
+ run: |
60
+ python -m pip install --no-deps -e .
61
+ - name: Build documentation
62
+ run: |
63
+ make docs-build
64
+
65
+
66
+ distribution:
67
+ runs-on: ubuntu-latest
68
+ needs: [combine-environments]
69
+ steps:
70
+ - uses: actions/checkout@v3
71
+ with:
72
+ ref: ${{ github.event.pull_request.head.sha || github.ref }}
73
+ - name: Build distributions
74
+ run: |
75
+ $CONDA/bin/python -m pip install build
76
+ $CONDA/bin/python -m build
77
+ - name: Publish a Python distribution to PyPI
78
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
79
+ uses: pypa/gh-action-pypi-publish@release/v1
80
+ with:
81
+ user: __token__
82
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,352 @@
1
+ # setuptools-scm
2
+ version.py
3
+
4
+ # Sphinx automatic generation of API
5
+ docs/_api/
6
+
7
+ # Created by https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks,vim,visualstudiocode,pycharm
8
+ # Edit at https://www.toptal.com/developers/gitignore?templates=python,jupyternotebooks,vim,visualstudiocode,pycharm
9
+
10
+ ### JupyterNotebooks ###
11
+ # gitignore template for Jupyter Notebooks
12
+ # website: http://jupyter.org/
13
+
14
+ # Ignore files used in development
15
+ dev-notebook.ipynb
16
+ test*.grib
17
+ test*.nc
18
+
19
+
20
+ .ipynb_checkpoints
21
+ */.ipynb_checkpoints/*
22
+
23
+ # IPython
24
+ profile_default/
25
+ ipython_config.py
26
+
27
+ # Remove previous ipynb_checkpoints
28
+ # git rm -r .ipynb_checkpoints/
29
+
30
+ ### PyCharm ###
31
+ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
32
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
33
+
34
+ # User-specific stuff
35
+ .idea/**/workspace.xml
36
+ .idea/**/tasks.xml
37
+ .idea/**/usage.statistics.xml
38
+ .idea/**/dictionaries
39
+ .idea/**/shelf
40
+
41
+ # AWS User-specific
42
+ .idea/**/aws.xml
43
+
44
+ # Generated files
45
+ .idea/**/contentModel.xml
46
+
47
+ # Sensitive or high-churn files
48
+ .idea/**/dataSources/
49
+ .idea/**/dataSources.ids
50
+ .idea/**/dataSources.local.xml
51
+ .idea/**/sqlDataSources.xml
52
+ .idea/**/dynamic.xml
53
+ .idea/**/uiDesigner.xml
54
+ .idea/**/dbnavigator.xml
55
+
56
+ # Gradle
57
+ .idea/**/gradle.xml
58
+ .idea/**/libraries
59
+
60
+ # Gradle and Maven with auto-import
61
+ # When using Gradle or Maven with auto-import, you should exclude module files,
62
+ # since they will be recreated, and may cause churn. Uncomment if using
63
+ # auto-import.
64
+ # .idea/artifacts
65
+ # .idea/compiler.xml
66
+ # .idea/jarRepositories.xml
67
+ # .idea/modules.xml
68
+ # .idea/*.iml
69
+ # .idea/modules
70
+ # *.iml
71
+ # *.ipr
72
+
73
+ # CMake
74
+ cmake-build-*/
75
+
76
+ # Mongo Explorer plugin
77
+ .idea/**/mongoSettings.xml
78
+
79
+ # File-based project format
80
+ *.iws
81
+
82
+ # IntelliJ
83
+ out/
84
+
85
+ # mpeltonen/sbt-idea plugin
86
+ .idea_modules/
87
+
88
+ # JIRA plugin
89
+ atlassian-ide-plugin.xml
90
+
91
+ # Cursive Clojure plugin
92
+ .idea/replstate.xml
93
+
94
+ # SonarLint plugin
95
+ .idea/sonarlint/
96
+
97
+ # Crashlytics plugin (for Android Studio and IntelliJ)
98
+ com_crashlytics_export_strings.xml
99
+ crashlytics.properties
100
+ crashlytics-build.properties
101
+ fabric.properties
102
+
103
+ # Editor-based Rest Client
104
+ .idea/httpRequests
105
+
106
+ # Android studio 3.1+ serialized cache file
107
+ .idea/caches/build_file_checksums.ser
108
+
109
+ ### PyCharm Patch ###
110
+ # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
111
+
112
+ # *.iml
113
+ # modules.xml
114
+ # .idea/misc.xml
115
+ # *.ipr
116
+
117
+ # Sonarlint plugin
118
+ # https://plugins.jetbrains.com/plugin/7973-sonarlint
119
+ .idea/**/sonarlint/
120
+
121
+ # SonarQube Plugin
122
+ # https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
123
+ .idea/**/sonarIssues.xml
124
+
125
+ # Markdown Navigator plugin
126
+ # https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
127
+ .idea/**/markdown-navigator.xml
128
+ .idea/**/markdown-navigator-enh.xml
129
+ .idea/**/markdown-navigator/
130
+
131
+ # Cache file creation bug
132
+ # See https://youtrack.jetbrains.com/issue/JBR-2257
133
+ .idea/$CACHE_FILE$
134
+
135
+ # CodeStream plugin
136
+ # https://plugins.jetbrains.com/plugin/12206-codestream
137
+ .idea/codestream.xml
138
+
139
+ # Azure Toolkit for IntelliJ plugin
140
+ # https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
141
+ .idea/**/azureSettings.xml
142
+
143
+ ### Python ###
144
+ # Byte-compiled / optimized / DLL files
145
+ __pycache__/
146
+ *.py[cod]
147
+ *$py.class
148
+
149
+ # C extensions
150
+ *.so
151
+
152
+ # Distribution / packaging
153
+ .Python
154
+ build/
155
+ develop-eggs/
156
+ dist/
157
+ downloads/
158
+ eggs/
159
+ .eggs/
160
+ lib/
161
+ lib64/
162
+ parts/
163
+ sdist/
164
+ var/
165
+ wheels/
166
+ share/python-wheels/
167
+ *.egg-info/
168
+ .installed.cfg
169
+ *.egg
170
+ MANIFEST
171
+
172
+ # PyInstaller
173
+ # Usually these files are written by a python script from a template
174
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
175
+ *.manifest
176
+ *.spec
177
+
178
+ # Installer logs
179
+ pip-log.txt
180
+ pip-delete-this-directory.txt
181
+
182
+ # Unit test / coverage reports
183
+ htmlcov/
184
+ .tox/
185
+ .nox/
186
+ .coverage
187
+ .coverage.*
188
+ .cache
189
+ nosetests.xml
190
+ coverage.xml
191
+ *.cover
192
+ *.py,cover
193
+ .hypothesis/
194
+ .pytest_cache/
195
+ cover/
196
+
197
+ # Translations
198
+ *.mo
199
+ *.pot
200
+
201
+ # Django stuff:
202
+ *.log
203
+ local_settings.py
204
+ db.sqlite3
205
+ db.sqlite3-journal
206
+
207
+ # Flask stuff:
208
+ instance/
209
+ .webassets-cache
210
+
211
+ # Scrapy stuff:
212
+ .scrapy
213
+
214
+ # Sphinx documentation
215
+ docs/_build/
216
+
217
+ # PyBuilder
218
+ .pybuilder/
219
+ target/
220
+
221
+ # Jupyter Notebook
222
+ test_data
223
+
224
+ # IPython
225
+
226
+ # pyenv
227
+ # For a library or package, you might want to ignore these files since the code is
228
+ # intended to run in multiple environments; otherwise, check them in:
229
+ # .python-version
230
+
231
+ # pipenv
232
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
233
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
234
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
235
+ # install all needed dependencies.
236
+ #Pipfile.lock
237
+
238
+ # poetry
239
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
240
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
241
+ # commonly ignored for libraries.
242
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
243
+ #poetry.lock
244
+
245
+ # pdm
246
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
247
+ #pdm.lock
248
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
249
+ # in version control.
250
+ # https://pdm.fming.dev/#use-with-ide
251
+ .pdm.toml
252
+
253
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
254
+ __pypackages__/
255
+
256
+ # Celery stuff
257
+ celerybeat-schedule
258
+ celerybeat.pid
259
+
260
+ # SageMath parsed files
261
+ *.sage.py
262
+
263
+ # Environments
264
+ .env
265
+ .venv
266
+ env/
267
+ venv/
268
+ ENV/
269
+ env.bak/
270
+ venv.bak/
271
+
272
+ # Spyder project settings
273
+ .spyderproject
274
+ .spyproject
275
+
276
+ # Rope project settings
277
+ .ropeproject
278
+
279
+ # mkdocs documentation
280
+ /site
281
+
282
+ # mypy
283
+ .mypy_cache/
284
+ .dmypy.json
285
+ dmypy.json
286
+
287
+ # Pyre type checker
288
+ .pyre/
289
+
290
+ # pytype static type analyzer
291
+ .pytype/
292
+
293
+ # Cython debug symbols
294
+ cython_debug/
295
+
296
+ # PyCharm
297
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
298
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
299
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
300
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
301
+ #.idea/
302
+
303
+ ### Vim ###
304
+ # Swap
305
+ [._]*.s[a-v][a-z]
306
+ !*.svg # comment out if you don't need vector files
307
+ [._]*.sw[a-p]
308
+ [._]s[a-rt-v][a-z]
309
+ [._]ss[a-gi-z]
310
+ [._]sw[a-p]
311
+
312
+ # Session
313
+ Session.vim
314
+ Sessionx.vim
315
+
316
+ # Temporary
317
+ .netrwhist
318
+ *~
319
+ # Auto-generated tag files
320
+ tags
321
+ # Persistent undo
322
+ [._]*.un~
323
+
324
+ ### VisualStudioCode ###
325
+ .vscode/
326
+ # .vscode/*
327
+ # !.vscode/settings.json
328
+ # !.vscode/tasks.json
329
+ # !.vscode/launch.json
330
+ # !.vscode/extensions.json
331
+ # !.vscode/*.code-snippets
332
+
333
+ # Local History for Visual Studio Code
334
+ .history/
335
+
336
+ # Built Visual Studio Code Extensions
337
+ *.vsix
338
+
339
+ ### VisualStudioCode Patch ###
340
+ # Ignore all local history of files
341
+ .history
342
+ .ionide
343
+
344
+ # Support for Project snippet scope
345
+ .vscode/*.code-snippets
346
+
347
+ # Ignore code-workspaces
348
+ *.code-workspace
349
+
350
+ # End of https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks,vim,visualstudiocode,pycharm
351
+
352
+ notebooks/dev-notebook.ipynb
@@ -0,0 +1,39 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v4.5.0
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ - id: end-of-file-fixer
7
+ - id: check-json
8
+ - id: check-yaml
9
+ - id: check-toml
10
+ - id: check-added-large-files
11
+ - id: check-merge-conflict
12
+ - id: debug-statements
13
+ - id: mixed-line-ending
14
+ - repo: https://github.com/keewis/blackdoc
15
+ rev: v0.3.9
16
+ hooks:
17
+ - id: blackdoc
18
+ additional_dependencies: [black==23.11.0]
19
+ - repo: https://github.com/astral-sh/ruff-pre-commit
20
+ rev: v0.1.6
21
+ hooks:
22
+ - id: ruff
23
+ args: [--fix, --show-fixes]
24
+ - id: ruff-format
25
+ - repo: https://github.com/executablebooks/mdformat
26
+ rev: 0.7.17
27
+ hooks:
28
+ - id: mdformat
29
+ - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
30
+ rev: v2.11.0
31
+ hooks:
32
+ - id: pretty-format-yaml
33
+ args: [--autofix, --preserve-quotes]
34
+ - id: pretty-format-toml
35
+ args: [--autofix]
36
+ - repo: https://github.com/gitleaks/gitleaks
37
+ rev: v8.18.1
38
+ hooks:
39
+ - id: gitleaks
@@ -0,0 +1,32 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Set the OS, Python version and other tools you might need
9
+ build:
10
+ os: ubuntu-22.04
11
+ tools:
12
+ python: "3.10"
13
+ # You can also specify other tool versions:
14
+ # nodejs: "19"
15
+ # rust: "1.64"
16
+ # golang: "1.19"
17
+
18
+ # Build documentation in the "docs/" directory with Sphinx
19
+ sphinx:
20
+ configuration: docs/conf.py
21
+
22
+ # Optionally build your docs in additional formats such as PDF and ePub
23
+ # formats:
24
+ # - pdf
25
+ # - epub
26
+
27
+ # Optional but recommended, declare the Python requirements required
28
+ # to build your documentation
29
+ # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
30
+ python:
31
+ install:
32
+ - requirements: docs/requirements.txt
@@ -0,0 +1,12 @@
1
+ FROM continuumio/miniconda3
2
+
3
+ WORKDIR /src/earthkit-transforms
4
+
5
+ COPY environment.yml /src/earthkit-transforms/
6
+
7
+ RUN conda install -c conda-forge gcc python=3.10 \
8
+ && conda env update -n base -f environment.yml
9
+
10
+ COPY . /src/earthkit-transforms
11
+
12
+ RUN pip install --no-deps -e .