[Python-Dev] Status of the Argument Clinic DSL (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Fri Aug 5 02:58:14 EDT 2016


On 5 August 2016 at 09:12, Larry Hastings <larry at hastings.org> wrote:

/ is the delimiter between positional-only parameters and positional-or-keyword arguments. It's not actual Python syntax, but Guido said (somewhere) that if Python ever sprouted a syntax for positional-only parameters, that was as good a delimiter as any. I think he picked it because / is the inverse of *.

I was thinking Guido picked the "/" symbol when we were discussing the Argument Clinic DSL at PyCon 2014 and you had also been working on https://www.python.org/dev/peps/pep-0457/

However, re-reading the latter shows it dates back earlier than that: https://www.python.org/dev/peps/pep-0457/#guido

If you have more questions about textsignature, I recommend reading the implementation of inspect.signature, since that's the one and only consumer of it.

I occasionally wonder if we should document the "/" notation in https://docs.python.org/3/library/inspect.html#introspecting-callables-with-the-signature-object as it can sometimes show up in the text representation of signature objects:

>>> print(inspect.signature(format))
(value, format_spec='', /)

Likewise for describing the option of using text_signature to override the default inspect.signature() output (and perhaps adding a public "inspect.Signature.from_text" alternate constructor at the same time).

However, either notion is a bit tricky while PEP 457 is still in draft rather than accepted - even if it's "just" a syntax for overriding inspect.signature, we'd still be effectively locking this in as the syntax for positional-only arguments (if they're ever added)

Cheers, Nick.

-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia



More information about the Python-Dev mailing list