anemoi-utils 0.4.11__tar.gz → 0.4.12__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 anemoi-utils might be problematic. Click here for more details.
- anemoi_utils-0.4.12/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +46 -0
- anemoi_utils-0.4.12/.github/dependabot.yml +10 -0
- anemoi_utils-0.4.12/.github/labeler.yml +42 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.github/release.yml +5 -2
- anemoi_utils-0.4.12/.github/workflows/downstream-ci-hpc.yml +54 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.github/workflows/pr-conventional-commit.yml +2 -1
- anemoi_utils-0.4.12/.github/workflows/pr-label-conventional-commits.yml +45 -0
- anemoi_utils-0.4.12/.github/workflows/pr-label-file-based.yml +17 -0
- anemoi_utils-0.4.11/.github/workflows/label-public-pr.yml → anemoi_utils-0.4.12/.github/workflows/pr-label-public.yml +1 -1
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.github/workflows/python-publish.yml +1 -1
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.github/workflows/python-pull-request.yml +4 -7
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.github/workflows/readthedocs-pr-update.yml +2 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.github/workflows/release-please.yml +7 -3
- anemoi_utils-0.4.12/.gitignore +135 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.pre-commit-config.yaml +0 -2
- anemoi_utils-0.4.12/.release-please-config.json +19 -0
- anemoi_utils-0.4.12/.release-please-manifest.json +3 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/CHANGELOG.md +15 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/CONTRIBUTORS.md +2 -2
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/LICENSE +1 -1
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/PKG-INFO +2 -2
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/README.md +2 -2
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/_version.py +2 -2
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/commands/requests.py +6 -2
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/dates.py +13 -6
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi_utils.egg-info/PKG-INFO +2 -2
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi_utils.egg-info/SOURCES.txt +7 -3
- anemoi_utils-0.4.11/.github/workflows/ci.yml +0 -58
- anemoi_utils-0.4.11/.github/workflows/merge-main-into-develop.yml +0 -31
- anemoi_utils-0.4.11/.gitignore +0 -188
- anemoi_utils-0.4.11/.release-please-config.json +0 -19
- anemoi_utils-0.4.11/.release-please-manifest.json +0 -3
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.gitattributes +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.github/CODEOWNERS +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.github/ci-hpc-config.yml +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/.readthedocs.yaml +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/Makefile +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/_static/logo.png +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/_static/style.css +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/_templates/.gitkeep +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/conf.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/index.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/installing.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/modules/checkpoints.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/modules/config.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/modules/dates.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/modules/grib.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/modules/humanize.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/modules/provenance.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/modules/s3.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/docs/modules/text.rst +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/pyproject.toml +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/setup.cfg +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/__init__.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/__main__.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/caching.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/checkpoints.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/cli.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/commands/__init__.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/commands/config.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/compatibility.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/config.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/devtools.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/grib.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/grids.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/hindcasts.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/humanize.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/logs.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/mars/__init__.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/mars/mars.yaml +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/mars/requests.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/provenance.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/registry.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/remote/__init__.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/remote/s3.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/remote/ssh.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/s3.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/sanitise.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/sanitize.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/text.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi/utils/timer.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi_utils.egg-info/dependency_links.txt +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi_utils.egg-info/entry_points.txt +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi_utils.egg-info/requires.txt +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/src/anemoi_utils.egg-info/top_level.txt +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test-transfer-data/directory/b/c/x +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test-transfer-data/directory/b/y +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test-transfer-data/directory/exotic filename ;^/"'[=.,#]()/303/252/303/274/303/247/303/262/342/234/205.txt" +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test-transfer-data/directory/z +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test-transfer-data/file +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_caching.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_compatibility.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_dates.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_frequency.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_grids.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_provenance.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_remote.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_sanetise.py +0 -0
- {anemoi_utils-0.4.11 → anemoi_utils-0.4.12}/tests/test_utils.py +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
## Description
|
|
2
|
+
|
|
3
|
+
<!-- Provide a brief summary of the changes introduced in this pull request. -->
|
|
4
|
+
|
|
5
|
+
## Type of Change
|
|
6
|
+
|
|
7
|
+
- [ ] Bug fix (non-breaking change which fixes an issue)
|
|
8
|
+
- [ ] New feature (non-breaking change which adds functionality)
|
|
9
|
+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
|
10
|
+
- [ ] Documentation update
|
|
11
|
+
|
|
12
|
+
## Issue Number
|
|
13
|
+
|
|
14
|
+
<!-- Link the Issue number this change addresses, ideally in one of the "magic format" such as Closes #XYZ -->
|
|
15
|
+
|
|
16
|
+
<!-- Alternatively, explain the motivation behind the changes and the context in which they are being made. -->
|
|
17
|
+
|
|
18
|
+
## Code Compatibility
|
|
19
|
+
|
|
20
|
+
- [ ] I have performed a self-review of my code
|
|
21
|
+
|
|
22
|
+
### Code Performance and Testing
|
|
23
|
+
|
|
24
|
+
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
25
|
+
- [ ] I ran the [complete Pytest test](https://anemoi.readthedocs.io/projects/training/en/latest/dev/testing.html) suite locally, and they pass
|
|
26
|
+
|
|
27
|
+
<!-- In case this affects the model sharding or other specific components please describe these here. -->
|
|
28
|
+
|
|
29
|
+
### Dependencies
|
|
30
|
+
|
|
31
|
+
- [ ] I have ensured that the code is still pip-installable after the changes and runs
|
|
32
|
+
- [ ] I have tested that new dependencies themselves are pip-installable.
|
|
33
|
+
|
|
34
|
+
<!-- List any new dependencies that are required for this change and the justification to add them. -->
|
|
35
|
+
|
|
36
|
+
### Documentation
|
|
37
|
+
|
|
38
|
+
- [ ] My code follows the style guidelines of this project
|
|
39
|
+
- [ ] I have updated the documentation and docstrings to reflect the changes
|
|
40
|
+
- [ ] I have added comments to my code, particularly in hard-to-understand areas
|
|
41
|
+
|
|
42
|
+
<!-- Describe any major updates to the documentation -->
|
|
43
|
+
|
|
44
|
+
## Additional Notes
|
|
45
|
+
|
|
46
|
+
<!-- Include any additional information, caveats, or considerations that the reviewer should be aware of. -->
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# This is the configuration file for the labeler action.
|
|
2
|
+
# It assigns labels to pull requests based on the files changed in the PR.
|
|
3
|
+
# See more here: https://github.com/actions/labeler
|
|
4
|
+
dependencies:
|
|
5
|
+
- changed-files:
|
|
6
|
+
- any-glob-to-any-file:
|
|
7
|
+
- "**/requirements.txt"
|
|
8
|
+
- "**/setup.py"
|
|
9
|
+
- "**/pyproject.toml"
|
|
10
|
+
- "**/Pipfile"
|
|
11
|
+
- "**/Pipfile.lock"
|
|
12
|
+
- "**/requirements/*.txt"
|
|
13
|
+
- "**/requirements/*.in"
|
|
14
|
+
|
|
15
|
+
documentation:
|
|
16
|
+
- changed-files:
|
|
17
|
+
- any-glob-to-any-file:
|
|
18
|
+
- "**/docs/**/*"
|
|
19
|
+
- "*.md"
|
|
20
|
+
- "*.rst"
|
|
21
|
+
|
|
22
|
+
config:
|
|
23
|
+
- changed-files:
|
|
24
|
+
- any-glob-to-any-file:
|
|
25
|
+
- "**/src/**/config/**/*"
|
|
26
|
+
|
|
27
|
+
CI/CD:
|
|
28
|
+
- changed-files:
|
|
29
|
+
- any-glob-to-any-file:
|
|
30
|
+
- "**/.pre-commit-config.yaml"
|
|
31
|
+
- ".github/**/*"
|
|
32
|
+
- "tox.ini"
|
|
33
|
+
- ".coveragerc"
|
|
34
|
+
|
|
35
|
+
tests:
|
|
36
|
+
- changed-files:
|
|
37
|
+
- any-glob-to-any-file:
|
|
38
|
+
- "**/tests/**/*"
|
|
39
|
+
- "**/test/**/*"
|
|
40
|
+
- "**/test_*.py"
|
|
41
|
+
- "**/test.py"
|
|
42
|
+
- "**/conftest.py"
|
|
@@ -11,10 +11,13 @@ changelog:
|
|
|
11
11
|
categories:
|
|
12
12
|
- title: Breaking Changes 🛠
|
|
13
13
|
labels:
|
|
14
|
-
- breaking
|
|
14
|
+
- "breaking change"
|
|
15
15
|
- title: Exciting New Features 🎉
|
|
16
16
|
labels:
|
|
17
17
|
- enhancement
|
|
18
|
-
- title:
|
|
18
|
+
- title: Config Changes 📑
|
|
19
|
+
labels:
|
|
20
|
+
- config
|
|
21
|
+
- title: Other Changes 🔗
|
|
19
22
|
labels:
|
|
20
23
|
- "*"
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# This workflow triggers tests on dependent packages.
|
|
2
|
+
# The dependency tree itself is defined in ecmwf-actions/downstream-ci/
|
|
3
|
+
name: Test downstream dependent packages on HPC
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
# Trigger the workflow on push to main or develop, except tag creation
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- 'main'
|
|
10
|
+
- 'develop'
|
|
11
|
+
tags-ignore:
|
|
12
|
+
- '**'
|
|
13
|
+
paths-ignore:
|
|
14
|
+
- "docs/**"
|
|
15
|
+
- "CHANGELOG.md"
|
|
16
|
+
- "README.md"
|
|
17
|
+
|
|
18
|
+
# Trigger the workflow on pull request
|
|
19
|
+
pull_request:
|
|
20
|
+
paths-ignore:
|
|
21
|
+
- "docs/**"
|
|
22
|
+
- "CHANGELOG.md"
|
|
23
|
+
- "README.md"
|
|
24
|
+
|
|
25
|
+
# Trigger the workflow manually
|
|
26
|
+
workflow_dispatch: ~
|
|
27
|
+
|
|
28
|
+
# Trigger after public PR approved for CI
|
|
29
|
+
pull_request_target:
|
|
30
|
+
types: [labeled]
|
|
31
|
+
paths-ignore:
|
|
32
|
+
- "docs/**"
|
|
33
|
+
- "CHANGELOG.md"
|
|
34
|
+
- "README.md"
|
|
35
|
+
|
|
36
|
+
jobs:
|
|
37
|
+
# Run CI including downstream packages on self-hosted runners
|
|
38
|
+
downstream-ci:
|
|
39
|
+
name: downstream-ci
|
|
40
|
+
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
|
|
41
|
+
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main
|
|
42
|
+
with:
|
|
43
|
+
anemoi-utils: ecmwf/anemoi-utils@${{ github.event.pull_request.head.sha || github.sha }}
|
|
44
|
+
codecov_upload: true
|
|
45
|
+
secrets: inherit
|
|
46
|
+
|
|
47
|
+
# Build downstream packages on HPC
|
|
48
|
+
downstream-ci-hpc:
|
|
49
|
+
name: downstream-ci-hpc
|
|
50
|
+
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
|
|
51
|
+
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci-hpc.yml@main
|
|
52
|
+
with:
|
|
53
|
+
anemoi-utils: ecmwf/anemoi-utils@${{ github.event.pull_request.head.sha || github.sha }}
|
|
54
|
+
secrets: inherit
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# This workflow assigns labels to a pull request based on the Conventional Commits format.
|
|
2
|
+
# This is necessary for release-please to work properly.
|
|
3
|
+
name: "[Pull Request] Label Conventional Commits"
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
types:
|
|
9
|
+
[opened, reopened, labeled, unlabeled]
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
assign-labels:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
name: Assign labels in pull request
|
|
15
|
+
if: github.event.pull_request.merged == false
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v3
|
|
18
|
+
- name: Assign labels from Conventional Commits
|
|
19
|
+
id: action-assign-labels
|
|
20
|
+
uses: mauroalderete/action-assign-labels@v1
|
|
21
|
+
with:
|
|
22
|
+
pull-request-number: ${{ github.event.pull_request.number }}
|
|
23
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
24
|
+
conventional-commits: |
|
|
25
|
+
conventional-commits:
|
|
26
|
+
- type: 'fix'
|
|
27
|
+
nouns: ['FIX', 'Fix', 'fix', 'FIXED', 'Fixed', 'fixed']
|
|
28
|
+
labels: ['bug']
|
|
29
|
+
- type: 'feature'
|
|
30
|
+
nouns: ['FEATURE', 'Feature', 'feature', 'FEAT', 'Feat', 'feat']
|
|
31
|
+
labels: ['enhancement']
|
|
32
|
+
- type: 'breaking_change'
|
|
33
|
+
nouns: ['BREAKING CHANGE', 'BREAKING', 'MAJOR']
|
|
34
|
+
labels: ['breaking change']
|
|
35
|
+
- type: 'documentation'
|
|
36
|
+
nouns: ['doc','docs','docu','document','documentation']
|
|
37
|
+
labels: ['documentation']
|
|
38
|
+
- type: 'build'
|
|
39
|
+
nouns: ['build','rebuild','ci']
|
|
40
|
+
labels: ['CI/CD']
|
|
41
|
+
- type: 'config'
|
|
42
|
+
nouns: ['config', 'conf', 'configuration']
|
|
43
|
+
labels: ['config']
|
|
44
|
+
maintain-labels-not-matched: false
|
|
45
|
+
apply-changes: true
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# This workflow assigns labels to a pull request based on the files changed in the PR.
|
|
2
|
+
# The labels are defined in the `.github/labels.yml` file.
|
|
3
|
+
name: "[Pull Request] Label File-based"
|
|
4
|
+
on:
|
|
5
|
+
pull_request_target:
|
|
6
|
+
types: [opened, synchronize]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
pull-requests: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
labeler:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- name: Assign labels from file changes
|
|
17
|
+
uses: actions/labeler@v5
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# This workflow will upload a Python Package using Twine when a release is created
|
|
2
2
|
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
|
|
3
3
|
|
|
4
|
-
name: Upload Python Package
|
|
4
|
+
name: Upload Python Package to PyPI
|
|
5
5
|
|
|
6
6
|
on:
|
|
7
7
|
release:
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
# This workflow
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
name: Test PR
|
|
1
|
+
# This workflow runs pre-commit checks and pytest tests against multiple platforms and Python versions.
|
|
2
|
+
name: Code Quality checks and Testing
|
|
5
3
|
|
|
6
4
|
on:
|
|
7
5
|
pull_request:
|
|
8
6
|
types: [opened, synchronize, reopened]
|
|
9
7
|
push:
|
|
10
8
|
branches:
|
|
11
|
-
-
|
|
9
|
+
- main
|
|
12
10
|
schedule:
|
|
13
11
|
- cron: "9 2 * * 0" # at 9:02 on sunday
|
|
14
12
|
|
|
15
|
-
|
|
16
13
|
jobs:
|
|
17
14
|
quality:
|
|
18
15
|
uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-precommit-run.yml@v2
|
|
@@ -22,7 +19,7 @@ jobs:
|
|
|
22
19
|
checks:
|
|
23
20
|
strategy:
|
|
24
21
|
matrix:
|
|
25
|
-
python-version: ["3.11"]
|
|
22
|
+
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
26
23
|
uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
|
|
27
24
|
with:
|
|
28
25
|
python-version: ${{ matrix.python-version }}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
# This workflow uses an action to run Release Please to create a release PR.
|
|
2
|
+
# It is governed by the config and manifest in the root of the repo.
|
|
3
|
+
# For more information see: https://github.com/googleapis/release-please
|
|
1
4
|
name: Run Release Please
|
|
2
5
|
on:
|
|
3
6
|
push:
|
|
4
7
|
branches:
|
|
5
|
-
-
|
|
8
|
+
- main
|
|
9
|
+
- hotfix/*
|
|
6
10
|
|
|
7
11
|
permissions:
|
|
8
12
|
contents: write
|
|
@@ -20,5 +24,5 @@ jobs:
|
|
|
20
24
|
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
|
|
21
25
|
# optional. customize path to .release-please-config.json
|
|
22
26
|
config-file: .release-please-config.json
|
|
23
|
-
# Currently releases are done
|
|
24
|
-
|
|
27
|
+
# Currently releases are done from main
|
|
28
|
+
target-branch: ${{ github.ref_name }}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
__pypackages__/
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
build/
|
|
11
|
+
develop-eggs/
|
|
12
|
+
dist/
|
|
13
|
+
downloads/
|
|
14
|
+
eggs/
|
|
15
|
+
.eggs/
|
|
16
|
+
lib/
|
|
17
|
+
lib64/
|
|
18
|
+
parts/
|
|
19
|
+
sdist/
|
|
20
|
+
var/
|
|
21
|
+
wheels/
|
|
22
|
+
share/python-wheels/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
MANIFEST
|
|
27
|
+
|
|
28
|
+
# Testing and coverage
|
|
29
|
+
htmlcov/
|
|
30
|
+
.tox/
|
|
31
|
+
.nox/
|
|
32
|
+
.coverage
|
|
33
|
+
.coverage.*
|
|
34
|
+
.cache
|
|
35
|
+
nosetests.xml
|
|
36
|
+
coverage.xml
|
|
37
|
+
*.cover
|
|
38
|
+
*.py,cover
|
|
39
|
+
.hypothesis/
|
|
40
|
+
.pytest_cache/
|
|
41
|
+
cover/
|
|
42
|
+
|
|
43
|
+
# Documentation
|
|
44
|
+
docs/_build/
|
|
45
|
+
/site
|
|
46
|
+
*.mo
|
|
47
|
+
*.pot
|
|
48
|
+
|
|
49
|
+
# Environments
|
|
50
|
+
.env
|
|
51
|
+
.envrc
|
|
52
|
+
.venv
|
|
53
|
+
env/
|
|
54
|
+
venv/
|
|
55
|
+
ENV/
|
|
56
|
+
env.bak/
|
|
57
|
+
venv.bak/
|
|
58
|
+
|
|
59
|
+
# IDEs
|
|
60
|
+
.idea/
|
|
61
|
+
.spyderproject
|
|
62
|
+
.spyproject
|
|
63
|
+
.ropeproject
|
|
64
|
+
.vscode/
|
|
65
|
+
*.code-workspace
|
|
66
|
+
*.sublime-project
|
|
67
|
+
*.sublime-workspace
|
|
68
|
+
|
|
69
|
+
# Jupyter Notebook
|
|
70
|
+
.ipynb_checkpoints
|
|
71
|
+
|
|
72
|
+
# Type checking
|
|
73
|
+
.mypy_cache/
|
|
74
|
+
.dmypy.json
|
|
75
|
+
dmypy.json
|
|
76
|
+
.pyre/
|
|
77
|
+
.pytype/
|
|
78
|
+
|
|
79
|
+
# Data files
|
|
80
|
+
*.grib
|
|
81
|
+
*.onnx
|
|
82
|
+
*.ckpt
|
|
83
|
+
*.npy
|
|
84
|
+
*.npz
|
|
85
|
+
*.zarr/
|
|
86
|
+
*.nc
|
|
87
|
+
*.h5
|
|
88
|
+
*.hdf5
|
|
89
|
+
*.pkl
|
|
90
|
+
*.parquet
|
|
91
|
+
*.csv
|
|
92
|
+
*.xlsx
|
|
93
|
+
*.xls
|
|
94
|
+
|
|
95
|
+
# ML artifacts
|
|
96
|
+
wandb/
|
|
97
|
+
mlruns/
|
|
98
|
+
lightning_logs/
|
|
99
|
+
*.ckpt
|
|
100
|
+
*.pt
|
|
101
|
+
*.pth
|
|
102
|
+
runs/
|
|
103
|
+
checkpoints/
|
|
104
|
+
|
|
105
|
+
# Temporary and system files
|
|
106
|
+
*.swp
|
|
107
|
+
*.download
|
|
108
|
+
*.out
|
|
109
|
+
*.sync
|
|
110
|
+
*.dot
|
|
111
|
+
*.tmp
|
|
112
|
+
*.log
|
|
113
|
+
*.log.*
|
|
114
|
+
.DS_Store
|
|
115
|
+
~*
|
|
116
|
+
tmp/
|
|
117
|
+
temp/
|
|
118
|
+
logs/
|
|
119
|
+
_dev/
|
|
120
|
+
outputs/
|
|
121
|
+
*tmp_data/
|
|
122
|
+
|
|
123
|
+
# Project specific
|
|
124
|
+
?
|
|
125
|
+
?.*
|
|
126
|
+
foo
|
|
127
|
+
bar
|
|
128
|
+
~$images.pptx
|
|
129
|
+
test.py
|
|
130
|
+
test.ipynb
|
|
131
|
+
cutout.png
|
|
132
|
+
_version.py
|
|
133
|
+
*.to_upload
|
|
134
|
+
tempCodeRunnerFile.python
|
|
135
|
+
Untitled-*.py
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"release-type": "python",
|
|
3
|
+
"bump-minor-pre-major": true,
|
|
4
|
+
"bump-patch-for-minor-pre-major": true,
|
|
5
|
+
"separate-pull-requests": true,
|
|
6
|
+
"always-update": true,
|
|
7
|
+
"changelog-type": "github",
|
|
8
|
+
"include-component-in-tag": false,
|
|
9
|
+
"include-v-in-tag": false,
|
|
10
|
+
"pull-request-title-pattern": "chore${scope}: Preparing Next Release for ${component} ${version}",
|
|
11
|
+
"pull-request-header": ":robot: Automated Release PR\n\nThis PR was created by `release-please` to prepare the next release. Once merged:\n\n1. A new version tag will be created\n2. A GitHub release will be published\n3. The changelog will be updated\n\nChanges to be included in the next release:",
|
|
12
|
+
"pull-request-footer": "> [!IMPORTANT]\n> :warning: Merging this PR will:\n> - Create a new release\n> - Trigger deployment pipelines\n> - Update package versions\n\n **Before merging:**\n - Ensure all tests pass\n - Review the changelog carefully\n - Get required approvals\n\n [Release-please documentation](https://github.com/googleapis/release-please)",
|
|
13
|
+
"packages": {
|
|
14
|
+
".": {
|
|
15
|
+
"package-name": "anemoi-utils"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
|
|
19
|
+
}
|
|
@@ -8,6 +8,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
8
8
|
Please add your functional changes to the appropriate section in the PR.
|
|
9
9
|
Keep it human-readable, your future self will thank you!
|
|
10
10
|
|
|
11
|
+
## 0.4.12 (2025-01-30)
|
|
12
|
+
|
|
13
|
+
<!-- Release notes generated using configuration in .github/release.yml at main -->
|
|
14
|
+
|
|
15
|
+
## What's Changed
|
|
16
|
+
### Other Changes 🔗
|
|
17
|
+
* feat: better support for timedelta larger than 24h by @floriankrb in https://github.com/ecmwf/anemoi-utils/pull/81
|
|
18
|
+
* feat(requests): read input from stdin by @gmertes in https://github.com/ecmwf/anemoi-utils/pull/82
|
|
19
|
+
* chore: synced file(s) with ecmwf-actions/reusable-workflows by @DeployDuck in https://github.com/ecmwf/anemoi-utils/pull/80
|
|
20
|
+
|
|
21
|
+
## New Contributors
|
|
22
|
+
* @DeployDuck made their first contribution in https://github.com/ecmwf/anemoi-utils/pull/80
|
|
23
|
+
|
|
24
|
+
**Full Changelog**: https://github.com/ecmwf/anemoi-utils/compare/0.4.11...0.4.12
|
|
25
|
+
|
|
11
26
|
## 0.4.11 (2025-01-17)
|
|
12
27
|
|
|
13
28
|
<!-- Release notes generated using configuration in .github/release.yml at develop -->
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## How to Contribute
|
|
2
2
|
|
|
3
|
-
Please see the [read the docs](https://anemoi
|
|
3
|
+
Please see the [read the docs](https://anemoi.readthedocs.io/en/latest/dev/contributing.html).
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
## Contributors
|
|
@@ -10,4 +10,4 @@ Thank you to all the wonderful people who have contributed to Anemoi. Contributi
|
|
|
10
10
|
|
|
11
11
|
## Contributing Organisations
|
|
12
12
|
|
|
13
|
-
Significant contributions have been made by the following organisations: [DWD](https://www.dwd.de/), [MET Norway](https://www.met.no/), [MeteoSwiss](https://www.meteoswiss.admin.ch/), [RMI](https://www.meteo.be/) & [ECMWF](https://www.ecmwf.int/)
|
|
13
|
+
Significant contributions have been made by the following organisations: [DWD](https://www.dwd.de/), [FMI](https://www.ilmatieteenlaitos.fi/), [KNMI](https://www.knmi.nl), [MET Norway](https://www.met.no/), [MeteoSwiss](https://www.meteoswiss.admin.ch/), [RMI](https://www.meteo.be/) & [ECMWF](https://www.ecmwf.int/)
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2024-2025 Anemoi Contributors
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: anemoi-utils
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.12
|
|
4
4
|
Summary: A package to hold various functions to support training of ML models on ECMWF data.
|
|
5
5
|
Author-email: "European Centre for Medium-Range Weather Forecasts (ECMWF)" <software.support@ecmwf.int>
|
|
6
6
|
License: Apache License
|
|
@@ -191,7 +191,7 @@ License: Apache License
|
|
|
191
191
|
same "printed page" as the copyright notice for easier
|
|
192
192
|
identification within third-party archives.
|
|
193
193
|
|
|
194
|
-
Copyright
|
|
194
|
+
Copyright 2024-2025 Anemoi Contributors
|
|
195
195
|
|
|
196
196
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
197
197
|
you may not use this file except in compliance with the License.
|
|
@@ -5,7 +5,7 @@ This project is **BETA** and will be **Experimental** for the foreseeable future
|
|
|
5
5
|
Interfaces and functionality are likely to change, and the project itself may be scrapped.
|
|
6
6
|
**DO NOT** use this software in any project/software that is operational.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
|
|
10
10
|
## Documentation
|
|
11
11
|
|
|
@@ -22,7 +22,7 @@ $ pip install anemoi-utils
|
|
|
22
22
|
## License
|
|
23
23
|
|
|
24
24
|
```
|
|
25
|
-
Copyright 2024, Anemoi
|
|
25
|
+
Copyright 2024-2025, Anemoi Contributors.
|
|
26
26
|
|
|
27
27
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
28
28
|
you may not use this file except in compliance with the License.
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
# nor does it submit to any jurisdiction.
|
|
7
7
|
|
|
8
8
|
import json
|
|
9
|
+
import sys
|
|
9
10
|
|
|
10
11
|
from anemoi.utils.mars.requests import print_request
|
|
11
12
|
|
|
@@ -22,8 +23,11 @@ class Requests(Command):
|
|
|
22
23
|
command_parser.add_argument("--only-one-field", action="store_true")
|
|
23
24
|
|
|
24
25
|
def run(self, args):
|
|
25
|
-
|
|
26
|
-
requests = json.load(
|
|
26
|
+
if args.input == "-":
|
|
27
|
+
requests = json.load(sys.stdin)
|
|
28
|
+
else:
|
|
29
|
+
with open(args.input) as f:
|
|
30
|
+
requests = json.load(f)
|
|
27
31
|
|
|
28
32
|
if args.only_one_field:
|
|
29
33
|
for r in requests:
|
|
@@ -155,12 +155,19 @@ def as_timedelta(frequency) -> datetime.timedelta:
|
|
|
155
155
|
unit = {"h": "hours", "d": "days", "s": "seconds", "m": "minutes"}[unit]
|
|
156
156
|
return datetime.timedelta(**{unit: v})
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
158
|
+
if re.match(r"^\d+:\d+(:\d+)?$", frequency):
|
|
159
|
+
m = frequency.split(":")
|
|
160
|
+
if len(m) == 2:
|
|
161
|
+
return datetime.timedelta(hours=int(m[0]), minutes=int(m[1]))
|
|
162
|
+
|
|
163
|
+
if len(m) == 3:
|
|
164
|
+
return datetime.timedelta(hours=int(m[0]), minutes=int(m[1]), seconds=int(m[2]))
|
|
165
|
+
|
|
166
|
+
if re.match(r"^\d+ days?, \d+:\d+:\d+$", frequency):
|
|
167
|
+
m = frequency.split(", ")
|
|
168
|
+
days = int(m[0].split()[0])
|
|
169
|
+
hms = m[1].split(":")
|
|
170
|
+
return datetime.timedelta(days=days, hours=int(hms[0]), minutes=int(hms[1]), seconds=int(hms[2]))
|
|
164
171
|
|
|
165
172
|
# ISO8601
|
|
166
173
|
try:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: anemoi-utils
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.12
|
|
4
4
|
Summary: A package to hold various functions to support training of ML models on ECMWF data.
|
|
5
5
|
Author-email: "European Centre for Medium-Range Weather Forecasts (ECMWF)" <software.support@ecmwf.int>
|
|
6
6
|
License: Apache License
|
|
@@ -191,7 +191,7 @@ License: Apache License
|
|
|
191
191
|
same "printed page" as the copyright notice for easier
|
|
192
192
|
identification within third-party archives.
|
|
193
193
|
|
|
194
|
-
Copyright
|
|
194
|
+
Copyright 2024-2025 Anemoi Contributors
|
|
195
195
|
|
|
196
196
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
197
197
|
you may not use this file except in compliance with the License.
|
|
@@ -11,11 +11,15 @@ README.md
|
|
|
11
11
|
pyproject.toml
|
|
12
12
|
.github/CODEOWNERS
|
|
13
13
|
.github/ci-hpc-config.yml
|
|
14
|
+
.github/dependabot.yml
|
|
15
|
+
.github/labeler.yml
|
|
14
16
|
.github/release.yml
|
|
15
|
-
.github/
|
|
16
|
-
.github/workflows/
|
|
17
|
-
.github/workflows/merge-main-into-develop.yml
|
|
17
|
+
.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
|
|
18
|
+
.github/workflows/downstream-ci-hpc.yml
|
|
18
19
|
.github/workflows/pr-conventional-commit.yml
|
|
20
|
+
.github/workflows/pr-label-conventional-commits.yml
|
|
21
|
+
.github/workflows/pr-label-file-based.yml
|
|
22
|
+
.github/workflows/pr-label-public.yml
|
|
19
23
|
.github/workflows/python-publish.yml
|
|
20
24
|
.github/workflows/python-pull-request.yml
|
|
21
25
|
.github/workflows/readthedocs-pr-update.yml
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
name: ci
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
# Trigger the workflow on push to master or develop, except tag creation
|
|
5
|
-
push:
|
|
6
|
-
branches:
|
|
7
|
-
- 'main'
|
|
8
|
-
- 'develop'
|
|
9
|
-
tags-ignore:
|
|
10
|
-
- '**'
|
|
11
|
-
paths:
|
|
12
|
-
- "src/**"
|
|
13
|
-
- "tests/**"
|
|
14
|
-
|
|
15
|
-
# Trigger the workflow on pull request
|
|
16
|
-
pull_request: ~
|
|
17
|
-
|
|
18
|
-
# Trigger the workflow manually installs
|
|
19
|
-
workflow_dispatch: ~
|
|
20
|
-
|
|
21
|
-
# Trigger after public PR approved for CI
|
|
22
|
-
pull_request_target:
|
|
23
|
-
types: [labeled]
|
|
24
|
-
|
|
25
|
-
jobs:
|
|
26
|
-
# Run CI including downstream packages on self-hosted runners
|
|
27
|
-
downstream-ci:
|
|
28
|
-
name: downstream-ci
|
|
29
|
-
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
|
|
30
|
-
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main
|
|
31
|
-
with:
|
|
32
|
-
anemoi-utils: ecmwf/anemoi-utils@${{ github.event.pull_request.head.sha || github.sha }}
|
|
33
|
-
codecov_upload: true
|
|
34
|
-
skip_matrix_jobs: |
|
|
35
|
-
gnu@debian-11
|
|
36
|
-
clang@rocky-8.6
|
|
37
|
-
gnu@debian-11
|
|
38
|
-
gnu@rocky-8.6
|
|
39
|
-
clang@rocky-8.6
|
|
40
|
-
gnu@fedora-37
|
|
41
|
-
secrets: inherit
|
|
42
|
-
|
|
43
|
-
# # Build downstream packages on HPC
|
|
44
|
-
# downstream-ci-hpc:
|
|
45
|
-
# name: downstream-ci-hpc
|
|
46
|
-
# if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
|
|
47
|
-
# uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main
|
|
48
|
-
# with:
|
|
49
|
-
# anemoi-utils: ecmwf/anemoi-utils@${{ github.event.pull_request.head.sha || github.sha }}
|
|
50
|
-
# codecov_upload: true
|
|
51
|
-
# skip_matrix_jobs: |
|
|
52
|
-
# gnu@debian-11
|
|
53
|
-
# clang@rocky-8.6
|
|
54
|
-
# gnu@debian-11
|
|
55
|
-
# gnu@rocky-8.6
|
|
56
|
-
# clang@rocky-8.6
|
|
57
|
-
# gnu@fedora-37
|
|
58
|
-
# secrets: inherit
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
name: Merge main into develop
|
|
2
|
-
on:
|
|
3
|
-
push:
|
|
4
|
-
branches:
|
|
5
|
-
- main
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
# Needed to read branches
|
|
10
|
-
contents: read
|
|
11
|
-
# Needed to create PR's
|
|
12
|
-
pull-requests: write
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
sync-branches:
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
steps:
|
|
18
|
-
- name: Checkout
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
- name: Set up Node
|
|
21
|
-
uses: actions/setup-node@v4
|
|
22
|
-
with:
|
|
23
|
-
node-version: 20
|
|
24
|
-
- name: Opening pull request
|
|
25
|
-
id: pull
|
|
26
|
-
uses: jdtx0/branch-sync@1.5.1
|
|
27
|
-
with:
|
|
28
|
-
GITHUB_TOKEN: ${{ secrets.REPO_SYNC_ACTION_PAT }}
|
|
29
|
-
FROM_BRANCH: "main"
|
|
30
|
-
TO_BRANCH: "develop"
|
|
31
|
-
PULL_REQUEST_AUTO_MERGE_METHOD: "merge"
|
anemoi_utils-0.4.11/.gitignore
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
# Byte-compiled / optimized / DLL files
|
|
2
|
-
__pycache__/
|
|
3
|
-
*.py[cod]
|
|
4
|
-
*$py.class
|
|
5
|
-
|
|
6
|
-
# C extensions
|
|
7
|
-
*.so
|
|
8
|
-
|
|
9
|
-
# Distribution / packaging
|
|
10
|
-
.Python
|
|
11
|
-
build/
|
|
12
|
-
develop-eggs/
|
|
13
|
-
dist/
|
|
14
|
-
downloads/
|
|
15
|
-
eggs/
|
|
16
|
-
.eggs/
|
|
17
|
-
lib/
|
|
18
|
-
lib64/
|
|
19
|
-
parts/
|
|
20
|
-
sdist/
|
|
21
|
-
var/
|
|
22
|
-
wheels/
|
|
23
|
-
share/python-wheels/
|
|
24
|
-
*.egg-info/
|
|
25
|
-
.installed.cfg
|
|
26
|
-
*.egg
|
|
27
|
-
MANIFEST
|
|
28
|
-
|
|
29
|
-
# PyInstaller
|
|
30
|
-
# Usually these files are written by a python script from a template
|
|
31
|
-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
-
*.manifest
|
|
33
|
-
*.spec
|
|
34
|
-
|
|
35
|
-
# Installer logs
|
|
36
|
-
pip-log.txt
|
|
37
|
-
pip-delete-this-directory.txt
|
|
38
|
-
|
|
39
|
-
# Unit test / coverage reports
|
|
40
|
-
htmlcov/
|
|
41
|
-
.tox/
|
|
42
|
-
.nox/
|
|
43
|
-
.coverage
|
|
44
|
-
.coverage.*
|
|
45
|
-
.cache
|
|
46
|
-
nosetests.xml
|
|
47
|
-
coverage.xml
|
|
48
|
-
*.cover
|
|
49
|
-
*.py,cover
|
|
50
|
-
.hypothesis/
|
|
51
|
-
.pytest_cache/
|
|
52
|
-
cover/
|
|
53
|
-
|
|
54
|
-
# Translations
|
|
55
|
-
*.mo
|
|
56
|
-
*.pot
|
|
57
|
-
|
|
58
|
-
# Django stuff:
|
|
59
|
-
*.log
|
|
60
|
-
local_settings.py
|
|
61
|
-
db.sqlite3
|
|
62
|
-
db.sqlite3-journal
|
|
63
|
-
|
|
64
|
-
# Flask stuff:
|
|
65
|
-
instance/
|
|
66
|
-
.webassets-cache
|
|
67
|
-
|
|
68
|
-
# Scrapy stuff:
|
|
69
|
-
.scrapy
|
|
70
|
-
|
|
71
|
-
# Sphinx documentation
|
|
72
|
-
docs/_build/
|
|
73
|
-
|
|
74
|
-
# PyBuilder
|
|
75
|
-
.pybuilder/
|
|
76
|
-
target/
|
|
77
|
-
|
|
78
|
-
# Jupyter Notebook
|
|
79
|
-
.ipynb_checkpoints
|
|
80
|
-
|
|
81
|
-
# IPython
|
|
82
|
-
profile_default/
|
|
83
|
-
ipython_config.py
|
|
84
|
-
|
|
85
|
-
# pyenv
|
|
86
|
-
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
-
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
-
# .python-version
|
|
89
|
-
|
|
90
|
-
# pipenv
|
|
91
|
-
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
-
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
-
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
-
# install all needed dependencies.
|
|
95
|
-
#Pipfile.lock
|
|
96
|
-
|
|
97
|
-
# poetry
|
|
98
|
-
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
99
|
-
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
-
# commonly ignored for libraries.
|
|
101
|
-
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
102
|
-
#poetry.lock
|
|
103
|
-
|
|
104
|
-
# pdm
|
|
105
|
-
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
106
|
-
#pdm.lock
|
|
107
|
-
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
108
|
-
# in version control.
|
|
109
|
-
# https://pdm.fming.dev/#use-with-ide
|
|
110
|
-
.pdm.toml
|
|
111
|
-
|
|
112
|
-
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
113
|
-
__pypackages__/
|
|
114
|
-
|
|
115
|
-
# Celery stuff
|
|
116
|
-
celerybeat-schedule
|
|
117
|
-
celerybeat.pid
|
|
118
|
-
|
|
119
|
-
# SageMath parsed files
|
|
120
|
-
*.sage.py
|
|
121
|
-
|
|
122
|
-
# Environments
|
|
123
|
-
.env
|
|
124
|
-
.envrc
|
|
125
|
-
.venv
|
|
126
|
-
env/
|
|
127
|
-
venv/
|
|
128
|
-
ENV/
|
|
129
|
-
env.bak/
|
|
130
|
-
venv.bak/
|
|
131
|
-
|
|
132
|
-
# Spyder project settings
|
|
133
|
-
.spyderproject
|
|
134
|
-
.spyproject
|
|
135
|
-
|
|
136
|
-
# Rope project settings
|
|
137
|
-
.ropeproject
|
|
138
|
-
|
|
139
|
-
# mkdocs documentation
|
|
140
|
-
/site
|
|
141
|
-
|
|
142
|
-
# mypy
|
|
143
|
-
.mypy_cache/
|
|
144
|
-
.dmypy.json
|
|
145
|
-
dmypy.json
|
|
146
|
-
|
|
147
|
-
# Pyre type checker
|
|
148
|
-
.pyre/
|
|
149
|
-
|
|
150
|
-
# pytype static type analyzer
|
|
151
|
-
.pytype/
|
|
152
|
-
|
|
153
|
-
# Cython debug symbols
|
|
154
|
-
cython_debug/
|
|
155
|
-
|
|
156
|
-
# PyCharm
|
|
157
|
-
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
158
|
-
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
159
|
-
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
160
|
-
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
161
|
-
#.idea/
|
|
162
|
-
|
|
163
|
-
*.grib
|
|
164
|
-
*.onnx
|
|
165
|
-
*.ckpt
|
|
166
|
-
*.swp
|
|
167
|
-
*.npy
|
|
168
|
-
*.download
|
|
169
|
-
?
|
|
170
|
-
?.*
|
|
171
|
-
foo
|
|
172
|
-
bar
|
|
173
|
-
*.grib
|
|
174
|
-
*.nc
|
|
175
|
-
*.npz
|
|
176
|
-
*.zarr/
|
|
177
|
-
~$images.pptx
|
|
178
|
-
test.py
|
|
179
|
-
cutout.png
|
|
180
|
-
*.out
|
|
181
|
-
|
|
182
|
-
_build/
|
|
183
|
-
?
|
|
184
|
-
?.*
|
|
185
|
-
~*
|
|
186
|
-
*.sync
|
|
187
|
-
_version.py
|
|
188
|
-
*.code-workspace
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"release-type": "python",
|
|
3
|
-
"bump-minor-pre-major": true,
|
|
4
|
-
"bump-patch-for-minor-pre-major": true,
|
|
5
|
-
"separate-pull-requests": true,
|
|
6
|
-
"always-update": true,
|
|
7
|
-
"changelog-type": "github",
|
|
8
|
-
"include-component-in-tag": false,
|
|
9
|
-
"include-v-in-tag": false,
|
|
10
|
-
"pull-request-title-pattern": "chore${scope}: Preparing Next Release for ${component} ${version}",
|
|
11
|
-
"pull-request-header": ":robot:This is an automated PR using `release-please`.\n\nThe following changes will be included in the release, once the next version is triggered.\n\nContent of the next Release",
|
|
12
|
-
"pull-request-footer": "> [!IMPORTANT]\n> Merging this PR creates a release. Please refer to the [documentation](https://github.com/googleapis/release-please) if you're unsure.",
|
|
13
|
-
"packages": {
|
|
14
|
-
".": {
|
|
15
|
-
"package-name": "anemoi-utils"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
|
|
19
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|