Skip to main content

A pre-commit hook, that enforces ASCII content.

Project description

Enforce ASCII

pre-commit Ruff image image image Actions status

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

ski_lint-0.3.1.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

ski_lint-0.3.1-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

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

Hashes for ski_lint-0.3.1.tar.gz
Algorithm Hash digest
SHA256 5dea6b146bd2e1ae06f93f41842fd1650a4fefb594739184811ec3f9eb584da2
MD5 54918653cb11135e8a744e7b5a0a9658
BLAKE2b-256 d00ed83df4f6f5dcce0a7427506a10ba3b14ac3055997e8e87be4a9c6931cc91

See more details on using hashes here.

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

Hashes for ski_lint-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5280580ed8b8aa875533692118453d056aed86cfa2d275a49ce1d131cf17d6fb
MD5 65d13e2fc2fa103f71566b877d1ca336
BLAKE2b-256 8abd499d00667589c9177b90ab2424f98033816b9f8798d0b22b1256c3a34766

See more details on using hashes here.

Supported by

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