jay_lint
This is my attempt in making my own linter using Please from Thought Machine and the python ast library
Install it via pip
pip install jay_lint
To install, on the root directory run:
pip install .
How to use?
After installing, simply run jlint followed by your file name.
eg:
jlint <test.py>
How to use 'fix'?
Same as before, just add --fix after the file name
eg:
jlint --fix <test.py>
TypeScript / JavaScript support
jlint also lints .ts, .tsx, .js, .jsx, .mjs files. It parses them with
tree-sitter (installed with the package; needs Python 3.9+):
jlint app/page.tsx # one file
jlint app components lib # directories (node_modules, .next, plz-out skipped)
jlint --fix components/Bio.tsx # fix in place
jlint --strict --max-line-length 88 app # exit 1 if anything is reported (for CI)
Checks (--fix can fix the ones marked fix):
| Check | |
|---|---|
Import order and blank lines between import groups (builtin, external, @/ internal, parent, sibling, index; alphabetised) |
fix |
| Unused imports (default, named, aliased, namespace; side-effect imports are never unused) | fix |
| Trailing whitespace, repeated or leading blank lines, final newline | fix |
Line length (--max-line-length, default 100). Lines containing a string, template literal, comment, regex or URL are not reported |
The import order rules mirror eslint-plugin-import's import/order with
alphabetize and newlines-between: always, so the two agree. Imports are only reordered
when nothing but imports sits between them; a comment between two imports leaves them alone.
Development (Please)
Tests run under Please, pinned to the Python in .python-version (currently 3.11) so local and CI match.
Please builds with its own restricted PATH, so it ignores the python3 on yours; scripts/use_uv_python.sh installs the pinned Python with uv and points Please at it (via an untracked .plzconfig.local).
./scripts/use_uv_python.sh
./pleasew test //src/...
Metadata
Release files for jay-lint 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| jay_lint-0.1.0.tar.gz | 12.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jay_lint-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.2 kB
Release files / jay_lint-0.1.0.tar.gz
| Download URL | jay_lint-0.1.0.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe9a8c74fffa204aa91155779840ae770b57f69b197dc4c5da78efed231da979
|
|
BLAKE2b-256 checksum How to use checksums |
091d1f7630a17241f40c567a9f586b19ae10b30263c222a06a604bc0f5f320ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.8
|
Release files / jay_lint-0.1.0-py3-none-any.whl
| Download URL | jay_lint-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cadbfd8e8d945aa489bf76664a3dd0a03f58b57b3bd0b7d10d71209a38d70f98
|
|
BLAKE2b-256 checksum How to use checksums |
a4971b9f29b834f3ab968d02c0e37eb11841f34ebd65fb1e1f263856ed7c89ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.8
|
Security for jay-lint 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.