From ef4cf21947f8ab19c50e1d4b4474c874fc08956b Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 28 Aug 2026 11:57:11 -0700 Subject: [PATCH 1/3] Add spin lint --- .spin/cmds.py | 19 +++++++++++++++++++ pyproject.toml | 10 ++++++++++ 2 files changed, 29 insertions(+) create mode 100644 .spin/cmds.py diff --git a/.spin/cmds.py b/.spin/cmds.py new file mode 100644 index 0000000..ab34035 --- /dev/null +++ b/.spin/cmds.py @@ -0,0 +1,19 @@ +import click +import spin + +@click.command() +@click.option( + '--fix', + is_flag=True, + default=False, + required=False, +) +def lint(fix): + """🔦 Run lint and typing checks + + """ + ruff_flags = ["--fix"] if fix else [] + spin.util.run(["ruff", "check", "numpy_financial/", "benchmarks/"] + ruff_flags) + + spin.util.run(["pyright"]) + spin.util.run(["mypy", "--no-incremental", "."]) diff --git a/pyproject.toml b/pyproject.toml index af2eb18..a602011 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,6 +82,8 @@ exclude = [ ] stubPath = "." typeCheckingMode = "standard" +# _cfinancial is a Cython extension, so we only have a .pyi stub +reportMissingModuleSource = "none" [tool.spin] @@ -103,3 +105,11 @@ package = 'numpy_financial' "spin.cmds.meson.python", "spin.cmds.meson.run" ] +"Lint" = [ + ".spin/cmds.py:lint" +] + + +[tool.ruff.lint] +ignore = ["F403"] +select = ["E", "F", "B", "I"] From 4764d2c6fe27b5c47ce600af146ca8f389ff3afd Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 28 Aug 2026 11:58:44 -0700 Subject: [PATCH 2/3] Flags are now in pyproject.toml --- .github/workflows/pythonpackage.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index db8baf1..3e642ff 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -29,10 +29,8 @@ jobs: - name: Lint run: | set -euo pipefail - # Tell us what version we are using ruff version - # Check the source file, ignore type annotations (ANN) for now. - ruff check numpy_financial/ benchmarks/ --ignore F403 --select E,F,B,I + ruff check numpy_financial/ benchmarks/ - name: Build project run: | spin build -v From 51f1876f32d7b7db48eff5ceb3b19c8474af635f Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 28 Aug 2026 14:01:52 -0700 Subject: [PATCH 3/3] Add mypy and pyright to dev dependencies --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index a602011..31e03c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,6 +54,8 @@ doc = [ dev = [ "ruff>=0.11.5", "asv>=0.6.0", + "mypy", + "pyright" ]