Skip to main content

Change quote style in Python files

Project description

String Fixer

Simple tool to replace "double quotes" with 'single quotes' in Python files.

There are many tools out there to lint and format Python code. The most popular formatter, Black, prefers double quotes to single quotes. Ruff is a bit more flexible, but doesn't format docstrings with single quotes (it lets you skip formatting them to preserve your own quotation style).

Neither project seems likely to add the option for entirely single-quoted code, so this tool can work as a post-processor to fix that.

Usage

CLI

# run against single file
python -m string_fixer --target my_file.py
# run against directory
python -m string_fixer --target lib/src/
# run against working dir
python -m string_fixer

IDE Plugins

This project has an accompanying VSCode extension.

Configuration

Configuration is done via the pyproject.toml file and the default settings are as follows:

[tool.string-fixer]
# file or folder to format
target = "./"
# set to true to print planned changes but not modify any files (overrides `output` config)
dry_run = false
# write a copy of the files to this directory, rather than modifying them inplace
output = "./"
# list of glob patterns for files to ignore. this value is autopopulated from `.gitignore` files as well
# as a few default values. anything you put in this list will be added to this set, rather than replacing
# it. Use the `include` option to override
ignore = [
    # these are the defaults
    "./**/.*",
    "./**/site-packages",
    "./**/node_modules",
    "./**/build",
    "./**/dist",
    "./**/__pycache__",
    "./**/venv"
]
# list of glob patterns for files to include. This setting overrides `ignore`
include = []
# extend and override options in another pyproject.toml file
extends = ""
# python version to target for compatibility (defaults to current python version)
# this must be a string because `float("3.10") == 3.1`
target_version = "3.12"
# try to produce strings with the least number of escapes, even if that means deviating from the quote style
prefer_least_escapes = true
# preferred quote style. Allowed options are 'single' or "double"
quote_style = "single"

All file paths are resolved relative to the pyproject.toml's location.

See Also

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

string_fixer-0.4.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

string_fixer-0.4.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file string_fixer-0.4.0.tar.gz.

File metadata

  • Download URL: string_fixer-0.4.0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for string_fixer-0.4.0.tar.gz
Algorithm Hash digest
SHA256 2f500cae1071dc98fb296a5ba3df6cbe23205d67e9cf2bf9535eed242d0f5c8d
MD5 0178360e502cd1ff9dd2f69f493ae256
BLAKE2b-256 afe67863a3a5bad528fadddf3932b3faf6f885f392bb13426c4c3339709446d1

See more details on using hashes here.

File details

Details for the file string_fixer-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for string_fixer-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2cb279081e5bff9a9e0c30e88736c7a8d14456c3e4d30cffbd2a4596b5ac63d
MD5 ad0059126e58a92f36ae7193b83a2af3
BLAKE2b-256 72ac1a50cc75953a68411fa76c1cc46cefb06aeaf8dc4aa180dce645e4b11558

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