Add the ability to force shlex.quote to always return an escaped / quoted string, avoiding the expensive regex-ing of a straggly set of characters (currently r'[^\w@%+=:,./-]') .
Different shells have slightly different sets of special characters, eg sometimes including #, sometimes not. To quell one's pedantic paranoia of strings being incorrectly escaped due to an incomplete regex check, we extend the signature of shlex.quote in a perfectly backwards compatible way which skips the regex and goes straight to the escaping.
Changes shlex.quote's signature from
defquote(s):
to
defquote(s, always=False):
always is of bool type, and by default is False, which produces the existing behaviour of the function.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Activity
Add blurb entry for pythongh-119670: Add force keyword only argument …
gh-119670: Add `force` keyword only argument to `shlex.quote` (#148846)
vstinner commented on Jun 4, 2026
At the end, it was decided to rename the parameter to "force" (force=True).
pythongh-119670: Add `force` keyword only argument to `shlex.quote` (p…