bempp 0.2.0

Boundary element method library.
name: 

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

jobs:
  style-checks:
    name: Rust style checks
    runs-on: ubuntu-latest
    strategy:
      matrix:
        feature-flags: ['--features "mpi,strict"', '']
    steps:
      - name: Set up Rust
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: stable
          components: rustfmt,clippy
      - name: Set up MPI
        uses: mpi4py/setup-mpi@v1
        with:
          mpi: mpich
      - uses: actions/checkout@v3
      - name: Install LAPACK, OpenBLAS
        run:
          sudo apt-get install -y libopenblas-dev liblapack-dev

      - name: Style checks
        run: |
          cargo fmt -- --check
          cargo clippy ${{ matrix.feature-flags }} -- -D warnings
          cargo clippy --tests ${{ matrix.feature-flags }} -- -D warnings
          cargo clippy --examples ${{ matrix.feature-flags }} -- -D warnings

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: "3.12"
      - run: |
          python3 -m pip install ruff
          python3 -m ruff check python
          python3 -m ruff format --check python
        name: Run ruff checks
      - run: |
          python3 -m pip install mypy
          python3 -m mypy python
        name: Run mypy checks