Implemented mixed curvature transformers #135
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test & Format | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false # don’t stop the matrix if one Python version fails | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] # jaxtyping requires >= 3.10 | |
| steps: | |
| # Setup and installation | |
| - name: Check out code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: "pip" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| pip install -e ".[dev]" | |
| - name: Smoke‑test pip install manify | |
| run: | | |
| python - <<EOF | |
| import manify | |
| print("manify version:", getattr(manify, "__version__", "unknown")) | |
| EOF | |
| # Code quality checks with Ruff | |
| - name: Check code formatting and linting with Ruff | |
| run: | | |
| ruff check manify/ | |
| ruff format --check manify/ | |
| # Pre-commit hooks validation | |
| - name: Run pre-commit hooks | |
| run: | | |
| pre-commit run --files manify/**/*.py || true | |
| # Type checking | |
| - name: Check type annotations with MyPy | |
| run: mypy manify/ | |
| # Unit testing | |
| - name: Run unit tests & collect coverage (except dataloaders) | |
| run: pytest tests --cov --cov-report=xml -k "not test_dataloaders" | |
| # Code coverage | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false | |
| verbose: true | |
| flags: unittests | |
| name: python-${{ matrix.python-version }} | |
| # Dataloaders run in parallel, for speed | |
| test-dataloaders: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| cache: "pip" | |
| - name: Cache HuggingFace datasets | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/huggingface | |
| key: ${{ runner.os }}-huggingface-dataloaders-v1 | |
| restore-keys: | | |
| ${{ runner.os }}-huggingface-dataloaders- | |
| ${{ runner.os }}-huggingface- | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| - name: Run dataloader tests | |
| run: pytest tests/test_utils.py::test_dataloaders -v --cov=manify/dataloaders --cov-report=xml | |
| # Upload dataloader coverage separately | |
| - name: Upload dataloader coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false | |
| verbose: true | |
| flags: dataloaders | |
| name: dataloaders | |