Maximally-strict ruff + pyright + ESLint configs for sarj-ai Python/TypeScript projects.
Project description
sarj-lint-configs
Ships the maximally-strict ruff / pyright / ESLint configs from sarj-ai/standards as a pip-installable package.
uv add --dev sarj-lint-configs
uv run sarj-lint-configs sync --only ruff # writes .ruff-strict.toml
uv run sarj-lint-configs sync --only pyright # writes .pyright-strict.json
uv run sarj-lint-configs sync --only eslint # writes eslint.strict.mjs
Then reference the synced file:
# pyproject.toml
[tool.ruff]
extend = ".ruff-strict.toml"
// pyrightconfig.json
{ "extends": ".pyright-strict.json" }
// eslint.config.mjs
import strict from "./eslint.strict.mjs";
export default [...strict];
Re-run sync with --force after upgrading. Programmatic access via from sarj_lint_configs import RUFF_STRICT, PYRIGHT_STRICT, ESLINT_STRICT (returns pathlib.Path into the wheel).
0.8.0 — PLC2701 moved out of ruff
PLC2701 import-private-name is now in the ignore list. It cannot tell a
private name of ours from a private name of a dependency's: its exemption
is "same top-level package", so from livekit.agents.inference_runner import _InferenceRunner — an API livekit made private in 1.6.6, with no public
replacement — is flagged identically to a first-party helper someone forgot to
export. Ruff has no configuration surface that separates them.
The check is replaced by SARJ048 in
sarj-python-lint ≥ 0.19.0,
which resolves the imported module against your project tree and fires only on
first-party modules:
- repo: https://github.com/sarj-ai/standards
rev: python-v0.19.0
hooks:
- id: sarj-no-first-party-private-import
If you are not running the sarj-python-lint hooks, re-enable PLC2701 in
your own [tool.ruff.lint] extend-select — an over-firing check beats no
check.
Attribute access (session._stt) is unchanged: ruff's SLF001 and pyright's
reportPrivateUsage both still fire, and neither can make the first/third-party
distinction. Both configs carry the rationale and the escape hatches inline.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sarj_lint_configs-0.8.0.tar.gz.
File metadata
- Download URL: sarj_lint_configs-0.8.0.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bf4f8b9382399f0e08df9e293da3c2af572fd154c677136bfb5468e629a6606
|
|
| MD5 |
7f93602eb6220a8e3f6622485f24d3b2
|
|
| BLAKE2b-256 |
c4204ac67a356868d3cb29fcb3decd11ed2eaff4067e1f68b38b4e7e8d1417ca
|
File details
Details for the file sarj_lint_configs-0.8.0-py3-none-any.whl.
File metadata
- Download URL: sarj_lint_configs-0.8.0-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efdd68d79b254f807f05c27fe0fde8d60a75a166200c380bec5887b7416f6012
|
|
| MD5 |
6b9485c8a3d526e6c6fea3c36cb140e5
|
|
| BLAKE2b-256 |
370518709a976f6b90295916c76ea1e20012e66acb1cb4674987534e522f33d4
|