cf-xarray 0.10.8__tar.gz → 0.10.9__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 (98) hide show
  1. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.github/workflows/ci.yaml +34 -45
  2. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.github/workflows/pypi.yaml +2 -2
  3. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.github/workflows/testpypi-release.yaml +2 -2
  4. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.github/workflows/upstream-dev-ci.yaml +13 -16
  5. cf_xarray-0.10.9/.readthedocs.yml +20 -0
  6. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/PKG-INFO +2 -2
  7. cf_xarray-0.10.9/cf_xarray/_version.py +1 -0
  8. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/helpers.py +5 -0
  9. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray.egg-info/PKG-INFO +2 -2
  10. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray.egg-info/SOURCES.txt +1 -5
  11. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray.egg-info/requires.txt +1 -1
  12. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/pyproject.toml +93 -1
  13. cf_xarray-0.10.9/uv.lock +3137 -0
  14. cf_xarray-0.10.8/.readthedocs.yml +0 -19
  15. cf_xarray-0.10.8/cf_xarray/_version.py +0 -1
  16. cf_xarray-0.10.8/ci/doc.yml +0 -28
  17. cf_xarray-0.10.8/ci/environment-all-min-deps.yml +0 -25
  18. cf_xarray-0.10.8/ci/environment-no-optional-deps.yml +0 -13
  19. cf_xarray-0.10.8/ci/environment.yml +0 -25
  20. cf_xarray-0.10.8/ci/upstream-dev-env.yml +0 -22
  21. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.binder/environment.yml +0 -0
  22. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.deepsource.toml +0 -0
  23. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.github/dependabot.yml +0 -0
  24. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.github/release.yml +0 -0
  25. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.github/workflows/parse_logs.py +0 -0
  26. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.gitignore +0 -0
  27. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.pre-commit-config.yaml +0 -0
  28. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/.tributors +0 -0
  29. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/CITATION.cff +0 -0
  30. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/LICENSE +0 -0
  31. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/README.rst +0 -0
  32. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/__init__.py +0 -0
  33. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/accessor.py +0 -0
  34. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/coding.py +0 -0
  35. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/criteria.py +0 -0
  36. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/datasets.py +0 -0
  37. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/formatting.py +0 -0
  38. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/geometry.py +0 -0
  39. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/groupers.py +0 -0
  40. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/options.py +0 -0
  41. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/parametric.py +0 -0
  42. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/py.typed +0 -0
  43. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/scripts/make_doc.py +0 -0
  44. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/scripts/print_versions.py +0 -0
  45. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/sgrid.py +0 -0
  46. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/__init__.py +0 -0
  47. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/conftest.py +0 -0
  48. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_accessor.py +0 -0
  49. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_coding.py +0 -0
  50. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_geometry.py +0 -0
  51. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_groupers.py +0 -0
  52. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_helpers.py +0 -0
  53. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_options.py +0 -0
  54. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_parametric.py +0 -0
  55. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_scripts.py +0 -0
  56. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/tests/test_units.py +0 -0
  57. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/units.py +0 -0
  58. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray/utils.py +0 -0
  59. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray.egg-info/dependency_links.txt +0 -0
  60. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/cf_xarray.egg-info/top_level.txt +0 -0
  61. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/codecov.yml +0 -0
  62. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/2D_bounds_averaged.png +0 -0
  63. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/2D_bounds_error.png +0 -0
  64. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/2D_bounds_nonunique.png +0 -0
  65. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/Makefile +0 -0
  66. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/_static/dataset-diagram-logo.tex +0 -0
  67. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/_static/full-logo.png +0 -0
  68. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/_static/logo.png +0 -0
  69. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/_static/logo.svg +0 -0
  70. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/_static/rich-repr-example.png +0 -0
  71. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/_static/style.css +0 -0
  72. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/api.rst +0 -0
  73. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/bounds.md +0 -0
  74. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/cartopy_rotated_pole.png +0 -0
  75. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/coding.md +0 -0
  76. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/conf.py +0 -0
  77. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/contributing.rst +0 -0
  78. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/coord_axes.md +0 -0
  79. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/custom-criteria.md +0 -0
  80. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/dsg.md +0 -0
  81. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/examples/introduction.ipynb +0 -0
  82. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/faq.md +0 -0
  83. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/flags.md +0 -0
  84. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/geometry.md +0 -0
  85. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/grid_mappings.md +0 -0
  86. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/howtouse.md +0 -0
  87. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/index.rst +0 -0
  88. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/make.bat +0 -0
  89. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/parametricz.md +0 -0
  90. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/plotting.md +0 -0
  91. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/provenance.md +0 -0
  92. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/quickstart.md +0 -0
  93. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/roadmap.rst +0 -0
  94. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/selecting.md +0 -0
  95. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/sgrid_ugrid.md +0 -0
  96. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/units.md +0 -0
  97. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/doc/whats-new.rst +0 -0
  98. {cf_xarray-0.10.8 → cf_xarray-0.10.9}/setup.cfg +0 -0
