Skip to main content

Extensible Python linter written in Rust

Project description

jg-lint

Extensible Python linter with a Rust core.

Installation

Requires Python 3.12+.

uv add jg-lint

or with pip:

pip install jg-lint

or with Poetry:

poetry add jg-lint

Development install

To build from source, you need Maturin and a Rust toolchain:

git clone https://github.com/jangia/jg-lint.git
cd jg-lint
uv sync
uv run maturin develop

Usage

jg-lint check <paths...>

Lint one or more files or directories:

jg-lint check src/
jg-lint check src/ lib/ main.py
jg-lint check --config path/to/project src/

The --config flag points to the directory containing pyproject.toml (defaults to .).

Built-in rules

Code Description
JG001 Imports must be at module top level
JG002 if statements are not allowed in test functions (any function or method whose name starts with test_)

All built-in rules are enabled by default. When select is empty (or omitted), every implemented built-in rule runs alongside any plugin rules. To narrow what runs, list rule codes explicitly in select (e.g. select = ["JG001"]) or silence individual rules via ignore / per-file-ignores.

If both select and ignore end up filtering out every rule, jg-lint prints a warning on stderr so you know nothing was actually checked.

Output looks like:

src/app.py:12:1: MY001 TODO comments should be tracked as issues
src/app.py:45:1: MY001 TODO comments should be tracked as issues

Found 2 violation(s)

Exit code is 1 if any violations are found, 0 otherwise.

Inline suppression

Some rules opt in to per-line suppression via # noqa:

x = something()  # noqa: MY001
y = another()  # noqa: MY001, MY002

By design, # noqa is not honored by default — rules must explicitly set allow_noqa = True to allow it. This keeps suppression intentional and reserved for cases where the rule author has decided it's acceptable.

Configuration

All configuration lives in pyproject.toml under [tool.jg-lint] (the legacy [tool.jg-linter] section is still read as a fallback for backwards compatibility):

[tool.jg-lint]
select = ["MY001", "JG*"]    # rules to enable (see "Selecting rules" below)
ignore = ["MY002"]           # skip these rules globally
exclude = [".venv/**", "build/**"]
rules_path = "./rules"       # directory containing your custom rule modules

[tool.jg-lint.per-file-ignores]
"tests/**" = ["MY001"]       # skip MY001 in test files

Selecting rules

Each entry in select, ignore, and per-file-ignores is matched against a rule's code with the following pattern semantics:

  • "*" — matches every code.
  • "JG*" — matches every code starting with JG (e.g. JG001, JG042).
  • "JG001" — exact match.

Defaults when select is empty:

  • Every implemented built-in rule (e.g. JG001, JG002) is enabled.
  • Every plugin rule loaded from rules_path is enabled.

Use ignore (or per-file-ignores) to turn rules off, or set select explicitly to opt into a narrower subset.

Writing custom rules

1. Create a rule module

Put it inside the directory you've configured as rules_path (e.g. ./rules/no_todo.py).

from jg_linter import Rule, Violation


class NoTodoComments(Rule):
    code = "MY001"
    message = "TODO comments should be tracked as issues"

    def check(self, file_path: str, content: str) -> list[Violation]:
        violations = []
        for i, line in enumerate(content.splitlines(), 1):
            if "# TODO" in line:
                violations.append(
                    Violation(file_path, i, 1, self.code, self.message)
                )
        return violations

Every Rule subclass found in the loaded modules is auto-instantiated — no get_rules() function required. If you need custom control (e.g. parameterized rules), define get_rules() and it will be used instead of auto-discovery.

Each rule needs:

  • code -- unique identifier (e.g. MY001)
  • message -- human-readable description
  • check(file_path, content) -- returns a list of Violation objects

Set test_only = True on a rule to run it only against test files (files named test_*.py, *_test.py, or inside a tests/ directory).

Set allow_noqa = True on a rule to allow inline # noqa: CODE suppression. Without this, the rule cannot be silenced per-line and can only be turned off project-wide via ignore or per-file-ignores.

2. Point jg-lint at the rules folder

[tool.jg-lint]
rules_path = "./rules"

rules_path can be either:

  • a flat directory of .py files (each file imported on its own), or
  • a Python package — i.e. the directory itself has __init__.py; submodules are imported under a synthetic _jg_lint_user_rules package so relative imports work.

In either layout, every Rule subclass found is auto-instantiated. Files and folders starting with _ are skipped. If a module defines get_rules(), that function is used verbatim (auto-discovery is bypassed for that module), which lets you parameterize or filter what gets registered.

3. Run

jg-lint check src/
src/app.py:3:1: MY001 TODO comments should be tracked as issues
src/utils.py:17:1: MY001 TODO comments should be tracked as issues

