From c96350de54465769ec4d8e272dc63b43dc2d6fca Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Sat, 17 Sep 2022 06:26:57 +0200 Subject: [PATCH 1/6] Add ci additional --- .github/workflows/ci-additional.yaml | 154 +++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 .github/workflows/ci-additional.yaml diff --git a/.github/workflows/ci-additional.yaml b/.github/workflows/ci-additional.yaml new file mode 100644 index 000000000..e42b7f18d --- /dev/null +++ b/.github/workflows/ci-additional.yaml @@ -0,0 +1,154 @@ +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/ci-trigger@v1.1 + 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 + # temporarily skipping due to https://github.com/pydata/xarray/issues/6551 + 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 + + # min-version-policy: + # name: Minimum Version Policy + # runs-on: "ubuntu-latest" + # needs: detect-ci-trigger + # if: needs.detect-ci-trigger.outputs.triggered == 'false' + # defaults: + # run: + # shell: bash -l {0} + + # strategy: + # matrix: + # environment-file: ["bare-minimum", "min-all-deps"] + # fail-fast: false + + # steps: + # - uses: actions/checkout@v3 + # with: + # fetch-depth: 0 # Fetch all history for all branches and tags. + + # - name: Setup micromamba + # uses: mamba-org/provision-with-micromamba@34071ca7df4983ccd272ed0d3625818b27b70dcc + # with: + # environment-name: xarray-tests + # environment-file: false + # extra-specs: | + # python=3.10 + # pyyaml + # conda + # python-dateutil + # channels: conda-forge + + # - name: minimum versions policy + # run: | + # python ci/min_deps_check.py ci/requirements/${{ matrix.environment-file }}.yml From b6ef1640f7ac8e36a73fa3772f16deba3dfb6b86 Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Sat, 17 Sep 2022 06:34:43 +0200 Subject: [PATCH 2/6] add matplotlib --- ci/environment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/environment.yml b/ci/environment.yml index a752bef55..d83bd3b9c 100644 --- a/ci/environment.yml +++ b/ci/environment.yml @@ -9,6 +9,7 @@ dependencies: - netcdf4 - pandas - numpy>=1.20 + - matplotlib - pip - pytest - pytest-cov From f9f5edb0f9158f92aee7a68a080b9f0a7090863b Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Sat, 17 Sep 2022 07:05:34 +0200 Subject: [PATCH 3/6] Add doc example --- flox/xarray.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/flox/xarray.py b/flox/xarray.py index 7234f8826..d3e512a03 100644 --- a/flox/xarray.py +++ b/flox/xarray.py @@ -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") + + array([3, 2, 2, 2]) + Coordinates: + * label (label) int64 0 1 2 3 + See Also -------- flox.core.groupby_reduce From be861f03dcd231b88e4f143d8cd4195c9e8cd5d2 Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Sat, 17 Sep 2022 07:08:12 +0200 Subject: [PATCH 4/6] Update xarray.py --- flox/xarray.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flox/xarray.py b/flox/xarray.py index d3e512a03..34b87a8e8 100644 --- a/flox/xarray.py +++ b/flox/xarray.py @@ -168,10 +168,10 @@ def xarray_reduce( >>> # Create a group index: >>> labels = xr.DataArray( - [1, 2, 3, 1, 2, 3, 0, 0, 0], - dims="x", - name="label", - ) + >>> [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: From 608ece204c59e4abce871122f5563174e45e4a10 Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Sat, 17 Sep 2022 07:11:28 +0200 Subject: [PATCH 5/6] Update xarray.py --- flox/xarray.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flox/xarray.py b/flox/xarray.py index 34b87a8e8..e06723e77 100644 --- a/flox/xarray.py +++ b/flox/xarray.py @@ -168,10 +168,10 @@ def xarray_reduce( >>> # Create a group index: >>> labels = xr.DataArray( - >>> [1, 2, 3, 1, 2, 3, 0, 0, 0], - >>> dims="x", - >>> name="label", - >>> ) + ... [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: From 8eb2a4338cb93cedac54a577ee991ea8ed9e40a1 Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Sat, 17 Sep 2022 07:17:27 +0200 Subject: [PATCH 6/6] Deactivate mypy for now. --- .github/workflows/ci-additional.yaml | 84 ++++++++-------------------- 1 file changed, 24 insertions(+), 60 deletions(-) diff --git a/.github/workflows/ci-additional.yaml b/.github/workflows/ci-additional.yaml index e42b7f18d..65b790d96 100644 --- a/.github/workflows/ci-additional.yaml +++ b/.github/workflows/ci-additional.yaml @@ -73,82 +73,46 @@ jobs: run: | python -m pytest --doctest-modules flox --ignore flox/tests - mypy: - name: Mypy - runs-on: "ubuntu-latest" - needs: detect-ci-trigger - # temporarily skipping due to https://github.com/pydata/xarray/issues/6551 - 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 - - # min-version-policy: - # name: Minimum Version Policy + # 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} - - # strategy: - # matrix: - # environment-file: ["bare-minimum", "min-all-deps"] - # fail-fast: false + # 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 - # environment-file: false # extra-specs: | - # python=3.10 - # pyyaml - # conda - # python-dateutil - # channels: conda-forge + # 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: minimum versions policy + # - name: Run mypy # run: | - # python ci/min_deps_check.py ci/requirements/${{ matrix.environment-file }}.yml + # python -m mypy --install-types --non-interactive