@@ -20,55 +20,43 @@ jobs:
20
20
  build:
21
21
  name: Build (${{ matrix.python-version }}, ${{ matrix.os }}), ${{ matrix.env }}
22
22
  runs-on: ${{ matrix.os }}
23
- defaults:
24
- run:
25
- shell: bash -l {0}
26
23
  strategy:
27
24
  fail-fast: false
28
25
  matrix:
29
26
  os: ["ubuntu-latest"]
30
27
  python-version: ["3.11", "3.13"]
31
- env: [""]
28
+ env: ["test"]
32
29
  include:
33
- - env: "all-min-deps"
30
+ - env: "test-min-deps"
34
31
  python-version: "3.11"
35
32
  os: ubuntu-latest
36
- - env: "no-optional-deps"
33
+ - env: "test-no-optional"
37
34
  python-version: "3.13"
38
35
  os: ubuntu-latest
39
36
  steps:
40
37
  - uses: actions/checkout@v5
41
38
  with:
42
39
  fetch-depth: 0 # Fetch all history for all branches and tags.
43
- - name: Set environment variables
44
- run: |
45
- echo "PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV
46
- if [[ "${{ matrix.env }}" == "" ]] ;
47
- then
48
- echo "CONDA_ENV_FILE=ci/environment.yml" >> $GITHUB_ENV
49
- fi
50
- if [[ "${{ matrix.env }}" == "no-optional-deps" ]] ;
51
- then
52
- echo "CONDA_ENV_FILE=ci/environment-no-optional-deps.yml" >> $GITHUB_ENV
53
- fi
54
- if [[ "${{ matrix.env }}" == "all-min-deps" ]] ;
55
- then
56
- echo "CONDA_ENV_FILE=ci/environment-all-min-deps.yml" >> $GITHUB_ENV
57
- fi
58
- - name: Set up conda environment
59
- uses: mamba-org/setup-micromamba@v2
40
+
41
+ - name: Set up Python
42
+ uses: actions/setup-python@v5
43
+ with:
44
+ python-version: ${{ matrix.python-version }}
45
+
46
+ - name: Install uv
47
+ uses: astral-sh/setup-uv@v4
60
48
  with:
61
- environment-file: ${{ env.CONDA_ENV_FILE }}
62
- environment-name: cf_xarray_test
63
- cache-environment: true
64
- create-args: >-
65
- python=${{ matrix.python-version }}
66
- - name: Install cf_xarray
49
+ enable-cache: true
50
+
51
+ - name: Install dependencies
67
52
  run: |
68
- python -m pip install --no-deps -e .
53
+ uv pip install --system -e .
54
+ uv pip install --system --group ${{ matrix.env }}
55
+
69
56
  - name: Run Tests
70
57
  run: |
71
58
  pytest -n auto --cov=./ --cov-report=xml
59
+
72
60
  - name: Upload code coverage to Codecov
73
61
  uses: codecov/codecov-action@v5.5.0
74
62
  with:
