Skip to main content

flake8-literal

flake8 plugin to validate string literals.

This plugin is used to enforce consistent styling of string literals, it recognizes inline literals, multline literals, and docstrings.

Quote Usage

You can choose between single or double quotes for each type of string, and the plugin will enforce consistent usage.

If the avoid-escape feature is on (default), it will enforce using the opposite quote type when doing so will avoid the use of escaped quotes.

It also recognizes continuation strings and will enforce a consistent quote style for the entire set when possible.

Raw Strings

This plugin checks the usage of raw strings, preventing unnecessary use of raw strings, and requiring raw strings when doing so will avoid an escaped backslash.

Because raw strings are commonly used in regular expression patterns, otherwise unnecessary raw strings are allowed by default when used as a regular expression pattern. There is an option to avoid raw strings in regular expression patterns, or to require them regardless of the presence of escapes. Note that this feature only works when using string literals directly in calls to re functions, and the functions must be called in the manner that they are imported. e.g.

from re import compile as regex_compile
x = regex_compile(r'this does not need to be raw')

would be acceptable, but

import re
pattern = r'this does not need to be raw'
x = re.compile(pattern)

or

import re
regex_compile = re.compile
y = regex_compile(r'this does not need to be raw')

would not.

Planned Features

  • Enforcing multiline string usage
  • String concatenation
  • Format string usage

Installation

Standard python package installation:

pip install flake8-literal

Options

literal-inline-quotes : Quote to use for inline string literals, choices: single, double (default: single)

literal-multiline-quotes : Quote to use for multiline string literals, choices: single, double (default: single)

literal-docstring-quotes : Quote to use for docstrings, choices: single, double (default: double)

literal-avoid-escape : Avoid escapes in inline string literals when possible (enabled by default)

literal-no-avoid-escape : Disable escape avoidance in inline string literals

literal-re-pattern-raw : Control usage of raw string literals in regular expression patterns, choices avoid, allow, always (default: allow)

literal-include-name : Include plugin name in messages

literal-no-include-name : Do not include plugin name in messages (default setting)

All options may be specified on the command line with a -- prefix, or can be placed in your flake8 config file.

Error Codes

Code Message
LIT001 Use single quotes for string
LIT002 Use double quotes for string
LIT003 Use single quotes for multiline string
LIT004 Use double quotes for multiline string
LIT005 Use single quotes for docstring
LIT006 Use double quotes for docstring
LIT007 Use triple single quotes for docstring
LIT008 Use triple double quotes for docstring
LIT011 Use double quotes for string to avoid escaped single quote
LIT012 Use single quotes for string to avoid escaped double quote
LIT013 Escaped single quote is not necessary
LIT014 Escaped double quote is not necessary
LIT015 Use double quotes for continuation strings to match
LIT016 Use single quotes for continuation strings to match
LIT101 Remove raw prefix when not using escapes
LIT102 Use raw prefix to avoid escaped slash
LIT103 Use raw prefix for re pattern

Examples

x = "value"  <-- LIT001
x = 'aren\'t escapes great?'  <-- LIT011
x = "can\'t stop escaping"  <-- LIT013
x = ('one'  <-- LIT015
     "o'clock")
x = r'no need to be raw'  <-- LIT101
x = '\\windows\\path'  <-- LIT102
x = re.compile(r'pattern')  <-- (no error when literal-re-pattern-raw set to `allow` or `always`)
x = re.compile('pattern')  <-- LIT103 (when literal-re-pattern-raw set to `always`)

Metadata

Release files for flake8-literal 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flake8-literal 1.5.0
File Size Uploaded
flake8_literal-1.5.0.tar.gz 12.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flake8-literal 1.5.0
File Interpreter ABI Platform
flake8_literal-1.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.9 kB

Release files / flake8_literal-1.5.0.tar.gz

Download URL flake8_literal-1.5.0.tar.gz
Size 12.9 kB
Tags Source
SHA-256 checksum
How to use checksums
713a95558b4a54111a2183b3ed869e83c56a1ec6437f9e35707f601d64db63ae
BLAKE2b-256 checksum
How to use checksums
db2627b625f0fdf41029de927744c3942ebe52e261d76869645a339b311333cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release files / flake8_literal-1.5.0-py3-none-any.whl

Download URL flake8_literal-1.5.0-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
854bbbb0a55dd52b5476ba27b5b74041fba160dbc1f7c094649949021e54fa0d
BLAKE2b-256 checksum
How to use checksums
76fb0cceae15fe248b01bc61cb2c4372ae54fe83dac30a82eb0619a46e6b832c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

1.5.0 This release

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page