A pre-commit hook, that enforces ASCII content.
Project description
Enforce ASCII
A Python package to find files containing non-ASCII encoded characters. If you find any bugs, issues or anything, please use the issue tracker on GitHub - issues and PRs are welcome ❤️
Install
It's on [PyPi] as ski-lint
, you can install it with pip, pipx, etc.
pip install ski-lint
Usage
$ ski-lint --help
usage: ski-lint [-h] [--version] [--check] [-w CONTEXT_WIDTH] [-c CONFIG_FILE] FILENAME [FILENAME ...]
A pre-commit hook, that rejects files containing non-ASCII characters.
positional arguments:
FILENAME path to the files to check
options:
-h, --help show this help message and exit
--version show program's version number and exit
--check return code is `1`, when non-ASCII files are found
-w, --context-width CONTEXT_WIDTH
width of the context of the non-ASCII line
-c, --config-file CONFIG_FILE
path to config file
Configuration
CONFIG_FILE
You can use an optional yaml file (default .ski-lint.yml
) in which you can override any CLI argument
or add additional configuration:
accepted_values:
- U+E4
- U+2026
context_width: 50
Hint: you may use the following resource to get required unicode symbol.
Environment variables
SKI_LINT_LOG_LEVEL
(INFO, DEBUG, WARNING, ...): sets the corresponding log level, default is INFO
.
Example
$ ski-lint tests/files/*/*.txt
2024-10-03 16:24:50,339 - ERROR - tests/files/bad/special.txt (Windows-1252), line 1, pos 9, char U+2026 '…', context: 'Hi there…'
2024-10-03 16:24:50,339 - ERROR - tests/files/bad/umlaut.txt (utf-8), line 1, pos 349, char U+E4 'ä', context: 'y next level pitchfork käle chips leggings gastrop'
2024-10-03 16:24:50,339 - ERROR - tests/files/bad/umlaut.txt (utf-8), line 1, pos 547, char U+F6 'ö', context: 'gs. Waistcoat jianbing föur dollar toast jean shor'
2024-10-03 16:24:50,339 - ERROR - tests/files/bad/umlaut.txt (utf-8), line 3, pos 190, char U+C5 'Å', context: 'eitan viral photo booth Åir plant cliche neutra la'
2024-10-03 16:24:50,339 - ERROR - tests/files/bad/zero-width-space.txt (Windows-1252), line 1, pos 62, non-printable char U+200B, context: 'ace (U+200B) at the end!U+200B'
Pre-Commit
This can be used as a pre-commit hook:
- repo: https://github.com/svdimchenko/ski-lint
rev: v0.3.1
hooks:
- id: ski-lint
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
Built Distribution
File details
Details for the file ski_lint-0.3.1.tar.gz
.
File metadata
- Download URL: ski_lint-0.3.1.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.1 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dea6b146bd2e1ae06f93f41842fd1650a4fefb594739184811ec3f9eb584da2 |
|
MD5 | 54918653cb11135e8a744e7b5a0a9658 |
|
BLAKE2b-256 | d00ed83df4f6f5dcce0a7427506a10ba3b14ac3055997e8e87be4a9c6931cc91 |
File details
Details for the file ski_lint-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: ski_lint-0.3.1-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.1 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5280580ed8b8aa875533692118453d056aed86cfa2d275a49ce1d131cf17d6fb |
|
MD5 | 65d13e2fc2fa103f71566b877d1ca336 |
|
BLAKE2b-256 | 8abd499d00667589c9177b90ab2424f98033816b9f8798d0b22b1256c3a34766 |