@@ -81,9 +69,6 @@ jobs:
81
69
  mypy:
82
70
  name: mypy
83
71
  runs-on: "ubuntu-latest"
84
- defaults:
85
- run:
86
- shell: bash -l {0}
87
72
  strategy:
88
73
  matrix:
89
74
  python-version: ["3.11", "3.13"]
@@ -91,23 +76,27 @@ jobs:
91
76
  - uses: actions/checkout@v5
92
77
  with:
93
78
  fetch-depth: 0 # Fetch all history for all branches and tags.
94
- - name: Set up conda environment
95
- uses: mamba-org/setup-micromamba@v2
79
+
80
+ - name: Set up Python
81
+ uses: actions/setup-python@v5
96
82
  with:
97
- environment-file: ci/environment.yml
98
- environment-name: cf_xarray_test
99
- cache-environment: true
100
- create-args: >-
101
- python=${{ matrix.python-version }}
102
- - name: Install cf_xarray
103
- run: |
104
- python -m pip install --no-deps -e .
105
- - name: Install mypy
83
+ python-version: ${{ matrix.python-version }}
84
+
85
+ - name: Install uv
86
+ uses: astral-sh/setup-uv@v4
87
+ with:
88
+ enable-cache: true
89
+
90
+ - name: Install dependencies
106
91
  run: |
107
- python -m pip install 'mypy'
92
+ uv pip install --system -e .
93
+ uv pip install --system --group test
94
+ uv pip install --system --group typing
95
+
108
96
  - name: Run mypy
109
97
  run: |
110
98
  python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report cf_xarray/
99
+
111
100
  - name: Upload mypy coverage to Codecov
112
101
  uses: codecov/codecov-action@v5.5.0
113
102
  with:
@@ -18,7 +18,7 @@ jobs:
18
18
  - uses: actions/setup-python@v5
19
19
  name: Install Python
20
20
  with:
21
- python-version: "3.10"
21
+ python-version: "3.11"
22
22
 
23
23
  - name: Install dependencies
24
24
  run: |
@@ -53,7 +53,7 @@ jobs:
53
53
  - uses: actions/setup-python@v5
54
54
  name: Install Python
55
55
  with:
56
- python-version: "3.10"
56
+ python-version: "3.11"
57
57
  - uses: actions/download-artifact@v5
58
58
  with:
59
59
  name: releases
@@ -24,7 +24,7 @@ jobs:
24
24
  - uses: actions/setup-python@v5
25
25
  name: Install Python
26
26
  with:
27
- python-version: "3.10"
27
+ python-version: "3.11"
28
28
 
29
29
  - name: Install dependencies
30
30
  run: |
@@ -65,7 +65,7 @@ jobs:
65
65
  - uses: actions/setup-python@v5
66
66
  name: Install Python
67
67
  with:
68
- python-version: "3.10"
68
+ python-version: "3.11"
69
69
  - uses: actions/download-artifact@v5
70
70
  with:
71
71
  name: releases
@@ -8,7 +8,7 @@ on:
8
8
  branches:
9
9
  - main
10
10
  schedule:
11
- - cron: "0 0 * * *" # Daily At 00:00 UTC
11
+ - cron: "0 0 * * *" # Daily "At 00:00" UTC
12
12
  workflow_dispatch: # allows you to trigger the workflow run manually
13
13
 
14
14
  concurrency:
@@ -23,9 +23,6 @@ jobs:
23
23
  name: upstream-dev
24
24
  runs-on: ubuntu-latest