Found 2 violation(s)

Contributing

You need a Rust toolchain (stable), Python 3.12+, and uv.

git clone https://github.com/jangia/jg-lint.git
cd jg-lint
uv sync
uv run maturin develop

Tests

cargo test                 # Rust unit tests
uv run pytest              # Python tests (rebuild with `maturin develop` if Rust changed)
bash scripts/e2e.sh        # CLI smoke test against fixtures in examples/

examples/ contains one folder per built-in rule. Each folder has its own pyproject.toml that selects only that rule, plus bad*.py fixtures that must be flagged and good*.py fixtures that must not. scripts/e2e.sh greps the CLI output to confirm both halves; CI runs it on every push.

Linting and formatting

Before opening a PR, run the same checks CI does:

# Rust
cargo fmt --all -- --check          # formatting
cargo clippy --all-targets -- -D warnings   # lints (fails on any warning)
cargo audit                          # CVEs in dependencies (install with `cargo install cargo-audit`)

# Python
uv run ruff check .                  # lint
uv run ruff format --check .         # format check

To auto-fix:

cargo fmt --all
cargo clippy --fix --all-targets
uv run ruff check --fix .
uv run ruff format .

Releasing

Releases are driven by git tags of the form vX.Y.Z. To cut one:

  1. Bump version in pyproject.toml, commit, and merge to main.
  2. Tag main and push: git tag vX.Y.Z && git push origin vX.Y.Z.

Pushing the tag triggers .github/workflows/release.yml, which verifies the tag matches the pyproject.toml version, builds the sdist + wheels for all platforms, publishes to PyPI, and creates a GitHub Release with the artifacts and auto-generated notes attached. If the tag/version check fails the run aborts before anything is published.

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

jg_lint-0.8.0.tar.gz (29.3 kB view details)

Uploaded Source

Built Distributions

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

jg_lint-0.8.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

jg_lint-0.8.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

jg_lint-0.8.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

jg_lint-0.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

jg_lint-0.8.0-cp314-cp314-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.14Windows x86-64

jg_lint-0.8.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

jg_lint-0.8.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

jg_lint-0.8.0-cp314-cp314-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

jg_lint-0.8.0-cp314-cp314-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

jg_lint-0.8.0-cp313-cp313-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.13Windows x86-64

jg_lint-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

jg_lint-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

jg_lint-0.8.0-cp313-cp313-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

jg_lint-0.8.0-cp313-cp313-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

jg_lint-0.8.0-cp312-cp312-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.12Windows x86-64

jg_lint-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

jg_lint-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

jg_lint-0.8.0-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

jg_lint-0.8.0-cp312-cp312-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

File details

Details for the file jg_lint-0.8.0.tar.gz.

File metadata

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

File hashes

