Skip to main content

A pre-commit fixer for replacing "smartquote" characters.

Project description

fix-smartquotes

A pre-commit hook for automatically finding and replacing smartquote characters with the standard ascii " and ' characters.

This fixes copy-paste from some applications which replace double-quotes with curly quotes. It does not convert corner brackets, braile quotation marks, or angle quotation marks. Those characters are not typically the result of copy-paste errors, so they are allowed.

Low quotation marks vary in usage and meaning by language, and some languages use quotation marks which are facing "outwards" (opposite facing from english). For the most part, these and exotic characters (double-prime quotes) are ignored.

In files with the offending marks, they are replaced and the run is marked as failed.

Supported Hooks

Only one hook is provided, fix-smartquotes.

Use it in .pre-commit-config.yaml like so:

- repo: https://github.com/sirosen/fix-smartquotes
  rev: 0.1.1
  hooks:
    - id: fix-smartquotes

Overriding Quotation Characters

Two options are available for specifying exactly which characters will be replaced. For ease of use, they are specified as hex-encoded unicode codepoints.

Suppose you wanted to avoid replacing the "Heavy single comma quotation mark ornament" (275C) and the "Heavy single turned comma quotation mark ornament" (275B) characters. You could override the single quote codepoints as follows:

- repo: https://github.com/sirosen/fix-smartquotes
  rev: 0.1.1
  hooks:
    - id: fix-smartquotes
      # replace default single quote chars with this set:
      # apostrophe, fullwidth apostrophe, left single quote, single high
      # reversed-9 quote, right single quote
      args: ["--single-quote-codepoints", "0027,FF07,2018,201B,2019"]

Standalone Usage

You can also pip install fix-smartquotes to run the tool manually.

For full usage info:

fix-smartquotes --help

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

fix-smartquotes-0.2.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

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

fix_smartquotes-0.2.0-py2.py3-none-any.whl (5.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file fix-smartquotes-0.2.0.tar.gz.

File metadata

  • Download URL: fix-smartquotes-0.2.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.6.9

File hashes

Hashes for fix-smartquotes-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7a5f95179139d4f3b8872c7415e91187d29bc3c320c1f8a5918ba9edf1b3a175
MD5 b094044c762eaaebc1899555cc132c59
BLAKE2b-256 8b42885970ca04bbf0f72fd834aa0f6ba0189e879174f5ed6ee657070757967b

See more details on using hashes here.

File details

Details for the file fix_smartquotes-0.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: fix_smartquotes-0.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.6.9

File hashes

Hashes for fix_smartquotes-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 44a4752ede08d118b4babe8f8fa2ee94eb55e16a5465751c79b845d420de6ea9
MD5 d8ad83d3d9ea24c21e11939fc601b2dd
BLAKE2b-256 6a20d92c3923b8d1e15467d40e23a5856c4aec3e3cea9ebd18fd2ad57249d6c6

See more details on using hashes here.

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