diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 27030a5..8ddc20b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} diff --git a/pyproject.toml b/pyproject.toml index 46bd414..70e050d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "profila" description = "A profiler for Numba" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.10" authors = [{name = "Itamar Turner-Trauring"}] license = {text = "Apache-2.0"} classifiers = [ diff --git a/src/profila/_ipython.py b/src/profila/_ipython.py index 88c4af2..8decd4f 100644 --- a/src/profila/_ipython.py +++ b/src/profila/_ipython.py @@ -29,7 +29,7 @@ class ProfilaMagics(Magics): IPython/Jupyter magics. """ - @cell_magic # type: ignore[misc] + @cell_magic def profila(self, line: str, cell: str) -> None: """Run the cell under a profiler.""" del line @@ -62,7 +62,7 @@ def _run_profila(self, cell: str) -> None: # Run the code: assert self.shell is not None - self.shell.run_cell(cell) + self.shell.run_cell(cell) # type: ignore[no-untyped-call] # Tell the subprocess it can exit: profiler.stdin.close() diff --git a/tests/test_end_to_end.py b/tests/test_end_to_end.py index 8c580a9..2ffc24b 100644 --- a/tests/test_end_to_end.py +++ b/tests/test_end_to_end.py @@ -74,5 +74,7 @@ def test_jupyter(profila_setup: Any) -> None: encoding="utf-8", ) assert "% non-Numba samples" in output - assert "% | for j in range(max(i - 6, 0), i + 1):" in output - assert "% | total += timeseries[j]" in output + assert "| for j in range(max(i - 6, 0), i + 1):" in output + + # Should be at least two lines with execution time: + assert output.count("% |") >= 2