Hashes for jg_lint-0.8.0.tar.gz
Algorithm Hash digest
SHA256 04557c375474e681dea1b90f2d53ccdc8bd8851b02ddac6aa0e7cf23feb48e4d
MD5 034bd54deb28f92a6c7bda7c8b2b9545
BLAKE2b-256 ecf334196ebabda01969c56cf21c8e015a5baa5c5f7742a25029cd58d701cb5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0.tar.gz:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43176a4f524514efc5514666d485127ba0c448d663457e4e4e26f4c2982970fc
MD5 3640bf2d2c3306fbe5dad6ece23dd744
BLAKE2b-256 2c6553291ed63c4c2ce46af26a5bbb654788e83dae865821469c605520109da5

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02dce4e96fded5fbdba9310104a344fecee471c7bcf0115e387dc5cc212fb51a
MD5 2f5dfa463fbbcb78005a7269833c4c29
BLAKE2b-256 5f9ccffa2ab363b021f44534bbbc18f571a02f33949cd2e835c7e1fac61ee74d

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7bc40d45a72aad527e796275a5bf9623c53841c178d17b58ed136bc3bb31de4e
MD5 cd9b2506a0d7bfdf3eeb535b65673558
BLAKE2b-256 585ff1d471352cbf8e1e1c42ad43af39f4e606e5601518b7608d5dee80d76920

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 278f546498065dd41f61ac5ef1fa83250c9303db46f2ae14dd69aa40dbd9b25e
MD5 d6cc8304bbf62380059e81407b640f29
BLAKE2b-256 008f272dd80fa70ca9b2ff251d4d801e75db67e01ad14bfa38cd81e3d2773478

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: jg_lint-0.8.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jg_lint-0.8.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e00853289340f40f96cedda47b8806b228a1ea13e75957a356568e92007c7f51
MD5 3c9e0abf4f37e0226fdc782dc808335f
BLAKE2b-256 9e837711d5c4df0e9dcee8363ab00ef1bbfbceede8513f6a52d519288efa0fb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50717d95961b03e7e03baec11bda6dd7451882f3e17cb09376e81156d91231f8
MD5 d2d8b687f15373df3cba182dca87f0fd
BLAKE2b-256 6884741e41d0ddbe73d5666148fce4b06f547a38eba90bed426b64cae18183a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60d949f3f84df1766bb0e97ce087b19fc6fda609581b5fc3ba4cee4b1b495acc
MD5 8b26dc795f7f118218fcb530c50f5d52
BLAKE2b-256 77f95f4576cdf346bc230282b4f869de811eb36ca6fb1ff2ff7b600429d6008c

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60a3d27fcae1cd59f31fc52ff8ccb1615f950533fce6eb4ad188b396ba5f8971
MD5 cf80eac7fbc50ac533925c794d7aec2b
BLAKE2b-256 c9a3701c3809443f5a9a5bf6f8065dbdcdd6f485e54e03e0254b6ff9c0ba004f

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6f3e7517aa5dc240a119df9539a34b719e4501a535d042e57943b8bc7e2faba5
MD5 277f42dd7b75ccbd0b95a73a11af9ec7
BLAKE2b-256 d568b73401673d31df6731097e9024008660241e13758cb27b1f8f0beff93c36

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: jg_lint-0.8.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jg_lint-0.8.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b2a56e95977ec9e0851e12a7b934092da97b86ac387699ab890559d5363f2639
MD5 89731dd9cb7875f5423fd18f8f237d0b
BLAKE2b-256 d4a8317c05c2177075de23694646802d4c79d9fa6a4c8b808f7ea647dc4816d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a67fdf87fe80578854faa403345fad1cb4662f0eb048dba6411f9da57c05152f
MD5 2283d3cd29ed3334e0145db787bbef8f
BLAKE2b-256 e15875fbff6bb5127993cc2a7e2e4262f24f5d3e650a5d8dfd1503733e7ff3af

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 52e353bf030d2ae789c997c1714681c5ff395595161ef4dc29a2e0d955c27986
MD5 1717a9571f24d56023287e7b54f2d6a1
BLAKE2b-256 776f0a0729f9dadbc00c92da1223bf55b367f01277a9efed6ad438eda2369d42

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fb0796e8e885b17e7ea8411979195f23fd77e5b04dde8804a71ee787ae86955
MD5 a3d07c0d887357d307a386ef9d92e2ad
BLAKE2b-256 b6325abcd77e85b691ea726a207f104d4fc05f8fc1db55b4b2a0751e38c595ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3b6f0e1b0aeaddaa3af82ce87a2e4027677185f0020a5c76e22ee75f7e37592a
MD5 30ddcc020866628d64b677b767ebfd7e
BLAKE2b-256 d2dda9aef75d612c12a7787a975983dd666ea819dd02e2d2eac2cdf40155794a

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: jg_lint-0.8.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jg_lint-0.8.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2ba89d6f2528d4fa7146e5a3501e264be36a09ff6110b169dd39ada8eb30d27c
MD5 0e83dd704fea15b280b446fdf4559583
BLAKE2b-256 cebf2f0dda501509d152bc1f5209ba5cb79c615f0e1346a07569cc4c4f20c3be

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cbf2bf7b80ac252a1c0fbfb6ecfc223b5ed19809c91aa7fb58ae4d155a496a1d
MD5 ae0008781317df277ab057ba7712558e
BLAKE2b-256 e2acea118961a236151dfa328a0fb18799f48df581033dbdd75366a20b2bd1e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 467f6f6b6449048a6840551002a0e573d2afdfd71d0f0bfb5f1c2cb6178a1464
MD5 271d41d83a5c03a2e74daadf9933be7a
BLAKE2b-256 049d12ba775f5a37aa1cd530c0916ca56524a248743bda945db8de0a757b3dd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec0fd0859c8b833ac22571c3e57dbc6b5f487a502b15e390f7038d9c09f825da
MD5 a306a5ad993ede0e945e31cc1ddb5c6a
BLAKE2b-256 e5fb56136fd2b15c6f65bbd6d4ca7b9c5e38be50927f102b3bbc40a7363185d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on jangia/jg-lint

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

File details

Details for the file jg_lint-0.8.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jg_lint-0.8.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3a2b126e73b0524bc8220c31756511e5aa6390515d94ffb36878e48d9e96de3f
MD5 2e3708c5ac743429a8a61783f7bc4eab
BLAKE2b-256 36e59e33798523194f20bc2cee7205fffade3639a1ae195662bb5b3b2f0be529

See more details on using hashes here.

Provenance

The following attestation bundles were made for jg_lint-0.8.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on jangia/jg-lint

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