Skip to content

Add ci additional #143

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Sep 19, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 118 additions & 0 deletions .github/workflows/ci-additional.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: CI Additional
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
workflow_dispatch: # allows you to trigger manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
detect-ci-trigger:
name: detect ci trigger
runs-on: ubuntu-latest
if: |
github.repository == 'xarray-contrib/flox'
&& (github.event_name == 'push' || github.event_name == 'pull_request')
outputs:
triggered: ${{ steps.detect-trigger.outputs.trigger-found }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- uses: xarray-contrib/[email protected]
id: detect-trigger
with:
keyword: "[skip-ci]"

doctest:
name: Doctests
runs-on: "ubuntu-latest"
needs: detect-ci-trigger
if: needs.detect-ci-trigger.outputs.triggered == 'false'
defaults:
run:
shell: bash -l {0}

env:
CONDA_ENV_FILE: ci/environment.yml
PYTHON_VERSION: "3.10"

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all branches and tags.

- name: set environment variables
run: |
echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV

- name: Setup micromamba
uses: mamba-org/provision-with-micromamba@34071ca7df4983ccd272ed0d3625818b27b70dcc
with:
environment-file: ${{env.CONDA_ENV_FILE}}
environment-name: flox-tests
extra-specs: |
python=${{env.PYTHON_VERSION}}
cache-env: true
cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"

- name: Install flox
run: |
python -m pip install --no-deps -e .
- name: Version info
run: |
conda info -a
conda list
- name: Run doctests
run: |
python -m pytest --doctest-modules flox --ignore flox/tests

# mypy:
# name: Mypy
# runs-on: "ubuntu-latest"
# needs: detect-ci-trigger
# if: needs.detect-ci-trigger.outputs.triggered == 'false'
# defaults:
# run:
# shell: bash -l {0}
# env:
# CONDA_ENV_FILE: ci/environment.yml
# PYTHON_VERSION: "3.10"

# steps:
# - uses: actions/checkout@v3
# with:
# fetch-depth: 0 # Fetch all history for all branches and tags.

# - name: set environment variables
# run: |
# echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
# - name: Setup micromamba
# uses: mamba-org/provision-with-micromamba@34071ca7df4983ccd272ed0d3625818b27b70dcc
# with:
# environment-file: ${{env.CONDA_ENV_FILE}}
# environment-name: xarray-tests
# extra-specs: |
# python=${{env.PYTHON_VERSION}}
# cache-env: true
# cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"
# - name: Install xarray
# run: |
# python -m pip install --no-deps -e .
# - name: Version info
# run: |
# conda info -a
# conda list
# - name: Install mypy
# run: |
# python -m pip install mypy

# - name: Run mypy
# run: |
# python -m mypy --install-types --non-interactive
1 change: 1 addition & 0 deletions ci/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ dependencies:
- netcdf4
- pandas
- numpy>=1.20
- matplotlib
- pip
- pytest
- pytest-cov
Expand Down
20 changes: 20 additions & 0 deletions flox/xarray.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,26 @@ def xarray_reduce(
DataArray or Dataset
Reduced object

Examples
--------
>>> import xarray as xr
>>> from flox.xarray import xarray_reduce

>>> # Create a group index:
>>> labels = xr.DataArray(
... [1, 2, 3, 1, 2, 3, 0, 0, 0],
... dims="x",
... name="label",
... )
>>> # Create a DataArray to apply the group index on:
>>> da = da = xr.ones_like(labels)
>>> # Sum all values in da that matches the elements in the group index:
>>> xarray_reduce(da, labels, func="sum")
<xarray.DataArray 'label' (label: 4)>
array([3, 2, 2, 2])
Coordinates:
* label (label) int64 0 1 2 3

See Also
--------
flox.core.groupby_reduce
Expand Down