-
Notifications
You must be signed in to change notification settings - Fork 137
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into pr/andrew-s28/1672
- Loading branch information
Showing
27 changed files
with
421 additions
and
212 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: "monthly" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,11 +5,13 @@ on: | |
- "master" | ||
- "test-me/*" | ||
pull_request: | ||
branches: | ||
- "*" | ||
schedule: | ||
- cron: "0 7 * * 1" # Run every Monday at 7:00 UTC | ||
|
||
concurrency: | ||
group: branch-${{ github.head_ref }} | ||
cancel-in-progress: true | ||
|
||
defaults: | ||
run: | ||
shell: bash -el {0} | ||
|
@@ -30,7 +32,7 @@ jobs: | |
python-version: "3.11" | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
uses: actions/checkout@v4 | ||
- name: Setup Conda and parcels | ||
uses: ./.github/actions/install-parcels | ||
with: | ||
|
@@ -41,15 +43,16 @@ jobs: | |
coverage run -m pytest -v -s --html=${{ matrix.os }}_${{ matrix.python-version }}_unit_test_report.html --self-contained-html tests | ||
coverage xml | ||
- name: Codecov | ||
uses: codecov/[email protected] | ||
uses: codecov/[email protected] | ||
env: | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
flags: unit-tests | ||
- name: Upload test results | ||
if: ${{ always() }} # Always run this step, even if tests fail | ||
uses: actions/upload-artifact@v3.1.2 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: Unittest report | ||
name: Unittest report ${{ matrix.os }}-${{ matrix.python-version }} | ||
path: ${{ matrix.os }}_${{ matrix.python-version }}_unit_test_report.html | ||
integration-test: | ||
name: "py${{ matrix.python-version }} | ${{ matrix.os }} | integration tests" | ||
|
@@ -61,7 +64,7 @@ jobs: | |
python-version: ["3.12"] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
uses: actions/checkout@v4 | ||
- name: Setup Conda and parcels | ||
uses: ./.github/actions/install-parcels | ||
with: | ||
|
@@ -71,13 +74,48 @@ jobs: | |
coverage run -m pytest -v -s --nbval-lax -k "not documentation" --html="${{ matrix.os }}_integration_test_report.html" --self-contained-html docs/examples | ||
coverage xml | ||
- name: Codecov | ||
uses: codecov/[email protected] | ||
uses: codecov/[email protected] | ||
env: | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
flags: integration-tests | ||
- name: Upload test results | ||
if: ${{ always() }} # Always run this step, even if tests fail | ||
uses: actions/upload-artifact@v3.1.2 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: Integration test report | ||
name: Integration test report ${{ matrix.os }} | ||
path: ${{ matrix.os }}_integration_test_report.html | ||
merge-test-artifacts: | ||
runs-on: ubuntu-latest | ||
needs: | ||
- unit-test | ||
- integration-test | ||
steps: | ||
- name: Merge Artifacts | ||
uses: actions/upload-artifact/merge@v4 | ||
with: | ||
name: Testing reports | ||
pattern: "* report *" | ||
typechecking: | ||
name: mypy | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Setup Conda and parcels | ||
uses: ./.github/actions/install-parcels | ||
with: | ||
environment-file: environment.yml | ||
- run: conda install lxml # dep for report generation | ||
- name: Typechecking | ||
run: | | ||
mypy --install-types --non-interactive parcels --cobertura-xml-report mypy_report | ||
- name: Upload mypy coverage to Codecov | ||
uses: codecov/[email protected] | ||
if: ${{ always() }} # Upload even on error of mypy | ||
env: | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
with: | ||
file: mypy_report/cobertura.xml | ||
flags: mypy | ||
fail_ci_if_error: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
"""Import helpers for compatability between installations.""" | ||
|
||
__all__ = ["MPI", "KMeans"] | ||
|
||
from typing import Any | ||
|
||
MPI: Any | None = None | ||
KMeans: Any | None = None | ||
|
||
try: | ||
from mpi4py import MPI # type: ignore[no-redef] | ||
except ModuleNotFoundError: | ||
pass | ||
|
||
# KMeans is used in MPI. sklearn not installed by default | ||
try: | ||
from sklearn.cluster import KMeans # type: ignore[no-redef] | ||
except ModuleNotFoundError: | ||
pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
""" | ||
Typing support for Parcels. | ||
This module contains type aliases used throughout Parcels as well as functions that are | ||
used for runtime parameter validation (to ensure users are only using the right params). | ||
""" | ||
|
||
import ast | ||
import datetime | ||
import os | ||
from typing import Callable, Literal | ||
|
||
|
||
class ParcelsAST(ast.AST): | ||
ccode: str | ||
|
||
|
||
InterpMethodOption = Literal[ | ||
"linear", | ||
"nearest", | ||
"freeslip", | ||
"partialslip", | ||
"bgrid_velocity", | ||
"bgrid_w_velocity", | ||
"cgrid_velocity", | ||
"linear_invdist_land_tracer", | ||
"nearest", | ||
"bgrid_tracer", | ||
"cgrid_tracer", | ||
] # corresponds with `tracer_interp_method` | ||
InterpMethod = ( | ||
InterpMethodOption | dict[str, InterpMethodOption] | ||
) # corresponds with `interp_method` (which can also be dict mapping field names to method) | ||
PathLike = str | os.PathLike | ||
Mesh = Literal["spherical", "flat"] # corresponds with `mesh` | ||
VectorType = Literal["3D", "2D"] | None # corresponds with `vector_type` | ||
ChunkMode = Literal["auto", "specific", "failsafe"] # corresponds with `chunk_mode` | ||
GridIndexingType = Literal["pop", "mom5", "mitgcm", "nemo"] # corresponds with `grid_indexing_type` | ||
UpdateStatus = Literal["not_updated", "first_updated", "updated"] # corresponds with `update_status` | ||
TimePeriodic = float | datetime.timedelta | Literal[False] # corresponds with `update_status` | ||
NetcdfEngine = Literal["netcdf4", "xarray", "scipy"] | ||
|
||
|
||
KernelFunction = Callable[..., None] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.