[Python-Dev] Announcing PEP 436: The Argument Clinic DSL
Terry Reedy
tjreedy at udel.edu
Tue Feb 26 17:11:12 CET 2013
On 2/25/2013 7:11 PM, Larry Hastings wrote:
>
> Following up on a conversation on python-dev from last December:
>
> http://mail.python.org/pipermail/python-dev/2012-December/122920.html
>
> I'm pleased to announced PEP 436, proposing Argument Clinic for adoption
> into the CPython source tree.
>
> http://www.python.org/dev/peps/pep-0436/
The PEP gives an internal, developer-focused rationale. I think there is
also an external, user-focused rationale. As much as possible (with
obvious caveats about type introspection), I think it should be
transparent to users (other than speed) whether a function is
implemented in Python or C. People who love keyword calling currently
have to learn which module by module and function by function.
Tranparency will become even more important as more modules are dual
coded, and as users move code between implementations. I presume some of
the complexities of PyArg_ParseTupleAndKeywords arise from pursuing
this goal. And if I understand correctly, this PEP should reduce some of
the complexities. The 'future goal' of C function signature info will
further aid transparency.
This user rationale suggests that positional-only functions should be
discouraged.
It also suggests another future goal: a clinic backend that would
instead output a skeleton python file with def header lines and
docstrings, leaving the bodies to be filled in. One could also wish for
the opposite: a python file processor that would convert def header
lines and docstrings to a skeleton C file with clinic specifications.
> Do we need to support tuple unpacking?
Well, Python 3 dropped that for python functions, so it is not needed
needed for conversions to or from python 3 files. I suspect the same
rationale applies to C as well as Python functions: the unpacking can be
done explicitly in the body, as needed.
--
Terry Jan Reedy
More information about the Python-Dev
mailing list