Skip to content

shlex.quote: Add 'always' keyword argument #119670

@jb2170

Description

@jb2170

Feature or enhancement

Proposal:

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

def quote(s):

to

def quote(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

Links to previous discussion of this feature:

No response

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibPython modules in the Lib dirtype-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions