Skip to content
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

2024.11.0 #29

Merged
merged 43 commits into from
Nov 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
063fbe5
Enhance test coverage by adjusting step size in various test cases an…
fbriol Nov 6, 2024
4e9ee81
Update documentation configuration to dynamically set build directory…
fbriol Nov 6, 2024
3811f0e
Add custom test suite name generator for typed tests in axis container
fbriol Nov 6, 2024
5eb8652
Improve test suite organization by implementing a new naming conventi…
fbriol Nov 6, 2024
e876669
Refine polynomial derivative test and update kriging expectation tole…
fbriol Nov 6, 2024
fd3d68f
Add CI workflow configuration for testing and coverage reporting
fbriol Nov 6, 2024
4cc6677
Update GitHub Actions to use upload-artifact@v4 for coverage report
fbriol Nov 6, 2024
fd71686
Update conda environment configuration to rename environment and add …
fbriol Nov 6, 2024
4556e37
Update CI workflow to use bash shell for all steps and improve covera…
fbriol Nov 6, 2024
27c9588
Refactor setup.py: improve build configuration, remove unused boost h…
fbriol Nov 6, 2024
a9a5413
Remove unnecessary shell option from artifact upload step in CI workflow
fbriol Nov 6, 2024
77f89aa
Remove unnecessary shell option from CI workflow steps
fbriol Nov 6, 2024
d8b6805
Add CMAKE_PREFIX_PATH to CMake arguments if CONDA_PREFIX is set
fbriol Nov 6, 2024
ebff659
Update CI workflow to run C++ tests using setup.py gtest instead of p…
fbriol Nov 6, 2024
29ae280
Set BLAS_LIBRARIES to an empty string if no BLAS library is found
fbriol Nov 6, 2024
7aade75
Add lcov command to merge coverage files in CI workflow
fbriol Nov 6, 2024
60f31e8
Add --measure-coverage option to pytest command line options
fbriol Nov 6, 2024
8bc2f52
Enhance __len__ method in pyinterp::Period to handle invalid periods
fbriol Nov 6, 2024
79b914a
Reorganize CI workflow to improve documentation generation and deploy…
fbriol Nov 6, 2024
326adc6
Update test_invalid_period to raise ValueError for null periods and a…
fbriol Nov 6, 2024
65faaff
Update CI workflow to exclude additional directories from coverage re…
fbriol Nov 6, 2024
8bbf2ad
Refactor setup.py and test_period.py for code clarity and style consi…
fbriol Nov 6, 2024
454fb88
Update PYBIND11_MODULE declaration to optimize GIL usage
fbriol Nov 7, 2024
0d9d316
Refactor setup.py to streamline build options and remove unused param…
fbriol Nov 7, 2024
627921b
Update build documentation to reflect changes in test commands and co…
fbriol Nov 7, 2024
98ad453
Refactor CI workflow to improve coverage reporting and streamline bui…
fbriol Nov 7, 2024
2326e90
Refactor setup.py to enhance build configuration management and impro…
fbriol Nov 7, 2024
a994ae6
Refactor type hints and imports for improved clarity and performance
fbriol Nov 7, 2024
90714e3
Refactor examples to improve output clarity and utilize random number…
fbriol Nov 7, 2024
b923ad5
Refactor CI workflow to standardize job naming for clarity
fbriol Nov 7, 2024
40a779f
Add example for orbit interpolation and visualization
fbriol Nov 7, 2024
6e8755d
Update README to replace Azure DevOps build badge with GitHub Actions…
fbriol Nov 7, 2024
591fc25
Add note to example about coordinate system conversion in RTree
fbriol Nov 7, 2024
a78b117
Update Python version requirements to 3.11 in pre-commit config and s…
fbriol Nov 7, 2024
108f42f
Update CI workflow to support Python versions 3.11 and 3.13
fbriol Nov 7, 2024
af4b5f9
Add 'fill' module to __all__ in core __init__.pyi for improved access…
fbriol Nov 7, 2024
30a67ba
Fix formatting in build.rst for consistency in HTML report link
fbriol Nov 7, 2024
61910ed
Reorder imports in __init__.pyi for consistency
fbriol Nov 7, 2024
ac79529
Remove azure-pipelines.yml configuration file to streamline CI/CD setup
fbriol Nov 7, 2024
bacc3b3
Update build status badge in README.rst to reflect new repository URL
fbriol Nov 7, 2024
e2aea6f
Update Python version compatibility and adjust typing imports for Pyt…
fbriol Nov 7, 2024
813cde8
Fix list comprehension formatting in load_aoml function for improved …
fbriol Nov 7, 2024
77b3486
Update pyinterp version to 2024.11.0 and enhance changelog with new f…
fbriol Nov 7, 2024
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
204 changes: 204 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
name: CI

on:
push:
branches: "*"
pull_request:
branches: main

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
coverage:
name: coverage
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
fetch-tags: true

- name: Setup Miniconda
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
condarc: |
channels:
- conda-forge
create-args: |
python=3.12
environment-name: pyinterp
environment-file: conda/environment.yml
init-shell: bash