25
25
  if: ${{ (contains( github.event.pull_request.labels.*.name, 'test-upstream') && github.event_name == 'pull_request') || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
26
- defaults:
27
- run:
28
- shell: bash -l {0}
29
26
  strategy:
30
27
  fail-fast: false
31
28
  matrix:
@@ -34,20 +31,20 @@ jobs:
34
31
  - uses: actions/checkout@v5
35
32
  with:
36
33
  fetch-depth: 0 # Fetch all history for all branches and tags.
37
- - name: Set environment variables
38
- run: |
39
- echo "PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV
40
- - name: Set up conda environment
41
- uses: mamba-org/setup-micromamba@v2
34
+
35
+ - name: Set up Python
36
+ uses: actions/setup-python@v5
42
37
  with:
43
- environment-file: ci/upstream-dev-env.yml
44
- environment-name: cf_xarray_test
45
- cache-env: False
46
- create-args: >-
47
- python=${{ matrix.python-version }}
48
- - name: Install cf_xarray
38
+ python-version: ${{ matrix.python-version }}
39
+
40
+ - name: Install uv
41
+ uses: astral-sh/setup-uv@v4
42
+
43
+ - name: Install dependencies
49
44
  run: |
50
- python -m pip install --no-deps -e .
45
+ uv pip install --system -e .
46
+ uv pip install --system --group test-upstream
47
+
51
48
  - name: Run Tests
52
49
  if: success()
53
50
  id: status
@@ -0,0 +1,20 @@
1
+ version: 2
2
+ sphinx:
3
+ configuration: doc/conf.py
4
+ build:
5
+ os: ubuntu-lts-latest
6
+ tools:
7
+ python: "3.11"
8
+ jobs:
9
+ pre_create_environment:
10
+ - asdf plugin add uv
11
+ - asdf install uv latest
12
+ - asdf global uv latest
13
+ create_environment:
14
+ - uv venv "${READTHEDOCS_VIRTUALENV_PATH}"
15
+ install:
16
+ - UV_PROJECT_ENVIRONMENT="${READTHEDOCS_VIRTUALENV_PATH}" uv sync --frozen --group docs
17
+ post_checkout:
18
+ - (git --no-pager log --pretty="tformat:%s" -1 | grep -vqF "[skip-rtd]") || exit 183
19
+
20
+ formats: []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cf_xarray
3
- Version: 0.10.8
3
+ Version: 0.10.9
4
4
  Summary: A convenience wrapper for using CF attributes on xarray objects
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -220,7 +220,7 @@ Classifier: Programming Language :: Python :: 3.13
220
220
  Requires-Python: >=3.11
221
221
  Description-Content-Type: text/x-rst
222
222
  License-File: LICENSE
223
- Requires-Dist: xarray>=2023.09.0
223
+ Requires-Dist: xarray>=2024.7.0
224
224
  Provides-Extra: all
225
225
  Requires-Dist: matplotlib; extra == "all"
226
226
  Requires-Dist: pint!=0.24.0,>=0.18; extra == "all"
@@ -0,0 +1 @@
1
+ __version__ = "0.10.9"
@@ -222,6 +222,11 @@ def _get_core_dim_orders(core_dim_coords: dict[str, np.ndarray]) -> dict[str, st
222
222
  core_dim_orders = {}
223
223
 
224
224
  for dim, coords in core_dim_coords.items():
225
+ if coords.size <= 1:
226
+ # A single value, same as all values are equal, treat as ascending
227
+ core_dim_orders[dim] = "ascending"
228
+ continue
229
+
225
230
  diffs = np.diff(coords)
226
231
 
227
232
  # Handle datetime64 and timedelta64 safely for both numpy 1.26.4 and numpy 2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cf_xarray
3
- Version: 0.10.8
3
+ Version: 0.10.9
4
4
  Summary: A convenience wrapper for using CF attributes on xarray objects
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -220,7 +220,7 @@ Classifier: Programming Language :: Python :: 3.13
220
220
  Requires-Python: >=3.11
221
221
  Description-Content-Type: text/x-rst
222
222
  License-File: LICENSE
223
- Requires-Dist: xarray>=2023.09.0
223
+ Requires-Dist: xarray>=2024.7.0
224
224
  Provides-Extra: all
225
225
  Requires-Dist: matplotlib; extra == "all"
226
226
  Requires-Dist: pint!=0.24.0,>=0.18; extra == "all"
@@ -8,6 +8,7 @@ LICENSE
8
8
  README.rst
9
9
  codecov.yml
10
10
  pyproject.toml
11
+ uv.lock
11
12
  .binder/environment.yml
12
13
  .github/dependabot.yml
13
14
  .github/release.yml
@@ -50,11 +51,6 @@ cf_xarray/tests/test_options.py
50
51
  cf_xarray/tests/test_parametric.py
51
52
  cf_xarray/tests/test_scripts.py
52
53
  cf_xarray/tests/test_units.py
53
- ci/doc.yml
54
- ci/environment-all-min-deps.yml
55
- ci/environment-no-optional-deps.yml
56
- ci/environment.yml
57
- ci/upstream-dev-env.yml
58
54
  doc/2D_bounds_averaged.png
59
55
  doc/2D_bounds_error.png
60
56
  doc/2D_bounds_nonunique.png
@@ -1,4 +1,4 @@
1
- xarray>=2023.09.0
1
+ xarray>=2024.7.0
2
2
 
3
3
  [all]
4
4
  matplotlib
@@ -16,7 +16,7 @@ classifiers = [
16
16
  "Programming Language :: Python :: 3.13",
17
17
  ]
18
18
  dependencies = [
19
- "xarray>=2023.09.0",
19
+ "xarray>=2024.7.0",
20
20
  ]
21
21
  dynamic = ["version"]
22
22
 
@@ -150,3 +150,95 @@ ignore_missing_imports = true
150
150
 
151
151
  [tool.coverage.run]
152
152
  omit = ["*/tests/*"]
153
+
154
+ [dependency-groups]
155
+ test-base = [
156
+ "pytest-cov",
157
+ "pytest",
158
+ "pytest-xdist",
159
+ "pytest-pretty",
160
+ ]
161
+
162
+ test = [
163
+ {include-group = "test-base"},
164
+ "dask",
165
+ "flox",
166
+ "lxml",
167
+ "matplotlib",
168
+ "netcdf4",
169
+ "pandas",
170
+ "pint",
171
+ "pooch",
172
+ "regex",
173
+ "rich",
174
+ "scipy",
175
+ "shapely",
176
+ "pyproj",
177
+ ]
178
+
179
+ test-no-optional = [
180
+ {include-group = "test-base"},
181
+ "dask",
182
+ "matplotlib",
183
+ "netcdf4",
184
+ "pandas",
185
+ "pooch",
186
+ ]
187
+
188
+ test-min-deps = [
189
+ {include-group = "test-base"},
190
+ "dask",
191
+ "flox",
192
+ "lxml",
193
+ "matplotlib",
194
+ "netcdf4",
195
+ "pandas",
196
+ "pint>=0.18",
197
+ "pooch",
198
+ "regex",
199
+ "rich",
200
+ "scipy",
201
+ "shapely",
202
+ "pyproj",
203
+ ]
204
+
205
+ docs = [
206
+ "matplotlib",
207
+ "netcdf4",
208
+ "pooch",
209
+ "sphinx",
210
+ "sphinx-copybutton",
211
+ "sphinx-autobuild",
212
+ "numpydoc",
213
+ "sphinx-autosummary-accessors",
214
+ "ipython",
215
+ "ipykernel",
216
+ "ipywidgets",
217
+ "pandas",
218
+ "pint",
219
+ "regex",
220
+ "shapely",
221
+ "furo>=2024",
222
+ "myst-nb",
223
+ "pyproj",
224
+ ]
225
+
226
+ test-upstream = [
227
+ {include-group = "test-base"},
228
+ "pytest-reportlog",
229
+ "dask",
230
+ "matplotlib",
231
+ "netcdf4",
232
+ "pandas",
233
+ "pooch",
234
+ "rich",
235
+ "shapely",
236
+ "pyproj",
237
+ "xarray @ git+https://github.com/pydata/xarray.git",
238
+ "flox @ git+https://github.com/dcherian/flox.git",
239
+ "pint @ git+https://github.com/hgrecco/pint.git",
240
+ ]
241
+
242
+ typing = [
243
+ "mypy",
244
+ ]