Skip to main content

Deterministic linter for exact scalar equations and equation references in scientific documents.

Project description

SciEqLint

SciEqLint catches exact scalar algebra mistakes and broken equation references in a documented subset of scientific documents.

Run it on Markdown/MyST docs before review to catch mistakes like this:

(a+b)^2 = a^2 + b^2

Diagnostic:

ALG001 algebraic identity does not hold
left - right = 2*a*b

It also catches supported broken equation references:

See {eq}`missing`.

Diagnostic:

REF002 equation reference target not found: missing

Install

After v0.1.5 is published:

python -m pip install scieqlint
scieqlint check .

For local development:

python -m pip install -e '.[dev]'
scieqlint --help
scieqlint check .
scieqlint check README.md
scieqlint check examples/bad/famous_bad.md --format github
scieqlint demo

Commands

scieqlint check [PATH_OR_GLOB...]
scieqlint init
scieqlint demo
scieqlint explain CODE
python -m scieqlint --help

Project promise

SciEqLint is deterministic. Given the same files, config, and version, it must emit the same diagnostics in the same order. Supported math is checked exactly. Unsupported math is reported as unknown or skipped. The checker must not guess.

Supported files

SciEqLint checks .md, .markdown, .tex, and .ipynb documents. It supports Markdown/MyST display math, supported LaTeX containers, notebook Markdown cells, labels and references, simple scalar algebra, text output, deterministic JSON output, SARIF, and JSON Schema validation. See docs/limitations.md for the supported subset.

Current release target: v0.1.5.

Pull request annotations

- name: Check equations
  run: scieqlint check "docs/**/*.md" --format github

Code scanning

permissions:
  contents: read
  security-events: write

steps:
  - uses: actions/checkout@v6
  - uses: Kuhai9801/scieqlint@v0.1.5
    with:
      args: check "docs/**/*.md" --format sarif --output scieqlint.sarif
  - uses: github/codeql-action/upload-sarif@v4
    with:
      sarif_file: scieqlint.sarif
      category: scieqlint-docs

For contributors

Start with these files:

  • SPEC.md for the product and engineering contract.
  • CONTRIBUTING.md for the local workflow.
  • GOOD_FIRST_ISSUES.md for scoped starter tasks.
  • ROADMAP.md for release order and cut rules.
  • docs/contributing/ for deeper guidance.

Keep PRs small and test the behavior they change.

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scieqlint-0.1.5.tar.gz (75.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scieqlint-0.1.5-py3-none-any.whl (67.6 kB view details)

Uploaded Python 3

File details

Details for the file scieqlint-0.1.5.tar.gz.

File metadata

  • Download URL: scieqlint-0.1.5.tar.gz
  • Upload date:
  • Size: 75.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scieqlint-0.1.5.tar.gz
Algorithm Hash digest
SHA256 40ccb127f3e49ceed8c65cdb37ccd54fdde7931629aefc01d10e79c072f41429
MD5 2afc615cc246baa7ba0d86f6a31f6624
BLAKE2b-256 bc8411fdac5b4f42318b913442422f42459f7906438efbbcf1ec1c331b72615b

See more details on using hashes here.

Provenance

The following attestation bundles were made for scieqlint-0.1.5.tar.gz:

Publisher: release.yml on Kuhai9801/scieqlint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scieqlint-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: scieqlint-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 67.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scieqlint-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8aa8f7c2c6a1e0aa1c402cfab96e490ce338df5027b7c97c4b4ad20840396d7a
MD5 8679dfaa2f3555bbaf7bc6efebfaa4a3
BLAKE2b-256 f6547a012d9ff17516898de9a6c36b55469c52d644e9f1a059936fe7ee0b8586

See more details on using hashes here.

Provenance

The following attestation bundles were made for scieqlint-0.1.5-py3-none-any.whl:

Publisher: release.yml on Kuhai9801/scieqlint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page