- name: Build extension with code coverage and the C++ tests
shell: bash -l {0}
run: |
python setup.py build_ext --code-coverage --build-unittests
python setup.py build

- name: Run tests and measure coverage
shell: bash -l {0}
run: |
pytest -v -ra --cov=pyinterp --cov-report=lcov --measure-coverage
python setup.py gtest

- name: Filter and merge coverage
shell: bash -l {0}
run: |
lcov --add-tracefile coverage_cpp.lcov --add-tracefile coverage.lcov --output-file merged_coverage.lcov
lcov -r merged_coverage.lcov "${CONDA_PREFIX}/*" "/usr/*" "*/third_party/*" --output-file filtered_merged_coverage.lcov
genhtml filtered_merged_coverage.lcov --output-directory htmllcov

- name: Print total coverage
shell: bash -l {0}
run: |
percent=$(lcov -l filtered_merged_coverage.lcov|tail -1|grep -o '[0-9]\+\.[0-9]\+%' | head -n 1)
echo "Total coverage: $percent"

- name: Upload HTML report as artifact
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: htmllcov

linux:
name: ${{ matrix.python-version }}-posix
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
max-parallel: 5
matrix:
# Python 3.12 is used in all other jobs
python-version: ['3.10', '3.11', '3.13']
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
fetch-tags: true

- name: Setup Miniconda
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
condarc: |
channels:
- conda-forge
create-args: |
python=${{ matrix.python-version }}
environment-name: pyinterp
environment-file: conda/environment.yml
init-shell: bash

- name: Build extension
shell: bash -l {0}
run: |
python setup.py build_ext
python setup.py build

- name: Run tests
shell: bash -l {0}
run: |
pytest -v -ra


macos:
name: macos
runs-on: macos-latest
timeout-minutes: 15
strategy:
fail-fast: false
max-parallel: 5

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
fetch-tags: true

- name: Setup Miniconda
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
condarc: |
channels:
- conda-forge
create-args: |
python=3.12
environment-name: pyinterp
environment-file: conda/environment.yml
init-shell: bash

- name: Build extension
shell: bash -l {0}
run: |
python setup.py build_ext
python setup.py build

- name: Run tests
shell: bash -l {0}
run: |
pytest -v -ra

- name: Generate Documentation
shell: bash -l {0}
run: |
sphinx-build -b html docs/source docs/build

- name: Setup Pages
uses: actions/configure-pages@v5

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/build

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

win:
name: win
runs-on: windows-2019

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup Miniconda
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
condarc: |
channels:
- conda-forge
create-args: |
python=3.12
environment-name: pyinterp
environment-file: conda/environment.yml

- name: Building Testing Python Package
shell: bash -l {0}
run: |
python setup.py build_ext --generator="Visual Studio 16 2019"
python setup.py build
pytest -v -ra
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ else()
else()
message(
WARNING "No BLAS library found. Eigen uses its own BLAS implementation.")
set(BLAS_LIBRARIES "")
endif()
endif()

Expand Down
11 changes: 4 additions & 7 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
pangeo-pyinterp
###############

|Build Status| |Azure DevOps Coverage| |Downloads| |Platforms|
|Latest Release Date| |License| |Binder| |Documentation Status|
|Build Status| |Downloads| |Platforms|
|Latest Release Date| |License| |Binder|

Python library for optimized geo-referenced interpolation.

Expand Down Expand Up @@ -133,9 +133,8 @@ The geohash is a compact way of representing a location, and is useful for
storing a location in a database, or for indexing a location in a database.


.. |Build Status| image:: https://dev.azure.com/fbriol/pangeo-pyinterp/_apis/build/status/CNES.pangeo-pyinterp?branchName=master
:target: https://dev.azure.com/fbriol/pangeo-pyinterp/_build/latest?definitionId=2&branchName=master
.. |Azure DevOps Coverage| image:: https://img.shields.io/azure-devops/coverage/fbriol/pangeo-pyinterp/2?style=flat-square
.. |Build Status| image:: https://github.com/CNES/pangeo-pyinterp/actions/workflows/ci.yaml/badge.svg
:target: https://github.com/CNES/pangeo-pyinterp/actions
.. |Downloads| image:: https://anaconda.org/conda-forge/pyinterp/badges/downloads.svg?service=github
:target: image:: https://www.anaconda.com/distribution/
.. |Platforms| image:: https://anaconda.org/conda-forge/pyinterp/badges/platforms.svg?service=github
Expand All @@ -146,5 +145,3 @@ storing a location in a database, or for indexing a location in a database.
:target: https://opensource.org/licenses/BSD-3-Clause
.. |Binder| image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/CNES/pangeo-pyinterp/master?filepath=notebooks/auto_examples/
.. |Documentation Status| image:: https://readthedocs.org/projects/pangeo-pyinterp/badge/?version=latest
:target: https://pangeo-pyinterp.readthedocs.io/en/latest/?badge=latest
Loading
Loading